本文將說明您在沒有資源的必要存取權時,可能會遇到的錯誤訊息,以及如何解決這些錯誤。
權限錯誤訊息
如果您嘗試存取沒有權限的資源, Trusted Cloud 控制台、Google Cloud CLI 和 REST API 都會顯示錯誤訊息。
這些錯誤訊息可能是由下列原因所造成:
- 您沒有必要權限。您必須具備具有必要權限的允許政策角色繫結。如果沒有必要權限, Trusted Cloud 會顯示錯誤訊息。
- 有一項拒絕政策會封鎖存取作業。如果拒絕 政策禁止您使用任何必要權限,則 Trusted Cloud 會顯示錯誤訊息。
- 資源不存在。如果資源不存在,Trusted Cloud 會顯示錯誤訊息。
以下各節將說明Trusted Cloud 控制台、gcloud CLI 和 REST API 的錯誤訊息。
Trusted Cloud 控制台錯誤訊息
在 Trusted Cloud 控制台中,錯誤訊息看起來類似以下內容:
這些錯誤訊息包含下列資訊:
- 您嘗試存取的資源:錯誤頁面的標題會顯示資源名稱,指出您在遇到權限錯誤時嘗試存取的資源。
- 缺少必要權限:您必須具備的權限清單,才能存取資源。
具備必要權限的 IAM 角色清單: 這份清單僅選列部分項目,並非完整內容。清單中的角色經過精心挑選,可解決存取權問題。Trusted Cloud 排序依據為角色允許的動作類型、服務關聯性和權限數量。
如果您具備授予角色所需的權限,這個部分會顯示「選取要授予的角色」。如果您沒有必要權限,這個部分會顯示「要求特定角色」。
這份清單只會列出可透過授予額外 IAM 角色解決的權限錯誤。
您可以點選角色,進一步瞭解該角色,並要求授予該角色。如果您具備授予角色的必要權限,則可自行授予角色,不必提出要求。
Google Cloud CLI 和 REST API 錯誤訊息
錯誤訊息的確切措辭取決於您執行的指令。不過,通常會包含下列資訊:
- 必要權限
- 您嘗試對其執行動作的資源
- 驗證帳戶
舉例來說,如果您沒有權限列出專案中的值區,系統會顯示類似下列內容的錯誤訊息:
gcloud
ERROR: (gcloud.storage.buckets.list) HTTPError 403:
EMAIL_ADDRESS does not have
storage.buckets.list access to the Google Cloud project. Permission
'storage.buckets.list' denied on resource (or it may not exist). This command
is authenticated as EMAIL ADDRESS which
is the active account specified by the [core/account] property.
REST
{
"error": {
"code": 403,
"message": "EMAIL ADDRESS does not have storage.buckets.list access to the Google Cloud project. Permission 'storage.buckets.list' denied on resource (or it may not exist).",
"errors": [
{
"message": "EMAIL ADDRESS does not have storage.buckets.list access to the Google Cloud project. Permission 'storage.buckets.list' denied on resource (or it may not exist).",
"domain": "global",
"reason": "forbidden"
}
]
}
}
要求缺少的權限
如果您沒有權限修改機構中與存取權相關的政策,就無法自行解決權限錯誤。不過,您可以根據錯誤訊息中的情境,向管理員傳送存取要求。
您可以透過下列方式要求存取權:
要求必要權限。這個解決方法適用於所有類型的權限錯誤。
要求具備必要權限的角色。只有在權限錯誤是因允許政策所致時,這項解決方法才有效。
如果您使用 Trusted Cloud 控制台,且具備授予角色的必要權限,可以直接從錯誤訊息授予自己角色,不必提出要求。詳情請參閱在 Trusted Cloud 控制台中自行授予角色。
要求必要權限
如要要求必要權限,請按照下列步驟操作:
控制台
gcloud
從錯誤訊息複製缺少的權限清單,然後使用偏好的要求管理系統,請管理員授予這些權限。
REST
從錯誤訊息複製缺少的權限清單,然後使用偏好的要求管理系統,請管理員授予這些權限。
要求角色
如果權限錯誤是因允許政策所致,您可以要求管理員授予您具備必要權限的角色,以解決錯誤。
如果錯誤是因其他政策類型所致,或不確定是哪種政策類型導致錯誤,請改為要求必要權限。
控制台
在「要求特定角色」部分,查看建議角色清單,然後選擇要要求的角色。點選角色即可查看更多詳細資料。只有在權限錯誤是由允許政策所致時,才會顯示這個部分。
按一下所選角色,然後點選「要求角色」。
在「要求存取權」面板中,選擇通知管理員的方式:
如果貴機構支援必要聯絡人,您可以將自動產生的電子郵件傳送給貴機構的技術必要聯絡人。如要傳送這封電子郵件,請按照下列步驟操作:
- 選取「傳送自動產生的電子郵件」。
- 新增您想加入的任何要求相關背景資訊。
- 按一下 [傳送要求]。
如要複製存取要求並貼入慣用的要求管理系統,請按照下列步驟操作:
- 如果貴機構支援重要聯絡人,但您想手動傳送通知,請選取「手動通知」。
- 新增您想加入的任何要求相關背景資訊。
- 按一下「複製訊息」。
- 將要求貼入您慣用的要求管理系統。
管理員會收到您的存取要求,以及您提供的任何其他背景資訊。
gcloud
找出包含缺少的權限的 IAM 角色。
如要查看包含特定權限的所有角色,請在 IAM 角色和權限索引中搜尋該權限,然後按一下權限名稱。
如果沒有符合您用途的預先定義角色,您可以改為建立自訂角色。
使用慣用的要求管理系統,要求管理員授予您該角色。
REST
找出包含缺少的權限的 IAM 角色。
如要查看包含特定權限的所有角色,請在 IAM 角色和權限索引中搜尋該權限,然後按一下權限名稱。
如果沒有符合您用途的預先定義角色,您可以改為建立自訂角色。
使用慣用的要求管理系統,要求管理員授予您該角色。
在 Trusted Cloud 控制台中自行授予角色
如果在 Trusted Cloud 控制台中遇到權限錯誤,且您具備授予角色所需的權限,可以直接透過權限錯誤訊息授予自己角色:
在「Select a role to grant」(選擇要授予的角色) 部分,查看建議角色清單,然後選擇要申請的角色。點選角色即可查看更多詳細資料。
如要授予所選角色,請按一下該角色,然後點選「授予存取權」。
解決存取要求中的權限錯誤
如果您是管理員,使用者在 Trusted Cloud 控制台中遇到權限錯誤時,可能會向您提出存取要求。這些要求通常會傳送給下列人員:
貴機構的技術聯絡人。如果貴機構已啟用必要聯絡人,使用者在Trusted Cloud 控制台中遇到權限錯誤時,可以選擇向機構的技術必要聯絡人傳送存取要求。
透過您慣用的要求管理系統設定的聯絡人。 如果使用者在 Trusted Cloud 控制台中遇到權限錯誤,可以選擇複製存取要求訊息,然後使用偏好的要求管理系統傳送該訊息。
這類訊息通常採用下列格式:
user@example.com is requesting a role on the resource example.com:example-project.
Requestor's message:
"I need access to example-project to complete my work."
You may be able to resolve this request by granting access directly at:
ACCESS_REQUEST_PANEL_URL
Or use the Policy Troubleshooter to determine what's preventing access for user@example.com:
POLICY_TROUBLESHOOTER_URL
您可以透過下列方式處理這些要求:
直接解決存取權問題:存取要求會提供 Trusted Cloud 控制台的存取要求面板連結。如果權限錯誤是允許政策所致,可以直接從該面板解決存取權問題。
在存取要求面板中,您可以查看要求詳細資料,並選擇如何回覆要求。你可以透過下列方式回覆:
- 授予要求的角色
- 將使用者新增至現有群組,該群組已具備必要存取權
- 拒絕要求
在政策疑難排解工具中查看其他詳細資料:存取要求也包含政策疑難排解工具的連結,可讓您查看哪些政策禁止使用者存取。您可以根據這項資訊決定如何解決使用者的存取權問題。詳情請參閱本頁的「找出導致權限錯誤的政策」。
手動解決權限錯誤
如果您是管理員,且有權修改貴機構的存取權相關政策,無論導致錯誤的政策類型為何,都可以使用這些策略解決權限錯誤。
如要解決權限錯誤,請先找出導致錯誤的政策 (允許或拒絕)。然後解決錯誤。
找出導致權限錯誤的政策
如要判斷哪些政策導致權限錯誤,請使用政策疑難排解工具。
政策疑難排解工具可協助您瞭解主體是否能存取資源。指定主體、資源和權限後,政策疑難排解工具會檢查影響主體存取權的允許政策、拒絕政策和主體存取權範圍 (PAB) 政策。然後,根據這些政策,系統會告知主體是否能使用指定權限存取資源。並列出相關政策,說明這些政策如何影響主體的存取權。如要瞭解如何排解存取權問題及解讀政策疑難排解工具結果,請參閱「排解 IAM 權限問題」。
控制台中的錯誤訊息會提供連結,導向主體、權限和要求中涉及的資源的「政策疑難排解工具」結果頁面。 Trusted Cloud 如要查看這個連結,請點選「查看疑難排解詳細資料」,然後在「疑難排解網址」欄位中找出值。
更新存取權以解決權限錯誤
瞭解導致權限錯誤的政策後,即可採取步驟解決錯誤。
通常,解決錯誤需要建立或更新允許或拒絕政策。
不過,您也可以選擇其他解決錯誤的方法,不一定要更新政策。舉例來說,您可以將使用者加入具有必要權限的群組,或新增標記,將資源從政策中排除。
如要瞭解如何解決因各類型政策而導致的權限錯誤,請參閱下列文章:
解決允許政策權限錯誤
如要解決因允許政策而導致的權限錯誤,請執行下列任一操作。
授予具備必要權限的角色
如要找出並授予具備必要權限的角色,請按照下列步驟操作:
找出包含缺少的權限的 IAM 角色。
如要查看包含特定權限的所有角色,請在 IAM 角色和權限索引中搜尋該權限,然後按一下權限名稱。
如果沒有符合您用途的預先定義角色,您可以改為建立自訂角色。
找出要將角色授予哪一個主體:
- 如果只有該使用者需要這項權限,請直接授予使用者該角色。
- 如果使用者所屬的 Google 群組包含需要類似權限的使用者,請考慮將角色授予群組。如果您將角色授予群組,該群組的所有成員都能使用這項權限,除非他們明確遭到拒絕使用這項權限。
將使用者加入 Google 群組
如果 Google 群組在資源上獲得角色,該群組的所有成員就能使用該角色中的權限存取資源。
如果現有群組已獲派具備必要權限的角色,只要將使用者新增至該群組,即可授予必要權限:
找出具有必要權限角色的群組。如果您已使用政策疑難排解工具排解要求問題,可以查看政策疑難排解工具的結果,找出具備必要權限的群組。
或者,您也可以使用政策分析工具,找出具備必要權限的群組。
解決拒絕政策權限錯誤
如要解決與拒絕政策相關的權限錯誤,請執行下列任一操作。
豁免拒絕政策
如果拒絕規則禁止使用者存取資源,您可以採取下列任一做法,讓使用者不受該規則限制:
在拒絕規則中,將使用者新增為例外主體。例外主體是指不受拒絕規則影響的主體,即使他們是拒絕規則中包含的群組成員也一樣。
如要將例外主體新增至拒絕規則,請按照步驟更新拒絕政策。更新拒絕政策時,請找出封鎖存取權的拒絕規則,然後將使用者的主體 ID 新增為例外主體。
將使用者加入免除規則限制的群組。如果群組列為例外主體,該群組的所有成員都會豁免於拒絕規則。
如要將使用者加入豁免群組,請按照下列步驟操作:
將權限從拒絕政策中移除
拒絕規則可防止所列主體使用特定權限。如果拒絕規則封鎖使用者存取資源,您可以從拒絕規則中移除使用者所需的權限。
如要從拒絕規則中移除權限,請按照步驟更新拒絕政策。更新拒絕政策時,請找出封鎖存取權的拒絕規則,然後執行下列任一操作:
- 如果拒絕政策個別列出必要權限,請找出必要權限並從拒絕規則中移除。
- 如果拒絕規則使用權限群組,請將必要權限新增為例外權限。例外權限是指即使屬於規則中包含的權限群組,也不會遭到拒絕規則封鎖的權限。
將資源從拒絕政策中排除
您可以使用拒絕政策中的條件,根據資源的標記套用拒絕規則。如果資源的標記不符合拒絕規則中的條件,系統就不會套用拒絕規則。
如果拒絕規則封鎖了資源存取權,您可以編輯拒絕規則中的條件或資源上的標記,確保拒絕規則不適用於該資源。