CodeCatalyst は、AWS アカウントを CodeCatalyst スペースに接続することで AWS リソースにアクセスできます。その後、次のサービスロールを作成し、アカウントを接続するときに関連付けることができます。
JSON ポリシーで使用するすべての要素については、「IAM ユーザーガイド」の「IAM JSON ポリシーの要素のリファレンス」を参照してください。
-
CodeCatalyst プロジェクトとワークフロー用の AWS アカウントのリソースにアクセスするには、まずユーザーに代わってそうしたリソースにアクセスするためのアクセス許可を CodeCatalyst に付与する必要があります。そのためには、接続された AWS アカウントにサービスロールを作成し、CodeCatalyst がスペース内のユーザーとプロジェクトに代わって引き受けることができるようにする必要があります。CodeCatalystWorkflowDevelopmentRole-
spaceName
サービスロールを作成して使用するか、カスタマイズされたサービスロールを作成してこれらの IAM ポリシーとロールを手動で設定するかを選択できます。ベストプラクティスとして、これらのロールには必要最小限のアクセス許可を割り当てます。注記
カスタマイズされたサービスロールには、CodeCatalyst サービスプリンシパルが必要です。CodeCatalyst サービスプリンシパルと信頼モデルの詳細については、「CodeCatalyst 信頼モデルについて」を参照してください。
-
接続された AWS アカウントを介してスペースのサポートを管理するには、CodeCatalyst ユーザーがサポートにアクセスできるようにする AWSRoleForCodeCatalystSupport サービスロールを作成して使用します。CodeCatalyst スペースのサポートの詳細については、「Amazon CodeCatalyst の サポート」を参照してください。
CodeCatalystWorkflowDevelopmentRole-spaceName
サービスロールについて
CodeCatalyst が接続された AWS アカウントでリソースを作成およびアクセスするために使用できる IAM ロールをスペースに追加できます。これはサービスロールと呼ばれます。サービスロールを作成する最も簡単な方法は、スペースを作成するときにサービスロールを追加し、そのロールに CodeCatalystWorkflowDevelopmentRole-spaceName
オプションを選択することです。これにより、AdministratorAccess
がアタッチされたサービスロールが作成されるだけでなく、CodeCatalyst がスペース内のプロジェクトでユーザーに代わってロールを引き受けることを許可する信頼ポリシーも作成されます。サービスロールは、個々のプロジェクトではなく、スペースに範囲が限定されます。このロールの作成については、「アカウントとスペース用の CodeCatalystWorkflowDevelopmentRole-spaceName ロールを作成する」を参照してください。各アカウントのスペースごとに作成できるロールは 1 つのみです。
注記
このロールは、開発アカウントでのみ使用することが推奨され、AdministratorAccess
AWS マネージドポリシーを使用して、この AWS アカウントで新しいポリシーとリソースを作成するためのフルアクセスを提供します。
CodeCatalystWorkflowDevelopmentRole-spaceName
ロールにアタッチされたポリシーは、スペース内のブループリントで作成されたプロジェクトで機能するように設計されています。このポリシーにより、こうしたプロジェクトのユーザーは、接続された AWS アカウントのリソースを使用してコードを開発、ビルド、テスト、デプロイできます。詳細については、「AWS サービスのロールを作成する」を参照してください。
CodeCatalystWorkflowDevelopmentRole-spaceName
ロールにアタッチされたポリシーは、AWS の AdministratorAccess
マネージドポリシーです。これは、すべての AWS アクションとリソースへのフルアクセスを許可するポリシーです。IAM コンソールで JSON ポリシードキュメントを表示するには、AdministratorAccess
次の信頼ポリシーは、CodeCatalyst が CodeCatalystWorkflowDevelopmentRole-spaceName
ロールを引き受けることを許可します。CodeCatalyst 信頼モデルの詳細については、「CodeCatalyst 信頼モデルについて」を参照してください。
"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/*"
}
}
}
]
アカウントとスペース用の CodeCatalystWorkflowDevelopmentRole-spaceName
ロールを作成する
以下の手順に従って、スペース内のワークフローに使用される CodeCatalystWorkflowDevelopmentRole-
ロールを作成します。スペース内のプロジェクトで使用する IAM ロールを持たせたいアカウントごとに、デベロッパーロールなどのロールを追加する必要があります。spaceName
開始する前に、AWS アカウントの管理者権限を持っているか、管理者と共同で作業できる必要があります。CodeCatalyst で AWS アカウントや IAM ロールがどのように使用されるかの詳細については、「接続された AWS アカウントでの AWS リソースへのアクセスを許可する」を参照してください。
CodeCatalyst CodeCatalystWorkflowDevelopmentRole-spaceName
を作成して追加するには
-
CodeCatalyst コンソールで作業を開始する前に、AWS Management Consoleを開き、スペースと同じ AWS アカウントでログインしていることを確認します。
https://codecatalyst.aws/
で CodeCatalyst コンソールを開きます。 -
CodeCatalyst スペースに移動します。[Settings (設定)]、[AWS アカウント] の順に選択します。
-
ロールを作成する AWS アカウントのリンクを選択します。[AWS アカウントの詳細] ページが表示されます。
-
[AWS Management Consoleからロールを管理] を選択します。
AWS Management Consoleで [Amazon CodeCatalyst スペースに IAM ロールを追加] ページが開きます。これは [Amazon CodeCatalyst スペース] ページです。ページにアクセスするには、ログインが必要な場合があります。
-
[IAM で CodeCatalyst 開発管理者ロールを作成] を選択します。このオプションにより、開発ロールのためのアクセス許可ポリシーと信頼ポリシーを含むサービスロールが作成されます。ロールには
CodeCatalystWorkflowDevelopmentRole-
という名前が付けられます。ロールとロールポリシーの詳細については、「CodeCatalystWorkflowDevelopmentRole-spaceName サービスロールについて」を参照してください。spaceName
注記
このロールは、デベロッパーアカウントでのみ使用することが推奨され、
AdministratorAccess
AWS マネージドポリシーを使用して、この AWS アカウントで新しいポリシーとリソースを作成するためのフルアクセスを提供します。 -
[開発ロールを作成] を選択します。
-
[接続] ページの [CodeCatalyst で使用できる IAM ロール] で、アカウントに追加された IAM ロールの一覧に
CodeCatalystWorkflowDevelopmentRole-
ロールが表示されます。spaceName
-
スペースに戻るには、[Amazon CodeCatalyst に移動] を選択します。
AWSRoleForCodeCatalystSupport サービスロールについて
スペースの CodeCatalyst ユーザーがサポートケースの作成とアクセスに使用できる IAM ロールをスペースに追加できます。これは、サポート用のサービスロールと呼ばれます。サポート用のサービスロールを作成する最も簡単な方法は、スペースを作成するときにサービスロールを追加し、そのロールの AWSRoleForCodeCatalystSupport
オプションを選択することです。これにより、ポリシーとロールが作成されるだけでなく、CodeCatalyst がスペース内のプロジェクトでユーザーに代わってロールを引き受けることを許可する信頼ポリシーも作成されます。サービスロールは、個々のプロジェクトではなく、スペースに範囲が限定されます。このロールの作成については、「アカウントとスペース用の AWSRoleForCodeCatalystSupport ロールを作成する」を参照してください。
AWSRoleForCodeCatalystSupport
ロールにアタッチされたポリシーは、サポートアクセス許可へのアクセスを提供するマネージドポリシーです。詳細については、「AWS マネージドポリシー: AmazonCodeCatalystSupportAccess」を参照してください。
このポリシーの信頼ロールにより、CodeCatalyst がロールを引き受けることができます。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": [
"codecatalyst.amazonaws.com",
"codecatalyst-runner.amazonaws.com"
]
},
"Action": "sts:AssumeRole"
}
]
}
アカウントとスペース用の AWSRoleForCodeCatalystSupport ロールを作成する
スペース内のサポートケースに使用される AWSRoleForCodeCatalystSupport
ロールを作成する手順は次のとおりです。このロールを、スペースに指定された請求アカウントに追加する必要があります。
開始する前に、AWS アカウントの管理者権限を持っているか、管理者と共同で作業できる必要があります。CodeCatalyst で AWS アカウントや IAM ロールがどのように使用されるかの詳細については、「接続された AWS アカウントでの AWS リソースへのアクセスを許可する」を参照してください。
CodeCatalyst AWSRoleForCodeCatalystSupport を作成して追加するには
-
CodeCatalyst コンソールで作業を開始する前に、AWS Management Consoleを開き、スペースと同じ AWS アカウントでログインしていることを確認します。
-
CodeCatalyst スペースに移動します。[Settings (設定)]、[AWS アカウント] の順に選択します。
-
ロールを作成する AWS アカウントのリンクを選択します。[AWS アカウントの詳細] ページが表示されます。
-
[AWS Management Consoleからロールを管理] を選択します。
AWS Management Consoleで [Amazon CodeCatalyst スペースに IAM ロールを追加] ページが開きます。これは [Amazon CodeCatalyst スペース] ページです。ページにアクセスするには、サインインが必要な場合があります。
-
[CodeCatalyst スペースの詳細] で、[CodeCatalyst サポートロールの追加] を選択します。このオプションでは、プレビュー開発ロールのための許可ポリシーと信頼ポリシーを含むサービスロールを作成します。ロールには、一意の識別子が追加された AWSRoleForCodeCatalystSupport という名前が付けられます。ロールとロールポリシーの詳細については、「AWSRoleForCodeCatalystSupport サービスロールについて」を参照してください。
-
[CodeCatalyst サポートのロールを追加] ページで、デフォルトを選択したままにし、[ロールを作成] を選択します。
-
[CodeCatalyst で使用できる IAM ロール] で、アカウントに追加された IAM ロールの一覧に
CodeCatalystWorkflowDevelopmentRole-
ロールが表示されます。spaceName
-
スペースに戻るには、[Amazon CodeCatalyst に移動] を選択します。
CodeCatalyst のワークフローアクションに IAM ロールを設定する
このセクションでは、CodeCatalyst アカウントで使用できる IAM ロールとポリシーについて詳しく説明します。サンプルロールの作成手順については、「ワークフローアクション用のロールを手動で作成する」を参照してください。IAM ロールを作成したら、ロール ARN をコピーしてアカウント接続に IAM ロールを追加し、プロジェクト環境に関連付けます。詳細については、「IAM ロールをアカウント接続に追加する」を参照してください。
Amazon S3 アクセス用の CodeCatalyst ビルドロール
CodeCatalyst ワークフローのビルドアクションでは、デフォルトの CodeCatalystWorkflowDevelopmentRole-spaceName
サービスロールを使用するか、CodeCatalystBuildRoleforS3Access という名前の IAM ロールを作成できます。このロールは、CodeCatalyst が AWS アカウントの AWS CloudFormation リソースでタスクを実行するために必要な範囲指定付きアクセス許可を持つポリシーを使用します。
このロールにより、以下のアクセス許可が付与されます。
-
Amazon S3 バケットに書き込む。
-
AWS CloudFormation でのリソースのビルドをサポートする。これには Amazon S3 アクセスが必要です。
このロールは以下のポリシーを使用します。
{
"Version": "2012-10-17",
"Statement": [{
"Action": [
"s3:PutObject",
"iam:PassRole"
],
"Resource": "resource_ARN
",
"Effect": "Allow"
}]
}
注記
ロールがワークフローアクションの実行に初めて使用されるときは、リソースポリシーステートメントでワイルドカードを使用し、利用可能になった後にリソース名でポリシーの範囲を絞り込みます。
"Resource": "*"
AWS CloudFormation 用の CodeCatalyst ビルドロール
CodeCatalyst ワークフローのビルドアクションでは、デフォルトの CodeCatalystWorkflowDevelopmentRole-spaceName
サービスロールを使用するか、必要なアクセス許可を持つ IAM ロールを作成できます。このロールは、CodeCatalyst が AWS アカウントの AWS CloudFormation リソースでタスクを実行するために必要な範囲指定付きアクセス許可を持つポリシーを使用します。
このロールにより、以下のアクセス許可が付与されます。
-
AWS CloudFormation でのリソースのビルドをサポートする。これは、Amazon S3 アクセス用の CodeCatalyst ビルドロールと、AWS CloudFormation 用の CodeCatalyst デプロイロールと共に必要です。
以下の AWS マネージドポリシーをロールにアタッチする必要があります。
-
AWSCloudFormationFullAccess
-
IAMFullAccess
-
AmazonS3FullAccess
-
AmazonAPIGatewayAdministrator
-
AWSLambdaFullAccess
CDK 用の CodeCatalyst ビルドロール
「Modern three-tier web application」などの CDK ビルドアクションを実行する CodeCatalyst ワークフローでは、デフォルトの CodeCatalystWorkflowDevelopmentRole-spaceName
サービスロールを使用するか、必要なアクセス許可を持つ IAM ロールを作成できます。このロールは、CodeCatalyst が AWS アカウント内の AWS CloudFormation リソースの CDK ビルドコマンドをブートストラップして実行するために必要な範囲指定付きアクセス許可を持つポリシーを使用します。
このロールにより、以下のアクセス許可が付与されます。
-
Amazon S3 バケットに書き込む。
-
CDK コンストラクトと AWS CloudFormation リソーススタックのビルドをサポートする。これには、アーティファクトストレージ用の Amazon S3、イメージリポジトリサポート用の Amazon ECR、仮想インスタンスのシステムガバナンスおよびモニタリング用の SSM へのアクセスが必要です。
このロールは以下のポリシーを使用します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"cloudformation:*",
"ecr:*",
"ssm:*",
"s3:*",
"iam:PassRole",
"iam:GetRole",
"iam:CreateRole",
"iam:AttachRolePolicy",
"iam:PutRolePolicy"
],
"Resource": "*"
}
]
}
注記
ロールがワークフローアクションの実行に初めて使用されるときは、リソースポリシーステートメントでワイルドカードを使用し、利用可能になった後にリソース名でポリシーの範囲を絞り込みます。
"Resource": "*"
AWS CloudFormation 用の CodeCatalyst デプロイロール
AWS CloudFormation を使用する CodeCatalyst ワークフローデプロイアクションでは、デフォルトの CodeCatalystWorkflowDevelopmentRole-spaceName
サービスロールを使用するか、CodeCatalyst が AWS アカウントの AWS CloudFormation リソースでタスクを実行するために必要な範囲指定付きアクセス許可を持つポリシーを使用できます。
このロールにより、以下のアクセス許可が付与されます。
-
CodeCatalyst が AWS CloudFormation を通じてブルー/グリーンデプロイを実行する Lambda 関数を呼び出すことを許可する。
-
CodeCatalyst が AWS CloudFormation でスタックと変更セットを作成および更新することを許可する。
このロールは以下のポリシーを使用します。
{"Action": [
"cloudformation:CreateStack",
"cloudformation:DeleteStack",
"cloudformation:Describe*",
"cloudformation:UpdateStack",
"cloudformation:CreateChangeSet",
"cloudformation:DeleteChangeSet",
"cloudformation:ExecuteChangeSet",
"cloudformation:SetStackPolicy",
"cloudformation:ValidateTemplate",
"cloudformation:List*",
"iam:PassRole"
],
"Resource": "resource_ARN
",
"Effect": "Allow"
}
注記
ロールがワークフローアクションの実行に初めて使用されるときは、リソースポリシーステートメントでワイルドカードを使用し、利用可能になった後にリソース名でポリシーの範囲を絞り込みます。
"Resource": "*"
Amazon EC2 用の CodeCatalyst デプロイロール
CodeCatalyst ワークフローデプロイアクションは、必要なアクセス許可を持つ IAM ロールを使用します。このロールは、CodeCatalyst が AWS アカウントの Amazon EC2 リソースでタスクを実行するために必要な範囲指定付きアクセス許可を持つポリシーを使用します。CodeCatalystWorkflowDevelopmentRole-spaceName
ロールのデフォルトポリシーには、Amazon EC2 または Amazon EC2 Auto Scaling のアクセス許可は含まれません。
このロールにより、以下のアクセス許可が付与されます。
-
Amazon EC2 デプロイを作成する。
-
インスタンスのタグを読み取る、または Auto Scaling グループ名により Amazon EC2 インスタンスを識別する。
-
Amazon EC2 Auto Scaling グループ、ライフサイクルフック、スケーリングポリシーの読み取り、作成、更新、削除を行います。
-
Amazon SNS トピックに情報を公開します。
-
CloudWatch アラームに関する情報を取得します。
-
Elastic Load Balancing を読み、更新します。
このロールは以下のポリシーを使用します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"autoscaling:CompleteLifecycleAction",
"autoscaling:DeleteLifecycleHook",
"autoscaling:DescribeAutoScalingGroups",
"autoscaling:DescribeLifecycleHooks",
"autoscaling:PutLifecycleHook",
"autoscaling:RecordLifecycleActionHeartbeat",
"autoscaling:CreateAutoScalingGroup",
"autoscaling:UpdateAutoScalingGroup",
"autoscaling:EnableMetricsCollection",
"autoscaling:DescribePolicies",
"autoscaling:DescribeScheduledActions",
"autoscaling:DescribeNotificationConfigurations",
"autoscaling:SuspendProcesses",
"autoscaling:ResumeProcesses",
"autoscaling:AttachLoadBalancers",
"autoscaling:AttachLoadBalancerTargetGroups",
"autoscaling:PutScalingPolicy",
"autoscaling:PutScheduledUpdateGroupAction",
"autoscaling:PutNotificationConfiguration",
"autoscaling:PutWarmPool",
"autoscaling:DescribeScalingActivities",
"autoscaling:DeleteAutoScalingGroup",
"ec2:DescribeInstances",
"ec2:DescribeInstanceStatus",
"ec2:TerminateInstances",
"tag:GetResources",
"sns:Publish",
"cloudwatch:DescribeAlarms",
"cloudwatch:PutMetricAlarm",
"elasticloadbalancing:DescribeLoadBalancers",
"elasticloadbalancing:DescribeInstanceHealth",
"elasticloadbalancing:RegisterInstancesWithLoadBalancer",
"elasticloadbalancing:DeregisterInstancesFromLoadBalancer",
"elasticloadbalancing:DescribeTargetGroups",
"elasticloadbalancing:DescribeTargetHealth",
"elasticloadbalancing:RegisterTargets",
"elasticloadbalancing:DeregisterTargets"
],
"Resource": "resource_ARN
"
}
]
}
注記
ロールがワークフローアクションの実行に初めて使用されるときは、リソースポリシーステートメントでワイルドカードを使用し、利用可能になった後にリソース名でポリシーの範囲を絞り込みます。
"Resource": "*"
Amazon ECS 用の CodeCatalyst デプロイロール
CodeCatalyst ワークフローアクションでは、必要なアクセス許可を持つ IAM ロールを作成できます。デフォルトの CodeCatalystWorkflowDevelopmentRole-spaceName
サービスロールを使用するか、Lambda デプロイに使用する CodeCatalyst デプロイアクション用の IAM ロールを作成できます。このロールは、CodeCatalyst が AWS アカウントの Amazon ECS リソースでタスクを実行するために必要な範囲指定付きアクセス許可を持つポリシーを使用します。
このロールにより、以下のアクセス許可が付与されます。
-
CodeCatalyst 接続で指定されたアカウントで、CodeCatalyst ユーザーに代わって Amazon ECS のローリングデプロイを開始する。
-
Amazon ECS タスクセットを読んで、更新、削除します。
-
Elastic Load Balancing ターゲットグループ、リスナー、ルールを更新します。
-
Lambda 関数を呼び出す。
-
Amazon S3 バケットのリビジョンファイルにアクセスします。
-
CloudWatch アラームに関する情報を取得します。
-
Amazon SNS トピックに情報を公開します。
このロールは以下のポリシーを使用します。
{
"Version": "2012-10-17",
"Statement": [{
"Action":[
"ecs:DescribeServices",
"ecs:CreateTaskSet",
"ecs:DeleteTaskSet",
"ecs:ListClusters",
"ecs:RegisterTaskDefinition",
"ecs:UpdateServicePrimaryTaskSet",
"ecs:UpdateService",
"elasticloadbalancing:DescribeTargetGroups",
"elasticloadbalancing:DescribeListeners",
"elasticloadbalancing:ModifyListener",
"elasticloadbalancing:DescribeRules",
"elasticloadbalancing:ModifyRule",
"lambda:InvokeFunction",
"lambda:ListFunctions",
"cloudwatch:DescribeAlarms",
"sns:Publish",
"sns:ListTopics",
"s3:GetObject",
"s3:GetObjectVersion",
"codedeploy:CreateApplication",
"codedeploy:CreateDeployment",
"codedeploy:CreateDeploymentGroup",
"codedeploy:GetApplication",
"codedeploy:GetDeployment",
"codedeploy:GetDeploymentGroup",
"codedeploy:ListApplications",
"codedeploy:ListDeploymentGroups",
"codedeploy:ListDeployments",
"codedeploy:StopDeployment",
"codedeploy:GetDeploymentTarget",
"codedeploy:ListDeploymentTargets",
"codedeploy:GetDeploymentConfig",
"codedeploy:GetApplicationRevision",
"codedeploy:RegisterApplicationRevision",
"codedeploy:BatchGetApplicationRevisions",
"codedeploy:BatchGetDeploymentGroups",
"codedeploy:BatchGetDeployments",
"codedeploy:BatchGetApplications",
"codedeploy:ListApplicationRevisions",
"codedeploy:ListDeploymentConfigs",
"codedeploy:ContinueDeployment"
],
"Resource":"*",
"Effect":"Allow"
},{"Action":[
"iam:PassRole"
],
"Effect":"Allow",
"Resource":"*",
"Condition":{"StringLike":{"iam:PassedToService":[
"ecs-tasks.amazonaws.com",
"codedeploy.amazonaws.com"
]
}
}
}]
}
注記
ロールがワークフローアクションの実行に初めて使用されるときは、リソースポリシーステートメントでワイルドカードを使用し、利用可能になった後にリソース名でポリシーの範囲を絞り込みます。
"Resource": "*"
Lambda 用の CodeCatalyst デプロイロール
CodeCatalyst ワークフローアクションでは、必要なアクセス許可を持つ IAM ロールを作成できます。デフォルトの CodeCatalystWorkflowDevelopmentRole-spaceName
サービスロールを使用するか、Lambda デプロイに使用する CodeCatalyst デプロイアクション用の IAM ロールを作成できます。このロールは、CodeCatalyst が AWS アカウントの Lambda リソースでタスクを実行するために必要な範囲指定付きアクセス許可を持つポリシーを使用します。
このロールにより、以下のアクセス許可が付与されます。
-
Lambda 関数およびエイリアスの読み取り、更新、呼び出しを行う。
-
Amazon S3 バケットのリビジョンファイルにアクセスします。
-
CloudWatch Events アラームに関する情報を取得する。
-
Amazon SNS トピックに情報を公開します。
このロールは以下のポリシーを使用します。
*{*
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"cloudwatch:DescribeAlarms",
"lambda:UpdateAlias",
"lambda:GetAlias",
"lambda:GetProvisionedConcurrencyConfig",
"sns:Publish"
],
"Resource": "resource_ARN
",
"Effect": "Allow"
},
{
"Action": [
"s3:GetObject",
"s3:GetObjectVersion"
],
"Resource": "arn:aws:s3:::/CodeDeploy/",
"Effect": "Allow"
},
{
"Action": [
"s3:GetObject",
"s3:GetObjectVersion"
],
"Resource": "",
"Condition": {
"StringEquals": {
"s3:ExistingObjectTag/UseWithCodeDeploy": "true"
}
},
"Effect": "Allow"
},
{
"Action": [
"lambda:InvokeFunction"
],
"Resource": "arn:aws:lambda:::function:CodeDeployHook_*",
"Effect": "Allow"
}
]
}
注記
ロールがワークフローアクションの実行に初めて使用されるときは、リソースポリシーステートメントでワイルドカードを使用し、利用可能になった後にリソース名でポリシーの範囲を絞り込みます。
"Resource": "*"
Lambda 用の CodeCatalyst デプロイロール
CodeCatalyst ワークフローアクションでは、デフォルトの CodeCatalystWorkflowDevelopmentRole-spaceName
サービスロールを使用するか、必要なアクセス許可を持つ IAM ロールを作成できます。このロールは、CodeCatalyst が AWS アカウントの Lambda リソースでタスクを実行するために必要な範囲指定付きアクセス許可を持つポリシーを使用します。
このロールにより、以下のアクセス許可が付与されます。
-
Lambda 関数およびエイリアスの読み取り、更新、呼び出しを行う。
-
Amazon S3 バケットのリビジョンファイルにアクセスします。
-
CloudWatch アラームに関する情報を取得します。
-
Amazon SNS トピックに情報を公開します。
このロールは以下のポリシーを使用します。
*{*
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"cloudwatch:DescribeAlarms",
"lambda:UpdateAlias",
"lambda:GetAlias",
"lambda:GetProvisionedConcurrencyConfig",
"sns:Publish"
],
"Resource": "resource_ARN
",
"Effect": "Allow"
},
{
"Action": [
"s3:GetObject",
"s3:GetObjectVersion"
],
"Resource": "arn:aws:s3:::/CodeDeploy/",
"Effect": "Allow"
},
{
"Action": [
"s3:GetObject",
"s3:GetObjectVersion"
],
"Resource": "",
"Condition": {
"StringEquals": {
"s3:ExistingObjectTag/UseWithCodeDeploy": "true"
}
},
"Effect": "Allow"
},
{
"Action": [
"lambda:InvokeFunction"
],
"Resource": "arn:aws:lambda:::function:CodeDeployHook_*",
"Effect": "Allow"
}
]
}
注記
ロールがワークフローアクションの実行に初めて使用されるときは、リソースポリシーステートメントでワイルドカードを使用し、利用可能になった後にリソース名でポリシーの範囲を絞り込みます。
"Resource": "*"
AWS SAM 用の CodeCatalyst デプロイロール
CodeCatalyst ワークフローアクションでは、デフォルトの CodeCatalystWorkflowDevelopmentRole-spaceName
サービスロールを使用するか、必要なアクセス許可を持つ IAM ロールを作成できます。このロールは、CodeCatalyst が AWS アカウントの AWS SAM および AWS CloudFormation リソースでタスクを実行するために必要な範囲指定付きアクセス許可を持つポリシーを使用します。
このロールにより、以下のアクセス許可が付与されます。
-
CodeCatalyst が Lambda 関数を呼び出して、サーバーレスアプリケーションおよび AWS SAM CLI アプリケーションのデプロイを実行することを許可する。
-
CodeCatalyst が AWS CloudFormation でスタックと変更セットを作成および更新することを許可する。
このロールは以下のポリシーを使用します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"iam:PassRole",
"iam:DeleteRole",
"iam:GetRole",
"iam:TagRole",
"iam:CreateRole",
"iam:AttachRolePolicy",
"iam:DetachRolePolicy",
"cloudformation:*",
"lambda:*",
"apigateway:*"
],
"Resource": "*"
}
]
}
注記
ロールがワークフローアクションの実行に初めて使用されるときは、リソースポリシーステートメントでワイルドカードを使用し、利用可能になった後にリソース名でポリシーの範囲を絞り込みます。
"Resource": "*"
Amazon EC2 用の CodeCatalyst 読み取り専用ロール
CodeCatalyst ワークフローアクションでは、必要なアクセス許可を持つ IAM ロールを作成できます。このロールは、CodeCatalyst が AWS アカウントの Amazon EC2 リソースでタスクを実行するために必要な範囲指定付きアクセス許可を持つポリシーを使用します。CodeCatalystWorkflowDevelopmentRole-spaceName
サービスロールには、Amazon EC2 のアクセス許可や説明されている Amazon CloudWatch のアクションは含まれません。
このロールにより、以下のアクセス許可が付与されます。
-
Amazon EC2 インスタンスのステータスを取得する。
-
Amazon EC2 インスタンスの CloudWatch メトリクスを取得する。
このロールは以下のポリシーを使用します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ec2:Describe",
"Resource": "resource_ARN
"
},
{
"Effect": "Allow",
"Action": "elasticloadbalancing:Describe",
"Resource": "resource_ARN
"
},
{
"Effect": "Allow",
"Action": [
"cloudwatch:ListMetrics",
"cloudwatch:GetMetricStatistics",
"cloudwatch:Describe"
],
"Resource": "resource_ARN
"
},
{
"Effect": "Allow",
"Action": "autoscaling:Describe",
"Resource": "resource_ARN
"
}
]
}
注記
ロールがワークフローアクションの実行に初めて使用されるときは、リソースポリシーステートメントでワイルドカードを使用し、利用可能になった後にリソース名でポリシーの範囲を絞り込みます。
"Resource": "*"
Amazon ECS 用の CodeCatalyst 読み取り専用ロール
CodeCatalyst ワークフローアクションでは、必要なアクセス許可を持つ IAM ロールを作成できます。このロールは、CodeCatalyst が AWS アカウントの Amazon ECS リソースでタスクを実行するために必要な範囲指定付きアクセス許可を持つポリシーを使用します。
このロールにより、以下のアクセス許可が付与されます。
-
Amazon ECS のタスクセットを読み取る。
-
CloudWatch アラームに関する情報を取得します。
このロールは以下のポリシーを使用します。
*{*
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"ecs:DescribeServices",
"cloudwatch:DescribeAlarms"
],
"Resource": "resource_ARN
",
"Effect": "Allow"
},
{
"Action": [
"elasticloadbalancing:DescribeTargetGroups",
"elasticloadbalancing:DescribeListeners",
"elasticloadbalancing:DescribeRules"
],
"Resource": "resource_ARN
",
"Effect": "Allow"
},
{
"Action": [
"s3:GetObject",
"s3:GetObjectVersion"
],
"Resource": "",
"Condition": {
"StringEquals": {
"s3:ExistingObjectTag/UseWithCodeDeploy": "true"
}
},
"Effect": "Allow"
},
{
"Action": [
"iam:PassRole"
],
"Effect": "Allow",
"Resource": [
"arn:aws:iam:::role/ecsTaskExecutionRole",
"arn:aws:iam:::role/ECSTaskExecution"
],
"Condition": {
"StringLike": {
"iam:PassedToService": [
"ecs-tasks.amazonaws.com"
]
}
}
}
]
}
注記
ロールがワークフローアクションの実行に初めて使用されるときは、リソースポリシーステートメントでワイルドカードを使用し、利用可能になった後にリソース名でポリシーの範囲を絞り込みます。
"Resource": "*"
Lambda 用の CodeCatalyst 読み取り専用ロール
CodeCatalyst ワークフローアクションでは、必要なアクセス許可を持つ IAM ロールを作成できます。このロールは、CodeCatalyst が AWS アカウントの Lambda リソースでタスクを実行するために必要な範囲指定付きアクセス許可を持つポリシーを使用します。
このロールにより、以下のアクセス許可が付与されます。
-
Lambda 関数とエイリアスを読み取る。
-
Amazon S3 バケットのリビジョンファイルにアクセスします。
-
CloudWatch アラームに関する情報を取得します。
このロールは以下の ポリシーを使用します。
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"cloudwatch:DescribeAlarms",
"lambda:GetAlias",
"lambda:GetProvisionedConcurrencyConfig"
],
"Resource": "resource_ARN
",
"Effect": "Allow"
},
{
"Action": [
"s3:GetObject",
"s3:GetObjectVersion"
],
"Resource": "arn:aws:s3:::/CodeDeploy/",
"Effect": "Allow"
},
{
"Action": [
"s3:GetObject",
"s3:GetObjectVersion"
],
"Resource": "",
"Condition": {
"StringEquals": {
"s3:ExistingObjectTag/UseWithCodeDeploy": "true"
}
},
"Effect": "Allow"
}
]
}
注記
ロールがワークフローアクションの実行に初めて使用されるときは、リソースポリシーステートメントでワイルドカードを使用し、利用可能になった後にリソース名でポリシーの範囲を絞り込みます。
"Resource": "*"
ワークフローアクション用のロールを手動で作成する
CodeCatalyst ワークフローアクションでは、ビルドロール、デプロイロール、スタックロールという名前で作成した IAM ロールを使用します。
IAM ロールを作成する手順は次のとおりです。
デプロイロールを作成するには
-
ロールのポリシーを次の手順で作成します。
-
AWS にサインインします。
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
ナビゲーションペインで、ポリシー を選択します。
-
[ポリシーの作成] を選択します。
-
[JSON] タブを選択します。
-
既存のコードを削除します。
-
次のコードを貼り付けます。
{ "Version": "2012-10-17", "Statement": [{ "Action": [ "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:Describe*", "cloudformation:UpdateStack", "cloudformation:CreateChangeSet", "cloudformation:DeleteChangeSet", "cloudformation:ExecuteChangeSet", "cloudformation:SetStackPolicy", "cloudformation:ValidateTemplate", "cloudformation:List*", "iam:PassRole" ], "Resource": "*", "Effect": "Allow" }] }
注記
ロールがワークフローアクションの実行に初めて使用されるときは、リソースポリシーステートメントでワイルドカードを使用し、利用可能になった後にリソース名でポリシーの範囲を絞り込みます。
"Resource": "*"
-
[Next: Tags] (次へ: タグ) を選択します。
-
[次へ: レビュー] を選択します。
-
[名前] には、次のように入力します。
codecatalyst-deploy-policy
-
[Create policy] を選択します。
これで、アクセス許可ポリシーが作成されました。
-
-
デプロイロールを次の手順で作成します。
-
ナビゲーションペインで ロール を選択してから、ロールを作成する を選択します。
-
[カスタム信頼ポリシー] を選択します。
-
既存のカスタム信頼ポリシーを削除します。
-
次の信頼ポリシーを追加します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
-
[Next] を選択します。
-
[アクセス許可ポリシー] で
codecatalyst-deploy-policy
を検索し、チェックボックスをオンにします。 -
[Next] を選択します。
-
[ロール名] には、次のように入力します。
codecatalyst-deploy-role
-
[ロールの説明] には、次のように入力します。
CodeCatalyst deploy role
-
[ロールの作成] を選択します。
これで、信頼ポリシーとアクセス許可ポリシーを使用してデプロイロールが作成されました。
-
-
デプロイロール ARN を次の手順で取得します。
-
ナビゲーションペインで Roles (ロール) を選択します。
-
検索ボックスに、作成したロールの名前 (
codecatalyst-deploy-role
) を入力します。 -
使用するロールを一覧から選択します。
ロールの [概要] ページが表示されます。
-
上部で、[ARN] 値をコピーします。
これで、適切なアクセス許可を持つデプロイロールを作成し、ARN を取得しました。
-
ビルドロールを作成するには
-
ロールのポリシーを次の手順で作成します。
-
AWS にサインインします。
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
ナビゲーションペインで、ポリシー を選択します。
-
[ポリシーの作成] を選択します。
-
[JSON] タブを選択します。
-
既存のコードを削除します。
-
次のコードを貼り付けます。
{ "Version": "2012-10-17", "Statement": [{ "Action": [ "s3:PutObject", "iam:PassRole" ], "Resource": "*", "Effect": "Allow" }] }
注記
ロールがワークフローアクションの実行に初めて使用されるときは、リソースポリシーステートメントでワイルドカードを使用し、利用可能になった後にリソース名でポリシーの範囲を絞り込みます。
"Resource": "*"
-
[Next: Tags] (次へ: タグ) を選択します。
-
[次へ: レビュー] を選択します。
-
[名前] には、次のように入力します。
codecatalyst-build-policy
-
[Create policy] を選択します。
これで、アクセス許可ポリシーが作成されました。
-
-
ビルドロールを次の手順で作成します。
-
ナビゲーションペインで ロール を選択してから、ロールを作成する を選択します。
-
[カスタム信頼ポリシー] を選択します。
-
既存のカスタム信頼ポリシーを削除します。
-
次の信頼ポリシーを追加します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
-
[Next] を選択します。
-
[アクセス許可ポリシー] で
codecatalyst-build-policy
を検索し、チェックボックスをオンにします。 -
[Next] を選択します。
-
[ロール名] には、次のように入力します。
codecatalyst-build-role
-
[ロールの説明] には、次のように入力します。
CodeCatalyst build role
-
[ロールの作成] を選択します。
これで、信頼ポリシーとアクセス許可ポリシーを使用してビルドロールが作成されました。
-
-
ビルドロール ARN を次の手順で取得します。
-
ナビゲーションペインで Roles (ロール) を選択します。
-
検索ボックスに、作成したロールの名前 (
codecatalyst-build-role
) を入力します。 -
使用するロールを一覧から選択します。
ロールの [概要] ページが表示されます。
-
上部で、[ARN] 値をコピーします。
これで、適切なアクセス許可を持つビルドロールを作成し、その ARN を取得しました。
-
スタックロールを作成するには
注記
スタックロールを作成する必要はありませんが、セキュリティ上の理由から作成することをお勧めします。スタックロールを作成しない場合は、この手順で詳しく説明するアクセス許可ポリシーをデプロイロールに追加する必要があります。
-
スタックをデプロイするアカウントを使用して AWS にサインインします。
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
ナビゲーションペインで [ロール] を選択した後、[ロールの作成] を選択します。
-
上部の [AWS のサービス] を選択します。
-
サービスのリストから、CloudFormation を選択します。
-
[Next: Permissions] (次へ: アクセス許可) を選択します。
-
検索ボックスに、スタック内のリソースへのアクセスに必要なポリシーをすべて追加します。例えば、スタックに AWS Lambda 関数が含まれている場合は、Lambda へのアクセスを許可するポリシーを追加する必要があります。
ヒント
追加するポリシーが不明な場合は、現時点では省略できます。アクションをテストするときに、適切なアクセス許可がない場合は、AWS CloudFormation で、追加する必要があるアクセス許可を示すエラーが生成されます。
-
[Next: Tags] (次へ: タグ) を選択します。
-
[次へ: レビュー] を選択します。
-
[ロール名] には、次のように入力します。
codecatalyst-stack-role
-
[ロールの作成] を選択します。
-
スタックロールの ARN を取得するには、次の手順を実行します。
-
ナビゲーションペインで Roles (ロール) を選択します。
-
検索ボックスに、作成したロールの名前 (
codecatalyst-stack-role
) を入力します。 -
使用するロールを一覧から選択します。
-
[概要] ページで、[ロール ARN] をコピーします。
-
AWS CloudFormation を使用して IAM でポリシーとロールを作成する
AWS CloudFormation テンプレートを作成して使用すると、CodeCatalyst プロジェクトとワークフロー用の でリソースにアクセスするために必要なポリシーとロールを作成できます。AWS CloudFormation は、AWS リソースをモデル化してセットアップするためのサービスです。これにより、こうしたリソースの管理にかかる時間を短縮し、AWS アカウント で運用されるアプリケーションに集中する時間を増やすことができますAWS。複数の AWS アカウントでロールを作成する場合は、テンプレートを作成すると、このタスクをより迅速に行うことができます。
次のサンプルテンプレートは、デプロイアクションロールとポリシーを作成します。
Parameters:
CodeCatalystAccountId:
Type: String
Description: Account ID from the connections page
ExternalId:
Type: String
Description: External ID from the connections page
Resources:
CrossAccountRole:
Type: 'AWS::IAM::Role'
Properties:
AssumeRolePolicyDocument:
Version: "2012-10-17"
Statement:
- Effect: Allow
Principal:
AWS:
- !Ref CodeCatalystAccountId
Action:
- 'sts:AssumeRole'
Condition:
StringEquals:
sts:ExternalId: !Ref ExternalId
Path: /
Policies:
- PolicyName: CodeCatalyst-CloudFormation-action-policy
PolicyDocument:
Version: "2012-10-17"
Statement:
- Effect: Allow
Action:
- 'cloudformation:CreateStack'
- 'cloudformation:DeleteStack'
- 'cloudformation:Describe*'
- 'cloudformation:UpdateStack'
- 'cloudformation:CreateChangeSet'
- 'cloudformation:DeleteChangeSet'
- 'cloudformation:ExecuteChangeSet'
- 'cloudformation:SetStackPolicy'
- 'cloudformation:ValidateTemplate'
- 'cloudformation:List*'
- 'iam:PassRole'
Resource: '*'
ウェブアプリケーションブループリント用のロールを手動で作成する
CodeCatalyst ウェブアプリケーションブループリントでは、CDK 用のビルドロール、デプロイロール、スタックロールという名前で作成した IAM ロールを使用します。
IAM でロールを作成する手順は次のとおりです。
ビルドロールを作成するには
-
ロールのポリシーを次の手順で作成します。
-
AWS にサインインします。
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
ナビゲーションペインで、ポリシー を選択します。
-
[ポリシーの作成] を選択します。
-
[JSON] タブを選択します。
-
既存のコードを削除します。
-
次のコードを貼り付けます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:*", "ecr:*", "ssm:*", "s3:*", "iam:PassRole", "iam:GetRole", "iam:CreateRole", "iam:AttachRolePolicy", "iam:PutRolePolicy" ], "Resource": "*" } ] }
注記
ロールがワークフローアクションの実行に初めて使用されるときは、リソースポリシーステートメントでワイルドカードを使用し、利用可能になった後にリソース名でポリシーの範囲を絞り込みます。
"Resource": "*"
-
[Next: Tags] (次へ: タグ) を選択します。
-
[次へ: レビュー] を選択します。
-
[名前] には、次のように入力します。
codecatalyst-webapp-build-policy
-
[Create policy] を選択します。
これで、アクセス許可ポリシーが作成されました。
-
-
ビルドロールを次の手順で作成します。
-
ナビゲーションペインで ロール を選択してから、ロールを作成する を選択します。
-
[カスタム信頼ポリシー] を選択します。
-
既存のカスタム信頼ポリシーを削除します。
-
次の信頼ポリシーを追加します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
-
[Next] を選択します。
-
アクセス許可ポリシーをビルドロールにアタッチします。[許可を追加] ページで、[アクセス許可ポリシー] セクションで
codecatalyst-webapp-build-policy
を検索し、そのチェックボックスをオンにします。 -
[Next] を選択します。
-
[ロール名] には、次のように入力します。
codecatalyst-webapp-build-role
-
[ロールの説明] には、次のように入力します。
CodeCatalyst Web app build role
-
[ロールの作成] を選択します。
これで、信頼ポリシーとアクセス許可ポリシーを使用してビルドロールが作成されました。
-
-
次の手順で、アクセス許可ポリシーをこのビルドにアタッチします。
-
ナビゲーションペインで [ロール] を選択した後、
codecatalyst-webapp-build-role
を検索します。
-
codecatalyst-webapp-build-role
を選択して詳細を表示します。
-
[アクセス許可] タブで、[許可を追加] を選択してから、[ポリシーをアタッチ] を選択します。
-
codecatalyst-webapp-build-policy
を検索してチェックボックスをオンにし、[ポリシーをアタッチ] を選択します。これで、アクセス許可ポリシーをビルドロールにアタッチできました。このビルドロールには、2 つのポリシー (アクセス許可ポリシーと信頼ポリシー) がアタッチされています。
-
-
ビルドロール ARN を次の手順で取得します。
-
ナビゲーションペインで Roles (ロール) を選択します。
-
検索ボックスに、作成したロールの名前 (
codecatalyst-webapp-build-role
) を入力します。 -
使用するロールを一覧から選択します。
ロールの [概要] ページが表示されます。
-
上部で、[ARN] 値をコピーします。
これで、適切なアクセス許可を持つビルドロールを作成し、その ARN を取得しました。
-
SAM ブループリント用のロールを手動で作成する
CodeCatalyst SAM ブループリントでは、CloudFormation 用のビルドロールと SAM 用のデプロイロールという名前で作成した IAM ロールを使用します。
IAM でロールを作成する手順は次のとおりです。
CloudFormation 用のビルドロールを作成するには
-
ロールのポリシーを次の手順で作成します。
-
AWS にサインインします。
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
ナビゲーションペインで、ポリシー を選択します。
-
[ポリシーの作成] を選択します。
-
[JSON] タブを選択します。
-
既存のコードを削除します。
-
次のコードを貼り付けます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:*", "cloudformation:*" ], "Resource": "*" } ] }
注記
ロールがワークフローアクションの実行に初めて使用されるときは、リソースポリシーステートメントでワイルドカードを使用し、利用可能になった後にリソース名でポリシーの範囲を絞り込みます。
"Resource": "*"
-
[Next: Tags] (次へ: タグ) を選択します。
-
[次へ: レビュー] を選択します。
-
[名前] には、次のように入力します。
codecatalyst-SAM-build-policy
-
[Create policy] を選択します。
これで、アクセス許可ポリシーが作成されました。
-
-
ビルドロールを次の手順で作成します。
-
ナビゲーションペインで ロール を選択してから、ロールを作成する を選択します。
-
[カスタム信頼ポリシー] を選択します。
-
既存のカスタム信頼ポリシーを削除します。
-
次の信頼ポリシーを追加します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
-
[Next] を選択します。
-
アクセス許可ポリシーをビルドロールにアタッチします。[許可を追加] ページで、[アクセス許可ポリシー] セクションで
codecatalyst-SAM-build-policy
を検索し、そのチェックボックスをオンにします。 -
[Next] を選択します。
-
[ロール名] には、次のように入力します。
codecatalyst-SAM-build-role
-
[ロールの説明] には、次のように入力します。
CodeCatalyst SAM build role
-
[ロールの作成] を選択します。
これで、信頼ポリシーとアクセス許可ポリシーを使用してビルドロールが作成されました。
-
-
次の手順で、アクセス許可ポリシーをこのビルドにアタッチします。
-
ナビゲーションペインで [ロール] を選択した後、
codecatalyst-SAM-build-role
を検索します。
-
codecatalyst-SAM-build-role
を選択して詳細を表示します。
-
[アクセス許可] タブで、[許可を追加] を選択してから、[ポリシーをアタッチ] を選択します。
-
codecatalyst-SAM-build-policy
を検索してチェックボックスをオンにし、[ポリシーをアタッチ] を選択します。これで、アクセス許可ポリシーをビルドロールにアタッチできました。このビルドロールには、2 つのポリシー (アクセス許可ポリシーと信頼ポリシー) がアタッチされています。
-
-
ビルドロール ARN を次の手順で取得します。
-
ナビゲーションペインで Roles (ロール) を選択します。
-
検索ボックスに、作成したロールの名前 (
codecatalyst-SAM-build-role
) を入力します。 -
使用するロールを一覧から選択します。
ロールの [概要] ページが表示されます。
-
上部で、[ARN] 値をコピーします。
これで、適切なアクセス許可を持つビルドロールを作成し、その ARN を取得しました。
-
SAM 用のデプロイロールを作成するには
-
ロールのポリシーを次の手順で作成します。
-
AWS にサインインします。
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
ナビゲーションペインで、ポリシー を選択します。
-
[ポリシーの作成] を選択します。
-
[JSON] タブを選択します。
-
既存のコードを削除します。
-
次のコードを貼り付けます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "iam:PassRole", "iam:DeleteRole", "iam:GetRole", "iam:TagRole", "iam:CreateRole", "iam:AttachRolePolicy", "iam:DetachRolePolicy", "cloudformation:*", "lambda:*", "apigateway:*" ], "Resource": "*" } ] }
注記
ロールがワークフローアクションの実行に初めて使用されるときは、リソースポリシーステートメントでワイルドカードを使用し、利用可能になった後にリソース名でポリシーの範囲を絞り込みます。
"Resource": "*"
-
[Next: Tags] (次へ: タグ) を選択します。
-
[次へ: レビュー] を選択します。
-
[名前] には、次のように入力します。
codecatalyst-SAM-deploy-policy
-
[Create policy] を選択します。
これで、アクセス許可ポリシーが作成されました。
-
-
ビルドロールを次の手順で作成します。
-
ナビゲーションペインで ロール を選択してから、ロールを作成する を選択します。
-
[カスタム信頼ポリシー] を選択します。
-
既存のカスタム信頼ポリシーを削除します。
-
次の信頼ポリシーを追加します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
-
[Next] を選択します。
-
アクセス許可ポリシーをビルドロールにアタッチします。[許可を追加] ページで、[アクセス許可ポリシー] セクションで
codecatalyst-SAM-deploy-policy
を検索し、そのチェックボックスをオンにします。 -
[Next] を選択します。
-
[ロール名] には、次のように入力します。
codecatalyst-SAM-deploy-role
-
[ロールの説明] には、次のように入力します。
CodeCatalyst SAM deploy role
-
[ロールの作成] を選択します。
これで、信頼ポリシーとアクセス許可ポリシーを使用してビルドロールが作成されました。
-
-
次の手順で、アクセス許可ポリシーをこのビルドにアタッチします。
-
ナビゲーションペインで [ロール] を選択した後、
codecatalyst-SAM-deploy-role
を検索します。
-
codecatalyst-SAM-deploy-role
を選択して詳細を表示します。
-
[アクセス許可] タブで、[許可を追加] を選択してから、[ポリシーをアタッチ] を選択します。
-
codecatalyst-SAM-deploy-policy
を検索してチェックボックスをオンにし、[ポリシーをアタッチ] を選択します。これで、アクセス許可ポリシーをビルドロールにアタッチできました。このビルドロールには、2 つのポリシー (アクセス許可ポリシーと信頼ポリシー) がアタッチされています。
-
-
ビルドロール ARN を次の手順で取得します。
-
ナビゲーションペインで Roles (ロール) を選択します。
-
検索ボックスに、作成したロールの名前 (
codecatalyst-SAM-deploy-role
) を入力します。 -
使用するロールを一覧から選択します。
ロールの [概要] ページが表示されます。
-
上部で、[ARN] 値をコピーします。
これで、適切なアクセス許可を持つビルドロールを作成し、その ARN を取得しました。
-