IAM プリンシパル

Identity and Access Management(IAM)では、プリンシパルのアクセスを制御します。プリンシパルは、 Google Cloudに対して認証された 1 つ以上の ID を表します。

ポリシーでプリンシパルを使用する

ポリシーでプリンシパルを使用する手順は次のとおりです。

  1. Google Cloud で認識できる ID を構成します。ID の構成は、 Google Cloud で認識できる ID を作成するプロセスです。ユーザーとワークロードの ID を構成できます。

    ID を構成する方法については、以下をご覧ください。

    • ユーザーの ID を構成する方法については、ユーザーの ID をご覧ください。
    • ワークロードの ID を構成する方法については、ワークロードの ID をご覧ください。
  2. 使用するプリンシパル ID を決定します。プリンシパル ID は、ポリシーでプリンシパルを参照する方法です。この識別子は、単一の ID または ID のグループを参照できます。

    プリンシパル ID に使用する形式は、次の要素によって異なります。

    • プリンシパルのタイプ
    • プリンシパルを含めるポリシーのタイプ

    各タイプのポリシーの各タイプのプリンシパルのプリンシパル ID の形式を確認するには、プリンシパル ID をご覧ください。

    ID の形式がわかれば、プリンシパルの属性(プリンシパルのメールアドレスなど)に基づいてプリンシパルの固有識別子を特定できます。

  3. ポリシーにプリンシパルの ID を含めます。ポリシーの形式に沿って、プリンシパルをポリシーに追加します。

    IAM のさまざまなタイプのポリシーについては、ポリシーの種類をご覧ください。

プリンシパル タイプのサポート

各 IAM ポリシータイプは、IAM がサポートするプリンシパル タイプのサブセットをサポートしています。各ポリシータイプでサポートされているプリンシパル タイプを確認するには、プリンシパル ID をご覧ください。

プリンシパルのタイプ

次の表に、IAM でサポートされているさまざまなプリンシパル タイプを簡単に説明します。ポリシーで使用されるプリンシパル タイプの詳細な説明と例については、表のプリンシパル タイプの名前をクリックしてください。

プリンシパル タイプ 説明 単一のプリンシパルまたはプリンシパル セット Google マネージドまたは連携 ポリシータイプのサポート
サービス アカウント ユーザーではなく、マシン ワークロードで使用されるアカウント。 単一のプリンシパル Google 管理

次のポリシータイプはサービス アカウントをサポートしています。

  • 許可
  • 拒否
サービス アカウントのセット プロジェクト、フォルダ、または組織内のすべてのサービス アカウント。 サービス アカウントを含むプリンシパル セット。 Google 管理

次のポリシータイプは、サービス アカウントのセットをサポートしています。

  • 許可
  • 拒否
サービス エージェントのセット プロジェクト、フォルダ、組織に関連付けられているすべての Google 管理のサービス アカウント(サービス エージェント)。 サービス エージェントを含むプリンシパル セット。 Google 管理

次のポリシータイプは、サービス エージェントのセットをサポートしています。

  • 拒否

次のポリシータイプは、サービス エージェントのセットをサポートしていません。

  • 許可
allAuthenticatedUsers すべてのサービス アカウントと、Google アカウントで認証されたインターネット上のユーザーを表す特殊な識別子。

次のプリンシパル タイプを含むことができるプリンシパル セット。

  • Google アカウント
  • サービス アカウント
  • Workforce Identity
  • Workload Identity
Google 管理

次のポリシータイプは、一部のリソースで allAuthenticatedUsers をサポートしています。

  • 許可

次のポリシータイプは allAuthenticatedUsers をサポートしていません。

  • 拒否
allUsers 認証されたユーザーと認証されていないユーザーの両方を含めて、インターネット上のすべてのユーザーを表す特殊な識別子。

次のプリンシパル タイプを含むことができるプリンシパル セット。

  • Google アカウント
  • サービス アカウント
  • Workforce Identity
  • Workload Identity
両方

次のポリシータイプは allUsers をサポートしています。

  • 許可(一部のリソース)
  • 拒否
Workforce Identity プール内の単一の ID 外部 IdP で管理され、Workforce Identity 連携を使用して連携された ID を持つユーザー。 単一のプリンシパル 連携

次のポリシータイプは、Workforce Identity プール内の単一の ID をサポートしています。

  • 許可
  • 拒否
Workforce Identity プール内のプリンシパルのセット 外部 IdP で管理され、Workforce Identity 連携を使用して連携された ID を持つユーザー(人間)のセット。 Workforce ID を含むプリンシパル セット。 連携

次のポリシータイプは、Workforce Identity プール内のプリンシパル セットをサポートしています。

  • 許可
  • 拒否
Workload Identity プール内の単一のプリンシパル 外部 IdP によって管理され、Workload Identity 連携を使用して連携された ID を持つワークロード(またはマシンユーザー)。 単一のプリンシパル 連携

次のポリシータイプは、Workload Identity プール内の単一のプリンシパルをサポートしています。

  • 許可
  • 拒否
Workload Identity プール内のプリンシパル セット 外部 IdP によって管理され、Workload Identity 連携を使用して連携される ID を持つワークロード(またはマシンユーザー)のセット。 Workload ID を含むプリンシパル セット 連携

次のポリシータイプは、Workload Identity プール内のプリンシパル セットをサポートしています。

  • 許可
  • 拒否
Google Kubernetes Engine Pod のセット GKE で実行され、GKE を介して連携されるワークロード(またはマシンユーザー)。 連携された 1 つ以上のワークロード ID を含むことができるプリンシパル セット 連携

次のポリシータイプは GKE Pod をサポートしています。

  • 許可

次のポリシータイプは GKE Pod をサポートしていません。

  • 拒否

以降のセクションでは、これらの主なタイプについて詳しく説明します。

サービス アカウント

サービス アカウントは、個々のエンドユーザーではなく、アプリケーションまたはコンピューティング ワークロードのアカウントです。サービス アカウントは、ユーザー管理のサービス アカウントと Google 管理のサービス アカウント(サービス エージェント)に分類できます。

  • Google Cloudにホストされているコードを実行する場合は、アプリケーションの ID として使用するサービス アカウントを指定します。必要な数のユーザー管理のサービス アカウントを作成して、アプリケーションのさまざまな論理コンポーネントを表すことができます。

  • 一部の Google Cloud サービスは、ユーザーに代わって処理を行うためにリソースにアクセスする必要があります。このニーズに応えるために、Google はサービス エージェントを作成して管理します。

サービス アカウントとサービス エージェントは、次の方法で参照できます。

  • 単一のサービス アカウント
  • プロジェクト内のすべてのサービス アカウント
  • プロジェクトに関連付けられているすべてのサービス エージェント。
  • フォルダ内のすべてのプロジェクトのすべてのサービス アカウント
  • フォルダとその子孫に関連付けられているすべてのサービス エージェント
  • 組織内のすべてのプロジェクトのすべてのサービス アカウント
  • 組織とその子孫に関連付けられているすべてのサービス エージェント

次の例は、さまざまなタイプのポリシーで個々のサービス アカウントを識別する方法を示しています。

  • 許可ポリシーのサービス アカウント: serviceAccount:my-service-account@my-project.
  • 拒否ポリシーのサービス アカウント: principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@my-project.

次の例は、さまざまなタイプのポリシーでプロジェクト、フォルダ、組織のすべてのサービス アカウントを特定する方法を示しています。

  • 許可ポリシー内のプロジェクトのすべてのサービス アカウント: principalSet://cloudresourcemanager.googleapis.com/projects/123456789012/type/ServiceAccount
  • 拒否ポリシーのフォルダに関連付けられているすべてのサービス エージェント: principalSet://cloudresourcemanager.googleapis.com/folders/123456789012/type/ServiceAgent

プリンシパル ID の形式の詳細については、プリンシパル ID をご覧ください。

サービス アカウントの詳細については、次のページをご覧ください。

allAuthenticatedUsers

allAuthenticatedUsers は、すべてのサービス アカウントを表す特殊な ID です。

このプリンシパル タイプには、外部 ID プロバイダ(IdP)によって管理されるフェデレーション ID は含まれません。フェデレーション ID を含めるには、次のいずれかを使用します。

このプリンシパル タイプは、一部のリソースタイプでサポートされていません。

allUsers

allUsers は、認証されたユーザーと認証されていないユーザーの両方を含めて、インターネット上のユーザーを表す特殊な識別子です。

このプリンシパル タイプは、一部のリソースタイプでサポートされていません。

次の例は、さまざまなタイプのポリシーで allUsers 識別子がどのように表示されるかを示しています。

  • サポートされているリソースタイプの許可ポリシー: allUsers
  • 拒否ポリシー: principalSet://goog/public:all

プリンシパル ID の形式の詳細については、プリンシパル ID をご覧ください。

Workforce Identity プール内の連携 ID

Workforce Identity プールは、外部 IdP で管理され、Workforce Identity 連携を使用して連携されたユーザー ID のセットです。これらのプール内のプリンシパルは、次の方法で参照できます。

  • Workforce Identity プール内の単一の ID
  • グループ内のすべての Workforce ID
  • 特定の属性値を持つすべての Workforce ID
  • Workforce Identity プール内のすべての ID

次の例は、さまざまなタイプのポリシーで連携された Workforce Identity プールを識別する方法を示しています。

  • 許可ポリシーの単一の ID: principal://iam.googleapis.com/locations/global/workforcePools/altostrat-contractors/subject/raha@altostrat.com
  • 拒否ポリシーの ID グループ: principalSet://iam.googleapis.com/locations/global/workforcePools/altostrat-contractors/group/administrators-group@altostrat.com

プリンシパル ID の形式の詳細については、プリンシパル ID をご覧ください。

Workload Identity プール内の連携 ID

Workload Identity プールは、外部 IdP によって管理され、Workload Identity 連携を使用して連携されるワークロード ID のセットです。これらのプール内のプリンシパルは、次の方法で参照できます。

  • Workload Identity プール内の単一の ID
  • 指定されたグループ内のすべてのワークロード ID
  • 特定の属性値を持つすべてのワークロード ID
  • Workload Identity プール内のすべての ID

次の例は、さまざまなタイプのポリシーで連携 Workload Identity プールを識別する方法を示しています。

  • 許可ポリシーの単一の ID: principal://iam.googleapis.com/projects/123456789012/locations/global/workloadIdentityPools/altostrat-contractors/subject/raha@altostrat.com
  • 拒否ポリシーの ID グループ: principalSet://iam.googleapis.com/projects/123456789012/locations/global/workloadIdentityPools/altostrat-contractors/group/administrators-group@altostrat.com

プリンシパル ID の形式の詳細については、プリンシパル ID をご覧ください。

次のステップ