排解權限錯誤訊息

本文將說明您在沒有資源的必要存取權時,可能會遇到的錯誤訊息,以及如何解決這些錯誤。

權限錯誤訊息

如果您嘗試存取沒有權限的資源, Google Cloud 控制台、Google Cloud CLI 和 REST API 都會顯示錯誤訊息。

這些錯誤訊息可能是由下列原因所造成:

  • 有一項拒絕政策會封鎖存取作業。如果拒絕 政策禁止您使用任何必要權限,則 Google Cloud 會顯示錯誤訊息。
  • 您不符合存取資源的資格。如果您受到任何主體存取邊界政策的限制,嘗試存取的資源必須包含在政策的主體存取邊界規則中。如果不是, Google Cloud 會顯示錯誤訊息。
  • 資源不存在。如果資源不存在,Google Cloud 會顯示錯誤訊息。

以下各節將說明Google Cloud 控制台、gcloud CLI 和 REST API 的錯誤訊息。

Google Cloud 控制台錯誤訊息

在 Google Cloud 控制台中,錯誤訊息看起來類似以下內容:

這些錯誤訊息包含下列資訊:

  • 您嘗試存取的資源:錯誤頁面的標題會顯示資源名稱,指出您在遇到權限錯誤時嘗試存取的資源。
  • 缺少必要權限:您必須具備的權限清單,才能存取資源。
  • Privileged Access Manager 權利清單,列出具備必要權限的角色:這份清單僅列出部分項目,只包含 Google Cloud 建議用來解決存取問題的頂層權利。

    這份清單只會列出可透過更新授予其他 IAM 角色來解決的權限錯誤。

    按一下權利,即可進一步瞭解權利,並對權利提出授權要求。詳情請參閱本文的「要求 Privileged Access Manager 存取權授權」。

    如果沒有任何權利包含必要權限,錯誤訊息頁面就不會顯示權利清單。

  • 具備必要權限的 IAM 角色清單: 這份清單僅選列部分項目,並非完整內容。清單中的角色經過精心挑選,可解決存取權問題。Google 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"
      }
    ]
  }
}

要求缺少的權限

如果您沒有權限修改機構中與存取權相關的政策,就無法自行解決權限錯誤。不過,您可以根據錯誤訊息中的情境,向管理員傳送存取要求。

您可以透過下列方式要求存取權:

如果您使用 Google Cloud 控制台,且具備授予角色的必要權限,可以直接從錯誤訊息授予自己角色,不必提出要求。詳情請參閱在 Google Cloud 控制台中自行授予角色

要求必要權限

如要要求必要權限,請按照下列步驟操作:

控制台

  1. 在缺少權限的清單中,按一下「要求權限」

  2. 在「要求存取權」面板中,選擇通知管理員的方式:

    • 如果貴機構支援重要聯絡人,您可以將自動產生的電子郵件傳送給貴機構的技術重要聯絡人。如要傳送這封電子郵件,請按照下列步驟操作:

      1. 選取「傳送自動產生的電子郵件」
      2. 新增您想加入的任何要求相關背景資訊。
      3. 按一下 [傳送要求]
    • 如要複製存取要求並貼入慣用的要求管理系統,請按照下列步驟操作:

      1. 如果貴機構支援重要聯絡人,但您想手動傳送通知,請選取「手動通知」
      2. 新增您想加入的任何要求相關背景資訊。
      3. 按一下「複製訊息」
      4. 將要求貼入您慣用的要求管理系統。

      管理員會收到您的存取要求,以及您提供的任何其他背景資訊。

gcloud

從錯誤訊息複製缺少的權限清單,然後使用偏好的要求管理系統,請管理員授予這些權限。

REST

從錯誤訊息複製缺少的權限清單,然後使用偏好的要求管理系統,請管理員授予這些權限。

要求授予 Privileged Access Manager 授權

Privileged Access Manager 權限定義了一組可隨時要求的 IAM 角色。如果要求成功,系統會暫時授予您要求的角色。

只有在權限錯誤是由允許政策所致,且您具備必要權限的特殊存取權管理授權時,才能使用這個解決方法。

如要要求授予現有權限,請執行下列步驟:

控制台

  1. 如果看到錯誤訊息,請找出「要求臨時存取權」部分。本節列出所有 Privileged Access Manager 權利,其中包含具備必要權限的角色。

    如果沒有傳回「要求臨時存取權」部分,表示沒有任何權利包含必要權限。在這種情況下,您可以請管理員建立新的授權

  2. 查看可用的權利清單,然後選取要申請授權的權利。

  3. 按一下授權,然後點選「要求存取權」

  4. 在「要求授權」面板中,輸入授權要求詳細資料:

    • 授予項目的必要時間長度,最長不得超過授權設定的時間長度上限。

    • 如有需要,請提供授權理由。

    • 選用:要通知授權要求的電子郵件地址。系統會自動通知與核准者相關聯的 Google 身分。不過,您可能想通知另一組電子郵件地址,特別是使用員工身分聯盟時。

  5. 按一下「申請補助」

  6. 如要查看授權記錄 (包括核准狀態),請前往Google Cloud 控制台的「Privileged Access Manager」頁面,然後依序點選「Grants」>「My grants」(我的授權)。

gcloud

  1. 搜尋可用的權利,找出具備必要權限的角色。

    如果沒有傳回任何授權,請要求管理員建立新的授權

  2. 要求授予權限

  3. (選用) 查看授權要求狀態

REST

  1. 搜尋可用的權利,找出具備必要權限的角色。

    如果沒有傳回任何授權,請要求管理員建立新的授權

  2. 要求授予權限

  3. (選用) 查看授權要求狀態

要求角色

如果權限錯誤是因允許政策所致,您可以要求管理員授予您具備必要權限的角色,以解決錯誤。

如果錯誤是因其他政策類型所致,或不確定是哪種政策類型導致錯誤,請改為要求必要權限

控制台

  1. 在「要求特定角色」部分,查看建議角色清單,然後選擇要要求的角色。點選角色即可查看更多詳細資料。只有在權限錯誤是由允許政策所致時,才會顯示這個部分。

  2. 按一下所選角色,然後點選「要求角色」

  3. 在「要求存取權」面板中,選擇通知管理員的方式:

    • 如果貴機構支援必要聯絡人,您可以將自動產生的電子郵件傳送給貴機構的技術必要聯絡人。如要傳送這封電子郵件,請按照下列步驟操作:

      1. 選取「傳送自動產生的電子郵件」
      2. 新增您想加入的任何要求相關背景資訊。
      3. 按一下 [傳送要求]
    • 如要複製存取要求並貼入慣用的要求管理系統,請按照下列步驟操作:

      1. 如果貴機構支援重要聯絡人,但您想手動傳送通知,請選取「手動通知」
      2. 新增您想加入的任何要求相關背景資訊。
      3. 按一下「複製訊息」
      4. 將要求貼入您慣用的要求管理系統。

    管理員會收到您的存取要求,以及您提供的任何其他背景資訊。

gcloud

  1. 找出包含缺少的權限的 IAM 角色。

    如要查看包含特定權限的所有角色,請在 IAM 角色和權限索引中搜尋該權限,然後按一下權限名稱。

    如果沒有符合您用途的預先定義角色,您可以改為建立自訂角色

  2. 使用慣用的要求管理系統,要求管理員授予您該角色。

REST

  1. 找出包含缺少的權限的 IAM 角色。

    如要查看包含特定權限的所有角色,請在 IAM 角色和權限索引中搜尋該權限,然後按一下權限名稱。

    如果沒有符合您用途的預先定義角色,您可以改為建立自訂角色

  2. 使用慣用的要求管理系統,要求管理員授予您該角色。

在 Google Cloud 控制台中自行授予角色

如果在 Google Cloud 控制台中遇到權限錯誤,且您具備授予角色所需的權限,可以直接透過權限錯誤訊息授予自己角色:

  1. 在「Select a role to grant」(選擇要授予的角色) 部分,查看建議角色清單,然後選擇要申請的角色。點選角色即可查看更多詳細資料。

  2. 如要授予所選角色,請按一下該角色,然後點選「授予存取權」

解決存取要求中的權限錯誤

如果您是管理員,使用者在 Google Cloud 控制台中遇到權限錯誤時,可能會向您提出存取要求。這些要求通常會傳送給下列人員:

  • 貴機構的技術聯絡人如果貴機構已啟用必要聯絡人,使用者在Google Cloud 控制台中遇到權限錯誤時,可以選擇向機構的技術必要聯絡人傳送存取要求。

  • 透過您慣用的要求管理系統設定的聯絡人。 如果使用者在 Google 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

您可以透過下列方式處理這些要求:

  • 直接解決存取權問題:存取要求會提供 Google Cloud 控制台的存取要求面板連結。如果權限錯誤是允許政策所致,可以直接從該面板解決存取權問題。

    在存取要求面板中,您可以查看要求詳細資料,並選擇如何回覆要求。你可以透過下列方式回覆:

    • 授予要求的角色
    • 將使用者新增至現有群組,該群組已具備必要存取權
    • 拒絕要求
  • 在政策疑難排解工具中查看其他詳細資料:存取要求也包含政策疑難排解工具的連結,可讓您查看哪些政策禁止使用者存取。您可以根據這項資訊決定如何解決使用者的存取權問題。詳情請參閱本頁的「找出導致權限錯誤的政策」。

手動解決權限錯誤

如果您是管理員,且有權修改貴機構的存取權相關政策,無論導致錯誤的政策類型為何,都可以使用這些策略解決權限錯誤。

如要解決權限錯誤,請先判斷是哪些政策 (允許、拒絕或主體存取邊界) 導致錯誤。然後解決錯誤。

找出導致權限錯誤的政策

如要判斷哪些政策導致權限錯誤,請使用政策疑難排解工具

政策疑難排解工具可協助您瞭解主體是否能存取資源。指定主體、資源和權限後,政策疑難排解工具會檢查影響主體存取權的允許政策、拒絕政策和主體存取權範圍 (PAB) 政策。然後,根據這些政策,系統會告知主體是否能使用指定權限存取資源。並列出相關政策,說明這些政策如何影響主體的存取權。

如要瞭解如何排解存取權問題及解讀政策疑難排解工具結果,請參閱「排解 IAM 權限問題」。

控制台中的錯誤訊息會提供連結,導向主體、權限和要求中涉及的資源的「政策疑難排解工具」結果頁面。 Google Cloud 如要查看這個連結,請點選「查看疑難排解詳細資料」,然後在「疑難排解網址」欄位中找出值。

更新存取權以解決權限錯誤

瞭解導致權限錯誤的政策後,即可採取步驟解決錯誤。

通常,解決錯誤需要建立或更新允許、拒絕或主體存取邊界政策。

不過,您也可以選擇其他解決錯誤的方法,不一定要更新政策。舉例來說,您可以將使用者加入具有必要權限的群組,或新增標記,將資源從政策中排除。

如要瞭解如何解決因各類型政策而導致的權限錯誤,請參閱下列文章:

解決允許政策權限錯誤

如要解決因允許政策而導致的權限錯誤,請執行下列任一操作。

授予具備必要權限的角色

如要找出並授予具備必要權限的角色,請按照下列步驟操作:

  1. 找出包含缺少的權限的 IAM 角色。

    如要查看包含特定權限的所有角色,請在 IAM 角色和權限索引中搜尋該權限,然後按一下權限名稱。

    如果沒有符合您用途的預先定義角色,您可以改為建立自訂角色

  2. 找出要將角色授予哪一個主體:

    • 如果只有該使用者需要這項權限,請直接授予使用者該角色。
    • 如果使用者所屬的 Google 群組包含需要類似權限的使用者,請考慮將角色授予群組。如果您將角色授予群組,該群組的所有成員都能使用這項權限,除非他們明確遭到拒絕使用這項權限。
  3. 將角色授予主體

核准 Privileged Access Manager 權限的授予項目

Privileged Access Manager 授權可讓使用者要求取得特定 IAM 角色。如果您核准使用者的授權要求,系統就會暫時授予使用者要求的角色。

如果使用者已具備 Privileged Access Manager 授權,且角色包含必要權限,即可針對該授權要求授予權限。對方提出授權要求後,您可以核准授權,解決對方的權限錯誤。

如果使用者沒有權利,您可以為他們建立新的權利,以便要求授權。

將使用者加入 Google 群組

如果 Google 群組在資源上獲得角色,該群組的所有成員就能使用該角色中的權限存取資源。

如果現有群組已獲派具備必要權限的角色,只要將使用者新增至該群組,即可授予必要權限:

  1. 找出具有必要權限角色的群組。如果您已使用政策疑難排解工具排解要求問題,可以查看政策疑難排解工具的結果,找出具備必要權限的群組。

    或者,您也可以使用政策分析工具,找出具備必要權限的群組。

  2. 將使用者加入群組。

解決拒絕政策權限錯誤

如要解決與拒絕政策相關的權限錯誤,請執行下列任一操作。

豁免拒絕政策

如果拒絕規則禁止使用者存取資源,您可以採取下列任一做法,讓使用者不受該規則限制:

  • 在拒絕規則中,將使用者新增為例外主體。例外主體是指不受拒絕規則影響的主體,即使他們是拒絕規則中包含的群組成員也一樣。

    如要將例外主體新增至拒絕規則,請按照步驟更新拒絕政策。更新拒絕政策時,請找出封鎖存取權的拒絕規則,然後將使用者的主體 ID 新增為例外主體。

  • 將使用者加入免除規則限制的群組。如果群組列為例外主體,該群組的所有成員都會豁免於拒絕規則。

    如要將使用者加入豁免群組,請按照下列步驟操作:

    1. 使用政策疑難排解工具,找出封鎖資源存取權的拒絕政策。
    2. 查看拒絕政策
    3. 查看群組的例外狀況主體清單。
    4. 如果發現豁免群組,請將使用者加入該群組

將權限從拒絕政策中移除

拒絕規則可防止所列主體使用特定權限。如果拒絕規則封鎖使用者存取資源,您可以從拒絕規則中移除使用者所需的權限。

如要從拒絕規則中移除權限,請按照步驟更新拒絕政策。更新拒絕政策時,請找出封鎖存取權的拒絕規則,然後執行下列任一操作:

  • 如果拒絕政策個別列出必要權限,請找出必要權限並從拒絕規則中移除。
  • 如果拒絕規則使用權限群組,請將必要權限新增為例外權限。例外權限是指即使屬於規則中包含的權限群組,也不會遭到拒絕規則封鎖的權限。

將資源從拒絕政策中排除

您可以使用拒絕政策中的條件,根據資源的標記套用拒絕規則。如果資源的標記不符合拒絕規則中的條件,系統就不會套用拒絕規則。

如果拒絕規則封鎖了資源存取權,您可以編輯拒絕規則中的條件或資源上的標記,確保拒絕規則不適用於該資源。

解決主體存取邊界政策權限錯誤

根據預設,主體可以存取任何 Google Cloud 資源。 不過,如果主體受到任何主體存取邊界政策的限制,就只能存取主體存取邊界政策中列出的資源。在這些情況下,主體存取邊界政策可能會禁止主體存取資源。

如要解決與主體存取邊界政策相關的錯誤,請執行下列任一操作。

將資源新增至主體存取邊界政策

如果資源包含在使用者適用的主體存取邊界政策中,使用者就能存取該資源。

如要將資源新增至主體存取邊界政策,請執行下列其中一項操作:

新增條件,豁免特定主體

您可以在主體存取邊界政策繫結中使用條件,進一步指定要對哪些主體強制執行主體存取邊界政策。

如要避免使用者受到主體存取邊界政策限制,請在主體存取邊界政策繫結中使用條件,將使用者排除在主體存取邊界政策之外。

如要透過這種做法解決錯誤,您必須免除使用者受限的所有主體存取邊界政策。這樣一來,使用者就能存取任何 Google Cloud 資源。

我們不建議採用這種做法。建議將資源新增至主體存取邊界政策

如要查看使用者適用的主體存取邊界政策,請列出使用者所屬主體集的政策繫結。每個繫結代表繫結至主體組合的主體存取邊界政策。

如要瞭解如何將條件新增至主體存取邊界政策繫結,請參閱「編輯主體存取邊界政策的現有政策繫結」。

後續步驟