AWS の 管理 (事前定義) ポリシー CodeDeploy - AWS CodeDeploy

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

AWS の 管理 (事前定義) ポリシー CodeDeploy

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

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

    • 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 IAMインスタンスのEC2インスタンスプロファイルを作成する」を参照してください。

  • サービスロールは、 サービスが 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 および通知の詳細については、「 の Identity and Access Management」を参照してください。AWS CodeStar 通知