

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# AWS CodeDeploy 的受管 （預先定義） 政策
<a name="managed-policies"></a>

AWS 提供由 建立和管理的獨立 IAM 政策，以解決許多常見的使用案例 AWS。這些 AWS受管政策會授予常見使用案例的許可，因此您可以避免調查需要哪些許可。如需詳細資訊，請參閱 *IAM 使用者指南*中的 [AWS 受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)。

**Topics**
+ [CodeDeploy 的 AWS 受管政策清單](#managed-policies-list)
+ [CodeDeploy 受管政策和通知](#notifications-permissions)

## CodeDeploy 的 AWS 受管政策清單
<a name="managed-policies-list"></a>

下列 AWS 受管政策是 CodeDeploy 特有的，您可以連接到您帳戶中的使用者：
+ `AWSCodeDeployFullAccess`：授予 CodeDeploy 的完整存取權。

   
**注意**  
AWSCodeDeployFullAccess 不會為部署應用程式所需的其他服務中的操作提供許可，例如 Amazon EC2 和 Amazon S3，僅適用於 CodeDeploy 特定的操作。
+ `AWSCodeDeployDeployerAccess`：授予註冊和部署修訂的許可。

   
+ `AWSCodeDeployReadOnlyAccess`：授予 CodeDeploy 的唯讀存取權。

   
+ <a name="ACD-policy"></a>`AWSCodeDeployRole`：允許 CodeDeploy：
  + 讀取執行個體上的標籤，或依 Amazon EC2 Auto Scaling 群組名稱識別 Amazon EC2 執行個體
  + 讀取、建立、更新和刪除 Amazon EC2 Auto Scaling 群組、生命週期關聯、擴展政策和暖集區功能
  + 發佈資訊至 Amazon SNS 主題
  + 擷取 Amazon CloudWatch 警示的相關資訊
  + 讀取和更新 Elastic Load Balancing 服務中的資源

  政策包含下列程式碼：

------
#### [ JSON ]

****  

  ```
  {
    "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`區段中，只能使用名稱開頭為 的 Lambda `CodeDeployHook_` 函數。如需詳細資訊，請參閱[Amazon ECS 部署的 AppSpec 'hooks' 區段](reference-appspec-file-structure-hooks.md#appspec-hooks-ecs)。
  +  S3 儲存貯體的存取權限制為具有註冊標籤 `UseWithCodeDeploy` 且值為 `true` 的 S3 儲存貯體。如需詳細資訊，請參閱[物件標記](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-tagging.html)。
+ <a name="EC2-policy"></a>`AmazonEC2RoleforAWSCodeDeployLimited`：授予 CodeDeploy 許可，以取得和列出 CodeDeploy Amazon S3 儲存貯體中的物件。政策包含下列程式碼：

------
#### [ JSON ]

****  

  ```
  {
      "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 執行個體描述檔](getting-started-create-iam-instance-profile.md)。
+ *服務角色*是一種 IAM 角色，可授予 AWS 服務的許可，使其可以存取 AWS 資源。您連接到服務角色的政策會決定服務可存取哪些 AWS 資源，以及該服務可以對這些資源執行的動作。對於 CodeDeploy，服務角色用於下列項目：
  + 讀取套用至執行個體的標籤或與執行個體相關聯的 Amazon EC2 Auto Scaling 群組名稱。這可讓 CodeDeploy 識別可部署應用程式的執行個體。
  + 在執行個體、Amazon EC2 Auto Scaling 群組和 Elastic Load Balancing 負載平衡器上執行操作。
  + 將資訊發佈至 Amazon SNS 主題，以便在發生指定的部署或執行個體事件時傳送通知。
  + 擷取 CloudWatch 警示的相關資訊，以設定部署的警示監控。

  如需詳細資訊，請參閱[步驟 2：建立 CodeDeploy 的服務角色](getting-started-create-service-role.md)。

您也可以建立自訂 IAM 政策，以授予 CodeDeploy 動作和資源的許可。您可以將這些自訂政策連接至 IAM 角色，然後將角色指派給需要許可的使用者或群組。

## CodeDeploy 受管政策和通知
<a name="notifications-permissions"></a>

CodeDeploy 支援通知，讓使用者了解部署的重要變更。CodeDeploy 的受管政策包含通知功能的政策陳述式。如需詳細資訊，請參閱[什麼是通知？](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/welcome.html)。

### 完整存取受管政策中通知的許可
<a name="notifications-fullaccess"></a>

`AWSCodeDeployFullAccess` 受管政策包含下列陳述式，允許對通知的完整存取權限。套用此受管政策的使用者也可以為通知建立和管理 Amazon SNS 主題、訂閱和取消訂閱使用者主題，以及列出要選擇做為通知規則目標的主題。

```
    {
        "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" : {
            "ArnLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codedeploy:*:*:application:*"} 
        }
    },    
    {
        "Sid": "CodeStarNotificationsListAccess",
        "Effect": "Allow",
        "Action": [
            "codestar-notifications:ListNotificationRules",
            "codestar-notifications:ListTargets",
            "codestar-notifications:ListTagsforResource"
        ],
        "Resource": "*"
    },
    {
        "Sid": "CodeStarNotificationsSNSTopicCreateAccess",
        "Effect": "Allow",
        "Action": [
            "sns:CreateTopic",
            "sns:SetTopicAttributes"
        ],
        "Resource": "arn:aws:sns:*:*:codestar-notifications*"
    },
    {
      "Sid" : "CodeStarNotificationsChatbotAccess",
      "Effect" : "Allow",
      "Action" : [
        "chatbot:DescribeSlackChannelConfigurations"
      ],
      "Resource" : "*"
    },
    {
        "Sid": "SNSTopicListAccess",
        "Effect": "Allow",
        "Action": [
            "sns:ListTopics"
        ],
        "Resource": "*"
    }
```

### 唯讀受管政策中通知的許可
<a name="notifications-readonly"></a>

`AWSCodeDeployReadOnlyAccess` 受管政策包含下列陳述式，允許對通知的唯讀存取權限。適用此受管政策的使用者可以檢視資源的通知，但無法建立、管理或訂閱通知。

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

### 其他 受管政策中通知的許可
<a name="notifications-deployer"></a>

`AWSCodeDeployDeployerAccess` 受管政策包含下列陳述式，可讓使用者建立、更新、訂閱和檢視 資源的通知，但無法刪除它們。套用此受管政策的使用者也可以建立和管理通知的 Amazon SNS 主題。

此政策包含執行以下動作的許可：
+ `codestar-notifications:CreateNotificationRule` – 允許主體建立通知。
+ `codestar-notifications:DescribeNotificationRule` – 允許主體擷取通知的相關資訊。
+ `codestar-notifications:UpdateNotificationRule` – 允許主體更新通知。
+ `codestar-notifications:Subscribe` – 允許主體訂閱通知更新。
+ `codestar-notifications:Unsubscribe` – 允許主體取消訂閱通知更新。
+ `codestar-notifications:ListNotificationRules` – 允許主體擷取通知規則清單。
+ `codestar-notifications:ListTargets` – 允許主體擷取目標清單。
+ `codestar-notifications:ListTagsforResource` – 允許主體擷取標籤清單。
+ `codestar-notifications:ListEventTypes` – 允許主體擷取事件類型的清單。
+ `chatbot:DescribeSlackChannelConfiguration` – 允許主體擷取 Slack 頻道組態的相關資訊。
+ `sns:ListTopics` – 允許主體擷取通知的 Amazon SNS 主題清單。

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

如需詳細資訊，請參閱 [ AWS CodeStar Notifications 的身分和存取管理](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/security-iam.html)。