Amazon CodeCatalyst では、スペースとプロジェクトにサインインしてアクセスするために AWS Builder ID を作成して使用します。AWS Builder ID は AWS Identity and Access Management (IAM) の ID ではなく、AWS アカウント には存在しません。ただし、CodeCatalyst は、請求目的でスペースを検証する場合、および AWS アカウント で AWS アカウント がリソースを作成し使用するように接続されている場合、IAM と統合します。
AWS Identity and Access Management (IAM) は、管理者が AWS リソースへのアクセスを安全に制御するために役立つ AWS のサービスです。IAM 管理者は、リソースを使用するための認証 (サインイン) および許可 (アクセス許可を持たせる) を行うことができる人を制御します。IAM は、無料で使用できる AWS のサービスです。
Amazon CodeCatalyst でスペースを作成するときは、スペースの請求アカウントとして AWS アカウント を接続する必要があります。CodeCatalyst スペースを検証するには、AWS アカウント で管理者権限を持っているか、アクセス許可を持っている必要があります。CodeCatalyst がその接続された AWS アカウント でリソースを作成およびアクセスするために使用できるスペースに IAM ロールを追加することもできます。これはサービスロールと呼ばれます。複数の AWS アカウント に接続することも、これらの各アカウントで CodeCatalyst 向けサービスロールを作成することもできます。
注記
CodeCatalyst の請求は、請求アカウントとして指定された AWS アカウント で行われます。ただし、AWS アカウント または別の接続済み AWS アカウント で CodeCatalyst サービスロールを作成する場合は、作成して CodeCatalyst サービスロールが使用するリソースは、その接続済み AWS アカウント で請求されます。詳細については、「Amazon CodeCatalyst Administrator Guide」の「請求管理」を参照してください。
トピック
IAM のアイデンティティベースポリシー
アイデンティティベースポリシーは、アイデンティティに追加する JSON アクセス許可ポリシーです。そのアイデンティティは、ユーザー、ユーザーのグループまたはロールのいずれかになります。これらのポリシーは、ユーザーとロールが実行できるアクション、リソース、および条件をコントロールします。アイデンティティベースのポリシーを作成する方法については、IAM ユーザーガイドのIAM ポリシーの作成を参照してください。
IAM アイデンティティベースのポリシーでは、許可または拒否するアクションとリソース、およびアクションを許可または拒否する条件を指定できます。プリンシパルは、それが添付されているユーザーまたはロールに適用されるため、アイデンティティベースのポリシーでは指定できません。JSON ポリシーで使用できるすべての要素について学ぶには、IAM ユーザーガイドのIAM JSON ポリシーの要素のリファレンスを参照してください。
CodeCatalyst のアイデンティティベースポリシー例
CodeCatalyst アイデンティティベースポリシーの例については、「CodeCatalyst 接続のアイデンティティベースポリシー例」を参照してください。
IAM でのポリシーアクション
管理者は AWS JSON ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件でアクションを実行できるかということです。
JSON ポリシーのAction
要素には、ポリシー内のアクセスを許可または拒否するために使用できるアクションが記述されます。ポリシーアクションの名前は通常、関連する AWS API オペレーションと同じです。一致する API オペレーションのない許可のみのアクションなど、いくつかの例外があります。また、ポリシーに複数のアクションが必要なオペレーションもあります。これらの追加アクションは、依存アクションと呼ばれます。
単一のステートメントで複数のアクションを指定するには、アクションをカンマで区切ります。
"Action": [ "prefix:
action1
", "prefix:action2
" ]
IAM のポリシーリソース
管理者は AWS JSON ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件でアクションを実行できるかということです。
Resource
JSON ポリシー要素は、アクションが適用されるオブジェクトを指定します。ステートメントには、Resource
または NotResource
要素を含める必要があります。ベストプラクティスとして、Amazon リソースネーム (ARN) を使用してリソースを指定します。これは、リソースレベルの許可と呼ばれる特定のリソースタイプをサポートするアクションに対して実行できます。
オペレーションのリスト化など、リソースレベルの権限をサポートしないアクションの場合は、ステートメントがすべてのリソースに適用されることを示すために、ワイルドカード (*) を使用します。
"Resource": "*"
IAM のポリシー条件キー
管理者は AWS JSON ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件でアクションを実行できるかということです。
Condition
要素 (または Condition
ブロック) を使用すると、ステートメントが有効な条件を指定できます。Condition
要素はオプションです。イコールや未満などの 条件演算子 を使用して条件式を作成することで、ポリシーの条件とリクエスト内の値を一致させることができます。
1 つのステートメントに複数の Condition
要素を指定する場合、または 1 つの Condition
要素に複数のキーを指定する場合、AWSでは AND
論理演算子を使用してそれらを評価します。単一の条件キーに複数の値を指定する場合、AWS では OR
論理演算子を使用して条件を評価します。ステートメントの権限が付与される前にすべての条件が満たされる必要があります。
条件を指定する際にプレースホルダー変数も使用できます。詳細については、IAM ユーザーガイドのIAM ポリシーの要素: 変数およびタグを参照してください。
AWS はグローバル条件キーとサービス固有の条件キーをサポートしています。すべての AWS グローバル条件キーを確認するには、IAM ユーザーガイド の「AWS グローバル条件コンテキストキー」を参照してください。
CodeCatalyst 接続のアイデンティティベースポリシー例
CodeCatalyst では、AWS アカウント はスペースの請求を管理し、プロジェクトワークフローのリソースにアクセスするために必要です。アカウント接続は、スペースに AWS アカウント を追加するための認証に使用されます。アイデンティティベースポリシーは、接続済み AWS アカウント で使用されます。
デフォルトでは、ユーザーおよびロールには、CodeCatalyst リソースを作成または変更するアクセス許可はありません。また、AWS Management Console、AWS Command Line Interface (AWS CLI)、または AWS API を使用してタスクを実行することもできません。IAM 管理者は、リソースで必要なアクションを実行するための許可をユーザーとロールに付与する IAM ポリシーを作成する必要があります。次に、管理者はこれらのポリシーを必要とするユーザーに、ポリシーをアタッチする必要があります。
次の IAM ポリシー例では、アカウント接続に関連するアクションのアクセス許可を付与します。これらを使用して、アカウントを CodeCatalyst に接続するためのアクセスを制限します。
例 1: ユーザーが 1 つの AWS リージョン で接続リクエストを受け入れることを許可する
次のアクセス許可ポリシーでは、CodeCatalyst と AWS アカウント 間の接続のリクエストを表示および承諾することのみをユーザーに許可します。さらに、ポリシーは別の AWS リージョン ではなく、us-west-2 リージョンのアクションのみを許可する条件を使用します。リクエストを表示して承認するには、ユーザーはリクエストで指定されたアカウントと同じアカウントで AWS Management Console にサインインします。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"codecatalyst:AcceptConnection",
"codecatalyst:GetPendingConnection"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "us-west-2"
}
}
}
]
}
例 2: 単一の AWS リージョン 向けコンソールで接続の管理を許可する
次のアクセス許可ポリシーは、CodeCatalyst と単一リージョンの AWS アカウント 間でユーザーが接続を管理することを許可します。このポリシーは別の AWS リージョン ではなく、us-west-2 リージョンのアクションのみを許可する条件を使用します。接続を作成後、AWS Management Console のオプションを選択すると、CodeCatalystWorkflowDevelopmentRole-spaceName
ロールを作成できます。ポリシー例では、iam:PassRole
アクションの条件に、CodeCatalyst のサービスプリンシパルが含まれます。AWS Management Console では、そのアクセス許可が付与されているロールのみが作成されます。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"codecatalyst:*"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "us-west-2"
}
}
},
{
"Effect": "Allow",
"Action": [
"iam:CreateRole",
"iam:CreatePolicy",
"iam:AttachRolePolicy",
"iam:ListRoles"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"iam:PassRole"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"iam:PassedToService": [
"codecatalyst.amazonaws.com",
"codecatalyst-runner.amazonaws.com"
]
}
}
}
]
}
例 3: 接続の管理を拒否する
次のアクセス許可ポリシーは、CodeCatalyst とAWS アカウント 間の接続を管理する機能をユーザーに対して無効にします。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Action": [
"codecatalyst:*"
],
"Resource": "*"
}
]
}
CodeCatalyst アクセス許可リファレンス
このセクションでは、CodeCatalyst に接続されている AWS アカウント 向けのアカウント接続リソースで使用するアクションのアクセス許可リファレンスについて説明します。次のセクションでは、接続されているアカウントに関連するアクセス許可のみのアクションについて説明します。
アカウント接続に必要なアクセス許可
アカウント接続を操作するには、次のアクセス許可が必要です。
アカウント接続用 CodeCatalyst アクセス許可 | 必要な許可 | リソース |
---|---|---|
AcceptConnection | このアカウントを CodeCatalyst スペースに接続するリクエストを承認するために必要です。これは単なる IAM ポリシーのアクセス許可であり、API アクションではありません。 |
ポリシーの |
AssociateIamRoleToConnection | IAM ロールをアカウント接続に関連付けるために必要です。これは単なる IAM ポリシーのアクセス許可であり、API アクションではありません。 | arn:aws:codecatalyst:region: |
DeleteConnection | アカウント接続を削除するために必要です。これは単なる IAM ポリシーのアクセス許可であり、API アクションではありません。 | arn:aws:codecatalyst:region: |
DisassociateIamRoleFromConnection | アカウント接続から IAM ロールの関連付けを解除するために必要です。これは単なる IAM ポリシーのアクセス許可であり、API アクションではありません。 | arn:aws:codecatalyst:region: |
GetBillingAuthorization | アカウント接続の請求承認を記述するために必要です。これは単なる IAM ポリシーのアクセス許可であり、API アクションではありません。 | arn:aws:codecatalyst:region: |
GetConnection | アカウント接続を取得するために必要です。これは単なる IAM ポリシーのアクセス許可であり、API アクションではありません。 | arn:aws:codecatalyst:region: |
GetPendingConnection | このアカウントを CodeCatalyst スペースに接続する保留リクエストを取得するために必要です。これは単なる IAM ポリシーのアクセス許可であり、API アクションではありません。 |
ポリシーの |
ListConnections | 保留中でないアカウント接続を一覧するために必要です。これは単なる IAM ポリシーのアクセス許可であり、API アクションではありません。 |
ポリシーの |
ListIamRolesForConnection | アカウント接続に関連付けられた IAM ロールを一覧するために必要です。これは単なる IAM ポリシーのアクセス許可であり、API アクションではありません。 | arn:aws:codecatalyst:region: |
ListTagsForResource | アカウント接続に関連付けられたタグを一覧するために必要です。これは単なる IAM ポリシーのアクセス許可であり、API アクションではありません。 | arn:aws:codecatalyst:region: |
PutBillingAuthorization | アカウント接続の請求承認を作成または更新するために必要です。これは単なる IAM ポリシーのアクセス許可であり、API アクションではありません。 | arn:aws:codecatalyst:region: |
RejectConnection | このアカウントを CodeCatalyst スペースに接続するリクエストを拒否するために必要です。これは単なる IAM ポリシーのアクセス許可であり、API アクションではありません。 |
ポリシーの |
TagResource | アカウント接続に関連付けられたタグを作成または編集するために必要です。これは単なる IAM ポリシーのアクセス許可であり、API アクションではありません。 | arn:aws:codecatalyst:region: |
UntagResource | アカウント接続に関連付けられたタグを削除するために必要です。これは単なる IAM ポリシーのアクセス許可であり、API アクションではありません。 | arn:aws:codecatalyst:region: |
IAM アイデンティティセンターアプリケーションに必要なアクセス許可
IAM アイデンティティセンターアプリケーションを使用するには、次のアクセス許可が必要です。
IAM アイデンティティセンターアプリケーション用 CodeCatalyst アクセス許可 | 必要な許可 | リソース |
---|---|---|
AssociateIdentityCenterApplicationToSpace | IAM アイデンティティセンターアプリケーションを CodeCatalyst スペースに関連付けるために必要です。これは単なる IAM ポリシーのアクセス許可であり、API アクションではありません。 | arn:aws:codecatalyst:region: |
AssociateIdentityToIdentityCenterApplication | CodeCatalyst スペース用 IAM アイデンティティセンターアプリケーションをアイデンティティに関連付けるために必要です。これは単なる IAM ポリシーのアクセス許可であり、API アクションではありません。 | arn:aws:codecatalyst:region: |
BatchAssociateIdentitiesToIdentityCenterApplication | CodeCatalyst スペース用 IAM アイデンティティセンターアプリケーションを複数のアイデンティティに関連付けるために必要です。これは単なる IAM ポリシーのアクセス許可であり、API アクションではありません。 | arn:aws:codecatalyst:region: |
BatchDisassociateIdentitiesFromIdentityCenterApplication | CodeCatalyst スペース用 IAM アイデンティティセンターアプリケーションと複数のアイデンティティの関連付けを解除するために必要です。これは単なる IAM ポリシーのアクセス許可であり、API アクションではありません。 | arn:aws:codecatalyst:region: |
CreateIdentityCenterApplication | IAM アイデンティティセンターアプリケーションの作成に必要です。これは単なる IAM ポリシーのアクセス許可であり、API アクションではありません。 | arn:aws:codecatalyst:region: |
CreateSpaceAdminRoleAssignment | 特定の CodeCatalyst スペースと IAM アイデンティティセンターアプリケーション用管理者ロール割り当てを作成するために必要です。これは単なる IAM ポリシーのアクセス許可であり、API アクションではありません。 | arn:aws:codecatalyst:region: |
DeleteIdentityCenterApplication | IAM アイデンティティセンターアプリケーションの削除に必要です。これは単なる IAM ポリシーのアクセス許可であり、API アクションではありません。 | arn:aws:codecatalyst:region: |
DisassociateIdentityCenterApplicationFromSpace | CodeCatalyst スペースと IAM アイデンティティセンターアプリケーションの関連付けを解除するために必要です。これは単なる IAM ポリシーのアクセス許可であり、API アクションではありません。 | arn:aws:codecatalyst:region: |
DisassociateIdentityFromIdentityCenterApplication | CodeCatalyst スペース用 IAM アイデンティティセンターアプリケーションとアイデンティティの関連付けを解除するために必要です。これは単なる IAM ポリシーのアクセス許可であり、API アクションではありません。 | arn:aws:codecatalyst:region: |
GetIdentityCenterApplication | IAM アイデンティティセンターアプリケーションに関する情報を取得するために必要です。これは単なる IAM ポリシーのアクセス許可であり、API アクションではありません。 | arn:aws:codecatalyst:region: |
ListIdentityCenterApplications | アカウント内のすべての IAM アイデンティティセンターアプリケーションのリストを表示するために必要です。これは単なる IAM ポリシーのアクセス許可であり、API アクションではありません。 |
ポリシーの |
ListIdentityCenterApplicationsForSpace | CodeCatalyst スペース別の IAM アイデンティティセンターアプリケーションのリストを表示するために必要です。これは単なる IAM ポリシーのアクセス許可であり、API アクションではありません。 | arn:aws:codecatalyst:region: |
ListSpacesForIdentityCenterApplication | IAM アイデンティティセンターアプリケーション別の CodeCatalyst スペースのリストを表示するために必要です。これは単なる IAM ポリシーのアクセス許可であり、API アクションではありません。 | arn:aws:codecatalyst:region: |
SynchronizeIdentityCenterApplication | IAM アイデンティティセンターアプリケーションをバッキングアイデンティティストアと同期するために必要です。これは単なる IAM ポリシーのアクセス許可であり、API アクションではありません。 | arn:aws:codecatalyst:region: |
UpdateIdentityCenterApplication | IAM アイデンティティセンターアプリケーションの更新に必要です。これは単なる IAM ポリシーのアクセス許可であり、API アクションではありません。 | arn:aws:codecatalyst:region: |