と AWS CodeDeploy の仕組み IAM - AWS CodeDeploy

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

と AWS CodeDeploy の仕組み IAM

IAM を使用して へのアクセスを管理する前に CodeDeploy、 で使用できるIAM機能を理解しておく必要があります CodeDeploy。詳細については、「 ユーザーガイド」のAWS 「 と連携するサービスIAM」を参照してください。 IAM

CodeDeploy ID ベースのポリシー

IAM ID ベースのポリシーでは、許可または拒否されたアクションとリソース、およびアクションが許可または拒否される条件を指定できます。 CodeDeploy は、アクション、リソース、および条件キーをサポートします。JSON ポリシーで使用する要素の詳細については、IAM「 ユーザーガイド」のIAMJSON「ポリシー要素リファレンス」を参照してください。

アクション

管理者はポリシーを使用して AWS JSON、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。

JSON ポリシーの Action要素は、ポリシー内のアクセスを許可または拒否するために使用できるアクションを記述します。ポリシーアクションは通常、関連付けられた AWS APIオペレーションと同じ名前です。一致するAPIオペレーションがないアクセス許可のみのアクションなど、いくつかの例外があります。また、ポリシーに複数のアクションが必要なオペレーションもあります。これらの追加アクションは、依存アクションと呼ばれます。

このアクションは、関連付けられたオペレーションを実行するための権限を付与するポリシーで使用されます。

のポリシーアクションは、アクションの前にcodedeploy:プレフィックス CodeDeploy を使用します。例えば、codedeploy:GetApplication 許可は、GetApplication オペレーションを実行するためのアクセス許可をユーザーに付与します。ポリシーステートメントには、 Actionまたは NotAction element を含める必要があります。 は、このサービスで実行できるタスクを記述する独自のアクションセット CodeDeploy を定義します。

単一ステートメントに複数アクションを指定するには、次のようにカンマで区切ります:

"Action": [ "codedeploy:action1", "codedeploy:action2"

ワイルドカード (*) を使用して複数アクションを指定できます。例えば、Describe という単語で始まるすべてのアクションを指定するには、次のアクションを含めます。

"Action": "ec2:Describe*"

CodeDeploy アクションのリストについては、 IAM ユーザーガイド「 で定義されるアクション AWS CodeDeploy」を参照してください。

すべての CodeDeploy APIアクションとそれらが適用されるリソースを一覧表示するテーブルについては、「」を参照してくださいCodeDeploy アクセス許可リファレンス

リソース

管理者はポリシーを使用して AWS JSON、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。

Resource JSON ポリシー要素は、アクションが適用されるオブジェクトを指定します。ステートメントには、Resource または NotResource 要素を含める必要があります。ベストプラクティスとして、Amazon リソースネーム (ARN) を使用してリソースを指定します。これは、リソースレベルの許可と呼ばれる特定のリソースタイプをサポートするアクションに対して実行できます。

オペレーションのリスト化など、リソースレベルの権限をサポートしないアクションの場合は、ステートメントがすべてのリソースに適用されることを示すために、ワイルドカード (*) を使用します。

"Resource": "*"

例えば、デプロイグループ (myDeploymentGroup) ARNは、次のように ステートメントで使用します。

"Resource": "arn:aws:codedeploy:us-west-2:123456789012:deploymentgroup:myApplication/myDeploymentGroup"

以下のようにワイルドカード文字 (*) を使用して、特定のアカウントに属するすべてのデプロイグループを指定することもできます。

"Resource": "arn:aws:codedeploy:us-west-2:123456789012:deploymentgroup:*"

すべてのリソースを指定するか、APIアクションが をサポートしていない場合はARNs、次のように Resource要素でワイルドカード文字 (*) を使用します。

"Resource": "*"

一部の CodeDeploy APIアクションは、複数のリソース ( などBatchGetDeploymentGroups) を受け入れます。1 つのステートメントで複数のリソースを指定するには、次のようにカンマARNsで区切ります。

"Resource": ["arn1", "arn2"]

CodeDeploy は、 リソースを操作する一連のオペレーションを提供します CodeDeploy。使用可能なオペレーションのリストについては、「CodeDeploy アクセス許可リファレンス」を参照してください。

CodeDeploy リソースタイプとその のリストについてはARNs、 IAM ユーザーガイド「 で定義されるリソース AWS CodeDeploy」を参照してください。各リソースARNの を指定できるアクションの詳細については、「 で定義されるアクション AWS CodeDeploy」を参照してください。

CodeDeploy リソースとオペレーション

では CodeDeploy、プライマリリソースはデプロイグループです。ポリシーでは、Amazon リソースネーム (ARN) を使用して、ポリシーが適用されるリソースを識別します。 CodeDeploy は、アプリケーション、デプロイ設定、インスタンスなど、デプロイグループで使用できる他のリソースをサポートしています。これらは サブリソースと呼ばれます。これらのリソースとサブリソースには、一意の がARNs関連付けられています。詳細については、「」の「Amazon リソース名 (ARNs)」を参照してくださいAmazon Web Services 全般のリファレンス

リソースタイプ ARN 形式
デプロイグループ

arn:aws:codedeploy:region:account-id:deploymentgroup:application-name/deployment-group-name

アプリケーション

arn:aws:codedeploy:region:account-id:application:application-name

デプロイ設定

arn:aws:codedeploy:region:account-id:deploymentconfig:deployment-configuration-name

インスタンス

arn:aws:codedeploy:region:account-id:instance/instance-ID

すべての CodeDeploy リソース

arn:aws:codedeploy:*

指定されたリージョンで指定されたアカウントが所有するすべての CodeDeploy リソース

arn:aws:codedeploy:region:account-id:*

注記

のほとんどのサービスは、コロン (:) またはスラッシュ (/) を の同じ文字として AWS 扱いますARNs。ただし、 はリソースパターンとルールで完全一致 CodeDeploy を使用します。イベントパターンを作成するときは、リソース内のARN構文と一致するように、必ず正しいARN文字を使用してください。

条件キー

CodeDeploy はサービス固有の条件キーを提供しませんが、一部のグローバル条件キーの使用をサポートしています。詳細については、IAM「 ユーザーガイド」のAWS 「グローバル条件コンテキストキー」を参照してください。

CodeDeploy ID ベースのポリシーの例を表示するには、「」を参照してくださいAWS CodeDeploy アイデンティティベースポリシーの例

CodeDeploy リソースベースのポリシー

CodeDeploy はリソースベースのポリシーをサポートしていません。詳細なリソースベースのポリシーページの例を表示するには、「 のリソースベースのポリシーの使用 AWS Lambda」を参照してください。

CodeDeploy タグに基づく認可

CodeDeploy は、リソースのタグ付けやタグに基づくアクセスの制御をサポートしていません。

CodeDeploy IAM ロール

IAM ロールは、特定のアクセス許可を持つ AWS アカウント内のエンティティです。

での一時的な認証情報の使用 CodeDeploy

一時的な認証情報を使用して、フェデレーションでサインインしたり、IAMロールを引き受けたり、クロスアカウントロールを引き受けたりすることができます。AssumeRole や などのオペレーションを呼び出す AWS STS APIことで、一時的なセキュリティ認証情報を取得しますGetFederationToken

CodeDeploy は一時的な認証情報の使用をサポートしています。

サービスリンクロール

CodeDeploy は、サービスにリンクされたロールをサポートしていません。

サービスロール

この機能により、ユーザーに代わってサービスがサービスロールを引き受けることが許可されます。このロールにより、サービスがお客様に代わって他のサービスのリソースにアクセスし、アクションを完了することが許可されます。サービスロールは AWS アカウントに表示され、アカウントによって所有されます。つまり、ユーザーは、このロールのアクセス許可を変更できます。ただし、それにより、サービスの機能が損なわれる場合があります。

CodeDeploy はサービスロールをサポートします。

でIAMロールを選択する CodeDeploy

でデプロイグループリソースを作成するときは CodeDeploy、EC2ユーザーに代わって Amazon CodeDeploy へのアクセスを許可するロールを選択する必要があります。サービスロールまたはサービスにリンクされたロールを以前に作成している場合、 CodeDeploy は選択するロールのリストを提供します。EC2 インスタンスを開始および停止するためのアクセスを許可するロールを選択することが重要です。