このページでは、Cloud Deploy のサービス アカウント、ロール、権限について説明します。
Cloud Deploy では、Identity and Access Management(IAM)を使用してアクセスを制御します。 IAM を使用すると、Google Cloud リソースの権限を作成および管理できます。Cloud Deploy では、事前定義された IAM ロールのセットが用意されています。各ロールには、一連の権限が含まれています。これらのロールを使用すると、特定の Google Cloud リソースへのアクセスを細かく制限し、他のリソースへの不要なアクセスを防ぐことができます。IAM を使用すると、セキュリティに関する最小権限の原則を導入できるため、リソースに対する必要なアクセス権のみを付与できます。
高度なアクセス制御セキュリティ機能については、IAM を使用した Cloud Deploy アクセスの制限をご覧ください。
Cloud Deploy のサービス アカウント
デフォルトでは、Cloud Deploy は、デフォルトの Compute Engine サービス アカウントを使用して実行されます。Cloud Deploy で使用するこのサービス アカウントの構成方法や、別のアカウントを選択する方法については、Cloud Deploy 実行サービス アカウントのドキュメントをご覧ください。
Cloud Deploy でのサービス アカウントの使用方法について詳細を確認してください。
事前定義された Cloud Deploy のロール
IAM では、Cloud Deploy API のすべての API メソッドで、API リクエストを行う ID がリソースの使用に必要な権限を保持していることが要求されます。権限を付与するには、プロジェクトのプリンシパル(ユーザー、グループ、またはサービス アカウント)にロールを付与するポリシーを設定します。同じリソースのプリンシパルに複数のロールを付与できます。
IAM のドキュメントには、すべての事前定義ロールの検索可能なリファレンスが含まれています。
次の表に、Cloud Deploy IAM のロールとそこに含まれる権限を示します。
Cloud Deploy のロール |
権限 |
Cloud Deploy 管理者( Cloud Deploy のリソースをすべて管理できる権限。 |
|
Cloud Deploy 承認者( ロールアウトを承認または拒否する権限。 |
|
Cloud Deploy カスタム ターゲット タイプの管理者( CustomTargetType リソースの管理権限 |
|
Cloud Deploy デベロッパー( デプロイ構成を管理する権限。ターゲットなどの運用リソースにアクセスする権限はありません。 |
|
Cloud Deploy ランナー( Cloud Deploy の作業を実行する権限です。ターゲットに提供する権限はありません。 |
|
Cloud Deploy オペレーター( デプロイ構成を管理する権限。 |
|
Cloud Deploy ポリシー管理者ベータ版( Deploy ポリシーを管理する権限。 |
|
Cloud Deploy ポリシー オーバーライダー ベータ版( Deploy ポリシーをオーバーライドする権限。 |
|
Cloud Deploy リリース担当者( Cloud Deploy のリリースとロールアウトを作成する権限。 |
|
Cloud Deploy 閲覧者( Cloud Deploy リソースを閲覧できます。 |
|
Cloud Deploy の事前定義ロールに加えて、基本閲覧者、編集者、オーナーのロールには、Cloud Deploy に関連する権限も含まれています。 ただし、最小権限のセキュリティ原則に準拠するように、事前定義されたロールを付与することをおすすめします。
権限
次の表に、各メソッドを呼び出すために呼び出し元が持っている必要のある権限のリストを示します。
API メソッド | 必要な権限 | 説明 |
---|---|---|
automations.create() |
clouddeploy.automations.create |
新しい自動化リソースを作成します。 |
automations.delete() |
clouddeploy.automations.delete |
既存の自動化リソースを削除します。 |
automations.get() |
clouddeploy.automations.get |
個々の自動化リソースの詳細を取得します。 |
automations.list() |
clouddeploy.automations.list |
自動化リソースとそのメタデータを一覧表示します。 |
automations.update() |
clouddeploy.automations.update |
既存の自動化リソースを更新します。 |
automationRuns.cancel() |
clouddeploy.automationRuns.cancel |
実行中の自動化をキャンセルします。 |
automationRuns.get() |
clouddeploy.automationRuns.get |
個々の自動化実行の詳細を取得します。 |
automationRuns.list() |
clouddeploy.automationRuns.list |
自動化実行とそのメタデータを一覧表示します。 |
customTargetTypes.create() |
clouddeploy.customTargetTypes.create |
カスタム ターゲット タイプのリソースを作成します。 |
customTargetTypes.delete() |
clouddeploy.customTargetTypes.delete |
カスタム ターゲット タイプのリソースを削除します。 |
customTargetTypes.get() |
clouddeploy.customTargetTypes.get |
カスタム ターゲット タイプの詳細を取得します。 |
customTargetTypes.getIamPolicy() |
clouddeploy.customTargetTypes.getIamPolicy |
カスタム ターゲット タイプのリソースの IAM ポリシーを取得します。 |
customTargetTypes.list() |
clouddeploy.customTargetTypes.list |
使用可能なカスタム ターゲット タイプとメタデータを一覧表示します。 |
customTargetTypes.patch() |
clouddeploy.customTargetTypes.patch |
既存のカスタム ターゲット タイプを更新します。 |
customTargetTypes.setIamPolicy() |
clouddeploy.customTargetTypes.setIamPolicy |
カスタム ターゲット タイプのリソースの IAM ポリシーを設定します。 |
deliveryPipelines.create() |
clouddeploy.deliveryPipelines.create |
新しいデリバリー パイプライン リソースを作成します。 |
deliveryPipelines.delete() |
clouddeploy.deliveryPipelines.delete |
既存のデリバリー パイプライン リソースを削除します。 |
deliveryPipelines.get() |
clouddeploy.deliveryPipelines.get |
個々のデリバリー パイプラインの詳細を取得します。 |
deliveryPipelines.getIamPolicy() |
clouddeploy.deliveryPipelines.getIamPolicy |
デリバリー パイプライン リソースの IAM ポリシーを取得します。 |
deliveryPipelines.list() |
clouddeploy.deliveryPipelines.list |
デリバリー パイプラインとそのメタデータを一覧表示します。 |
deliveryPipelines.rollbackTarget() |
clouddeploy.rollouts.rollback |
ターゲットをロールバックします。 |
deliveryPipelines.setIamPolicy() |
clouddeploy.deliveryPipelines.setIamPolicy |
デリバリー パイプライン リソースの IAM ポリシーを設定します。 |
deliveryPipelines.update() |
clouddeploy.deliveryPipelines.update |
既存のデリバリー パイプライン リソースを更新します。 |
deployPolicies.create() |
clouddeploy.deployPolicies.create |
デプロイ ポリシー リソースを作成します。 |
deployPolicies.delete() |
clouddeploy.deployPolicies.delete |
デプロイ ポリシー リソースを削除します。 |
deployPolicies.get() |
clouddeploy.deployPolicies.get |
デプロイ ポリシー リソースの詳細を取得します。 |
deployPolicies.list() |
clouddeploy.deployPolicies.list |
使用可能なデプロイ ポリシーとそのメタデータを一覧表示します。 |
jobRuns.get() |
clouddeploy.jobRuns.get |
JobRuns リソースを取得します。 |
jobRuns.list() |
clouddeploy.jobRuns.list |
JobRuns リソースとそのメタデータを一覧表示します。 |
jobRuns.terminate() |
clouddeploy.jobRuns.terminate |
進行中のジョブ実行を終了します。 |
operations.cancel() |
clouddeploy.operations.cancel |
長時間実行オペレーションをキャンセルします。 |
operation.delete() |
clouddeploy.operations.delete |
長時間実行オペレーションを削除します。 |
operations.get() |
clouddeploy.operations.get |
特定の長時間実行オペレーションを取得します(たとえば、リリースの作成ステータスを返す)。 |
operations.list() |
clouddeploy.operations.list |
長時間実行オペレーションを一覧表示します。 |
releases.abandon() |
clouddeploy.releases.abandon |
リリースを放棄し、そのリリース以降はロールアウトされないようにします。 |
releases.create() |
clouddeploy.releases.create |
新しいリリース リソースを作成します。呼び出し元には、マニフェストのレンダリングに使用されるサービス アカウントに対する iam.serviceAccounts.actAs 権限も必要です。 |
releases.get() |
clouddeploy.releases.get |
個々のリリースの詳細を取得します。 |
releases.list() |
clouddeploy.releases.list |
リリースとメタデータを一覧表示します。 |
rollouts.advance() |
clouddeploy.rollouts.advance |
ロールアウトを次のフェーズに進めます。 |
rollouts.approve() |
clouddeploy.rollouts.approve |
承認状態が required のロールアウトを承認または拒否します。 |
rollouts.cancel() |
clouddeploy.rollouts.cancel |
ロールアウトをキャンセルします。 |
rollouts.create() |
clouddeploy.rollouts.create |
新しいロールアウト リソースを作成するか、リリースを昇格します。呼び出し元には、デプロイに使用するプロジェクトまたはサービス アカウントに対する iam.serviceAccounts.actAs 権限も必要です。 |
rollouts.get() |
clouddeploy.rollouts.get |
個々のロールアウトの詳細を取得します。 |
rollouts.ignoreJob() |
clouddeploy.rollouts.ignoreJob |
失敗したジョブを無視します。 |
rollouts.list() |
clouddeploy.rollouts.list |
ロールアウトとメタデータを一覧表示します。 |
rollouts.retryJob() |
clouddeploy.rollouts.retryJob |
失敗したジョブを再試行します。 |
rollouts.advance() 、rollouts.approve() 、rollouts.cancel() 、rollouts.create() 、rollouts.ignoreJob() 、rollouts.retryJob() 、deliveryPipelines.rollbackTarget() 、jobRuns.terminate() |
clouddeploy.deployPolicies.override |
デプロイ ポリシー リソースをオーバーライドします。 |
deployPolicies.update() |
clouddeploy.deployPolicies.update |
既存のデプロイ ポリシー リソースを更新します。 |
targets.create() |
clouddeploy.targets.create |
新しいターゲット リソースを作成します。 |
targets.delete() |
clouddeploy.targets.delete |
既存のターゲット リソースを削除します。 |
targets.get() |
clouddeploy.targets.get |
個々のターゲットの詳細を取得します。 |
targets.getIamPolicy() |
clouddeploy.targets.getIamPolicy |
ターゲット リソースの IAM ポリシーを取得します。 |
targets.list() |
clouddeploy.targets.list |
ターゲットとそのメタデータを一覧表示します。 |
targets.setIamPolicy() |
clouddeploy.targets.setIamPolicy |
ターゲット リソースの IAM ポリシーを設定します。 |
targets.update() |
clouddeploy.targets.update |
既存のターゲット リソースを更新します。 |
IAM を使用した Cloud Deploy リソースに対するアクションの制限
次の方法で IAM を使用すると、Cloud Deploy リソースを保護できます。
IAM メタ API
Cloud Deploy リソースに対して
setIamPolicy
を使用して、これらのリソースに対するアクションを制限します。条件付き IAM
これらのポリシーと条件を使用して、Cloud Deploy リソースに対する次のアクションを制限できます。
デリバリー パイプラインまたはターゲットの作成
このアクセス権は、特定のユーザーまたはグループに付与できます。
特定のデリバリー パイプラインを更新または削除する
このアクセス権は、特定のユーザーまたはグループに付与できます。
特定のデリバリー パイプラインのリリースを作成する
このアクセス権は、特定のユーザーまたはグループに付与できます。
特定のターゲットの更新または削除を行う
このアクセス権は、特定のユーザーまたはグループに付与できます。
ロールアウトの作成または承認、リリースの昇格を行う
このアクセス権は、特定のターゲットまたはデリバリー パイプラインに対して特定のユーザーまたはグループに付与できます。
指定した時間枠内にこのアクセスを制限する条件を設定することもできます。
次のステップ
- IAM について学習する。
- IAM での条件の使用の詳細を確認する。
- Cloud Deploy サービス アカウントの詳細を確認する。