AWS リソースへの Amazon CodeCatalyst アクセス用の IAM ロール - Amazon CodeCatalyst

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

AWS リソースへの Amazon CodeCatalyst アクセス用の IAM ロール

CodeCatalyst は、 AWS アカウントを CodeCatalyst スペースに接続することで AWSリソースにアクセスできます。その後、次のサービスロールを作成し、アカウントを接続するときに関連付けることができます。

JSON ポリシーで使用する要素の詳細については、「IAM ユーザーガイド」の「IAM JSON ポリシー要素のリファレンス」を参照してください。

  • CodeCatalyst プロジェクトおよびワークフローAWS アカウントの のリソースにアクセスするには、まず にそれらのリソース CodeCatalyst へのアクセス許可を付与する必要があります。そのためには、接続された でサービスロールを作成し、スペース内のユーザーとプロジェクトに代わって AWS アカウント が CodeCatalyst引き受けることができるようにする必要があります。CodeCatalystWorkflowDevelopmentRole-spaceName サービスロールを作成して使用するか、カスタマイズされたサービスロールを作成してこれらの IAM ポリシーとロールを手動で設定するかを選択できます。ベストプラクティスとして、これらのロールには必要最小限のアクセス許可を割り当てます。

    注記

    カスタマイズされたサービスロールには、 CodeCatalyst サービスプリンシパルが必要です。 CodeCatalyst サービスプリンシパルと信頼モデルの詳細については、「」を参照してくださいCodeCatalyst トラストモデル

  • 接続された を介してスペースのサポートを管理するにはAWS アカウント、 CodeCatalyst ユーザーがサポートにアクセスできるようにするAWSRoleForCodeCatalystSupportサービスロールを作成して使用することを選択できます。 CodeCatalyst スペースのサポートの詳細については、「」を参照してくださいAWS SupportAmazon 用 CodeCatalyst

CodeCatalystWorkflowDevelopmentRole-spaceName サービスロールについて

接続された でリソースを作成およびアクセスするために CodeCatalyst が使用できるスペースに IAM ロールを追加できますAWS アカウント。これはサービスロール と呼ばれます。サービスロールを作成する最も簡単な方法は、スペースの作成時にサービスロールを追加し、そのロールCodeCatalystWorkflowDevelopmentRole-spaceNameのオプションを選択します。これにより、 がAdministratorAccessアタッチされたサービスロールが作成されるだけでなく、スペース内のプロジェクト内のユーザーに代わって がロールを引き受け CodeCatalyst ることを許可する信頼ポリシーも作成されます。サービスロールの範囲は、個々のプロジェクトではなくスペースに限定されます。このロールの作成については、「アカウントとスペース用の CodeCatalystWorkflowDevelopmentRole-spaceName ロールの作成」を参照してください。各アカウントのスペースごとに作成できるロールは 1 つだけです。

注記

このロールは開発用アカウントでのみ使用が推奨され、 AdministratorAccessAWSマネージドポリシーを使用して、この で新しいポリシーとリソースを作成するためのフルアクセスを付与しますAWS アカウント。

CodeCatalystWorkflowDevelopmentRole-spaceName ロールにアタッチされたポリシーは、スペース内のブループリントで作成されたプロジェクトで動作するように設計されています。これにより、これらのプロジェクトのユーザーは、接続された のリソースを使用してコードを開発、構築、テスト、デプロイできますAWS アカウント。詳細については、「 AWSサービスのロールの作成」を参照してください。

CodeCatalystWorkflowDevelopmentRole-spaceName ロールにアタッチされたポリシーは、 の AdministratorAccessマネージドポリシーですAWS。これは、すべての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-spaceNameロールを作成します。プロジェクトで使用する IAM ロールを持つアカウントごとに、 スペースに開発者ロールなどのロールを追加する必要があります。

開始する前に、 の管理者権限を持っているAWS アカウントか、 管理者と連携できる必要があります。で AWS アカウントおよび IAM ロールを使用する方法の詳細については CodeCatalyst、「」を参照してくださいAWS アカウント スペースの管理

を作成して追加するには CodeCatalyst CodeCatalystWorkflowDevelopmentRole-spaceName
  1. CodeCatalyst コンソールで を開始する前に、 を開きAWS Management Console、スペースAWS アカウントに対して同じ でログインしていることを確認します。

  2. https://codecatalyst.aws/ で CodeCatalyst コンソールを開きます。

  3. CodeCatalyst スペースに移動します。[Settings (設定)]、[AWS アカウント] の順に選択します。

  4. ロールを作成する AWS アカウント のリンクを選択します。AWS アカウント 詳細ページが表示されます。

  5. からロールの管理AWS Management Consoleを選択します。

    「Amazon CodeCatalyst スペースに IAM ロールを追加する」ページが で開きますAWS Management Console。これは Amazon CodeCatalyst スペースページです。ページにアクセスするには、ログインが必要な場合があります。

  6. IAM で CodeCatalyst 開発管理者ロールを作成するを選択します。このオプションでは、開発ロールのアクセス許可ポリシーと信頼ポリシーを含むサービスロールを作成します。ロールには という名前が付けられますCodeCatalystWorkflowDevelopmentRole-spaceName。ロールとロールポリシーの詳細については、「」を参照してくださいCodeCatalystWorkflowDevelopmentRole-spaceName サービスロールについて

    注記

    このロールはデベロッパーアカウントでのみ使用し、 AdministratorAccessAWSマネージドポリシーを使用して、この で新しいポリシーとリソースを作成するためのフルアクセスを付与する場合にのみ推奨されますAWS アカウント。

  7. 開発ロールの作成を選択します

  8. 接続ページの で使用できる IAM ロールで CodeCatalyst、アカウントに追加された IAM CodeCatalystWorkflowDevelopmentRole-spaceNameロールのリストにロールを表示します。

  9. スペースに戻るには、「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 アカウントか、 管理者と連携できる必要があります。で AWS アカウントおよび IAM ロールを使用する方法の詳細については CodeCatalyst、「」を参照してくださいAWS アカウント スペースの管理

を作成して追加するには CodeCatalyst AWSRoleForCodeCatalystSupport
  1. CodeCatalyst コンソールで を開始する前に、 を開きAWS Management Console、スペースAWS アカウントに対して同じ でログインしていることを確認します。

  2. CodeCatalyst スペースに移動します。[Settings (設定)]、[AWS アカウント] の順に選択します。

  3. ロールを作成する AWS アカウント のリンクを選択します。AWS アカウント 詳細ページが表示されます。

  4. からロールの管理AWS Management Consoleを選択します。

    「Amazon CodeCatalyst スペースへの IAM ロールの追加」ページが開きますAWS Management Console。これは Amazon CodeCatalyst Spaces ページです。ページにアクセスするには、サインインが必要になる場合があります。

  5. CodeCatalyst スペースの詳細で CodeCatalyst サポートロールの追加を選択します。このオプションでは、プレビュー開発ロールのアクセス許可ポリシーと信頼ポリシーを含むサービスロールを作成します。ロールには、AWSRoleForCodeCatalystSupport一意の識別子が追加された名前が付けられます。ロールとロールポリシーの詳細については、「」を参照してくださいAWSRoleForCodeCatalystSupport サービスロールについて

  6. CodeCatalyst サポート用のロールを追加 ページで、デフォルトを選択したままにし、ロールの作成 を選択します。

  7. で使用できる IAM ロール CodeCatalystで、アカウントに追加された IAM CodeCatalystWorkflowDevelopmentRole-spaceNameロールのリストにロールを表示します。

  8. スペースに戻るには、「Amazon に移動 CodeCatalyst」を選択します。

でのワークフローアクションの IAM ロールの設定 CodeCatalyst

このセクションでは、 アカウントで使用するために作成できる IAM ロールとポリシーについて詳しく説明します CodeCatalyst。サンプルロールを作成する手順については、「」を参照してくださいワークフローアクションのロールを手動で作成する。IAM ロールを作成したら、ロール ARN をコピーして IAM ロールをアカウント接続に追加し、プロジェクト環境に関連付けます。詳細については、「アカウント接続への IAM ロールの追加」を参照してください。

CodeCatalyst Amazon S3 アクセスの ビルドロール

CodeCatalyst ワークフロービルドアクションでは、デフォルトのCodeCatalystWorkflowDevelopmentRole-spaceNameサービスロールを使用するか、CodeCatalystBuildRoleforS3Access という名前の IAM ロールを作成できます。このロールは、 内のAWS CloudFormationリソースでタスクを実行する CodeCatalyst ために必要な、スコープ付きのアクセス許可を持つポリシーを使用しますAWS アカウント。

このロールは、次の操作を実行するアクセス許可を付与します。

  • Amazon S3 バケットに書き込みます。

  • による リソースの構築をサポートしますAWS CloudFormation。これには Amazon S3 アクセスが必要です。

このロールは次のポリシーを使用します。

{ "Version": "2012-10-17", "Statement": [{ "Action": [ "s3:PutObject", "iam:PassRole" ], "Resource": "resource_ARN", "Effect": "Allow" }] }
注記

ロールがワークフローアクションの実行に初めて使用されるときは、リソースポリシーステートメントで ワイルドカードを使用し、利用可能になった後にリソース名を使用してポリシーの範囲を絞り込みます。

"Resource": "*"

CodeCatalyst の ビルドロール AWS CloudFormation

CodeCatalyst ワークフロービルドアクションでは、デフォルトのCodeCatalystWorkflowDevelopmentRole-spaceNameサービスロールを使用するか、必要なアクセス許可を持つ IAM ロールを作成できます。このロールは、 内のAWS CloudFormationリソースでタスクを実行する CodeCatalyst ために必要な、スコープ付きのアクセス許可を持つポリシーを使用しますAWS アカウント。

このロールは、次の操作を実行するアクセス許可を付与します。

  • による リソースの構築をサポートしますAWS CloudFormation。これは、Amazon S3 アクセスのビルドロールと の CodeCatalyst デプロイロールとともに CodeCatalyst必要ですAWS CloudFormation。

このロールには、次の AWS 管理ポリシーをアタッチする必要があります。

  • AWSCloudFormationFullAccess

  • IAMFullAccess

  • AmazonS3FullAccess

  • AmazonAPIGatewayAdministrator

  • AWSLambdaFullAccess

CodeCatalyst CDK の ビルドロール

Modern 3 層ウェブアプリケーションなどの CDK ビルドアクションを実行する CodeCatalyst ワークフローでは、デフォルトのCodeCatalystWorkflowDevelopmentRole-spaceNameサービスロールを使用するか、必要なアクセス許可を持つ IAM ロールを作成できます。このロールは、 内のAWS CloudFormationリソースの CDK ビルドコマンドをブートストラップして実行 CodeCatalyst するために必要な、スコープ付きのアクセス許可を持つポリシーを使用しますAWS アカウント。

このロールは、次の操作を実行するアクセス許可を付与します。

  • 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": "*"

CodeCatalyst の ロールのデプロイ AWS CloudFormation

を使用する CodeCatalyst ワークフローデプロイアクションの場合AWS CloudFormation、デフォルトのCodeCatalystWorkflowDevelopmentRole-spaceNameサービスロールを使用するか、 のAWS CloudFormationリソースでタスクを実行する CodeCatalyst ために必要なアクセス許可が限定されたポリシーを使用できますAWS アカウント。

このロールは、次の操作を実行するアクセス許可を付与します。

  • CodeCatalyst が TAK� 関数を呼び出して、 を介してブルー/グリーンデプロイを実行できるようにしますAWS CloudFormation。

  • 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": "*"

CodeCatalyst Amazon EC2 の ロールのデプロイ

CodeCatalyst ワークフローデプロイアクションは、必要なアクセス許可を持つ IAM ロールを使用します。このロールは、 の Amazon EC2 リソースでタスクを実行する CodeCatalyst ために必要な、スコープ付きのアクセス許可を持つポリシーを使用しますAWS アカウント。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": "*"

CodeCatalyst Amazon ECS の ロールのデプロイ

CodeCatalyst ワークフローアクションでは、必要なアクセス許可を持つ IAM ロールを作成できます。デフォルトのCodeCatalystWorkflowDevelopmentRole-spaceNameサービスロールを使用することも、Lambda CodeCatalyst デプロイに使用するデプロイアクション用の IAM ロールを作成することもできます。このロールは、 の Amazon ECS リソースでタスクを実行する CodeCatalyst ために必要な、スコープ付きのアクセス許可を持つポリシーを使用しますAWS アカウント。

このロールは、次の操作を実行するアクセス許可を付与します。

  • 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": "*"

CodeCatalyst Lambda 用の ロールのデプロイ

CodeCatalyst ワークフローアクションでは、必要なアクセス許可を持つ IAM ロールを作成できます。デフォルトのCodeCatalystWorkflowDevelopmentRole-spaceNameサービスロールを使用するか、Lambda デプロイに使用するデプロイアクション用の CodeCatalyst IAM ロールを作成できます。このロールは、 の Lambda リソースでタスクを実行する CodeCatalyst ために必要な、スコープ付きのアクセス許可を持つポリシーを使用しますAWS アカウント。

このロールは、次の操作を実行するアクセス許可を付与します。

  • 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": "*"

CodeCatalyst Lambda 用の ロールのデプロイ

CodeCatalyst ワークフローアクションでは、デフォルトのCodeCatalystWorkflowDevelopmentRole-spaceNameサービスロールを使用するか、必要なアクセス許可を持つ IAM ロールを作成できます。このロールは、 の Lambda リソースでタスクを実行する CodeCatalyst ために必要な、スコープ付きのアクセス許可を持つポリシーを使用しますAWS アカウント。

このロールは、次の操作を実行するアクセス許可を付与します。

  • 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": "*"

CodeCatalyst の ロールのデプロイ AWS SAM

CodeCatalyst ワークフローアクションでは、デフォルトのCodeCatalystWorkflowDevelopmentRole-spaceNameサービスロールを使用するか、必要なアクセス許可を持つ IAM ロールを作成できます。このロールは、 が の AWS SAMおよび AWS CloudFormationリソースでタスクを実行する CodeCatalyst ために必要な、スコープ付きのアクセス許可を持つポリシーを使用しますAWS アカウント。

このロールは、次の操作を実行するアクセス許可を付与します。

  • CodeCatalyst が Lambda 関数を呼び出して、サーバーレスおよび CLI AWS SAM アプリケーションのデプロイを実行できるようにします。

  • 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": "*"

CodeCatalyst Amazon EC2 の読み取り専用ロール

CodeCatalyst ワークフローアクションでは、必要なアクセス許可を持つ IAM ロールを作成できます。このロールは、 の Amazon EC2 リソースでタスクを実行する CodeCatalyst ために必要な、スコープ付きのアクセス許可を持つポリシーを使用しますAWS アカウント。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": "*"

CodeCatalyst Amazon ECS の読み取り専用ロール

CodeCatalyst ワークフローアクションでは、必要なアクセス許可を持つ IAM ロールを作成できます。このロールは、 の Amazon ECS リソースでタスクを実行する CodeCatalyst ために必要な、スコープ付きのアクセス許可を持つポリシーを使用しますAWS アカウント。

このロールは、次の操作を実行するアクセス許可を付与します。

  • 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": "*"

CodeCatalyst Lambda の読み取り専用ロール

CodeCatalyst ワークフローアクションでは、必要なアクセス許可を持つ IAM ロールを作成できます。このロールは、 の Lambda リソースでタスクを実行する CodeCatalyst ために必要な、スコープ付きのアクセス許可を持つポリシーを使用しますAWS アカウント。

このロールは、以下のアクセス許可を付与します。

  • 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 でこれらのロールを作成するには、次の手順に従います。

デプロイロールを作成するには
  1. ロールのポリシーを次のように作成します。

    1. AWS にサインインします。

    2. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

    3. ナビゲーションペインで、ポリシー を選択します。

    4. ポリシーの作成を選択します。

    5. [JSON] タブを選択します。

    6. 既存のコードを削除します。

    7. 次のコードを貼り付けます。

      { "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": "*"
    8. [次へ: タグ] を選択します。

    9. [次へ: レビュー] を選択します。

    10. 名前 に、次のように入力します。

      codecatalyst-deploy-policy
    11. [ポリシーの作成] を選択します。

      これで、アクセス許可ポリシーが作成されました。

  2. 次のようにデプロイロールを作成します。

    1. ナビゲーションペインで ロール を選択してから、ロールを作成する を選択します。

    2. カスタム信頼ポリシー を選択します。

    3. 既存のカスタム信頼ポリシーを削除します。

    4. 次のカスタム信頼ポリシーを追加します。

      { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
    5. [次へ] をクリックします。

    6. アクセス許可ポリシー で、そのチェックボックスを検索codecatalyst-deploy-policyして選択します。

    7. [次へ] をクリックします。

    8. ロール名 には、次のように入力します。

      codecatalyst-deploy-role
    9. ロールの説明 には、次のように入力します。

      CodeCatalyst deploy role
    10. [ロールの作成] を選択します。

    これで、信頼ポリシーとアクセス許可ポリシーを持つデプロイロールが作成されました。

  3. 次のように、デプロイロール ARN を取得します。

    1. ナビゲーションペインで、[ロール] を選択します。

    2. 検索ボックスに、作成したロールの名前 () を入力しますcodecatalyst-deploy-role

    3. リストからロールを選択します。

      ロールの概要ページが表示されます。

    4. 上部に ARN 値をコピーします。

    これで、適切なアクセス許可を持つデプロイロールが作成され、その ARN が取得されました。

ビルドロールを作成するには
  1. ロールのポリシーを次のように作成します。

    1. AWS にサインインします。

    2. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

    3. ナビゲーションペインで、ポリシー を選択します。

    4. ポリシーの作成を選択します。

    5. [JSON] タブを選択します。

    6. 既存のコードを削除します。

    7. 次のコードを貼り付けます。

      { "Version": "2012-10-17", "Statement": [{ "Action": [ "s3:PutObject", "iam:PassRole" ], "Resource": "*", "Effect": "Allow" }] }
      注記

      ロールがワークフローアクションの実行に初めて使用されるときは、リソースポリシーステートメントで ワイルドカードを使用し、利用可能になった後にリソース名を使用してポリシーの範囲を絞り込みます。

      "Resource": "*"
    8. [次へ: タグ] を選択します。

    9. [次へ: レビュー] を選択します。

    10. 名前 に、次のように入力します。

      codecatalyst-build-policy
    11. [ポリシーの作成] を選択します。

      これで、アクセス許可ポリシーが作成されました。

  2. ビルドロールを次のように作成します。

    1. ナビゲーションペインで ロール を選択してから、ロールを作成する を選択します。

    2. カスタム信頼ポリシー を選択します。

    3. 既存のカスタム信頼ポリシーを削除します。

    4. 次のカスタム信頼ポリシーを追加します。

      { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
    5. [次へ] をクリックします。

    6. アクセス許可ポリシー で、そのチェックボックスを検索codecatalyst-build-policyして選択します。

    7. [次へ] をクリックします。

    8. ロール名 には、次のように入力します。

      codecatalyst-build-role
    9. ロールの説明 には、次のように入力します。

      CodeCatalyst build role
    10. [ロールの作成] を選択します。

    これで、信頼ポリシーとアクセス許可ポリシーを含むビルドロールが作成されました。

  3. 次のように、ビルドロール ARN を取得します。

    1. ナビゲーションペインで、[ロール] を選択します。

    2. 検索ボックスに、先ほど作成したロールの名前 () を入力しますcodecatalyst-build-role

    3. リストからロールを選択します。

      ロールの概要ページが表示されます。

    4. 上部に ARN 値をコピーします。

    これで、適切なアクセス許可を持つビルドロールが作成され、その ARN が取得されました。

スタックロールを作成するには
注記

セキュリティ上の理由から、スタックロールを作成する必要はありませんが、作成することをお勧めします。スタックロールを作成しない場合は、この手順でさらに説明するアクセス許可ポリシーをデプロイロールに追加する必要があります。

  1. スタックをデプロイするアカウントAWSを使用して にサインインします。

  2. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  3. ナビゲーションペインで、ロール を選択し、次にロール の作成 を選択します。

  4. 上部で、AWSサービス を選択します。

  5. サービスのリストから、 を選択しますCloudFormation

  6. [次へ: アクセス許可] を選択します。

  7. 検索ボックスに、スタック内のリソースにアクセスするために必要なポリシーを追加します。例えば、スタックに AWS Lambda関数が含まれている場合は、Lambda へのアクセスを許可するポリシーを追加する必要があります。

    ヒント

    追加するポリシーが不明な場合は、現時点では省略できます。アクションをテストするときに、適切なアクセス許可がない場合、 は追加する必要があるアクセス許可を示すエラーAWS CloudFormationを生成します。

  8. [次へ: タグ] を選択します。

  9. [次へ: レビュー] を選択します。

  10. ロール名 には、次のように入力します。

    codecatalyst-stack-role
  11. [ロールの作成] を選択します。

  12. スタックロールの ARN を取得するには、次の手順を実行します。

    1. ナビゲーションペインで、[ロール] を選択します。

    2. 検索ボックスに、先ほど作成したロールの名前 () を入力しますcodecatalyst-stack-role

    3. リストからロールを選択します。

    4. 概要 ページで、ロール ARN 値をコピーします。

AWS CloudFormation を使用して IAM でポリシーとロールを作成する

AWS CloudFormation テンプレートを作成して使用し、 CodeCatalyst プロジェクトとワークフローAWS アカウントの のリソースにアクセスするために必要なポリシーとロールを作成できます。 AWS CloudFormationは、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 でロールを作成するには、次の手順に従います。

ビルドロールを作成するには
  1. ロールのポリシーを次のように作成します。

    1. AWS にサインインします。

    2. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

    3. ナビゲーションペインで、ポリシー を選択します。

    4. [Create Policy (ポリシーの作成)] を選択します。

    5. [JSON] タブを選択します。

    6. 既存のコードを削除します。

    7. 次のコードを貼り付けます。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:*", "ecr:*", "ssm:*", "s3:*", "iam:PassRole", "iam:GetRole", "iam:CreateRole", "iam:AttachRolePolicy", "iam:PutRolePolicy" ], "Resource": "*" } ] }
      注記

      ロールがワークフローアクションの実行に初めて使用されるときは、リソースポリシーステートメントで ワイルドカードを使用し、利用可能になった後にリソース名を使用してポリシーの範囲を絞り込みます。

      "Resource": "*"
    8. [次へ: タグ] を選択します。

    9. [次へ: レビュー] を選択します。

    10. 名前 に、次のように入力します。

      codecatalyst-webapp-build-policy
    11. [ポリシーの作成] を選択します。

      これで、アクセス許可ポリシーが作成されました。

  2. ビルドロールを次のように作成します。

    1. ナビゲーションペインで ロール を選択してから、ロールを作成する を選択します。

    2. カスタム信頼ポリシー を選択します。

    3. 既存のカスタム信頼ポリシーを削除します。

    4. 次のカスタム信頼ポリシーを追加します。

      { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
    5. [次へ] をクリックします。

    6. アクセス許可ポリシーをビルドロールにアタッチします。アクセス許可の追加ページのアクセス許可ポリシーセクションで、そのチェックボックスを検索codecatalyst-webapp-build-policyして選択します。

    7. [次へ] をクリックします。

    8. ロール名 には、次のように入力します。

      codecatalyst-webapp-build-role
    9. ロールの説明 には、次のように入力します。

      CodeCatalyst Web app build role
    10. [ロールの作成] を選択します。

    これで、信頼ポリシーとアクセス許可ポリシーを含むビルドロールが作成されました。

  3. 次のように、アクセス許可ポリシーをビルドロールにアタッチします。

    1. ナビゲーションペインで、ロール を選択し、 を検索しますcodecatalyst-webapp-build-role

    2. を選択して、詳細codecatalyst-webapp-build-roleを表示します。

    3. アクセス許可タブで、アクセス許可の追加 を選択し、ポリシーのアタッチ を選択します。

    4. を検索しcodecatalyst-webapp-build-policy、そのチェックボックスを選択し、ポリシーのアタッチ を選択します。

      これで、アクセス許可ポリシーがビルドロールにアタッチされました。ビルドロールには、アクセス許可ポリシーと信頼ポリシーの 2 つのポリシーが追加されました。

  4. 次のように、ビルドロール ARN を取得します。

    1. ナビゲーションペインで、[ロール] を選択します。

    2. 検索ボックスに、先ほど作成したロールの名前 () を入力しますcodecatalyst-webapp-build-role

    3. リストからロールを選択します。

      ロールの概要ページが表示されます。

    4. 上部に ARN 値をコピーします。

    これで、適切なアクセス許可を持つビルドロールが作成され、その ARN が取得されました。

SAM ブループリント用のロールの手動作成

CodeCatalyst SAM ブループリントでは、 のビルドロール CloudFormationSAM のデプロイロールと呼ばれる IAM ロールを使用します。

IAM でロールを作成するには、次の手順に従います。

のビルドロールを作成するには CloudFormation
  1. ロールのポリシーを次のように作成します。

    1. AWS にサインインします。

    2. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

    3. ナビゲーションペインで、ポリシー を選択します。

    4. [Create Policy (ポリシーの作成)] を選択します。

    5. [JSON] タブを選択します。

    6. 既存のコードを削除します。

    7. 次のコードを貼り付けます。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:*", "cloudformation:*" ], "Resource": "*" } ] }
      注記

      ロールがワークフローアクションの実行に初めて使用されるときは、リソースポリシーステートメントで ワイルドカードを使用し、利用可能になった後にリソース名を使用してポリシーの範囲を絞り込みます。

      "Resource": "*"
    8. [次へ: タグ] を選択します。

    9. [次へ: レビュー] を選択します。

    10. 名前 に、次のように入力します。

      codecatalyst-SAM-build-policy
    11. [ポリシーの作成] を選択します。

      これで、アクセス許可ポリシーが作成されました。

  2. ビルドロールを次のように作成します。

    1. ナビゲーションペインで ロール を選択してから、ロールを作成する を選択します。

    2. カスタム信頼ポリシー を選択します。

    3. 既存のカスタム信頼ポリシーを削除します。

    4. 次のカスタム信頼ポリシーを追加します。

      { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
    5. [次へ] をクリックします。

    6. アクセス許可ポリシーをビルドロールにアタッチします。アクセス許可の追加ページのアクセス許可ポリシーセクションで、そのチェックボックスを検索codecatalyst-SAM-build-policyして選択します。

    7. [次へ] をクリックします。

    8. ロール名 には、次のように入力します。

      codecatalyst-SAM-build-role
    9. ロールの説明 には、次のように入力します。

      CodeCatalyst SAM build role
    10. [ロールの作成] を選択します。

    これで、信頼ポリシーとアクセス許可ポリシーを含むビルドロールが作成されました。

  3. 次のように、アクセス許可ポリシーをビルドロールにアタッチします。

    1. ナビゲーションペインで、ロール を選択し、 を検索しますcodecatalyst-SAM-build-role

    2. を選択して、詳細codecatalyst-SAM-build-roleを表示します。

    3. アクセス許可タブで、アクセス許可の追加 を選択し、ポリシーのアタッチ を選択します。

    4. を検索しcodecatalyst-SAM-build-policy、そのチェックボックスを選択し、ポリシーのアタッチ を選択します。

      これで、アクセス許可ポリシーがビルドロールにアタッチされました。ビルドロールには、アクセス許可ポリシーと信頼ポリシーの 2 つのポリシーが追加されました。

  4. 次のように、ビルドロール ARN を取得します。

    1. ナビゲーションペインで、[ロール] を選択します。

    2. 検索ボックスに、先ほど作成したロールの名前 () を入力しますcodecatalyst-SAM-build-role

    3. リストからロールを選択します。

      ロールの概要ページが表示されます。

    4. 上部に ARN 値をコピーします。

    これで、適切なアクセス許可を持つビルドロールが作成され、その ARN が取得されました。

SAM のデプロイロールを作成するには
  1. ロールのポリシーを次のように作成します。

    1. AWS にサインインします。

    2. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

    3. ナビゲーションペインで、ポリシー を選択します。

    4. [Create Policy (ポリシーの作成)] を選択します。

    5. [JSON] タブを選択します。

    6. 既存のコードを削除します。

    7. 次のコードを貼り付けます。

      { "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": "*"
    8. [次へ: タグ] を選択します。

    9. [次へ: レビュー] を選択します。

    10. 名前 に、次のように入力します。

      codecatalyst-SAM-deploy-policy
    11. [ポリシーの作成] を選択します。

      これで、アクセス許可ポリシーが作成されました。

  2. ビルドロールを次のように作成します。

    1. ナビゲーションペインで ロール を選択してから、ロールを作成する を選択します。

    2. カスタム信頼ポリシー を選択します。

    3. 既存のカスタム信頼ポリシーを削除します。

    4. 次のカスタム信頼ポリシーを追加します。

      { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
    5. [次へ] をクリックします。

    6. アクセス許可ポリシーをビルドロールにアタッチします。アクセス許可の追加ページのアクセス許可ポリシーセクションで、そのチェックボックスを検索codecatalyst-SAM-deploy-policyして選択します。

    7. [次へ] をクリックします。

    8. ロール名 には、次のように入力します。

      codecatalyst-SAM-deploy-role
    9. ロールの説明 には、次のように入力します。

      CodeCatalyst SAM deploy role
    10. [ロールの作成] を選択します。

    これで、信頼ポリシーとアクセス許可ポリシーを含むビルドロールが作成されました。

  3. 次のように、アクセス許可ポリシーをビルドロールにアタッチします。

    1. ナビゲーションペインで、ロール を選択し、 を検索しますcodecatalyst-SAM-deploy-role

    2. 選択codecatalyst-SAM-deploy-roleすると、詳細が表示されます。

    3. アクセス許可タブで、アクセス許可の追加 を選択し、ポリシーのアタッチ を選択します。

    4. を検索しcodecatalyst-SAM-deploy-policy、そのチェックボックスを選択し、ポリシーのアタッチを選択します。

      これで、アクセス許可ポリシーがビルドロールにアタッチされました。ビルドロールには、アクセス許可ポリシーと信頼ポリシーの 2 つのポリシーが追加されました。

  4. 次のように、ビルドロール ARN を取得します。

    1. ナビゲーションペインで、[ロール] を選択します。

    2. 検索ボックスに、先ほど作成したロールの名前 () を入力しますcodecatalyst-SAM-deploy-role

    3. リストからロールを選択します。

      ロールの概要ページが表示されます。

    4. 上部に ARN 値をコピーします。

    これで、適切なアクセス許可を持つビルドロールが作成され、その ARN が取得されました。