Identity and Access Management(IAM)では、プリンシパルのアクセスを制御します。プリンシパルは、 Google Cloudに対して認証された 1 つ以上の ID を表します。
ポリシーでプリンシパルを使用する
ポリシーでプリンシパルを使用する手順は次のとおりです。
認識できる ID を構成します。 Google Cloud ID の構成は、 Google Cloud 認識できる ID を作成するプロセスです。ユーザーとワークロードの ID を構成できます。
アイデンティティを構成する方法については、以下をご覧ください。
- ユーザーの ID を構成する方法については、ユーザーの ID をご覧ください。
- ワークロードの ID を構成する方法については、ワークロードの ID をご覧ください。
使用するプリンシパル ID を決定します。プリンシパル ID は、ポリシーでプリンシパルを参照する方法です。この識別子は、単一の ID または ID のグループを参照できます。
プリンシパル ID に使用する形式は、次の要素によって異なります。
- プリンシパルのタイプ
- プリンシパルを含めるポリシーのタイプ
各タイプのポリシーの各タイプのプリンシパルのプリンシパル ID の形式を確認するには、プリンシパル ID をご覧ください。
ID の形式がわかれば、プリンシパルの属性(プリンシパルのメールアドレスなど)に基づいてプリンシパルの一意の ID を特定できます。
ポリシーにプリンシパルの ID を含めます。ポリシーの形式に沿って、プリンシパルをポリシーに追加します。
IAM のさまざまなタイプのポリシーについては、ポリシーの種類をご覧ください。
プリンシパル タイプのサポート
各 IAM ポリシータイプは、IAM がサポートするプリンシパル タイプのサブセットをサポートしています。各ポリシータイプでサポートされているプリンシパル タイプを確認するには、プリンシパル ID をご覧ください。
プリンシパルのタイプ
IAM は、次のタイプのプリンシパルをサポートしています。
- Google アカウント
- サービス アカウント
- Google グループ
- Google Workspace アカウント
- Cloud Identity ドメイン
allAuthenticatedUsers
allUsers
- Workforce Identity プール内の 1 つ以上のフェデレーション ID
- Workload Identity プール内の 1 つ以上のフェデレーション ID
- Google Kubernetes Engine Pod のセット
- Resource Manager プリンシパル セット(プリンシパル アクセス境界ポリシー バインディングのみ)
以降のセクションでは、これらの主なタイプについて詳しく説明します。
Google アカウント
Google アカウントは、Google で作成したアカウントを使用して Google Cloud を操作するデベロッパー、管理者、または他のユーザーを表します。Google アカウント(管理対象ユーザー アカウント)に関連付けられているメールアドレスは、プリンシパルとして使用できます。これには、gmail.com
メールアドレスや他ドメインのメールアドレスが含まれます。
Google アカウントの設定の詳細については、Cloud Identity アカウントまたは Google Workspace アカウントをご覧ください。
サービス アカウント
サービス アカウントは、個々のエンドユーザーではなく、アプリケーションまたはコンピューティング ワークロードのアカウントです。Google Cloudにホストされているコードを実行する場合は、アプリケーションの ID として使用するサービス アカウントを指定します。必要な数のサービス アカウントを作成して、アプリケーションのさまざまな論理コンポーネントを表すことができます。
サービス アカウントの詳細については、サービス アカウントの概要をご覧ください。
Google グループ
Google グループは、Google アカウントの名前付きコレクションです。Google グループには、グループ固有のメールアドレスが関連付けられています。Google グループのホームページで [情報] をクリックすると、Google グループに関連付けられているメールアドレスを確認できます。Google グループの詳細については、Google グループのホームページをご覧ください。
Google グループを使用すると、プリンシパルの集合に対してアクセス制御を簡単に適用できます。個々のプリンシパルごとにアクセス制御を付与または変更する代わりに、グループ全体に対して一度にアクセス制御を付与または変更できます。許可ポリシーを更新してプリンシパルを追加または削除するのではなく、Google グループにプリンシパルを追加または削除することもできます。
Google グループにはログイン認証情報がありません。Google グループでは、リソースへのアクセスをリクエストする ID を設定することはできません。
グループを使用したアクセス制御の詳細については、Google グループの使用に関するベスト プラクティスをご覧ください。
Google Workspace アカウント
Google Workspace アカウントは、そこに含まれるすべての Google アカウントの仮想グループを表します。Google Workspace アカウントは、example.com
などの組織のインターネット ドメイン名に関連付けられています。新しいユーザーに Google アカウント(username@example.com
など)を作成すると、その Google アカウントが Google Workspace アカウントの仮想グループに追加されます。
Google グループと同様に、Google Workspace アカウントを使用して ID を確立することはできませんが、権限の管理が容易になります。
Cloud Identity ドメイン
Cloud Identity ドメインは、1 つの組織内のすべての Google アカウントの仮想グループを表すため、Google Workspace アカウントに似ています。ただし、Cloud Identity ドメイン ユーザーは、Google Workspace のアプリケーションと機能にアクセスできません。詳細については、Cloud Identity についてをご覧ください。
allAuthenticatedUsers
allAuthenticatedUsers
は、すべてのサービス アカウント、および Google アカウントで認証されたユーザー全員を表す特殊な識別子です。この ID には、個人用 Gmail アカウントなど、Google Workspace アカウントまたは Cloud Identity のドメインに接続していないアカウントも含まれます。認証されていないユーザー(匿名の訪問者など)は含まれません。
このプリンシパル タイプには、外部 ID プロバイダ(IdP)によって管理されるフェデレーション ID は含まれません。Workforce Identity 連携または Workload Identity 連携を使用する場合は、allAuthenticatedUsers
を使用しないでください。代わりに、次のいずれかを使用します。
- すべての IdP のユーザーを含めるには、
allUsers
を使用します。 - 特定の外部 IdP のユーザーを含めるには、Workforce Identity プール内のすべての ID または Workload Identity プール内のすべての ID の識別子を使用します。
このプリンシパル タイプは、一部のリソースタイプでサポートされていません。
allUsers
allUsers
は、認証されたユーザーと認証されていないユーザーの両方を含めて、インターネット上のユーザーを表す特殊な識別子です。
このプリンシパル タイプは、一部のリソースタイプでサポートされていません。
Workforce Identity プール内のフェデレーション ID
Workforce Identity プール内のフェデレーション ID は、外部 IdP で管理され、Workforce Identity 連携を使用して連携されたユーザー ID です。Workforce Identity プールで特定の ID を使用することも、特定の属性を使用して Workforce Identity プールでユーザー ID のグループを指定することもできます。
Workload Identity プール内のフェデレーション ID
Workload Identity プールのフェデレーション ID は、外部 IdP によって管理され、Workload Identity 連携を使用して連携されるワークロード ID です。Workload Identity プールで特定のワークロード ID を使用することも、特定の属性を使用して Workload Identity プールのワークロード ID のグループを指定することもできます。
GKE Pod
GKE で実行されているワークロードは、Workload Identity Federation for GKE を使用してサービスにアクセスします。 Google Cloud GKE Pod のプリンシパル ID の詳細については、IAM ポリシーで Kubernetes リソースを参照するをご覧ください。
Resource Manager プリンシパル セット
各 Resource Manager リソース(プロジェクト、フォルダ、組織)は、一連のプリンシパルに関連付けられています。プリンシパル アクセス境界ポリシー バインディングを作成するときに、Resource Manager リソースのプリンシパル セットを使用して、そのリソースに関連付けられているすべてのプリンシパルを参照できます。
Resource Manager リソースのプリンシパル セットには、次のプリンシパルが含まれます。
- プロジェクト プリンシパル セット: 指定したプロジェクト内のすべてのサービス アカウントと Workload Identity プール。
- フォルダ プリンシパル セット: 指定したフォルダ内のすべてのプロジェクトのすべてのサービス アカウントと Workload Identity プール。
組織のプリンシパル セット: 次の ID が含まれます。
- Google Workspace のお客様 ID に関連付けられているすべてのドメイン内のすべての ID
- 組織内のすべての Workforce Identity プール
- 組織内の任意のプロジェクト内のすべてのサービス アカウントと Workload Identity プール
次のステップ
- IAM がサポートするポリシータイプについて学習する
- Resource Manager のプロジェクト、フォルダ、または組織に対するプリンシパルにロールを付与する