

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

# 允許使用者與 CodeBuild 互動
<a name="setting-up-service-permissions-group"></a>

如果您 AWS CodeBuild 第一次遵循 中的步驟[開始使用主控台](getting-started-overview.md#getting-started)來存取 ，則很可能不需要本主題中的資訊。不過，當您繼續使用 CodeBuild 時，您可能想要執行一些動作，例如讓組織中的其他使用者和群組能夠與 CodeBuild 互動。

若要允許 IAM 使用者或群組與之互動 AWS CodeBuild，您必須授予他們 CodeBuild 的存取許可。本節說明如何使用 IAM 主控台或 執行此操作 AWS CLI。

如果您將使用 AWS 根帳戶 （不建議） 或 AWS 帳戶中的管理員使用者存取 CodeBuild，則不需要遵循這些指示。

如需有關 AWS 根帳戶和管理員使用者的資訊，請參閱[《 使用者指南》中的 AWS 帳戶 根使用者](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html)和[建立您的第一個 AWS 帳戶 根使用者和群組](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html)。 **<a name="setting-up-service-permissions-group-console"></a>

**將 CodeBuild 存取許可新增至 IAM 群組或使用者 （主控台）**

1. 前往 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

   您應該已使用下列其中一項 AWS 管理主控台 登入 ：
   + 您的 AWS 根帳戶。此為不建議的選項。如需詳細資訊，請參閱[《 使用者指南》中的 AWS 帳戶 根使用者](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html)。 **
   + 您 AWS 帳戶中的管理員使用者。如需詳細資訊，請參閱《 *使用者指南*》中的[建立您的第一個 AWS 帳戶 根使用者和群組](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html)。
   + 您 AWS 帳戶中具有執行下列最低動作集之許可的使用者：

     ```
     iam:AttachGroupPolicy
     iam:AttachUserPolicy
     iam:CreatePolicy
     iam:ListAttachedGroupPolicies
     iam:ListAttachedUserPolicies
     iam:ListGroups
     iam:ListPolicies
     iam:ListUsers
     ```

     如需詳細資訊，請參閱《 *使用者指南*》中的 [IAM 政策概觀](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)。

1. 在導覽窗格中，選擇**政策**。

1. 若要將一組自訂 AWS CodeBuild 存取許可新增至 IAM 群組或 IAM 使用者，請跳到此程序的步驟 4。

   若要將一組預設的 CodeBuild 存取許可新增至 IAM 群組或 IAM 使用者，請選擇**政策類型**、**AWS 受**管，然後執行下列動作：
   + 若要新增 CodeBuild 的完整存取許可，請選取名為 **AWSCodeBuildAdminAccess** 的方塊，選擇**政策動作**，然後選擇**連接**。選取目標 IAM 群組或使用者旁的方塊，然後選擇**連接政策**。對名為 **AmazonS3ReadOnlyAccess** 和 **IAMFullAccess** 的政策，重複此步驟。
   + 若要針對組建專案管理以外的所有項目新增 CodeBuild 的存取許可，請選取名為 **AWSCodeBuildDeveloperAccess** 的方塊，選擇**政策動作**，然後選擇**連接**。選取目標 IAM 群組或使用者旁的方塊，然後選擇**連接政策**。對名為 **AmazonS3ReadOnlyAccess** 的政策，重複此步驟。
   + 若要將唯讀存取許可新增至 CodeBuild，請選取名為 **AWSCodeBuildReadOnlyAccess** 的方塊。選取目標 IAM 群組或使用者旁的方塊，然後選擇**連接政策**。對名為 **AmazonS3ReadOnlyAccess** 的政策，重複此步驟。

   您現在已將一組預設的 CodeBuild 存取許可新增至 IAM 群組或使用者。略過此程序的其餘步驟。

1. 選擇**建立政策**。

1. 在**建立政策**頁面的**建立您自己的政策**旁，選擇**選取**。

1. 在 **Review Policy (檢閱政策)** 頁面的 **Policy Name (政策名稱)** 中，輸入政策的名稱 (例如 **CodeBuildAccessPolicy**)。如果您使用不同的名稱，請務必在本程序中一律使用該名稱。

1. 針對 **Policy Document (政策文件)**，輸入下列項目，然後選擇 **Create Policy (建立政策)**。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "CodeBuildAccessPolicy",
               "Effect": "Allow",
               "Action": [
                   "codebuild:*"
               ],
               "Resource": "*"
           },
           {
               "Sid": "CodeBuildRolePolicy",
               "Effect": "Allow",
               "Action": [
                   "iam:PassRole"
               ],
               "Resource": "arn:aws:iam::111122223333:role/role-name"
           },
           {
               "Sid": "CloudWatchLogsAccessPolicy",
               "Effect": "Allow",
               "Action": [
                   "logs:FilterLogEvents",
                   "logs:GetLogEvents"
               ],
               "Resource": "*"
           },
           {
               "Sid": "S3AccessPolicy",
               "Effect": "Allow",
               "Action": [
                   "s3:CreateBucket",
                   "s3:GetObject",
                   "s3:List*",
                   "s3:PutObject"
               ],
               "Resource": "*"
           },
           {
               "Sid": "S3BucketIdentity",
               "Effect": "Allow",
               "Action": [
                   "s3:GetBucketAcl",
                   "s3:GetBucketLocation"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------
**注意**  
此政策允許存取所有 CodeBuild 動作和可能大量的 AWS 資源。若要限制特定 CodeBuild 動作的許可，請在 CodeBuild 政策陳述式`codebuild:*`中變更 的值。如需詳細資訊，請參閱[身分與存取管理](auth-and-access-control.md)。若要限制對特定 AWS 資源的存取，請變更`Resource`物件的值。如需詳細資訊，請參閱[身分與存取管理](auth-and-access-control.md)。

1. 在導覽窗格中，選擇**Groups (群組)** 或 **Users (使用者)**。

1. 在群組或使用者清單中，選擇您要新增 CodeBuild 存取許可的 IAM 群組或 IAM 使用者名稱。

1. 如果是群組，請在群組設定頁面的 **Permissions (許可)** 索引標籤上，展開 **Managed Policies (受管政策)**，然後選擇 **Attach Policy (連接政策)**。

   如果是使用者，請在使用者設定頁面的 **Permissions (許可)** 索引標籤上，選擇 **Add permissions (新增許可)**。

1. 對於群組，在**連接政策**頁面上，選取 **CodeBuildAccessPolicy**，然後選擇**連接政策**。

   對於使用者，在**新增許可**頁面上，選擇**直接連接現有政策**。選取 **CodeBuildAccessPolicy**，選擇**下一步：檢閱**，然後選擇**新增許可**。<a name="setting-up-service-permissions-group-cli"></a>

**將 CodeBuild 存取許可新增至 IAM 群組或使用者 (AWS CLI)**

1. 請確定您已 AWS CLI 使用對應至其中一個 IAM 實體的 AWS 存取金鑰和 AWS 私密存取金鑰來設定 ，如先前程序所述。如需詳細資訊，請參閱*AWS Command Line Interface 《 使用者指南*》中的[設定 AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-set-up.html)。

1. 若要將一組自訂 AWS CodeBuild 存取許可新增至 IAM 群組或 IAM 使用者，請跳至此程序的步驟 3。

   若要將一組預設的 CodeBuild 存取許可新增至 IAM 群組或 IAM 使用者，請執行下列動作：

   執行下列其中一個命令，取決於您要將許可新增至 IAM 群組或使用者：

   ```
   aws iam attach-group-policy --group-name group-name --policy-arn policy-arn
   
   aws iam attach-user-policy --user-name user-name --policy-arn policy-arn
   ```

   您必須執行 命令三次，以 IAM 群組名稱或使用者名稱取代 *group-name* 或 *user-name*，並針對下列每個政策 Amazon Resource Name (ARNs) 取代 *policy-arn* 一次：
   + 若要將完整存取許可新增至 CodeBuild，請使用下列政策 ARNs：
     + `arn:aws:iam::aws:policy/AWSCodeBuildAdminAccess`
     + `arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess`
     + `arn:aws:iam::aws:policy/IAMFullAccess`
   + 若要針對組建專案管理以外的所有項目新增 CodeBuild 的存取許可，請使用下列政策 ARNs：
     + `arn:aws:iam::aws:policy/AWSCodeBuildDeveloperAccess`
     + `arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess`
   + 若要將唯讀存取許可新增至 CodeBuild，請使用下列政策 ARNs：
     + `arn:aws:iam::aws:policy/AWSCodeBuildReadOnlyAccess`
     + `arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess`

   您現在已將一組預設的 CodeBuild 存取許可新增至 IAM 群組或使用者。略過此程序的其餘步驟。

1. 在 AWS CLI 安裝 的本機工作站或執行個體上的空目錄中，建立名為 `put-group-policy.json`或 的檔案`put-user-policy.json`。如果您使用不同的檔案名稱，請務必在本程序中一律使用該檔案名稱。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "CodeBuildAccessPolicy",
               "Effect": "Allow",
               "Action": [
                   "codebuild:*"
               ],
               "Resource": "*"
           },
           {
               "Sid": "CodeBuildRolePolicy",
               "Effect": "Allow",
               "Action": [
                   "iam:PassRole"
               ],
               "Resource": "arn:aws:iam::111122223333:role/role-name"
           },
           {
               "Sid": "CloudWatchLogsAccessPolicy",
               "Effect": "Allow",
               "Action": [
                   "logs:FilterLogEvents",
                   "logs:GetLogEvents"
               ],
               "Resource": "*"
           },
           {
               "Sid": "S3AccessPolicy",
               "Effect": "Allow",
               "Action": [
                   "s3:CreateBucket",
                   "s3:GetObject",
                   "s3:List*",
                   "s3:PutObject"
               ],
               "Resource": "*"
           },
           {
               "Sid": "S3BucketIdentity",
               "Effect": "Allow",
               "Action": [
                   "s3:GetBucketAcl",
                   "s3:GetBucketLocation"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------
**注意**  
此政策允許存取所有 CodeBuild 動作和可能大量的 AWS 資源。若要限制特定 CodeBuild 動作的許可，請在 CodeBuild 政策陳述式`codebuild:*`中變更 的值。如需詳細資訊，請參閱[身分與存取管理](auth-and-access-control.md)。若要限制對特定 AWS 資源的存取，請變更相關`Resource`物件的值。如需詳細資訊，請參閱[身分與存取管理](auth-and-access-control.md)或特定 AWS 服務的安全文件。

1. 切換到您已儲存檔案的目錄，然後執行下列其中一個命令。您可以對 `CodeBuildGroupAccessPolicy` 和 `CodeBuildUserAccessPolicy` 使用不同的值。如果您使用不同的值，請務必在此處使用這些值。

   對於 IAM 群組：

   ```
   aws iam put-group-policy --group-name group-name --policy-name CodeBuildGroupAccessPolicy --policy-document file://put-group-policy.json
   ```

   如果是 使用者：

   ```
   aws iam put-user-policy --user-name user-name --policy-name CodeBuildUserAccessPolicy --policy-document file://put-user-policy.json
   ```

   在上述命令中，將 *group-name* 或 *user-name* 取代為目標 IAM 群組或使用者名稱。