CodeCatalyst 信頼モデルについて - Amazon CodeCatalyst

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 ポリシーの要素: プリンシパル」を参照してください。