AWS の マネージド (事前定義) ポリシー CodeDeploy - AWS CodeDeploy

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

AWS の マネージド (事前定義) ポリシー CodeDeploy

AWS は、 によって作成および管理されるスタンドアロン IAM ポリシーを提供することで、多くの一般的なユースケースに対処します AWS。これらの AWS管理ポリシーは、一般的なユースケースに対するアクセス許可を付与するため、どのアクセス許可が必要かを調査する必要がなくなります。詳細については、「IAM ユーザーガイド」の「AWS 管理ポリシー」を参照してください。

の AWS 管理ポリシーのリスト CodeDeploy

アカウントのユーザーにアタッチできる次の AWS マネージドポリシーは、 に固有です CodeDeploy。

  • AWSCodeDeployFullAccess: CodeDeploy へのフルアクセス権を付与します。

    注記

    AWSCodeDeployFullAccess は、Amazon EC2 や Amazon S3 など、アプリケーションをデプロイするために必要な他の サービスのオペレーションに対するアクセス許可を、 に固有のオペレーションにのみ提供しません CodeDeploy。

  • AWSCodeDeployDeployerAccess: リビジョンを登録してデプロイする権限を許可します。

     

  • AWSCodeDeployReadOnlyAccess: CodeDeploy への読み取り専用アクセス権を付与します。

     

  • AWSCodeDeployRole: 次の CodeDeploy ことを許可します。

    • インスタンスのタグを読み取る、または Amazon EC2 Auto Scaling グループ名により Amazon EC2 インスタンスを識別する

    • Amazon EC2 Auto Scaling グループ、ライフサイクルフック、スケーリングポリシー、ウォームプールの機能の読み取り、作成、更新、削除を行う

    • Amazon SNS トピックに情報を公開

    • Amazon 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:CreateOrUpdateTags", "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:DescribeScalingActivities", "autoscaling:DeleteAutoScalingGroup", "autoscaling:PutWarmPool", "ec2:DescribeInstances", "ec2:DescribeInstanceStatus", "ec2:TerminateInstances", "tag:GetResources", "sns:Publish", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "elasticloadbalancing:DescribeLoadBalancers", "elasticloadbalancing:DescribeLoadBalancerAttributes", "elasticloadbalancing:DescribeInstanceHealth", "elasticloadbalancing:RegisterInstancesWithLoadBalancer", "elasticloadbalancing:DeregisterInstancesFromLoadBalancer", "elasticloadbalancing:DescribeTargetGroups", "elasticloadbalancing:DescribeTargetGroupAttributes", "elasticloadbalancing:DescribeTargetHealth", "elasticloadbalancing:RegisterTargets", "elasticloadbalancing:DeregisterTargets" ], "Resource": "*" } ] }

     

  • AWSCodeDeployRoleForLambda: デプロイに必要な AWS Lambda およびその他のリソースにアクセスするアクセス許可を付与 CodeDeployします。

     

  • AWSCodeDeployRoleForECS: デプロイに必要な Amazon ECS およびその他のリソースにアクセスするアクセス CodeDeploy 許可を付与します。

     

  • AWSCodeDeployRoleForECSLimited: CodeDeployデプロイに必要な Amazon ECS およびその他のリソースにアクセスするアクセス許可を付与します。ただし、以下の例外があります。

    • AppSpec ファイルの hooksセクションでは、名前が で始まる Lambda 関数のみCodeDeployHook_を使用できます。詳細については、「AppSpec Amazon ECS デプロイの「フック」セクション」を参照してください。

    • S3 バケットへのアクセスは、UseWithCodeDeploy の値の登録タグを持つ true で S3 バケットに限定されます。詳細については、「オブジェクトのタグ付け」を参照してください。

  • AmazonEC2RoleforAWSCodeDeployLimited: CodeDeploy Amazon S3 バケット内のオブジェクトを取得して一覧表示する CodeDeploy アクセス許可を付与します。ポリシーには、次の規定が含まれます。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:ListBucket" ], "Resource": "arn:aws:s3:::*/CodeDeploy/*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "*", "Condition": { "StringEquals": { "s3:ExistingObjectTag/UseWithCodeDeploy": "true" } } } ] }

デプロイプロセスの一部の側面に対するアクセス許可は、 に代わって動作する他の 2 つのロールタイプに付与されます CodeDeploy。

  • IAM インスタンスプロファイルは、Amazon EC2 インスタンス にアタッチする IAM ロールです。このプロファイルには、アプリケーションが保存されている Amazon S3 バケットまたは GitHub リポジトリにアクセスするために必要なアクセス許可が含まれます。詳細については、「ステップ 4: Amazon EC2 インスタンス用の IAM インスタンスプロファイルを作成する」を参照してください。

  • サービスロールは、 サービスが AWS リソースにアクセスできるように AWS サービスにアクセス許可を付与する IAM ロールです。サービスロールにアタッチするポリシーによって、サービスがアクセスできる AWS リソースと、それらのリソースで実行できるアクションが決まります。の場合 CodeDeploy、サービスロールは以下に使用されます。

    • インスタンスに適用されているタグやインスタンスに関連付けられている Amazon EC2 Auto Scaling グループ名を読み取ることができます。これにより、 CodeDeploy はアプリケーションをデプロイできるインスタンスを識別できます。

    • インスタンス、Amazon EC2 Auto Scaling グループ、および Elastic Load Balancing ロードバランサーでオペレーションを実行するには。

    • 指定したデプロイまたはインスタンスイベントが発生したときに通知を送信できるように、Amazon SNS トピックに情報を公開すること。

    • CloudWatch アラームに関する情報を取得して、デプロイのアラームモニタリングを設定します。

    詳細については、「ステップ 2: のサービスロールを作成する CodeDeploy」を参照してください。

カスタム IAM ポリシーを作成して、アクションとリソースの CodeDeployアクセス許可を付与することもできます。こうしたカスタムポリシーを IAM ロールにアタッチし、ロールをアクセス許可が必要なユーザーまたはグループに割り当てます。

CodeDeploy マネージドポリシーと通知

CodeDeploy は、デプロイの重要な変更をユーザーに通知できる通知をサポートしています。の管理ポリシーには、通知機能のポリシーステートメント CodeDeploy が含まれます。詳細については、通知とは を参照してください。

フルアクセスマネージドポリシーの通知に関連するアクセス許可

AWSCodeDeployFullAccess マネージドポリシーには、通知へのフルアクセスを許可する次のステートメントが含まれています。これらのマネージドポリシーのいずれかが適用されたユーザーは、通知の Amazon SNS トピックの作成と管理、トピックに対するユーザーのサブスクライブとサブスクライブ解除、通知ルールのターゲットとして選択するトピックの一覧表示、Slack 用に設定された AWS Chatbot クライアントの一覧表示を行うこともできます。

{ "Sid": "CodeStarNotificationsReadWriteAccess", "Effect": "Allow", "Action": [ "codestar-notifications:CreateNotificationRule", "codestar-notifications:DescribeNotificationRule", "codestar-notifications:UpdateNotificationRule", "codestar-notifications:DeleteNotificationRule", "codestar-notifications:Subscribe", "codestar-notifications:Unsubscribe" ], "Resource": "*", "Condition" : { "StringLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codedeploy:*"} } }, { "Sid": "CodeStarNotificationsListAccess", "Effect": "Allow", "Action": [ "codestar-notifications:ListNotificationRules", "codestar-notifications:ListTargets", "codestar-notifications:ListTagsforResource", "codestar-notifications:ListEventTypes" ], "Resource": "*" }, { "Sid": "CodeStarNotificationsSNSTopicCreateAccess", "Effect": "Allow", "Action": [ "sns:CreateTopic", "sns:SetTopicAttributes" ], "Resource": "arn:aws:sns:*:*:codestar-notifications*" }, { "Sid": "SNSTopicListAccess", "Effect": "Allow", "Action": [ "sns:ListTopics" ], "Resource": "*" }, { "Sid": "CodeStarNotificationsChatbotAccess", "Effect": "Allow", "Action": [ "chatbot:DescribeSlackChannelConfigurations", "chatbot:ListMicrosoftTeamsChannelConfigurations" ], "Resource": "*" }

読み取り専用マネージドポリシーの通知に関連するアクセス許可

AWSCodeDeployReadOnlyAccess マネージドポリシーには、通知への読み取り専用アクセスを許可する以下のステートメントが含まれています。このポリシーを適用したユーザーは、リソースの通知を表示できますが、リソースを作成、管理、サブスクライブすることはできません。

{ "Sid": "CodeStarNotificationsPowerUserAccess", "Effect": "Allow", "Action": [ "codestar-notifications:DescribeNotificationRule" ], "Resource": "*", "Condition" : { "StringLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codedeploy:*"} } }, { "Sid": "CodeStarNotificationsListAccess", "Effect": "Allow", "Action": [ "codestar-notifications:ListNotificationRules", "codestar-notifications:ListEventTypes", "codestar-notifications:ListTargets" ], "Resource": "*" }

IAM と通知の詳細については、「AWS CodeStar Notifications の Identity and Access Management」を参照してください。