権限エラーを解決する

このドキュメントでは、管理者が組織内のユーザーの権限エラーを特定して解決するために使用できるさまざまな方法について説明します。

アクセス権のリクエストの権限エラーを解決する

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 コンソールのアクセス権のリクエスト パネルへのリンクが含まれています。権限エラーが許可ポリシーによって発生している場合は、そのパネルからアクセス権を直接解決できます。

    アクセス権リクエスト パネルで、リクエストの詳細を確認し、リクエストへの対応方法を選択します。対応方法は次のとおりです。

    • リクエストされたロールを付与する
    • 必要なアクセス権がすでに付与されている既存のグループにユーザーを追加する
    • リクエストを拒否する
  • Policy Troubleshooter で詳細を表示する: アクセス権のリクエストには Policy Troubleshooter へのリンクが含まれており、ユーザーのアクセスをブロックしているポリシーを確認できます。この情報を使用して、ユーザーのアクセス問題を解決する方法を決定できます。詳細については、このページの権限エラーの原因となっているポリシーを特定するをご覧ください。

  • Policy Troubleshooter でアクセスに関する問題を修復するプレビュー): アクセス権ンのリクエストには、ポリシーの修復の概要へのリンクも含まれています。この概要には、リクエストしたプリンシパル、リソース、権限など、リクエストの詳細が記載されています。ポリシーの修復の概要から、許可ポリシーを含むアクセス権のリクエストを直接解決し、ユーザーのアクセスをブロックしているポリシーの詳細情報を取得できます。

    ポリシー修復の概要を使用してアクセス権のリクエストを解決する方法については、アクセスに関する問題を修復するをご覧ください。

権限エラーを手動で解決する

組織のアクセス関連ポリシーを変更する権限を持つ管理者は、エラーの原因となったポリシーの種類に関係なく、この戦略に従って権限エラーを解決できます。

権限エラーを解決するには、まず、どのポリシー(許可、拒否、プリンシパル アクセス境界)がエラーの原因になっているかを特定する必要があります。その後、エラーを解決します。

権限エラーの原因となっているポリシーを特定する

権限エラーの原因となっているポリシーを特定するには、Policy Troubleshooter を使用します。

Policy Troubleshooter では、プリンシパルがリソースにアクセスできるかどうかを判断できます。プリンシパル、リソース、権限を指定すると、Policy Troubleshooter により、プリンシパルのアクセス権に影響する許可ポリシー、拒否ポリシー、プリンシパル アクセス境界(PAB)ポリシーの調査が行われます。次に、これらのポリシーに基づいて、プリンシパルが指定された権限を使用してリソースにアクセスできるかどうかを示します。また、関連するポリシーを一覧表示し、それらがプリンシパルのアクセスにどのように影響するかを説明します。

アクセス権のトラブルシューティングを行い、Policy Troubleshooter の結果を解釈する方法については、IAM 権限のトラブルシューティングをご覧ください。

Google Cloud コンソールのエラー メッセージには、リクエストに関与するプリンシパル、権限、リソースに関連する Policy Troubleshooter の修復ページ(プレビュー)のリンクが含まれています。このリンクを表示するには、[トラブルシューティングの詳細を表示] をクリックし、[Policy Troubleshooter] をクリックします。詳細については、アクセス権のリクエストを修復するをご覧ください。

アクセス権を更新して権限エラーを解決する

権限エラーの原因となっているポリシーを特定したら、エラーを解決するための手順を実施できます。

多くの場合、エラーの解決には、許可ポリシー、拒否ポリシー、プリンシパル アクセス境界ポリシーの作成または更新が必要です。

ただし、ポリシーを更新せずにエラーを解決する方法もあります。たとえば、必要な権限を持つグループにユーザーを追加したり、タグを追加してリソースをポリシーから除外できます。

さまざまなポリシーの種類によって発生する権限エラーを解決する方法については、以下をご覧ください。

許可ポリシーの権限エラーを解決する

許可ポリシーによって発生した権限エラーを解決するには、次のいずれかを行います。

必要な権限を持つロールを付与する

必要な権限を持つロールを見つけて付与するには、次の操作を行います。

  1. 不足している権限を含む IAM ロールを特定します。

    特定の権限が含まれているすべてのロールを確認するには、IAM ロールと権限のインデックスで権限を検索し、権限名をクリックします。

    ユースケースに一致する事前定義ロールがない場合は、代わりにカスタムロールを作成できます。

  2. ロールを付与するプリンシパルを特定します。

    • 権限を必要としているのがそのユーザーのみの場合は、ロールをユーザーに直接付与します。
    • ユーザーが、同様の権限を必要とするユーザーを含む Google グループに属している場合は、代わりにグループにロールを付与することを検討してください。グループにロールを付与すると、そのグループのすべてのメンバーがその権限を使用できます。ただし、その権限の使用が明示的に拒否されているメンバーは除きます。
  3. プリンシパルにロールを付与します。

Privileged Access Manager の利用資格に対する権限付与を承認する

Privileged Access Manager の利用資格を使用すると、ユーザーは特定の IAM ロールの付与をリクエストできます。ユーザーの付与リクエストを承認すると、リクエストされたロールが一時的に付与されます。

ユーザーが、必要な権限を含むロールを持つ Privileged Access Manager の利用資格をすでに持っている場合は、その利用資格に対して権限付与をリクエストできます。権限付与をリクエストされたら、権限付与を承認して権限エラーを解決できます。

ユーザーに利用資格がない場合は、ユーザーが権限付与をリクエストするための新しい利用資格を作成できます。

ユーザーを Google グループに追加する

Google グループにリソースに対するロールが付与されている場合、そのグループのすべてのメンバーは、そのロールの権限を使用してリソースにアクセスできます。

既存のグループに、必要な権限を持つロールがすでに付与されている場合は、そのグループにユーザーを追加することで、必要な権限をユーザーに付与できます。

  1. 必要な権限を含むロールを持つグループを特定します。Policy Troubleshooter を使用してリクエストのトラブルシューティングをすでに実施している場合は、ポリシーに関するトラブルシューティングの結果を確認して、必要な権限を持つグループを特定できます。

    または、Policy Analyzer を使用して、必要な権限を持つグループを特定することもできます。

  2. ユーザーをグループに追加します。

拒否ポリシーの権限エラーを解決する

拒否ポリシーに関連する権限エラーを解決するには、次のいずれかを行います。

拒否ポリシーから自分を除外する

拒否ルールによってユーザーがリソースにアクセスできない場合は、次のいずれかの方法でユーザーをルールから除外できます。

  • 拒否ルールにユーザーを例外プリンシパルとして追加する。例外プリンシパルは、拒否ルールに含まれるグループのメンバーであっても、拒否ルールの影響を受けないプリンシパルです。

    拒否ルールに例外プリンシパルを追加するには、拒否ポリシーの更新手順に沿って操作します。拒否ポリシーを更新するときに、アクセスをブロックする拒否ルールを見つけて、ユーザーのプリンシパル ID を例外プリンシパルとして追加します。

  • ルールが適用されないグループにユーザーを追加する。グループが例外プリンシパルとしてリストされている場合、そのグループのすべてのメンバーは拒否ルールの対象外となります。

    ユーザーを免除グループに追加する手順は次のとおりです。

    1. Policy Troubleshooter を使用して、リソースへのアクセスをブロックしている拒否ポリシーを特定します。
    2. 拒否ポリシーを表示します
    3. グループの例外プリンシパルのリストを確認します。
    4. 除外グループを特定した場合は、ユーザーをグループに追加します。

拒否ポリシーから権限を削除する

拒否ルールにより、リストに記載されているプリンシパルは特定の権限を使用できなくなります。拒否ルールによってユーザーがリソースにアクセスできない場合は、必要な権限を拒否ルールから削除できます。

拒否ルールから権限を削除するには、拒否ポリシーの更新手順に沿って操作します。拒否ポリシーを更新するときに、アクセスをブロックする拒否ルールを見つけて、次のいずれかを行います。

  • 拒否ポリシーに必要な権限が個別にリストされている場合は、必要な権限を見つけて拒否ルールから削除します。
  • 拒否ルールで権限グループを使用している場合は、必要な権限を例外権限として追加します。例外権限は、ルールに含まれる権限グループの一部であっても、拒否ルールでブロックされない権限です。

拒否ポリシーからリソースを除外する

拒否ポリシーの条件を使用すると、リソースのタグに基づいて拒否ルールを適用できます。リソースのタグが拒否ルールの条件を満たしていない場合、拒否ルールは適用されません。

拒否ルールによってリソースへのアクセスがブロックされている場合は、拒否ルールまたはリソースのタグの条件を編集して、拒否ルールがリソースに適用されないようにします。

プリンシパル アクセス境界ポリシーの権限エラーを解決する

デフォルトでは、プリンシパルはすべての Google Cloud リソースにアクセスできます。 ただし、プリンシパル アクセス境界ポリシーの対象となる場合、それらのプリンシパルは、対象となるプリンシパル アクセス境界ポリシーにリストされているリソースにのみアクセスできます。このような場合、プリンシパル アクセス境界ポリシーによって、プリンシパルがリソースにアクセスできなくなる可能性があります。

プリンシパル アクセス境界ポリシーに関連するエラーを解決するには、次のいずれかを行います。

リソースをプリンシパル アクセス境界ポリシーに追加する

ユーザーが対象となるプリンシパル アクセス境界ポリシーにリソースが含まれている場合、そのユーザーはそのリソースにアクセスできます。

プリンシパル アクセス境界ポリシーにリソースを追加するには、次のいずれかを行います。

特定のプリンシパルを除外する条件を追加する

プリンシパル アクセス境界ポリシー バインディングの条件を使用して、プリンシパル アクセス境界ポリシーが適用されるプリンシパルを絞り込むことができます。

ユーザーにプリンシパル アクセス境界ポリシーを適用しない場合は、プリンシパル アクセス境界ポリシー バインディングの条件を使用して、ユーザーをプリンシパル アクセス境界ポリシーから除外します。

この方法でエラーを解決するには、ユーザーを対象とするすべてのプリンシパル アクセス境界ポリシーからユーザーを除外する必要があります。これにより、ユーザーは任意の Google Cloud リソースにアクセスできるようになります。

この方法はおすすめしません。代わりに、リソースをプリンシパル アクセス境界ポリシーに追加することを検討してください。

ユーザーが適用されるプリンシパル アクセス境界ポリシーを表示するには、ユーザーが属するプリンシパル セットのポリシー バインディングを一覧表示します。各バインディングは、プリンシパル セットにバインドされているプリンシパル アクセス境界ポリシーを表します。

プリンシパル アクセス境界ポリシー バインディングに条件を追加する方法については、プリンシパル アクセス境界ポリシーの既存のポリシー バインディングを編集するをご覧ください。

次のステップ