IAM プリンシパル

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

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

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

  1. Cloud de Confiance で認識できる ID を構成します。ID の構成は、 Cloud de Confiance で認識できる 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 管理のサービス アカウント(サービス エージェント)に分類できます。

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

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

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

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

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

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

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

  • 許可ポリシー内のプロジェクトのすべてのサービス アカウント: 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

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

  • 許可ポリシー内の単一の 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
  • 指定されたグループ内のすべての Workload ID
  • 特定の属性値を持つすべての Workload ID
  • Workload Identity プール内のすべての ID

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

  • 許可ポリシー内の単一の 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 をご覧ください。

GKE Pod

GKE で実行されているワークロードは、Workload Identity Federation for GKE を使用して Cloud de Confiance サービスにアクセスします。GKE Pod のプリンシパル ID の詳細については、IAM ポリシーで Kubernetes リソースを参照するをご覧ください。

次の例は、許可ポリシーで特定のクラスタ内のすべての GKE Pod を識別する方法を示しています。

principalSet://iam.googleapis.com/projects/123456789012/locations/global/workloadIdentityPools/123456789012.s3ns.svc.id.goog/kubernetes.cluster/https://container.googleapis.com/v1/projects/123456789012/locations/global/clusters/example-gke-cluster

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

次のステップ