

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Memungkinkan CodeBuild untuk berinteraksi dengan AWS layanan lain
<a name="setting-up-service-role"></a>

Jika Anda mengikuti langkah-langkah [Memulai menggunakan konsol](getting-started-overview.md#getting-started) untuk mengakses AWS CodeBuild untuk pertama kalinya, kemungkinan besar Anda tidak memerlukan informasi dalam topik ini. Namun, saat Anda terus menggunakan CodeBuild, Anda mungkin ingin melakukan hal-hal seperti memungkinkan CodeBuild untuk berinteraksi dengan AWS layanan lain.

 CodeBuild Untuk memungkinkan berinteraksi dengan AWS layanan dependen atas nama Anda, Anda memerlukan peran AWS CodeBuild layanan. Anda dapat membuat peran CodeBuild layanan dengan menggunakan CodeBuild atau AWS CodePipeline konsol. Untuk informasi, lihat:
+ [Buat proyek build (konsol)](create-project.md#create-project-console)
+ [Buat pipeline yang menggunakan CodeBuild (CodePipeline konsol)](how-to-create-pipeline-console.md)
+ [Menambahkan aksi CodeBuild build ke pipeline (CodePipeline konsol)](how-to-create-pipeline-add.md)
+ [Mengubah setelan proyek build (konsol)](change-project.md#change-project-console)

Jika Anda tidak berencana untuk menggunakan konsol ini, bagian ini menjelaskan cara membuat peran CodeBuild layanan dengan konsol IAM atau. AWS CLI

**penting**  
CodeBuild menggunakan peran layanan untuk semua operasi yang dilakukan atas nama Anda. Jika peran tersebut mencakup izin yang seharusnya tidak dimiliki pengguna, Anda dapat secara tidak sengaja meningkatkan izin pengguna. Pastikan peran memberikan [keistimewaan paling rendah](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege).  
Peran layanan yang dijelaskan di halaman ini berisi kebijakan yang memberikan izin minimum yang diperlukan untuk digunakan. CodeBuild Anda mungkin perlu menambahkan izin tambahan, tergantung pada kasus penggunaan Anda.<a name="setting-up-service-role-console"></a>

**Untuk membuat peran CodeBuild layanan (konsol)**

1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   Anda seharusnya sudah masuk ke konsol dengan menggunakan salah satu dari berikut ini:
   + Akun AWS root Anda. Ini tidak disarankan. Untuk informasi selengkapnya, lihat [Pengguna Akun AWS root](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html) di *Panduan pengguna*.
   + Pengguna administrator di AWS akun Anda. Untuk informasi selengkapnya, lihat [Membuat pengguna Akun AWS root dan Grup Pertama Anda](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html) di *Panduan pengguna*.
   + Pengguna di AWS akun Anda dengan izin untuk melakukan serangkaian tindakan minimum berikut:

     ```
     iam:AddRoleToInstanceProfile
     iam:AttachRolePolicy
     iam:CreateInstanceProfile
     iam:CreatePolicy
     iam:CreateRole
     iam:GetRole
     iam:ListAttachedRolePolicies
     iam:ListPolicies
     iam:ListRoles
     iam:PassRole
     iam:PutRolePolicy
     iam:UpdateAssumeRolePolicy
     ```

     Untuk informasi selengkapnya, lihat [Ikhtisar Kebijakan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) di *Panduan pengguna*.

1. Di panel navigasi, pilih **Kebijakan**.

1. Pilih **Buat Kebijakan**.

1. Pada halaman **Buat Kebijakan**, pilih **JSON**.

1. Untuk kebijakan JSON, masukkan yang berikut ini, lalu pilih **Kebijakan Tinjauan**:

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "CloudWatchLogsPolicy",
         "Effect": "Allow",
         "Action": [
           "logs:CreateLogGroup",
           "logs:CreateLogStream",
           "logs:PutLogEvents"
         ],
         "Resource": "*"
       },
       {
         "Sid": "CodeCommitPolicy",
         "Effect": "Allow",
         "Action": [
           "codecommit:GitPull"
         ],
         "Resource": "*"
       },
       {
         "Sid": "S3GetObjectPolicy",
         "Effect": "Allow",
         "Action": [
           "s3:GetObject",
           "s3:GetObjectVersion"
         ],
         "Resource": "*"
       },
       {
         "Sid": "S3PutObjectPolicy",
         "Effect": "Allow",
         "Action": [
           "s3:PutObject"
         ],
         "Resource": "*"
       },
       {
         "Sid": "ECRPullPolicy",
         "Effect": "Allow",
         "Action": [
           "ecr:BatchCheckLayerAvailability",
           "ecr:GetDownloadUrlForLayer",
           "ecr:BatchGetImage"
         ],
         "Resource": "*"
       },
       {
         "Sid": "ECRAuthPolicy",
         "Effect": "Allow",
         "Action": [
           "ecr:GetAuthorizationToken"
         ],
         "Resource": "*"
       },
       {
         "Sid": "S3BucketIdentity",
         "Effect": "Allow",
         "Action": [
           "s3:GetBucketAcl",
           "s3:GetBucketLocation"
         ],
         "Resource": "*"
       }
     ]
   }
   ```

------
**catatan**  
Kebijakan ini berisi pernyataan yang memungkinkan akses ke sejumlah besar AWS sumber daya yang berpotensi besar. Untuk membatasi AWS CodeBuild akses AWS sumber daya tertentu, ubah nilai `Resource` array. Untuk informasi selengkapnya, lihat dokumentasi keamanan untuk AWS layanan ini.

1. Pada halaman **Kebijakan Tinjauan**, untuk **Nama Kebijakan**, masukkan nama untuk kebijakan (misalnya,**CodeBuildServiceRolePolicy**), lalu pilih **Buat kebijakan**.
**catatan**  
Jika Anda menggunakan nama yang berbeda, pastikan untuk menggunakannya selama prosedur ini.

1. Di panel navigasi, pilih **Peran**.

1. Pilih **Buat peran**.

1. Pada halaman **Buat peran**, dengan **AWS Layanan** sudah dipilih, pilih **CodeBuild**, lalu pilih **Berikutnya:Izin**.

1. Pada halaman **Lampirkan kebijakan izin**, pilih **CodeBuildServiceRolePolicy**, lalu pilih **Berikutnya: Tinjau**.

1. Pada halaman **Buat peran dan ulasan**, untuk **nama Peran**, masukkan nama untuk peran (misalnya,**CodeBuildServiceRole**), lalu pilih **Buat peran**.<a name="setting-up-service-role-cli"></a>

**Untuk membuat peran CodeBuild layanan (AWS CLI)**

1. Pastikan Anda telah mengonfigurasi AWS CLI dengan kunci AWS akses dan kunci akses AWS rahasia yang sesuai dengan salah satu entitas IAM, seperti yang dijelaskan dalam prosedur sebelumnya. Untuk informasi selengkapnya, lihat [Menyiapkan AWS Command Line Interface dengan](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-set-up.html) *Panduan AWS Command Line Interface Pengguna*.

1. Dalam direktori kosong di workstation lokal atau contoh di mana diinstal, buat dua file bernama `create-role.json` dan`put-role-policy.json`. AWS CLI Jika Anda memilih nama file yang berbeda, pastikan untuk menggunakannya selama prosedur ini.

   `create-role.json`:

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "codebuild.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------
**catatan**  
Kami menyarankan Anda menggunakan kunci syarat `aws:SourceAccount` dan `aws:SourceArn` untuk melindungi diri Anda dari [masalah wakil yang membingungkan](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html). Misalnya, Anda dapat mengedit kebijakan kepercayaan sebelumnya dengan blok kondisi berikut. `aws:SourceAccount`Itu adalah pemilik CodeBuild proyek dan `aws:SourceArn` adalah CodeBuild proyek ARN.

   Jika Anda ingin membatasi peran layanan Anda ke AWS akun, `create-role.json` mungkin terlihat mirip dengan ini:

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "codebuild.amazonaws.com"
               },
               "Action": "sts:AssumeRole",
               "Condition": {
                   "StringEquals": {
                       "aws:SourceAccount": [
                           "111122223333"
                       ]
                   }
               }
           }
       ]
   }
   ```

------

   Jika Anda ingin membatasi peran layanan Anda ke CodeBuild proyek tertentu, `create-role.json` mungkin terlihat mirip dengan ini:

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "codebuild.amazonaws.com"
               },
               "Action": "sts:AssumeRole",
               "Condition": {
                   "StringEquals": {
                       "aws:SourceArn": "arn:aws:codebuild:us-east-1:111122223333:project/MyProject"
                   }
               }
           }
       ]
   }
   ```

------
**catatan**  
Jika Anda tidak tahu atau belum memutuskan nama untuk CodeBuild proyek Anda dan menginginkan pembatasan kebijakan kepercayaan pada pola ARN tertentu, Anda dapat mengganti bagian ARN tersebut dengan wildcard (\$1). Setelah Anda membuat proyek Anda, Anda kemudian dapat memperbarui kebijakan kepercayaan.

   `put-role-policy.json`:

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "CloudWatchLogsPolicy",
         "Effect": "Allow",
         "Action": [
           "logs:CreateLogGroup",
           "logs:CreateLogStream",
           "logs:PutLogEvents"
         ],
         "Resource": "*"
       },
       {
         "Sid": "CodeCommitPolicy",
         "Effect": "Allow",
         "Action": [
           "codecommit:GitPull"
         ],
         "Resource": "*"
       },
       {
         "Sid": "S3GetObjectPolicy",
         "Effect": "Allow",
         "Action": [
           "s3:GetObject",
           "s3:GetObjectVersion"
         ],
         "Resource": "*"
       },
       {
         "Sid": "S3PutObjectPolicy",
         "Effect": "Allow",
         "Action": [
           "s3:PutObject"
         ],
         "Resource": "*"
       },
       {
         "Sid": "S3BucketIdentity",
         "Effect": "Allow",
         "Action": [
           "s3:GetBucketAcl",
           "s3:GetBucketLocation"
         ],
         "Resource": "*"
       }
     ]
   }
   ```

------
**catatan**  
Kebijakan ini berisi pernyataan yang memungkinkan akses ke sejumlah besar AWS sumber daya yang berpotensi besar. Untuk membatasi AWS CodeBuild akses AWS sumber daya tertentu, ubah nilai `Resource` array. Untuk informasi selengkapnya, lihat dokumentasi keamanan untuk AWS layanan ini.

1. Beralih ke direktori tempat Anda menyimpan file sebelumnya, lalu jalankan dua perintah berikut, satu per satu, dalam urutan ini. Anda dapat menggunakan nilai yang berbeda untuk `CodeBuildServiceRole` dan`CodeBuildServiceRolePolicy`, tetapi pastikan untuk menggunakannya di sini.

   ```
   aws iam create-role --role-name CodeBuildServiceRole --assume-role-policy-document file://create-role.json
   ```

   ```
   aws iam put-role-policy --role-name CodeBuildServiceRole --policy-name CodeBuildServiceRolePolicy --policy-document file://put-role-policy.json
   ```