本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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