CodeCatalyst 信頼モデルについて
Amazon CodeCatalyst 信頼モデルにより、CodeCatalyst は接続された AWS アカウント アカウントでサービスロールを引き受けることができます。このモデルは、IAM ロール、CodeCatalyst サービスプリンシパル、および CodeCatalyst スペースを接続します。信頼ポリシーは、aws:SourceArn
条件キーを使用して、条件キーで指定された CodeCatalyst スペースにアクセス許可を付与します。この条件キーの使用の詳細については、「IAM ユーザーガイド」の「aws:SourceArn」を参照してください。
信頼ポリシーは JSON ポリシードキュメントです。ここに、ロールを委任できる、信頼するプリンシパルを定義します。ロール信頼ポリシーは、IAMのロールに関連付けられている必須のリソースベースのポリシーです。詳細については、「IAM ユーザーガイド」 の「ロールに関する用語と概念」を参照してください。CodeCatalyst のサービスプリンシパルの詳細については、「CodeCatalyst のサービスプリンシパル」を参照してください。
次の信頼ポリシーでは、Principal
要素に一覧表示されているサービスプリンシパルにリソースベースのポリシーからのアクセス許可が付与され、Condition
ブロックを使用してスコープが絞り込まれたリソースへのアクセスが制限されます。
"Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:codecatalyst:::space/
spaceId
/project/*" } } } ]
信頼ポリシーでは、CodeCatalyst サービスプリンシパルに、CodeCatalyst スペース ID の Amazon リソースネーム (ARN) を含む aws:SourceArn
条件キーを通じてアクセスが付与されます。ARN は次の形式を使用します。
arn:aws:codecatalyst:::space/
spaceId
/project/*
重要
スペース ID は、aws:SourceArn
などの条件キーでのみ使用してください。IAM ポリシーステートメントのスペース ID をリソース ARN として使用しないでください。
ベストプラクティスとして、ポリシーではアクセス許可の範囲をできる限り絞ってください。
-
project/*
を使用してスペース内のすべてのプロジェクトを指定するために、aws:SourceArn
条件キーでワイルドカード (*) を使用できます。 -
project/
を使用してスペース内の特定のプロジェクトに対し、projectId
aws:SourceArn
条件キーでリソースレベルのアクセス許可を指定できます。
CodeCatalyst のサービスプリンシパル
リソースベースの JSON ポリシーの Principal
要素を使用して、リソースへのアクセスを許可または拒否するプリンシパルを指定します。信頼ポリシーで指定できるプリンシパルには、ユーザー、ロール、アカウント、およびサービスが含まれます。ID ベースのポリシーでは Principal
要素を使用できません。同様に、グループは認証ではなくアクセス許可に関連しており、プリンシパルは認証された IAM エンティティであるため、ポリシー (リソースベースのポリシーなど) ではユーザーグループをプリンシパルとして識別することはできません。
信頼ポリシーでは、リソースベースのポリシーの Principal
要素で、またはプリンシパルをサポートする条件キーで、AWS のサービスを指定できます。サービスプリンシパルはサービスによって定義されます。CodeCatalyst で定義されているサービスプリンシパルを次に示します。
-
codecatalyst.amazonaws.com - このサービスプリンシパルは、AWS へのアクセスを CodeCatalyst に付与するロールに使用されます。
-
codecatalyst-runner.amazonaws.com - このサービスプリンシパルは、CodeCatalyst ワークフローのデプロイ内にある AWS リソースへのアクセスを CodeCatalyst に付与するロールに使用されます。
詳細については、「IAM ユーザーガイド」の「AWS JSON ポリシーの要素: プリンシパル」を参照してください。