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:授 CodeDeploy予部署所需的存取權 AWS Lambda 和任何其他資源的權限。

     

  • AWSCodeDeployRoleForECS:授 CodeDeploy 予存取 Amazon ECS 和部署所需任何其他資源的權限。

     

  • AWSCodeDeployRoleForECSLimited:授 CodeDeploy予存取 Amazon ECS 和部署所需的任何其他資源的權限,但下列例外:

    • 在 AppSpec 檔案的hooks區段中,只能使用名稱開頭為的 CodeDeployHook_ Lambda 函數。如需詳細資訊,請參閱 AppSpec Amazon ECS 部署的「掛鉤」部分

    • S3 儲存貯體的存取權限制為具有註冊標籤 UseWithCodeDeploy 且值為 true 的 S3 儲存貯體。如需詳細資訊,請參閱物件標籤

  • AmazonEC2RoleforAWSCodeDeployLimited:授 CodeDeploy 予取得和列出 CodeDeploy Amazon S3 儲存貯體中物件的權限。該策略包含以下代碼:

    { "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" } } } ] }

部署程序某些層面的權限會授與其他兩種代表作業的角色類型 CodeDeploy:

  • IAM 執行個體設定檔是您附加到 Amazon EC2 執行個體的 IAM 角色。此設定檔包括存取存放應用程式的 Amazon S3 儲存貯體或存 GitHub 放庫所需的許可。如需詳細資訊,請參閱 步驟 4:為您的 Amazon EC2 執行個體建立 IAM 執行個體設定檔

  • 服務角色是一種 IAM 角色,可授予 AWS 服務許可,以便它可以存取 AWS 資源。您附加至服務角色的原則會決定服務可存取哪些 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