IAM を使用したプロジェクトのアクセス制御

Google Cloud Platform には Identity and Access Management(IAM)機能があり、特定の Google Cloud Platform リソースへのより詳細なアクセスが可能になり、他のリソースへの不要なアクセスを防ぐことができます。IAM を使用すると、セキュリティに関する最小権限の原則を導入できるため、リソースに対する必要なアクセス権のみを付与できます。

IAM では、IAM ポリシーを設定して、誰(どのユーザー)に、どのリソースに対するどのアクセス権(役割)を付与するかを制御することができます。IAM ポリシーは、特定の役割をユーザーに付与することで、そのユーザーに特定の権限を付与します。

このページでは、プロジェクト レベルで使用できる Identity and Access Management(IAM)の役割について説明します。Cloud IAM の詳細については、IAM のドキュメントをご覧ください。特に、アクセス権の付与、変更、取り消しをご覧ください。

権限と役割

Cloud IAM で Google Cloud Platform のメソッドを呼び出すには、API リクエストを実行するアカウントに、そのリソースにアクセスするための適切な権限が付与されていなければなりません。権限により、Cloud リソースに対して特定のアクションを行うことがユーザーに許可されます。たとえば、resourcemanager.projects.list 権限を持つユーザーは所有するプロジェクトを一覧表示でき、resourcemanager.projects.delete 権限を持つユーザーはプロジェクトを削除できます。

呼び出し元がプロジェクト API を呼び出す際に必要となる権限を次の表に示します。

メソッド 必要な権限
resourcemanager.projects.create() resourcemanager.projects.create
resourcemanager.projects.delete() resourcemanager.projects.delete
resourcemanager.projects.get() resourcemanager.projects.get
resourcemanager.projects.getIamPolicy() resourcemanager.projects.getIamPolicy
resourcemanager.projects.list() 権限は不要です。このメソッドは、呼び出し元が resourcemanager.projects.get 権限を持っているプロジェクトを一覧表示します。list() を呼び出すときにフィルタ(たとえば、byParent など)を指定した場合は、resourcemanager.projects.get 権限を持っており、かつフィルタ条件に適合しているプロジェクトが表示されます。
resourcemanager.projects.setIamPolicy() resourcemanager.projects.setIamPolicy
resourcemanager.projects.testIamPermissions() Does not require any permission.
resourcemanager.projects.undelete() resourcemanager.projects.undelete
resourcemanager.projects.update() プロジェクトのメタデータを更新するには、resourcemanager.projects.update 権限が必要です。プロジェクトの親を更新し、プロジェクトを組織に移動するには、組織に対する resourcemanager.projects.create 権限が必要です。

ユーザーには権限を直接付与するのではなく、役割を割り当てます。役割には、1 つ以上の権限が組み込まれています。

同じプロジェクトに 1 つ以上の役割を付与することができます。resourcemanager.projects.getIamPolicy() メソッドを使用して権限を表示すると、プロジェクトに割り当てられた権限は表示されますが、継承された権限は表示されません。

定義済みの役割の使用

次の表に、プロジェクトへのアクセスを可能にするために付与できる役割、その役割で実行できる内容の説明、その役割に組み込まれている権限を示します。

役割 説明 権限
roles/owner 全リソースへの完全アクセス権 すべてのリソースに対する完全な権限
roles/editor 全リソースへの編集アクセス権 すべてのリソースへの作成および更新のアクセス権
roles/viewer 全リソースへの読み取りアクセス権 すべてのリソースの取得と一覧表示のアクセス権
roles/browser(ベータ版) プロジェクト内のリソースを参照するためのアクセス権
  • resourcemanager.organizations.get
  • resourcemanager.projects.get
  • resourcemanager.projects.getIamPolicy
  • resourcemanager.projects.list
  • resourcemanager.projectInvites.get

カスタム役割の作成

このトピックで説明した事前定義の役割を使用するだけでなく、必要に応じて権限を調整してカスタム役割を作成することもできます。Resource Manager で使用するカスタム役割を作成する場合には、次の点に注意してください。
  • resourcemanager.projects.get/list などのリスト権限と取得権限は、ペアで付与する必要があります。
  • カスタム役割に folders.list 権限と folders.get 権限を含める場合には、projects.listprojects.get も含める必要があります。
  • 組織、フォルダ、プロジェクトに setIamPolicy 権限を使用すると、ユーザーに他のすべての権限も付与されます。この権限を割り当てる場合には十分に注意してください。

プロジェクト レベルのアクセス制御

プロジェクト レベルでユーザーに役割を付与するには、Google Cloud Platform Console、Resource Manager API、gcloud コマンドライン ツールを使用します。手順については、プロジェクト メンバーに対するアクセス権の付与、変更、取り消しをご覧ください。

デフォルトの役割

プロジェクトを作成すると、作成者として完全に制御できるようにするために、プロジェクトの roles/owner の役割が付与されます。この役割が提供する権限については、上記をご覧ください。このデフォルトの役割は、Cloud IAM ポリシーで通常どおり変更できます。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Resource Manager のドキュメント