Identity and Access Management(IAM)を使用すると、特定の Google Cloud リソースに対するきめ細かなアクセス権を付与し、他のリソースへの不要なアクセスを防ぐことができます。このモデルは、最小権限の原則を導入するのに役立ちます。これにより、リソースに対する必要なアクセス権のみを付与できます。
許可ポリシーを設定することで、誰(どのユーザー)に、どのリソースに対するどのアクセス権(ロール)を付与するかを制御できます。プロジェクトへのアクセスを管理するには、IAM のロールと権限を構成するか、拒否ポリシーを使用してプリンシパルが特定の権限を使用できないようにします。詳細については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。
Google Cloudを初めて使用する場合は、Google Cloud 設定プロセスの一環として、リソース階層を確立し、初期アクセス権を付与できます。
権限とロール
リソースへのアクセスを制御するために、 Google Cloud では API リクエストを行うアカウントに適切な IAM ロールが必要です。IAM ロールには、ユーザーがGoogle Cloud リソースで特定のアクションを実行できる権限が含まれています。たとえば、resourcemanager.projects.delete 権限を持つユーザーはプロジェクトを削除できます。
ユーザーには、直接権限を付与するのではなく、ロールを割り当てます。ロールには、1 つ以上の権限が組み込まれています。これらのロールは、特定のリソースで付与されますが、リソース階層内にあるそのリソースのすべての子リソースにも適用されます。
権限
プロジェクトを管理するには、呼び出し元に次の権限が含まれるロールが必要です。このロールは、プロジェクトを含む組織リソースまたはフォルダに付与されます。
| メソッド | 必要な権限 |
|---|---|
resourcemanager.projects.create |
resourcemanager.projects.create |
resourcemanager.projects.delete |
resourcemanager.projects.delete |
resourcemanager.projects.get |
resourcemanager.projects.getこの権限を付与すると、Billing API メソッド billing.projects.getBillingInfo を介してプロジェクトに関連付けられた請求先アカウントの名前を取得するためのアクセスも許可します。
|
resourcemanager.projects.getIamPolicy |
resourcemanager.projects.getIamPolicy |
resourcemanager.projects.list |
resourcemanager.projects.list |
resourcemanager.projects.search |
resourcemanager.projects.get |
resourcemanager.projects.setIamPolicy |
resourcemanager.projects.setIamPolicy |
resourcemanager.projects.testIamPermissions |
権限は不要です。 |
resourcemanager.projects.undelete |
resourcemanager.projects.undelete |
resourcemanager.projects.patch |
プロジェクトのメタデータを更新するには、resourcemanager.projects.update 権限が必要です。プロジェクトの親を更新してプロジェクトを組織リソースに移動するには、組織リソースに対する resourcemanager.projects.create 権限が必要です。 |
projects.move |
projects.move |
事前定義ロールの使用
IAM 事前定義ロールを使用すると、ユーザーが使用できる権限を管理できます。プロジェクト レベルで付与できるロールの一覧については、ロールについてをご覧ください。
次の表に、プロジェクトへのアクセス権を付与するために使用できる事前定義ロールを示します。各ロールには、その目的と含まれる権限の説明が記載されています。
| ロール | 権限 |
|---|---|
プロジェクト作成者( 新しいプロジェクトを作成するためのアクセス権を付与します。プロジェクトを作成したユーザーには、そのプロジェクトのオーナーの役割が自動的に付与されます。 このロールを付与できる最下位レベルのリソース:
|
|
プロジェクト削除( Google Cloud プロジェクトを削除するためのアクセス権を付与します。 このロールを付与できる最下位レベルのリソース:
|
|
プロジェクト移動( プロジェクトの更新と移動に必要な権限を付与します。 このロールを付与できる最下位レベルのリソース:
|
|
プロジェクト IAM 管理者( プロジェクトの許可ポリシーを管理する権限を付与します。 このロールを付与できる最下位レベルのリソース:
|
|
ブラウザ( フォルダ、組織、許可ポリシーなど、プロジェクトの階層を参照するための読み取りアクセス権。この役割には、プロジェクトのリソースを表示する権限は含まれていません。 このロールを付与できる最下位レベルのリソース:
|
|
基本ロール
基本ロールは必要な場合にのみ使用してください。これらのロールは非常に強力で、すべての Google Cloud サービスに広範な権限を付与します。基本ロールの使用が必要となる状況について詳しくは、基本ロールをご覧ください。
| ロール | 説明 | 権限 |
|---|---|---|
roles/owner |
全リソースへの完全アクセス権 | すべてのリソースに対する完全な権限。 |
roles/editor |
ほとんどのリソースに対する編集権限。 | すべてのリソースへの作成および更新のアクセス権。 |
roles/viewer |
ほとんどのリソースに対する読み取りアクセス権。 | すべてのリソースの取得と一覧表示のアクセス権。 |
カスタムロールの作成
このトピックで説明した事前定義ロールを使用するだけでなく、必要に応じて権限を調整してカスタムロールを作成することもできます。Resource Manager で使用するカスタムロールを作成する場合には、次の点に注意してください。resourcemanager.projects.get/listなどのリスト権限と取得権限は、必ずペアで付与する必要があります。- カスタムロールに
folders.list権限とfolders.get権限を含める場合は、projects.listとprojects.getも含める必要があります。 - 組織、フォルダ、プロジェクト リソースに対する
setIamPolicy権限を使用すると、ユーザーに他のすべての権限も付与されます。この権限を割り当てる場合には十分に注意してください。
プロジェクト レベルのアクセス制御
プロジェクト レベルでユーザーにロールを付与するには、 Google Cloud console、Cloud Resource Manager API、Google Cloud CLI を使用します。詳しい手順については、アクセス権の付与、変更、取り消しをご覧ください。
デフォルトのロール
プロジェクトを作成すると、roles/owner ロールが付与されます。これにより、プロジェクトを完全に制御できます。このデフォルトのロールは、許可ポリシーで変更できます。
VPC Service Controls
VPC Service Controls を使用すると、Cloud Resource Manager API 使用時のセキュリティをさらに強化できます。VPC Service Controls の詳細については、VPC Service Controls の概要をご覧ください。
VPC Service Controls と Resource Manager の併用に関する現在の制限事項については、サポートされているプロダクトと制限事項をご覧ください。