

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

# Keamanan di AWS CodeBuild
<a name="security"></a>

Keamanan cloud di AWS adalah prioritas tertinggi. Sebagai AWS pelanggan, Anda mendapat manfaat dari pusat data dan arsitektur jaringan yang dibangun untuk memenuhi persyaratan organisasi yang paling sensitif terhadap keamanan.

Keamanan adalah tanggung jawab bersama antara Anda AWS dan Anda. [Model tanggung jawab bersama](https://aws.amazon.com/compliance/shared-responsibility-model/) menggambarkan hal ini sebagai keamanan *dari* cloud dan keamanan *di* cloud:
+ **Keamanan cloud** — AWS bertanggung jawab untuk melindungi infrastruktur yang menjalankan AWS layanan di AWS Cloud. AWS juga memberi Anda layanan yang dapat Anda gunakan dengan aman. Auditor pihak ketiga secara teratur menguji dan memverifikasi keefektifan keamanan kami sebagai bagian dari [program kepatuhan AWS](https://aws.amazon.com/compliance/programs/). Untuk mempelajari tentang program kepatuhan yang berlaku AWS CodeBuild, lihat [AWS Layanan dalam Lingkup berdasarkan Program Kepatuhan](https://aws.amazon.com/compliance/services-in-scope/).
+ **Keamanan di cloud** — Tanggung jawab Anda ditentukan oleh AWS layanan yang Anda gunakan. Anda juga bertanggung jawab atas faktor lain, termasuk sensitivitas data Anda, persyaratan perusahaan Anda, serta undang-undang dan peraturan yang berlaku.

Dokumentasi ini membantu Anda memahami cara menerapkan model tanggung jawab bersama saat menggunakan CodeBuild. Topik berikut menunjukkan cara mengonfigurasi CodeBuild untuk memenuhi tujuan keamanan dan kepatuhan Anda. Anda juga belajar cara menggunakan AWS layanan lain yang membantu Anda memantau dan mengamankan CodeBuild sumber daya Anda.

**Topics**
+ [Perlindungan data di AWS CodeBuild](data-protection.md)
+ [Identitas dan manajemen akses di AWS CodeBuild](auth-and-access-control.md)
+ [Validasi kepatuhan untuk AWS CodeBuild](compliance-validation.md)
+ [Ketahanan di AWS CodeBuild](codebuild-disaster-recovery-resiliency.md)
+ [Keamanan Infrastruktur di AWS CodeBuild](infrastructure-security.md)
+ [Akses penyedia sumber Anda di CodeBuild](access-tokens.md)
+ [Pencegahan "confused deputy" lintas layanan](cross-service-confused-deputy-prevention.md)

# Perlindungan data di AWS CodeBuild
<a name="data-protection"></a>

[Model tanggung jawab AWS bersama model](https://aws.amazon.com/compliance/shared-responsibility-model/) berlaku untuk perlindungan data di AWS CodeBuild. Seperti yang dijelaskan dalam model AWS ini, bertanggung jawab untuk melindungi infrastruktur global yang menjalankan semua AWS Cloud. Anda bertanggung jawab untuk mempertahankan kendali atas konten yang di-host pada infrastruktur ini. Anda juga bertanggung jawab atas tugas-tugas konfigurasi dan manajemen keamanan untuk Layanan AWS yang Anda gunakan. Lihat informasi yang lebih lengkap tentang privasi data dalam [Pertanyaan Umum Privasi Data](https://aws.amazon.com/compliance/data-privacy-faq/). Lihat informasi tentang perlindungan data di Eropa di pos blog [Model Tanggung Jawab Bersama dan GDPR AWS](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) di *Blog Keamanan AWS *.

Untuk tujuan perlindungan data, kami menyarankan Anda melindungi Akun AWS kredensil dan mengatur pengguna individu dengan AWS IAM Identity Center atau AWS Identity and Access Management (IAM). Dengan cara itu, setiap pengguna hanya diberi izin yang diperlukan untuk memenuhi tanggung jawab tugasnya. Kami juga menyarankan supaya Anda mengamankan data dengan cara-cara berikut:
+ Gunakan autentikasi multi-faktor (MFA) pada setiap akun.
+ Gunakan SSL/TLS untuk berkomunikasi dengan AWS sumber daya. Kami mensyaratkan TLS 1.2 dan menganjurkan TLS 1.3.
+ Siapkan API dan logging aktivitas pengguna dengan AWS CloudTrail. Untuk informasi tentang penggunaan CloudTrail jejak untuk menangkap AWS aktivitas, lihat [Bekerja dengan CloudTrail jejak](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html) di *AWS CloudTrail Panduan Pengguna*.
+ Gunakan solusi AWS enkripsi, bersama dengan semua kontrol keamanan default di dalamnya Layanan AWS.
+ Gunakan layanan keamanan terkelola tingkat lanjut seperti Amazon Macie, yang membantu menemukan dan mengamankan data sensitif yang disimpan di Amazon S3.
+ Jika Anda memerlukan modul kriptografi tervalidasi FIPS 140-3 saat mengakses AWS melalui antarmuka baris perintah atau API, gunakan titik akhir FIPS. Lihat informasi selengkapnya tentang titik akhir FIPS yang tersedia di [Standar Pemrosesan Informasi Federal (FIPS) 140-3](https://aws.amazon.com/compliance/fips/).

Kami sangat merekomendasikan agar Anda tidak pernah memasukkan informasi identifikasi yang sensitif, seperti nomor rekening pelanggan Anda, ke dalam tanda atau bidang isian bebas seperti bidang **Nama**. Ini termasuk saat Anda bekerja dengan CodeBuild atau lainnya Layanan AWS menggunakan konsol, API AWS CLI, atau AWS SDKs. Data apa pun yang Anda masukkan ke dalam tanda atau bidang isian bebas yang digunakan untuk nama dapat digunakan untuk log penagihan atau log diagnostik. Saat Anda memberikan URL ke server eksternal, kami sangat menganjurkan supaya Anda tidak menyertakan informasi kredensial di dalam URL untuk memvalidasi permintaan Anda ke server itu.

 Untuk melindungi informasi sensitif, berikut ini disembunyikan di CodeBuild log: 
+  String ditentukan menggunakan Parameter Store dalam variabel lingkungan CodeBuild proyek atau bagian `env/parameter-store` buildspec. Untuk informasi selengkapnya, lihat [panduan konsol [Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-paramstore.html) dan Systems Manager Parameter Store di Panduan](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-walk.html#sysman-paramstore-console) Pengguna *Amazon EC2 Systems* Manager. 
+  String ditentukan menggunakan variabel AWS Secrets Manager lingkungan CodeBuild proyek atau bagian `env/secrets-manager` buildspec. Untuk informasi selengkapnya, lihat [Manajemen kunci](security-key-management.md). 

Untuk informasi selengkapnya tentang perlindungan data, lihat postingan blog [model tanggung tawab bersama AWS dan Peraturan Perlindungan Data Umum (GDPR)](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) di *Blog Keamanan AWS *.

**Topics**
+ [Enkripsi data](security-encryption.md)
+ [Manajemen kunci](security-key-management.md)
+ [Privasi lalu lintas](security-traffic-privacy.md)

# Enkripsi data
<a name="security-encryption"></a>

Enkripsi adalah bagian penting dari CodeBuild keamanan. Beberapa enkripsi, seperti untuk data dalam transit, disediakan secara default dan tidak mengharuskan Anda melakukan apa pun. Enkripsi lain, seperti untuk data saat istirahat, Anda dapat mengonfigurasi saat membuat proyek atau membangun. 
+ **Enkripsi data saat istirahat** - Artefak build, seperti cache, log, file data laporan pengujian mentah yang diekspor, dan hasil build, dienkripsi secara default menggunakan. Kunci yang dikelola AWS Jika Anda tidak ingin menggunakan kunci KMS ini, Anda harus membuat dan mengkonfigurasi kunci yang dikelola pelanggan. Untuk informasi lebih lanjut [Membuat Kunci KMS](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) dan [konsep Layanan Manajemen AWS Kunci](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html) di *Panduan AWS Key Management Service Pengguna*. 
  + Anda dapat menyimpan pengenal kunci AWS KMS yang CodeBuild digunakan untuk mengenkripsi artefak keluaran build dalam variabel lingkungan. `CODEBUILD_KMS_KEY_ID` Untuk informasi selengkapnya, lihat [Variabel lingkungan di lingkungan build](build-env-ref-env-vars.md) 
  + Anda dapat menentukan kunci terkelola pelanggan saat membuat proyek build. Untuk informasi selengkapnya, lihat [Set the Encryption Key Using the Console](create-project.md#encryptionkey-console) dan [Mengatur kunci enkripsi menggunakan CLI](create-project.md#cli.encryptionkey). 

  Volume Amazon Elastic Block Store dari armada build Anda dienkripsi secara default menggunakan. Kunci yang dikelola AWS
+ **Enkripsi data dalam transit** - Semua komunikasi antara pelanggan dan dan antara CodeBuild CodeBuild dan dependensi hilirnya dilindungi menggunakan koneksi TLS yang ditandatangani menggunakan proses penandatanganan Signature Version 4. Semua CodeBuild titik akhir menggunakan sertifikat SHA-256 yang dikelola oleh. AWS Private Certificate Authority Untuk informasi selengkapnya, lihat [Proses penandatanganan Signature Version 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) dan [Tentang ACM PCA](https://docs.aws.amazon.com/privateca/latest/userguide/). 
+ **Enkripsi artefak build** - Peran CodeBuild layanan yang terkait dengan proyek build memerlukan akses ke kunci KMS untuk mengenkripsi artefak keluaran build-nya. Secara default, CodeBuild gunakan Kunci yang dikelola AWS untuk Amazon S3 di akun Anda AWS . Jika Anda tidak ingin menggunakan ini Kunci yang dikelola AWS, Anda harus membuat dan mengkonfigurasi kunci yang dikelola pelanggan. Untuk informasi selengkapnya, lihat [Enkripsi keluaran build](setting-up-kms.md) dan [Membuat kunci](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) di *Panduan AWS KMS Pengembang*.

# Manajemen kunci
<a name="security-key-management"></a>

Anda dapat melindungi konten Anda dari penggunaan yang tidak sah melalui enkripsi. Simpan kunci enkripsi Anda AWS Secrets Manager, lalu berikan izin peran CodeBuild layanan yang terkait dengan proyek build untuk mendapatkan kunci enkripsi dari akun Secrets Manager Anda. Untuk informasi lebih lanjut, lihat[Enkripsi keluaran build menggunakan kunci yang dikelola pelanggan](setting-up-kms.md),, [Buat proyek build di AWS CodeBuild](create-project.md)[Jalankan AWS CodeBuild build secara manual](run-build.md), dan [Tutorial: Menyimpan dan mengambil rahasia](https://docs.aws.amazon.com/secretsmanager/latest/userguide/tutorials_basic.html). 

Gunakan variabel `CODEBUILD_KMS_KEY_ID` lingkungan dalam perintah build untuk mendapatkan pengenal AWS KMS kunci. Untuk informasi selengkapnya, lihat [Variabel lingkungan di lingkungan build](build-env-ref-env-vars.md). 

Anda dapat menggunakan Secrets Manager untuk melindungi kredensi ke registri pribadi yang menyimpan image Docker yang digunakan untuk lingkungan runtime Anda. Untuk informasi selengkapnya, lihat [Registri pribadi dengan AWS Secrets Manager sampel untuk CodeBuild](sample-private-registry.md). 

# Privasi lalu lintas
<a name="security-traffic-privacy"></a>

Anda dapat meningkatkan keamanan build Anda dengan mengonfigurasi CodeBuild untuk menggunakan titik akhir VPC antarmuka. Untuk melakukan ini, Anda tidak memerlukan gateway internet, perangkat NAT, atau gateway pribadi virtual. Hal ini juga tidak diperlukan untuk mengkonfigurasi PrivateLink, meskipun dianjurkan. Untuk informasi selengkapnya, lihat [Gunakan titik akhir VPC](use-vpc-endpoints-with-codebuild.md). Untuk informasi selengkapnya tentang PrivateLink dan titik akhir VPC, lihat [AWS PrivateLink](https://aws.amazon.com/privatelink/)dan [Mengakses AWS](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Introduction.html#what-is-privatelink) layanan melalui. PrivateLink 

# Identitas dan manajemen akses di AWS CodeBuild
<a name="auth-and-access-control"></a>

Akses ke AWS CodeBuild membutuhkan kredensi. Kredensyal tersebut harus memiliki izin untuk mengakses AWS sumber daya, seperti menyimpan dan mengambil artefak build di bucket S3 dan melihat Log Amazon untuk build. CloudWatch Bagian berikut menjelaskan bagaimana Anda dapat menggunakan [AWS Identity and Access Management](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)(IAM) dan CodeBuild untuk membantu mengamankan akses ke sumber daya Anda:

# Ikhtisar mengelola izin akses ke sumber daya Anda AWS CodeBuild
<a name="auth-and-access-control-iam-access-control-identity-based"></a>

Setiap AWS sumber daya dimiliki oleh AWS akun, dan izin untuk membuat atau mengakses sumber daya diatur oleh kebijakan izin. Administrator akun dapat melampirkan kebijakan izin ke identitas IAM (yaitu, pengguna, grup, dan peran). 

**catatan**  
Administrator akun (atau pengguna administrator) adalah pengguna dengan hak akses administrator. Untuk informasi selengkapnya, lihat [Praktik Terbaik IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dalam *Panduan Pengguna IAM*.

Ketika memberikan izin, Anda memutuskan orang yang mendapatkan izin, sumber daya yang dapat diakses, dan tindakan yang dapat dilakukan di sumber daya tersebut.

**Topics**
+ [AWS CodeBuild sumber daya dan operasi](#arn-formats)
+ [Memahami kepemilikan sumber daya](#understanding-resource-ownership)
+ [Mengelola akses ke sumber daya](#managing-access-resources)
+ [Menentukan elemen kebijakan: Tindakan, efek, dan penanggung jawab](#actions-effects-principals)

## AWS CodeBuild sumber daya dan operasi
<a name="arn-formats"></a>

Di AWS CodeBuild, sumber daya utama adalah proyek pembangunan. Dalam sebuah kebijakan, Anda menggunakan Amazon Resource Name (ARN) untuk mengidentifikasi sumber daya tempat kebijakan berlaku. Build juga merupakan sumber daya dan telah ARNs dikaitkan dengan mereka. Untuk informasi selengkapnya, lihat [Nama Sumber Daya Amazon (ARN) dan Ruang Nama AWS Layanan](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) di. *Referensi Umum Amazon Web Services*


| Tipe sumber daya | Format ARN | 
| --- | --- | 
| Bangun proyek |  `arn:aws:codebuild:region-ID:account-ID:project/project-name`  | 
| Build |  `arn:aws:codebuild:region-ID:account-ID:build/build-ID`  | 
| Grup laporan | arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name | 
| Laporan | arn:aws:codebuild:region-ID:account-ID:report/report-ID | 
| Armada |  `arn:aws:codebuild:region-ID:account-ID:fleet/fleet-ID`  | 
|  Semua CodeBuild sumber daya  |  `arn:aws:codebuild:*`  | 
|  Semua CodeBuild sumber daya yang dimiliki oleh akun yang ditentukan di AWS Wilayah yang ditentukan  |  `arn:aws:codebuild:region-ID:account-ID:*`  | 

**penting**  
Saat menggunakan fitur kapasitas cadangan, data yang di-cache pada instance armada, termasuk file sumber, lapisan Docker, dan direktori cache yang ditentukan dalam buildspec, dapat diakses oleh proyek lain dalam akun yang sama. Ini dirancang dan memungkinkan proyek dalam akun yang sama untuk berbagi instance armada.

**catatan**  
Sebagian besar AWS layanan memperlakukan titik dua (:) atau garis miring (/) sebagai karakter yang sama di ARNs. Namun, CodeBuild menggunakan kecocokan yang tepat dalam pola dan aturan sumber daya. Pastikan untuk menggunakan karakter yang benar saat membuat pola peristiwa sehingga cocok dengan sintaks ARN di sumber daya.

Misalnya, Anda dapat menunjukkan proyek build (*myBuildProject*) tertentu dalam pernyataan Anda menggunakan ARN sebagai berikut:

```
"Resource": "arn:aws:codebuild:us-east-2:123456789012:project/myBuildProject"
```

Untuk menentukan semua sumber daya, atau jika tindakan API tidak mendukung ARNs, gunakan karakter wildcard (\$1) dalam `Resource` elemen sebagai berikut:

```
"Resource": "*"
```

Beberapa tindakan CodeBuild API menerima beberapa sumber daya (misalnya,`BatchGetProjects`). Untuk menentukan beberapa sumber daya dalam satu pernyataan, pisahkan ARNs dengan koma, sebagai berikut:

```
"Resource": [
  "arn:aws:codebuild:us-east-2:123456789012:project/myBuildProject",
  "arn:aws:codebuild:us-east-2:123456789012:project/myOtherBuildProject"
]
```

CodeBuild menyediakan satu set operasi untuk bekerja dengan CodeBuild sumber daya. Untuk daftar, lihat [AWS CodeBuild referensi izin](auth-and-access-control-permissions-reference.md).

## Memahami kepemilikan sumber daya
<a name="understanding-resource-ownership"></a>

 AWS Akun memiliki sumber daya yang dibuat di akun, terlepas dari siapa yang membuat sumber daya. Secara khusus, pemilik sumber daya adalah AWS akun [entitas utama](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html) (yaitu, akun root, pengguna, atau peran IAM) yang mengautentikasi permintaan pembuatan sumber daya. Contoh berikut menggambarkan cara kerjanya:
+ Jika Anda menggunakan kredensi akun root AWS akun Anda untuk membuat aturan, AWS akun Anda adalah pemilik sumber daya. CodeBuild 
+ Jika Anda membuat pengguna di AWS akun Anda dan memberikan izin untuk membuat CodeBuild sumber daya kepada pengguna tersebut, pengguna dapat membuat CodeBuild sumber daya. Namun, AWS akun Anda, tempat pengguna berada, memiliki CodeBuild sumber daya.
+ Jika Anda membuat peran IAM di AWS akun Anda dengan izin untuk membuat CodeBuild sumber daya, siapa pun yang dapat mengambil peran tersebut dapat membuat CodeBuild sumber daya. AWS Akun Anda, tempat peran itu berada, memiliki CodeBuild sumber daya.

## Mengelola akses ke sumber daya
<a name="managing-access-resources"></a>

Kebijakan izin menjelaskan siapa yang memiliki akses ke sumber daya mana. 

**catatan**  
Bagian ini membahas penggunaan IAM di AWS CodeBuild. Bagian ini tidak memberikan informasi yang mendetail tentang layanan IAM. Untuk dokumentasi IAM lengkap, lihat [Apa yang Dimaksud dengan IAM?](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) dalam *Panduan Pengguna IAM*. Untuk informasi tentang sintaksis dan deskripsi kebijakan IAM, lihat [Referensi Kebijakan IAM AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) dalam *Panduan Pengguna IAM*.

Kebijakan yang terlampir pada identitas IAM disebut sebagai kebijakan berbasis identitas (kebijakan IAM). Kebijakan yang melekat pada sumber daya disebut sebagai kebijakan berbasis sumber daya. CodeBuild mendukung kebijakan berbasis identitas, dan kebijakan berbasis sumber daya untuk pembacaan tertentu hanya APIs untuk tujuan berbagi sumber daya lintas akun.

### Akses aman ke bucket S3
<a name="secure-s3-buckets"></a>

Kami sangat menyarankan agar Anda menyertakan izin berikut dalam peran IAM Anda untuk memverifikasi bucket S3 yang terkait dengan CodeBuild proyek Anda dimiliki oleh Anda atau seseorang yang Anda percayai. Izin ini tidak disertakan dalam kebijakan dan peran AWS terkelola. Anda harus menambahkannya sendiri. 
+  `s3:GetBucketAcl` 
+  `s3:GetBucketLocation` 

Jika pemilik bucket S3 yang digunakan oleh project Anda berubah, Anda harus memverifikasi bahwa Anda masih memiliki bucket dan memperbarui izin dalam peran IAM Anda jika tidak. Untuk informasi selengkapnya, lihat [Memungkinkan pengguna untuk berinteraksi dengan CodeBuild](setting-up-service-permissions-group.md) dan [Memungkinkan CodeBuild untuk berinteraksi dengan AWS layanan lain](setting-up-service-role.md). 

## Menentukan elemen kebijakan: Tindakan, efek, dan penanggung jawab
<a name="actions-effects-principals"></a>

Untuk setiap AWS CodeBuild sumber daya, layanan mendefinisikan satu set operasi API. Untuk memberikan izin untuk operasi API ini, CodeBuild tentukan serangkaian tindakan yang dapat Anda tentukan dalam kebijakan. Beberapa operasi API dapat memerlukan izin untuk lebih dari satu tindakan untuk melakukan operasi API. Untuk informasi selengkapnya, lihat [AWS CodeBuild sumber daya dan operasi](#arn-formats) dan [AWS CodeBuild referensi izin](auth-and-access-control-permissions-reference.md).

Berikut ini adalah elemen-elemen kebijakan dasar:
+ **Sumber daya** – Anda menggunakan Amazon Resource Name (ARN) untuk mengidentifikasi sumber daya yang diberlakukan oleh kebijakan tersebut.
+ **Tindakan** – Anda menggunakan kata kunci tindakan untuk mengidentifikasi operasi sumber daya yang ingin Anda izinkan atau tolak. Misalnya, izin `codebuild:CreateProject` memungkinkan pengguna melakukan operasi `CreateProject`.
+ **Pengaruh** – Anda menetapkan pengaruh, baik mengizinkan atau menolak, ketika pengguna meminta tindakan tertentu. Jika Anda tidak secara eksplisit memberikan akses ke (mengizinkan) sumber daya, akses akan ditolak secara implisit. Anda juga dapat secara eksplisit menolak akses ke sumber daya. Anda dapat melakukan ini untuk memastikan pengguna tidak dapat mengakses sumber daya, meskipun kebijakan lain memberikan akses.
+ **Prinsipal** – Dalam kebijakan berbasis identitas (kebijakan IAM), pengguna yang kebijakannya terlampir adalah prinsipal implisit. Untuk kebijakan berbasis sumber daya, Anda menentukan pengguna, akun, layanan, atau entitas lain yang ingin Anda terima izinnya.

Untuk mempelajari selengkapnya tentang sintaksis dan deskripsi kebijakan IAM, lihat [Referensi Kebijakan IAM AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) dalam *Panduan Pengguna IAM*.

Untuk tabel yang menunjukkan semua tindakan CodeBuild API dan sumber daya yang diterapkan, lihat[AWS CodeBuild referensi izin](auth-and-access-control-permissions-reference.md).

# Menggunakan kebijakan berbasis identitas untuk AWS CodeBuild
<a name="auth-and-access-control-iam-identity-based-access-control"></a>

Topik ini memberikan contoh kebijakan berbasis identitas yang menunjukkan bagaimana administrator akun dapat melampirkan kebijakan izin ke identitas IAM (yaitu, pengguna, grup, dan peran) dan dengan demikian memberikan izin untuk melakukan operasi AWS CodeBuild sumber daya.

**penting**  
Kami menyarankan Anda terlebih dahulu meninjau topik pengantar yang menjelaskan konsep dasar dan opsi yang tersedia untuk mengelola akses ke CodeBuild sumber daya Anda. Untuk informasi selengkapnya, lihat [Ikhtisar mengelola izin akses ke sumber daya Anda AWS CodeBuild](auth-and-access-control-iam-access-control-identity-based.md).

**Topics**
+ [Izin diperlukan untuk menggunakan konsol AWS CodeBuild](#console-permissions)
+ [Izin diperlukan untuk terhubung AWS CodeBuild ke Amazon Elastic Container Registry](#ecr-policies)
+ [Izin yang diperlukan untuk AWS CodeBuild konsol untuk terhubung ke penyedia sumber](#console-policies)
+ [AWS kebijakan terkelola (standar) untuk AWS CodeBuild](#managed-policies)
+ [CodeBuild kebijakan dan pemberitahuan terkelola](#notifications-permissions)
+ [CodeBuild pembaruan kebijakan AWS terkelola](#security-iam-awsmanpol-updates)
+ [Contoh kebijakan yang dikelola pelanggan](#customer-managed-policies)

Berikut ini menunjukkan contoh kebijakan izin yang memungkinkan pengguna untuk mendapatkan informasi tentang proyek build hanya di `us-east-2` wilayah untuk akun `123456789012` untuk setiap proyek build yang dimulai dengan nama: `my`

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:BatchGetProjects",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/my*"
    }
  ]
}
```

------

## Izin diperlukan untuk menggunakan konsol AWS CodeBuild
<a name="console-permissions"></a>

Pengguna yang menggunakan AWS CodeBuild konsol harus memiliki seperangkat izin minimum yang memungkinkan pengguna menjelaskan AWS sumber daya lain untuk AWS akun tersebut. Anda harus memiliki izin dari layanan berikut:
+ AWS CodeBuild
+ Amazon CloudWatch
+ CodeCommit (jika Anda menyimpan kode sumber Anda di AWS CodeCommit repositori)
+ Amazon Elastic Container Registry (Amazon ECR) (jika Anda menggunakan lingkungan build yang mengandalkan image Docker di repositori Amazon ECR)
**catatan**  
Per 26 Juli 2022, kebijakan IAM default telah diperbarui. Untuk informasi selengkapnya, lihat [Izin diperlukan untuk terhubung AWS CodeBuild ke Amazon Elastic Container Registry](#ecr-policies).
+ Amazon Elastic Container Service (Amazon ECS) (jika Anda menggunakan lingkungan build yang mengandalkan image Docker di repositori Amazon ECR)
+ AWS Identity and Access Management (IAM)
+ AWS Key Management Service (AWS KMS)
+ Amazon Simple Storage Service (Amazon S3)

Jika Anda membuat kebijakan IAM yang lebih ketat dari izin minimum yang diperlukan, konsol tidak akan berfungsi sebagaimana dimaksudkan.

## Izin diperlukan untuk terhubung AWS CodeBuild ke Amazon Elastic Container Registry
<a name="ecr-policies"></a>

Per 26 Juli 2022, AWS CodeBuild telah memperbarui kebijakan IAM default untuk izin Amazon ECR. Izin berikut telah dihapus dari kebijakan default:

```
"ecr:PutImage",
"ecr:InitiateLayerUpload",
"ecr:UploadLayerPart",
"ecr:CompleteLayerUpload"
```

Untuk CodeBuild proyek yang dibuat sebelum 26 Juli 2022, kami sarankan Anda memperbarui kebijakan Anda dengan kebijakan ECR Amazon berikut:

```
"Action": [
    "ecr:BatchCheckLayerAvailability",
    "ecr:GetDownloadUrlForLayer",
    "ecr:BatchGetImage"
]
```

Untuk informasi selengkapnya tentang memperbarui kebijakan Anda, lihat[Memungkinkan pengguna untuk berinteraksi dengan CodeBuild](setting-up-service-permissions-group.md).

## Izin yang diperlukan untuk AWS CodeBuild konsol untuk terhubung ke penyedia sumber
<a name="console-policies"></a>

 AWS CodeBuild Konsol menggunakan tindakan API berikut untuk terhubung ke penyedia sumber (misalnya, GitHub repositori).
+ `codebuild:ListConnectedOAuthAccounts`
+ `codebuild:ListRepositories`
+ `codebuild:PersistOAuthToken`
+ `codebuild:ImportSourceCredentials`

Anda dapat mengaitkan penyedia sumber (seperti GitHub repositori) dengan proyek build menggunakan konsol. AWS CodeBuild Untuk melakukannya, Anda harus terlebih dahulu menambahkan tindakan API sebelumnya ke kebijakan akses IAM yang terkait dengan pengguna yang Anda gunakan untuk mengakses konsol. AWS CodeBuild 

Tindakan `ListConnectedOAuthAccounts``ListRepositories`,, dan `PersistOAuthToken` API tidak dimaksudkan untuk dipanggil oleh kode Anda. Oleh karena itu, tindakan API ini tidak termasuk dalam AWS CLI dan AWS SDKs.

## AWS kebijakan terkelola (standar) untuk AWS CodeBuild
<a name="managed-policies"></a>

AWS mengatasi banyak kasus penggunaan umum dengan menyediakan kebijakan IAM mandiri yang dibuat dan dikelola oleh. AWS Kebijakan AWS terkelola ini memberikan izin yang diperlukan untuk kasus penggunaan umum sehingga Anda dapat menghindari keharusan menyelidiki izin apa yang diperlukan. Kebijakan terkelola CodeBuild juga memberikan izin untuk melakukan operasi di layanan lain, seperti IAM, Amazon EC2 AWS CodeCommit, Amazon ECR, Amazon SNS, CloudWatch dan Amazon Events, sebagaimana diperlukan untuk tanggung jawab bagi pengguna yang telah diberikan kebijakan tersebut. Misalnya, `AWSCodeBuildAdminAccess` kebijakan tersebut adalah kebijakan pengguna tingkat administratif yang memungkinkan pengguna dengan kebijakan ini untuk membuat dan mengelola aturan CloudWatch Acara untuk build proyek dan topik Amazon SNS untuk pemberitahuan tentang peristiwa terkait proyek (topik yang namanya diawali`arn:aws:codebuild:`), serta mengelola proyek dan grup laporan di. CodeBuild Untuk informasi selengkapnya, lihat [Kebijakan Terkelola AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) dalam *Panduan Pengguna IAM*.

Kebijakan AWS terkelola berikut, yang dapat Anda lampirkan ke pengguna di akun Anda, khusus untuk AWS CodeBuild.

**AWSCodeBuildAdminAccess**  
Menyediakan akses penuh untuk CodeBuild menyertakan izin untuk mengelola proyek CodeBuild pembangunan. 

**AWSCodeBuildDeveloperAccess**  
Menyediakan akses ke CodeBuild tetapi tidak mengizinkan administrasi proyek build.

**AWSCodeBuildReadOnlyAccess**  
Menyediakan akses hanya-baca ke. CodeBuild

Untuk mengakses artefak keluaran build yang CodeBuild dibuat, Anda juga harus melampirkan kebijakan AWS terkelola bernama`AmazonS3ReadOnlyAccess`.

Untuk membuat dan mengelola peran CodeBuild layanan, Anda juga harus melampirkan kebijakan AWS terkelola bernama`IAMFullAccess`.

Anda juga dapat membuat kebijakan IAM khusus Anda sendiri untuk memberikan izin untuk CodeBuild tindakan dan sumber daya. Anda dapat menyematkan kebijakan khusus ini untuk pengguna atau grup yang memerlukan izin tersebut.

**Topics**
+ [AWSCodeBuildAdminAccess](#admin-access-policy)
+ [AWSCodeBuildDeveloperAccess](#developer-access-policy)
+ [AWSCodeBuildReadOnlyAccess](#read-only-access-policy)

### AWSCodeBuildAdminAccess
<a name="admin-access-policy"></a>

`AWSCodeBuildAdminAccess`Kebijakan ini menyediakan akses penuh ke CodeBuild, termasuk izin untuk mengelola proyek CodeBuild build. Terapkan kebijakan ini hanya kepada pengguna tingkat administratif untuk memberi mereka kontrol penuh atas CodeBuild proyek, grup laporan, dan sumber daya terkait di AWS akun Anda, termasuk kemampuan untuk menghapus proyek dan grup laporan.

Untuk kebijakan terkelola lengkap, lihat [ AWSCodeBuildAdminAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSCodeBuildAdminAccess.html)di referensi kebijakan terkelola IAM.

### AWSCodeBuildDeveloperAccess
<a name="developer-access-policy"></a>

`AWSCodeBuildDeveloperAccess`Kebijakan ini memungkinkan akses ke semua fungsionalitas CodeBuild dan memproyeksikan dan melaporkan sumber daya terkait grup. Kebijakan ini tidak mengizinkan pengguna untuk menghapus CodeBuild proyek atau grup laporan, atau sumber daya terkait di AWS layanan lain, seperti CloudWatch Acara. Kami merekomendasikan bahwa Anda menerapkan kebijakan ini untuk sebagian besar pengguna.

Untuk kebijakan terkelola lengkap, lihat [ AWSCodeBuildDeveloperAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSCodeBuildDeveloperAccess.html)di referensi kebijakan terkelola IAM.

### AWSCodeBuildReadOnlyAccess
<a name="read-only-access-policy"></a>

`AWSCodeBuildReadOnlyAccess`Kebijakan ini memberikan akses hanya-baca ke CodeBuild dan sumber daya terkait di layanan lain. AWS Terapkan kebijakan ini kepada pengguna yang dapat melihat dan menjalankan build, melihat proyek, dan melihat grup laporan, tetapi tidak dapat membuat perubahan apa pun padanya. 

Untuk kebijakan terkelola lengkap, lihat [ AWSCodeBuildReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSCodeBuildReadOnlyAccess.xml)di referensi kebijakan terkelola IAM.

## CodeBuild kebijakan dan pemberitahuan terkelola
<a name="notifications-permissions"></a>

CodeBuild mendukung pemberitahuan, yang dapat memberi tahu pengguna tentang perubahan penting untuk membangun proyek. Kebijakan terkelola untuk CodeBuild menyertakan pernyataan kebijakan untuk fungsionalitas notifikasi. Untuk informasi selengkapnya, lihat [Apa itu notifikasi?](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/welcome.html).

### Izin yang terkait dengan notifikasi dalam kebijakan terkelola hanya-baca
<a name="notifications-readonly"></a>

Kebijakan terkelola `AWSCodeBuildReadOnlyAccess` mencakup pernyataan berikut untuk mengizinkan akses penuh ke notifikasi. Pengguna yang menerapkan kebijakan terkelola ini dapat melihat pemberitahuan untuk sumber daya, tetapi tidak dapat membuat, mengelola, atau berlangganan ke sumber daya tersebut. 

```
   {
        "Sid": "CodeStarNotificationsPowerUserAccess",
        "Effect": "Allow",
        "Action": [
            "codestar-notifications:DescribeNotificationRule"
        ],
        "Resource": "*",
        "Condition" : {
            "ArnLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codebuild:*:*:project/*"}
        }
    },    
    {
        "Sid": "CodeStarNotificationsListAccess",
        "Effect": "Allow",
        "Action": [
            "codestar-notifications:ListNotificationRules",
            "codestar-notifications:ListEventTypes",
            "codestar-notifications:ListTargets"
        ],
        "Resource": "*"
    }
```

### Izin terkait notifikasi dalam kebijakan terkelola lainnya
<a name="notifications-otheraccess"></a>

Kebijakan terkelola `AWSCodeBuildDeveloperAccess` mencakup pernyataan berikut untuk mengizinkan pengguna membuat, mengedit, dan berlangganan notifikasi. Mereka tidak dapat menghapus aturan notifikasi atau mengelola tag untuk sumber daya.

```
    {
        "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:codebuild:*:*:project/*"}
        }
    },    
    {
        "Sid": "CodeStarNotificationsListAccess",
        "Effect": "Allow",
        "Action": [
            "codestar-notifications:ListNotificationRules",
            "codestar-notifications:ListTargets",
            "codestar-notifications:ListTagsforResource",
            "codestar-notifications:ListEventTypes"
        ],
        "Resource": "*"
    },
    {
        "Sid": "SNSTopicListAccess",
        "Effect": "Allow",
        "Action": [
            "sns:ListTopics"
        ],
        "Resource": "*"
    },
    {
        "Sid": "CodeStarNotificationsChatbotAccess",
        "Effect": "Allow",
        "Action": [
            "chatbot:DescribeSlackChannelConfigurations",
            "chatbot:ListMicrosoftTeamsChannelConfigurations"
          ],
       "Resource": "*"
    }
```

Untuk informasi selengkapnya tentang IAM dan notifikasi, lihat [Identity and Access Managementuntuk AWS CodeStar Pemberitahuan](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/security-iam.html).

## CodeBuild pembaruan kebijakan AWS terkelola
<a name="security-iam-awsmanpol-updates"></a>

Lihat detail tentang pembaruan kebijakan AWS terkelola CodeBuild sejak layanan ini mulai melacak perubahan ini. Untuk peringatan otomatis tentang perubahan pada halaman ini, berlangganan RSS feed on. [AWS CodeBuild Riwayat dokumen Panduan Pengguna](history.md)




| Ubah | Deskripsi | Date | 
| --- | --- | --- | 
|  `AWSCodeBuildAdminAccess`dan `AWSCodeBuildDeveloperAccess` — Perbarui kebijakan yang ada  |  CodeBuild menambahkan `ssmmessages:OpenDataChannel` izin ke kebijakan ini untuk mendukung debugging build interaktif Session Manager. `AWSCodeBuildDeveloperAccess`Kebijakan `AWSCodeBuildAdminAccess` dan sekarang menyertakan `ssmmessages:OpenDataChannel` tindakan untuk sumber daya sesi Manajer Sesi (`arn:aws:ssm:*:*:session/*`) untuk mendukung penegakan SiGv4 pada API ini WebSocket .  | Desember 1, 2025 | 
|  `AWSCodeBuildAdminAccess`,`AWSCodeBuildDeveloperAccess`, dan `AWSCodeBuildReadOnlyAccess` — Perbarui ke kebijakan yang ada  |  CodeBuild memperbarui sumber daya ke kebijakan ini. `AWSCodeBuildReadOnlyAccess`Kebijakan`AWSCodeBuildAdminAccess`,`AWSCodeBuildDeveloperAccess`, dan telah diubah untuk memperbarui sumber daya yang ada. Sumber daya asli `arn:aws:codebuild:*` telah diperbarui ke`arn:aws:codebuild:*:*:project/*`.  | November 15, 2024 | 
|  `AWSCodeBuildAdminAccess`,`AWSCodeBuildDeveloperAccess`, dan `AWSCodeBuildReadOnlyAccess` — Perbarui ke kebijakan yang ada  |  CodeBuild menambahkan sumber daya ke kebijakan ini untuk mendukung AWS CodeConnections rebranding. `AWSCodeBuildReadOnlyAccess`Kebijakan`AWSCodeBuildAdminAccess`,`AWSCodeBuildDeveloperAccess`, dan telah diubah untuk menambahkan sumber daya,`arn:aws:codeconnections:*:*:*`.  | April 18, 2024 | 
|  `AWSCodeBuildAdminAccess`dan `AWSCodeBuildDeveloperAccess` — Perbarui ke kebijakan yang ada  |  CodeBuild menambahkan izin ke kebijakan ini untuk mendukung jenis pemberitahuan tambahan menggunakan Pengembang Amazon Q di aplikasi obrolan. `AWSCodeBuildDeveloperAccess`Kebijakan `AWSCodeBuildAdminAccess` dan telah diubah untuk menambahkan izin,`chatbot:ListMicrosoftTeamsChannelConfigurations`.  | 16 Mei 2023 | 
|  CodeBuild mulai melacak perubahan  |  CodeBuild mulai melacak perubahan untuk kebijakan yang AWS dikelola.  | Mei 16, 2021 | 

## Contoh kebijakan yang dikelola pelanggan
<a name="customer-managed-policies"></a>

Di bagian ini, Anda dapat menemukan contoh kebijakan pengguna yang memberikan izin untuk AWS CodeBuild tindakan. Kebijakan ini berfungsi saat Anda menggunakan CodeBuild API, AWS SDKs, atau AWS CLI. Saat menggunakan konsol, Anda harus memberikan izin tambahan khusus konsol. Untuk informasi, lihat [Izin diperlukan untuk menggunakan konsol AWS CodeBuild](#console-permissions).

Anda dapat menggunakan contoh kebijakan IAM berikut untuk membatasi CodeBuild akses bagi pengguna dan peran Anda.

**Topics**
+ [Memungkinkan pengguna untuk mendapatkan informasi tentang proyek build](#customer-managed-policies-example-batch-get-projects)
+ [Memungkinkan pengguna untuk mendapatkan informasi tentang armada](#customer-managed-policies-get-information-about-fleets)
+ [Memungkinkan pengguna untuk mendapatkan informasi tentang grup laporan](#customer-managed-policies-get-information-about-report-group)
+ [Memungkinkan pengguna untuk mendapatkan informasi tentang laporan](#customer-managed-policies-get-information-about-reports)
+ [Izinkan pengguna membuat proyek pembangunan](#customer-managed-policies-example-create-project)
+ [Memungkinkan pengguna untuk membuat armada](#customer-managed-policies-example-create-fleet)
+ [Izinkan pengguna membuat grup laporan](#customer-managed-policies-example-create-report-group)
+ [Memungkinkan pengguna untuk menghapus armada](#customer-managed-policies-example-delete-fleet)
+ [Izinkan pengguna menghapus grup laporan](#customer-managed-policies-example-delete-report-group)
+ [Memungkinkan pengguna untuk menghapus laporan](#customer-managed-policies-example-delete-report)
+ [Izinkan pengguna untuk menghapus proyek build](#customer-managed-policies-example-delete-project)
+ [Izinkan pengguna mendapatkan daftar nama proyek build](#customer-managed-policies-example-list-projects)
+ [Izinkan pengguna mengubah informasi tentang proyek pembangunan](#customer-managed-policies-example-update-project)
+ [Memungkinkan pengguna untuk mengubah armada](#customer-managed-policies-example-change-fleet)
+ [Izinkan pengguna mengubah grup laporan](#customer-managed-policies-example-change-report-group)
+ [Memungkinkan pengguna untuk mendapatkan informasi tentang build](#customer-managed-policies-example-batch-get-builds)
+ [Izinkan pengguna mendapatkan daftar build IDs untuk proyek build](#customer-managed-policies-example-list-builds-for-project)
+ [Izinkan pengguna mendapatkan daftar build IDs](#customer-managed-policies-example-list-builds)
+ [Memungkinkan pengguna untuk mendapatkan daftar armada](#customer-managed-policies-example-get-list-of-fleets)
+ [Izinkan pengguna untuk mendapatkan daftar grup laporan](#customer-managed-policies-example-get-list-of-report-groups)
+ [Memungkinkan pengguna untuk mendapatkan daftar laporan](#customer-managed-policies-example-get-list-of-reports)
+ [Memungkinkan pengguna untuk mendapatkan daftar laporan untuk grup laporan](#customer-managed-policies-example-get-list-of-reports-for-report-group)
+ [Memungkinkan pengguna untuk mendapatkan daftar kasus uji untuk laporan](#customer-managed-policies-example-get-list-of-test-cases-for-report)
+ [Izinkan pengguna untuk mulai menjalankan build](#customer-managed-policies-example-start-build)
+ [Izinkan pengguna untuk mencoba menghentikan build](#customer-managed-policies-example-stop-build)
+ [Izinkan pengguna mencoba menghapus build](#customer-managed-policies-example-delete-builds)
+ [Izinkan pengguna untuk mendapatkan informasi tentang gambar Docker yang dikelola oleh CodeBuild](#customer-managed-policies-example-list-curated-environment-images)
+ [Izinkan pengguna menambahkan kebijakan izin untuk peran layanan armada](#customer-managed-policies-example-permission-policy-fleet-service-role)
+ [Izinkan CodeBuild akses ke AWS layanan yang diperlukan untuk membuat antarmuka jaringan VPC](#customer-managed-policies-example-create-vpc-network-interface)
+ [Gunakan pernyataan penolakan untuk mencegah terputusnya sambungan AWS CodeBuild dari penyedia sumber](#customer-managed-policies-example-deny-disconnect)

### Memungkinkan pengguna untuk mendapatkan informasi tentang proyek build
<a name="customer-managed-policies-example-batch-get-projects"></a>

Contoh pernyataan kebijakan berikut memungkinkan pengguna untuk mendapatkan informasi tentang proyek build di `us-east-2` Wilayah `123456789012` untuk memperhitungkan setiap proyek build yang dimulai dengan nama`my`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:BatchGetProjects",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/my*"      
    }
  ]
}
```

------

### Memungkinkan pengguna untuk mendapatkan informasi tentang armada
<a name="customer-managed-policies-get-information-about-fleets"></a>

Contoh pernyataan kebijakan berikut memungkinkan pengguna untuk mendapatkan informasi tentang armada di `us-east-2` Wilayah untuk akun`123456789012`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:BatchGetFleets",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:fleet/*"
    }
  ]
}
```

------

### Memungkinkan pengguna untuk mendapatkan informasi tentang grup laporan
<a name="customer-managed-policies-get-information-about-report-group"></a>

Contoh pernyataan kebijakan berikut memungkinkan pengguna untuk mendapatkan informasi tentang grup laporan di `us-east-2` Wilayah untuk akun`123456789012`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:BatchGetReportGroups",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### Memungkinkan pengguna untuk mendapatkan informasi tentang laporan
<a name="customer-managed-policies-get-information-about-reports"></a>

Contoh pernyataan kebijakan berikut memungkinkan pengguna untuk mendapatkan informasi tentang laporan di `us-east-2` Wilayah untuk akun`123456789012`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:BatchGetReports",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### Izinkan pengguna membuat proyek pembangunan
<a name="customer-managed-policies-example-create-project"></a>

Contoh pernyataan kebijakan berikut memungkinkan pengguna untuk membuat proyek build dengan nama apa pun tetapi hanya di `us-east-2` Wilayah untuk akun `123456789012` dan hanya menggunakan peran CodeBuild layanan yang ditentukan:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:CreateProject",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/*"
    },
    {
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::111122223333:role/CodeBuildServiceRole"
    }
  ]
}
```

------

Pernyataan kebijakan contoh berikut memungkinkan pengguna untuk membuat proyek build dengan nama apa pun tetapi hanya di `us-east-2` Wilayah untuk akun `123456789012` dan hanya menggunakan peran CodeBuild layanan yang ditentukan. Ini juga memberlakukan bahwa pengguna hanya dapat menggunakan peran layanan yang ditentukan dengan AWS CodeBuild dan bukan AWS layanan lain.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:CreateProject",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/*"
    },
    {
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::111122223333:role/CodeBuildServiceRole",
      "Condition": {
          "StringEquals": {"iam:PassedToService": "codebuild.amazonaws.com"}
      }
    }
  ]
}
```

------

### Memungkinkan pengguna untuk membuat armada
<a name="customer-managed-policies-example-create-fleet"></a>

Contoh pernyataan kebijakan berikut memungkinkan pengguna untuk membuat armada di `us-east-2` Wilayah untuk akun`123456789012`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:CreateFleet",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:fleet/*"
    }
  ]
}
```

------

### Izinkan pengguna membuat grup laporan
<a name="customer-managed-policies-example-create-report-group"></a>

Contoh pernyataan kebijakan berikut memungkinkan pengguna untuk membuat grup laporan di `us-east-2` Wilayah untuk akun`123456789012`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:CreateReportGroup",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### Memungkinkan pengguna untuk menghapus armada
<a name="customer-managed-policies-example-delete-fleet"></a>

Contoh pernyataan kebijakan berikut memungkinkan pengguna untuk menghapus armada di `us-east-2` Wilayah untuk akun`123456789012`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:DeleteFleet",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:fleet/*"
    }
  ]
}
```

------

### Izinkan pengguna menghapus grup laporan
<a name="customer-managed-policies-example-delete-report-group"></a>

Contoh pernyataan kebijakan berikut memungkinkan pengguna untuk menghapus grup laporan di `us-east-2` Wilayah untuk akun`123456789012`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:DeleteReportGroup",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### Memungkinkan pengguna untuk menghapus laporan
<a name="customer-managed-policies-example-delete-report"></a>

Contoh pernyataan kebijakan berikut memungkinkan pengguna untuk menghapus laporan di `us-east-2` Wilayah untuk akun`123456789012`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:DeleteReport",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### Izinkan pengguna untuk menghapus proyek build
<a name="customer-managed-policies-example-delete-project"></a>

Contoh pernyataan kebijakan berikut memungkinkan pengguna untuk menghapus proyek build di `us-east-2` Wilayah untuk akun `123456789012` untuk setiap proyek build yang dimulai dengan nama`my`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:DeleteProject",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/my*"
    }
  ]
}
```

------

### Izinkan pengguna mendapatkan daftar nama proyek build
<a name="customer-managed-policies-example-list-projects"></a>

Contoh pernyataan kebijakan berikut memungkinkan pengguna untuk mendapatkan daftar nama proyek build untuk akun yang sama:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:ListProjects",
      "Resource": "*"
    }
  ]
}
```

------

### Izinkan pengguna mengubah informasi tentang proyek pembangunan
<a name="customer-managed-policies-example-update-project"></a>

Contoh pernyataan kebijakan berikut memungkinkan pengguna untuk mengubah informasi tentang proyek build dengan nama apa pun tetapi hanya di `us-east-2` Wilayah untuk akun `123456789012` dan hanya menggunakan peran AWS CodeBuild layanan yang ditentukan:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:UpdateProject",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/*"
    },
    {
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::111122223333:role/CodeBuildServiceRole"
    }
  ]
}
```

------

### Memungkinkan pengguna untuk mengubah armada
<a name="customer-managed-policies-example-change-fleet"></a>

Contoh pernyataan kebijakan berikut memungkinkan pengguna untuk mengubah armada di `us-east-2` Wilayah untuk akun`123456789012`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:UpdateFleet",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:fleet/*"
    }
  ]
}
```

------

### Izinkan pengguna mengubah grup laporan
<a name="customer-managed-policies-example-change-report-group"></a>

Contoh pernyataan kebijakan berikut memungkinkan pengguna untuk mengubah grup laporan di `us-east-2` Wilayah untuk akun`123456789012`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:UpdateReportGroup",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### Memungkinkan pengguna untuk mendapatkan informasi tentang build
<a name="customer-managed-policies-example-batch-get-builds"></a>

Contoh pernyataan kebijakan berikut memungkinkan pengguna untuk mendapatkan informasi tentang build di `us-east-2` Wilayah `123456789012` untuk akun proyek build bernama `my-build-project` dan`my-other-build-project`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:BatchGetBuilds",
      "Resource": [
        "arn:aws:codebuild:us-east-2:111122223333:project/my-build-project",
        "arn:aws:codebuild:us-east-2:111122223333:project/my-other-build-project"
      ]
    }
  ]
}
```

------

### Izinkan pengguna mendapatkan daftar build IDs untuk proyek build
<a name="customer-managed-policies-example-list-builds-for-project"></a>

Contoh pernyataan kebijakan berikut memungkinkan pengguna untuk mendapatkan daftar build IDs di `us-east-2` Region `123456789012` untuk akun proyek build bernama `my-build-project` dan`my-other-build-project`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:ListBuildsForProject",
      "Resource": [
        "arn:aws:codebuild:us-east-2:111122223333:project/my-build-project",
        "arn:aws:codebuild:us-east-2:111122223333:project/my-other-build-project"
      ]
    }
  ]
}
```

------

### Izinkan pengguna mendapatkan daftar build IDs
<a name="customer-managed-policies-example-list-builds"></a>

Contoh pernyataan kebijakan berikut memungkinkan pengguna mendapatkan daftar semua build IDs untuk akun yang sama:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:ListBuilds",
      "Resource": "*"
    }
  ]
}
```

------

### Memungkinkan pengguna untuk mendapatkan daftar armada
<a name="customer-managed-policies-example-get-list-of-fleets"></a>

Contoh pernyataan kebijakan berikut memungkinkan pengguna untuk mendapatkan daftar armada di `us-east-2` Wilayah untuk akun`123456789012`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:ListFleets",
      "Resource": "*"
    }
  ]
}
```

------

### Izinkan pengguna untuk mendapatkan daftar grup laporan
<a name="customer-managed-policies-example-get-list-of-report-groups"></a>

Contoh pernyataan kebijakan berikut memungkinkan pengguna untuk mendapatkan daftar grup laporan di `us-east-2` Wilayah untuk akun`123456789012`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:ListReportGroups",
      "Resource": "*"
    }
  ]
}
```

------

### Memungkinkan pengguna untuk mendapatkan daftar laporan
<a name="customer-managed-policies-example-get-list-of-reports"></a>

Contoh pernyataan kebijakan berikut memungkinkan pengguna untuk mendapatkan daftar laporan di `us-east-2` Wilayah untuk akun`123456789012`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:ListReports",
      "Resource": "*"
    }
  ]
}
```

------

### Memungkinkan pengguna untuk mendapatkan daftar laporan untuk grup laporan
<a name="customer-managed-policies-example-get-list-of-reports-for-report-group"></a>

Contoh pernyataan kebijakan berikut memungkinkan pengguna untuk mendapatkan daftar laporan untuk grup laporan di `us-east-2` Wilayah untuk akun`123456789012`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:ListReportsForReportGroup",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### Memungkinkan pengguna untuk mendapatkan daftar kasus uji untuk laporan
<a name="customer-managed-policies-example-get-list-of-test-cases-for-report"></a>

Contoh pernyataan kebijakan berikut memungkinkan pengguna untuk mendapatkan daftar kasus uji untuk laporan di `us-east-2` Wilayah untuk akun`123456789012`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:DescribeTestCases",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### Izinkan pengguna untuk mulai menjalankan build
<a name="customer-managed-policies-example-start-build"></a>

Contoh pernyataan kebijakan berikut memungkinkan pengguna menjalankan build di `us-east-2` Region `123456789012` untuk akun proyek build yang dimulai dengan nama: `my`

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:StartBuild",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/my*"
    }
  ]
}
```

------

### Izinkan pengguna untuk mencoba menghentikan build
<a name="customer-managed-policies-example-stop-build"></a>

Contoh pernyataan kebijakan berikut memungkinkan pengguna untuk mencoba menghentikan menjalankan build hanya di `us-east-2` wilayah `123456789012` untuk memperhitungkan setiap proyek build yang dimulai dengan nama: `my`

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:StopBuild",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/my*"
    }
  ]
}
```

------

### Izinkan pengguna mencoba menghapus build
<a name="customer-managed-policies-example-delete-builds"></a>

Contoh pernyataan kebijakan berikut memungkinkan pengguna untuk mencoba menghapus build hanya di `us-east-2` Region untuk akun `123456789012` untuk setiap proyek build yang dimulai dengan nama: `my`

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:BatchDeleteBuilds",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/my*"
    }
  ]
}
```

------

### Izinkan pengguna untuk mendapatkan informasi tentang gambar Docker yang dikelola oleh CodeBuild
<a name="customer-managed-policies-example-list-curated-environment-images"></a>

Contoh pernyataan kebijakan berikut memungkinkan pengguna untuk mendapatkan informasi tentang semua gambar Docker yang dikelola oleh CodeBuild:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:ListCuratedEnvironmentImages",
      "Resource": "*"
    }
  ]
}
```

------

### Izinkan pengguna menambahkan kebijakan izin untuk peran layanan armada
<a name="customer-managed-policies-example-permission-policy-fleet-service-role"></a>

Contoh pernyataan kebijakan sumber daya berikut memungkinkan pengguna untuk menambahkan kebijakan izin VPC untuk peran layanan armada:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CodeBuildFleetVpcCreateNI",
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkInterface"
            ],
            "Resource": [
                "arn:aws:ec2:us-west-2:111122223333:subnet/subnet-id-1",
                "arn:aws:ec2:us-west-2:111122223333:security-group/security-group-id-1",
                "arn:aws:ec2:us-west-2:111122223333:network-interface/*"
            ]
        },
        {
            "Sid": "CodeBuildFleetVpcPermission",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeDhcpOptions",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSubnets",
                "ec2:DescribeVpcs",
                "ec2:ModifyNetworkInterfaceAttribute",
                "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
        },
        {
            "Sid": "CodeBuildFleetVpcNIPermission",
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkInterfacePermission"
            ],
            "Resource": "arn:aws:ec2:us-west-2:111122223333:network-interface/*",
            "Condition": {
                "StringEquals": {
                    "ec2:Subnet": [
                        "arn:aws:ec2:us-west-2:111122223333:subnet/subnet-id-1"
                    ]
                }
            }
        }
    ]
}
```

------

Contoh pernyataan kebijakan sumber daya berikut memungkinkan pengguna menambahkan kebijakan izin Amazon Managed Image (AMI) khusus untuk peran layanan armada:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:DescribeImages",
            "Resource": "*"
        } 
    ]
}
```

------

Contoh pernyataan kebijakan kepercayaan berikut memungkinkan pengguna untuk menambahkan kebijakan izin untuk peran layanan armada:

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

****  

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

------

### Izinkan CodeBuild akses ke AWS layanan yang diperlukan untuk membuat antarmuka jaringan VPC
<a name="customer-managed-policies-example-create-vpc-network-interface"></a>

Contoh pernyataan kebijakan berikut memberikan AWS CodeBuild izin untuk membuat antarmuka jaringan di VPC dengan dua subnet:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkInterface",
                "ec2:DescribeDhcpOptions",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DeleteNetworkInterface",
                "ec2:DescribeSubnets",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeVpcs"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkInterfacePermission"
            ],
            "Resource": "arn:aws:ec2:us-west-2:111122223333:network-interface/*",
            "Condition": {
                "StringEquals": {
                    "ec2:AuthorizedService": "codebuild.amazonaws.com"
                },
                "ArnEquals": {
                    "ec2:Subnet": [
                        "arn:aws:ec2:us-west-2:111122223333:subnet/subnet-id-1",
                        "arn:aws:ec2:us-west-2:111122223333:subnet/subnet-id-2"
                    ]
                }
            }
        }
    ]
}
```

------

### Gunakan pernyataan penolakan untuk mencegah terputusnya sambungan AWS CodeBuild dari penyedia sumber
<a name="customer-managed-policies-example-deny-disconnect"></a>

 Contoh pernyataan kebijakan berikut menggunakan pernyataan penolakan untuk mencegah terputus AWS CodeBuild dari penyedia sumber. Ini menggunakan`codebuild:DeleteOAuthToken`, yang merupakan kebalikan dari `codebuild:PersistOAuthToken` dan`codebuild:ImportSourceCredentials`, untuk terhubung dengan penyedia sumber. Untuk informasi selengkapnya, lihat [Izin yang diperlukan untuk AWS CodeBuild konsol untuk terhubung ke penyedia sumber](#console-policies). 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": "codebuild:DeleteOAuthToken",
      "Resource": "*"
    }
  ]
}
```

------

# AWS CodeBuild referensi izin
<a name="auth-and-access-control-permissions-reference"></a>

Anda dapat menggunakan kunci kondisi AWS-wide dalam AWS CodeBuild kebijakan Anda untuk menyatakan kondisi. Untuk daftar, lihat [Kunci yang Tersedia](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#AvailableKeys) di *Panduan Pengguna IAM*.

Anda menentukan tindakan di bidang `Action` kebijakan. Untuk menentukan tindakan, gunakan prefiks `codebuild:` diikuti dengan nama operasi API (misalnya `codebuild:CreateProject` dan `codebuild:StartBuild`). Untuk menetapkan beberapa tindakan dalam satu pernyataan, pisahkan dengan koma (misalnya, `"Action": [ "codebuild:CreateProject", "codebuild:StartBuild" ]`).

**Menggunakan Karakter Wildcard**

Anda menentukan ARN, dengan atau tanpa karakter wildcard (\$1), sebagai nilai sumber daya dalam bidang `Resource` kebijakan. Anda bisa menggunakan wildcard untuk menentukan beberapa tindakan atau sumber daya. Misalnya, `codebuild:*` menentukan semua CodeBuild tindakan dan `codebuild:Batch*` menentukan semua CodeBuild tindakan yang dimulai dengan kata. `Batch` Contoh berikut memberikan akses ke semua proyek build dengan nama yang dimulai dengan`my`: 

```
arn:aws:codebuild:us-east-2:123456789012:project/my*
```<a name="actions-related-to-objects-table"></a>CodeBuild Operasi API dan izin yang diperlukan untuk tindakan

BatchDeleteBuilds  
 **Tindakan:** `codebuild:BatchDeleteBuilds`   
Diperlukan untuk menghapus build.  
 **Sumber daya:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

BatchGetBuilds  
 **Tindakan:** `codebuild:BatchGetBuilds`   
Diperlukan untuk mendapatkan informasi tentang build.  
 **Sumber daya:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

BatchGetProjects  
 **Tindakan:** `codebuild:BatchGetProjects`   
Diperlukan untuk mendapatkan informasi tentang membangun proyek.  
 **Sumber daya:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

BatchGetReportGroups  
 **Tindakan:** `codebuild:BatchGetReportGroups`   
Diperlukan untuk mendapatkan informasi tentang grup laporan.  
 **Sumber daya:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

BatchGetReports  
 **Tindakan:** `codebuild:BatchGetReports`   
Diperlukan untuk mendapatkan informasi tentang laporan.  
 **Sumber daya:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

BatchPutTestCases¹  
 **Tindakan:** `codebuild:BatchPutTestCases`   
Diperlukan untuk membuat atau memperbarui laporan pengujian.  
 **Sumber daya:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

CreateProject  
 **Tindakan:**`codebuild:CreateProject`, `iam:PassRole`   
Diperlukan untuk membuat proyek pembangunan.  
 **Sumber Daya:**   
+  `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 
+  `arn:aws:iam::account-ID:role/role-name ` 

CreateReport¹  
 **Tindakan:** `codebuild:CreateReport`   
Diperlukan untuk membuat laporan pengujian.  
 **Sumber daya:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

CreateReportGroup  
 **Tindakan:** `codebuild:CreateReportGroup`   
Diperlukan untuk membuat grup laporan.  
 **Sumber daya:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

CreateWebhook  
 **Tindakan:** `codebuild:CreateWebhook`   
Diperlukan untuk membuat webhook.  
 **Sumber daya:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

DeleteProject  
 **Tindakan:** `codebuild:DeleteProject`   
Diperlukan untuk menghapus CodeBuild proyek.  
 **Sumber daya:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

DeleteReport  
 **Tindakan:** `codebuild:DeleteReport`   
Diperlukan untuk menghapus laporan.  
 **Sumber daya:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

DeleteReportGroup  
 **Tindakan:** `codebuild:DeleteReportGroup`   
Diperlukan untuk menghapus grup laporan.  
 **Sumber daya:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

DeleteSourceCredentials  
 **Tindakan:** `codebuild:DeleteSourceCredentials`   
Diperlukan untuk menghapus sekumpulan `SourceCredentialsInfo` objek yang berisi informasi tentang kredensyal untuk repositori GitHub, Server GitHub Perusahaan, atau Bitbucket.   
 **Sumber daya:** `*` 

DeleteWebhook  
 **Tindakan:** `codebuild:DeleteWebhook`   
Diperlukan untuk membuat webhook.  
 **Sumber daya:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

DescribeTestCases  
 **Tindakan:** `codebuild:DescribeTestCases`   
Diperlukan untuk mengembalikan daftar kasus uji paginasi.  
 **Sumber daya:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

ImportSourceCredentials  
 **Tindakan:** `codebuild:ImportSourceCredentials`   
Diperlukan untuk mengimpor sekumpulan `SourceCredentialsInfo` objek yang berisi informasi tentang kredensyal untuk repositori GitHub, Server GitHub Perusahaan, atau Bitbucket.   
 **Sumber daya:** `*` 

InvalidateProjectCache  
 **Tindakan:** `codebuild:InvalidateProjectCache`   
Diperlukan untuk mengatur ulang cache untuk sebuah proyek.  
 **Sumber daya:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

ListBuildBatches  
 **Tindakan:** `codebuild:ListBuildBatches`   
Diperlukan untuk mendapatkan daftar batch build IDs.  
 **Sumber daya:** `*` 

ListBuildBatchesForProject  
 **Tindakan:** `codebuild:ListBuildBatchesForProject`   
Diperlukan untuk mendapatkan daftar kumpulan build IDs untuk proyek tertentu.  
 **Sumber daya:** `arn:aws:codebuild:region-ID:account-ID:project/project-name` 

ListBuilds  
 **Tindakan:** `codebuild:ListBuilds`   
Diperlukan untuk mendapatkan daftar build IDs.  
 **Sumber daya:** `*` 

ListBuildsForProject  
 **Tindakan:** `codebuild:ListBuildsForProject`   
Diperlukan untuk mendapatkan daftar build IDs untuk proyek build.  
 **Sumber daya:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

ListCuratedEnvironmentImages  
 **Tindakan:** `codebuild:ListCuratedEnvironmentImages`   
Diperlukan untuk mendapatkan informasi tentang semua gambar Docker yang dikelola oleh AWS CodeBuild.   
 **Sumber daya:** `*` (diperlukan, tetapi tidak mengacu pada sumber daya yang dapat dialamatkan AWS ) 

ListProjects  
 **Tindakan:** `codebuild:ListProjects`   
Diperlukan untuk mendapatkan daftar nama proyek build.  
 **Sumber daya:** `*` 

ListReportGroups  
 **Tindakan:** `codebuild:ListReportGroups`   
Diperlukan untuk mendapatkan daftar grup laporan.  
 **Sumber daya:** `*` 

ListReports  
 **Tindakan:** `codebuild:ListReports`   
Diperlukan untuk mendapatkan daftar laporan.  
 **Sumber daya:** `*` 

ListReportsForReportGroup  
 **Tindakan:** `codebuild:ListReportsForReportGroup`   
Diperlukan untuk mendapatkan daftar laporan untuk grup laporan.  
 **Sumber daya:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

RetryBuild  
**Tindakan:** `codebuild:RetryBuild`   
Diperlukan untuk mencoba lagi build.  
**Sumber daya:** `arn:aws:codebuild:region-ID:account-ID:project/project-name `

StartBuild  
 **Tindakan:** `codebuild:StartBuild`   
Diperlukan untuk mulai menjalankan build.  
 **Sumber daya:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

StopBuild  
 **Tindakan:** `codebuild:StopBuild`   
Diperlukan untuk mencoba berhenti menjalankan build.  
 **Sumber daya:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

UpdateProject  
 **Tindakan:**`codebuild:UpdateProject`, `iam:PassRole`   
Diperlukan untuk mengubah informasi tentang build.  
 **Sumber Daya:**   
+  `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 
+  `arn:aws:iam::account-ID:role/role-name ` 

UpdateProjectVisibility  <a name="UpdateProjectVisibility"></a>
 **Tindakan:**`codebuild:UpdateProjectVisibility`, `iam:PassRole`   
Diperlukan untuk mengubah visibilitas publik dari bangunan proyek.  
 **Sumber Daya:**   
+  `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 
+  `arn:aws:iam::account-ID:role/role-name ` 

UpdateReport¹  
 **Tindakan:** `codebuild:UpdateReport`   
Diperlukan untuk membuat atau memperbarui laporan pengujian.  
 **Sumber daya:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

UpdateReportGroup  
 **Tindakan:** `codebuild:UpdateReportGroup`   
Diperlukan untuk memperbarui grup laporan.  
 **Sumber daya:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

UpdateWebhook  
 **Tindakan:** `codebuild:UpdateWebhook`   
Diperlukan untuk memperbarui webhook.  
 **Sumber daya:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

¹ Digunakan hanya untuk izin. Tidak ada API untuk tindakan ini.

# Menggunakan tag untuk mengontrol akses ke AWS CodeBuild sumber daya
<a name="auth-and-access-control-using-tags"></a>

Kondisi dalam pernyataan kebijakan IAM adalah bagian dari sintaks yang dapat Anda gunakan untuk menentukan izin untuk CodeBuild tindakan berbasis proyek. Anda dapat membuat kebijakan yang mengizinkan atau menolak tindakan pada proyek berdasarkan tag yang terkait dengan proyek tersebut, lalu menerapkan kebijakan tersebut ke grup IAM yang Anda konfigurasikan untuk mengelola pengguna. Untuk informasi tentang menerapkan tag ke proyek menggunakan konsol atau AWS CLI, lihat[Buat proyek build di AWS CodeBuild](create-project.md). Untuk informasi tentang menerapkan tag menggunakan CodeBuild SDK, lihat [CreateProject ](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_CreateProject.html#API_CreateProject_RequestSyntax)dan [Tag](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_Tag.html) di *Referensi CodeBuild API*. Untuk informasi tentang penggunaan tag untuk mengontrol akses ke AWS sumber daya, lihat [Mengontrol Akses ke AWS Sumber Daya Menggunakan Tag Sumber Daya](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html) di *Panduan Pengguna IAM*.

**penting**  
Saat menggunakan fitur kapasitas cadangan, data yang di-cache pada instance armada, termasuk file sumber, lapisan Docker, dan direktori cache yang ditentukan dalam buildspec, dapat diakses oleh proyek lain dalam akun yang sama. Ini dirancang dan memungkinkan proyek dalam akun yang sama untuk berbagi instance armada.

**Example Contoh 1: Batasi tindakan CodeBuild proyek berdasarkan tag sumber daya**  
 Contoh berikut menyangkal semua `BatchGetProjects` tindakan pada proyek yang ditandai dengan kunci `Environment` dengan nilai kunci. `Production` Administrator pengguna harus melampirkan kebijakan IAM ini selain kebijakan pengguna terkelola untuk pengguna yang tidak sah. Kunci `aws:ResourceTag` kondisi digunakan untuk mengontrol akses ke sumber daya berdasarkan tag mereka.     
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "codebuild:BatchGetProjects"
      ],
      "Resource": "*",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "aws:ResourceTag/Environment": "Production"
        }
      }
    }
  ]
}
```

**Example Contoh 2: Batasi tindakan CodeBuild proyek berdasarkan tag permintaan**  
Kebijakan berikut menolak izin pengguna untuk `CreateProject` tindakan jika permintaan berisi tag dengan kunci `Environment` dan nilai `Production` kunci. Selain itu, kebijakan mencegah pengguna yang tidak sah ini memodifikasi proyek dengan menggunakan kunci `aws:TagKeys` kondisi untuk tidak mengizinkan `UpdateProject` jika permintaan berisi tag dengan kunci. `Environment` Administrator harus melampirkan kebijakan IAM ini selain kebijakan pengguna terkelola kepada pengguna yang tidak berwenang untuk melakukan tindakan ini. Kunci `aws:RequestTag` kondisi digunakan untuk mengontrol tag mana yang dapat diteruskan dalam permintaan IAM    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "codebuild:CreateProject"
      ],
      "Resource": "*",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "aws:RequestTag/Environment": "Production"
        }
      }
    },
    {
      "Effect": "Deny",
      "Action": [
        "codebuild:UpdateProject"
      ],
      "Resource": "*",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "aws:TagKeys": ["Environment"]
        }
      }
    }
  ]
}
```

**Example Contoh 3: Tolak atau izinkan tindakan pada grup laporan berdasarkan tag sumber daya**  
Anda dapat membuat kebijakan yang mengizinkan atau menolak tindakan pada CodeBuild sumber daya (proyek dan grup laporan) berdasarkan AWS tag yang terkait dengan sumber daya tersebut, lalu menerapkan kebijakan tersebut ke grup IAM yang Anda konfigurasikan untuk mengelola pengguna. Misalnya, Anda dapat membuat kebijakan yang menolak semua CodeBuild tindakan pada grup laporan apa pun dengan kunci AWS tag `Status` dan nilai kunci`Secret`, lalu menerapkan kebijakan tersebut ke grup IAM yang Anda buat untuk pengembang umum ()*Developers*. Anda kemudian perlu memastikan bahwa pengembang yang bekerja pada grup laporan yang diberi tag tersebut bukan anggota *Developers* grup umum tersebut, melainkan milik grup IAM yang berbeda yang tidak memiliki kebijakan restriktif yang diterapkan (). `SecretDevelopers`  
Contoh berikut menyangkal semua CodeBuild tindakan pada grup laporan yang ditandai dengan kunci `Status` dan nilai kunci: `Secret`    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "codebuild:BatchGetReportGroups",
        "codebuild:CreateReportGroup",
        "codebuild:DeleteReportGroup",
        "codebuild:ListReportGroups",
        "codebuild:ListReportsForReportGroup",
        "codebuild:UpdateReportGroup"
      ],
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "aws:RequestedRegion": "us-east-1"
        }
      }
    }
  ]
}
```

**Example Contoh 4: Batasi CodeBuild tindakan AWSCode BuildDeveloperAccess berdasarkan tag sumber daya**  
Anda dapat membuat kebijakan yang mengizinkan CodeBuild tindakan pada semua grup laporan dan proyek yang tidak ditandai dengan tag tertentu. Misalnya, kebijakan berikut memungkinkan [AWSCodeBuildDeveloperAccess](auth-and-access-control-iam-identity-based-access-control.md#developer-access-policy) izin yang setara untuk semua grup laporan dan proyek kecuali yang ditandai dengan tag yang ditentukan:    
****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "codebuild:StartBuild",
            "codebuild:StopBuild",
            "codebuild:BatchGet*",
            "codebuild:GetResourcePolicy",
            "codebuild:DescribeTestCases",
            "codebuild:List*",
            "codecommit:GetBranch",
            "codecommit:GetCommit",
            "codecommit:GetRepository",
            "codecommit:ListBranches",
            "cloudwatch:GetMetricStatistics",
            "events:DescribeRule",
            "events:ListTargetsByRule",
            "events:ListRuleNamesByTarget",
            "logs:GetLogEvents",
            "s3:GetBucketLocation",
            "s3:ListAllMyBuckets"
         ],
         "Resource": "*",
         "Condition": {
            "StringNotEquals": {
               "aws:ResourceTag/Status": "Secret",
               "aws:ResourceTag/Team": "Saanvi"
            }
         }
      }
   ]
}
```

# Menampilkan sumber daya di konsol
<a name="console-resources"></a>

 AWS CodeBuild Konsol memerlukan `ListRepositories` izin untuk menampilkan daftar repositori untuk AWS akun Anda di AWS Wilayah tempat Anda masuk. Konsol juga termasuk fungsi **Pergi ke sumber daya** untuk secara cepat melakukan pencarian sensitif huruf besar/kecil untuk sumber daya. Pencarian ini dilakukan di AWS akun Anda di AWS Wilayah tempat Anda masuk. Sumber daya berikut ditampilkan di seluruh layanan berikut:
+ AWS CodeBuild: Bangun proyek
+ AWS CodeCommit: Repositori
+ AWS CodeDeploy: Aplikasi
+ AWS CodePipeline: Alur

Untuk melakukan pencarian ini di sumber daya di semua layanan, Anda harus memiliki izin berikut:
+ CodeBuild: `ListProjects`
+ CodeCommit: `ListRepositories`
+ CodeDeploy: `ListApplications`
+ CodePipeline: `ListPipelines`

Hasil tidak dikembalikan untuk sumber daya layanan jika Anda tidak memiliki izin untuk layanan tersebut. Bahkan jika Anda memiliki izin untuk melihat sumber daya, beberapa sumber daya tidak dikembalikan jika ada eksplisit `Deny` untuk melihat sumber daya tersebut.

# Validasi kepatuhan untuk AWS CodeBuild
<a name="compliance-validation"></a>

Untuk mempelajari apakah an Layanan AWS berada dalam lingkup program kepatuhan tertentu, lihat [Layanan AWS di Lingkup oleh Program Kepatuhan Layanan AWS](https://aws.amazon.com/compliance/services-in-scope/) dan pilih program kepatuhan yang Anda minati. Untuk informasi umum, lihat [Program AWS Kepatuhan Program AWS](https://aws.amazon.com/compliance/programs/) .

Anda dapat mengunduh laporan audit pihak ketiga menggunakan AWS Artifact. Untuk informasi selengkapnya, lihat [Mengunduh Laporan di AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html) .

Tanggung jawab kepatuhan Anda saat menggunakan Layanan AWS ditentukan oleh sensitivitas data Anda, tujuan kepatuhan perusahaan Anda, dan hukum dan peraturan yang berlaku. Untuk informasi selengkapnya tentang tanggung jawab kepatuhan Anda saat menggunakan Layanan AWS, lihat [Dokumentasi AWS Keamanan](https://docs.aws.amazon.com/security/).

# Ketahanan di AWS CodeBuild
<a name="codebuild-disaster-recovery-resiliency"></a>

Infrastruktur AWS global dibangun di sekitar AWS Wilayah dan Zona Ketersediaan. AWS Wilayah menyediakan beberapa Availability Zone yang terpisah secara fisik dan terisolasi, yang terhubung dengan latensi rendah, throughput tinggi, dan jaringan yang sangat redundan. Dengan Zona Ketersediaan, Anda dapat merancang dan mengoperasikan aplikasi dan basis data yang secara otomatis melakukan failover di antara Zona Ketersediaan tanpa gangguan. Zona Ketersediaan memiliki ketersediaan dan toleransi kesalahan yang lebih baik, dan dapat diskalakan dibandingkan infrastruktur biasa yang terdiri dari satu atau beberapa pusat data. 

Untuk informasi selengkapnya tentang AWS Wilayah dan Availability Zone, lihat [infrastruktur AWS global](https://aws.amazon.com/about-aws/global-infrastructure/).

# Keamanan Infrastruktur di AWS CodeBuild
<a name="infrastructure-security"></a>

Sebagai layanan terkelola, AWS CodeBuild dilindungi oleh keamanan jaringan AWS global. Untuk informasi tentang layanan AWS keamanan dan cara AWS melindungi infrastruktur, lihat [Keamanan AWS Cloud](https://aws.amazon.com/security/). Untuk mendesain AWS lingkungan Anda menggunakan praktik terbaik untuk keamanan infrastruktur, lihat [Perlindungan Infrastruktur dalam Kerangka Kerja](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html) yang * AWS Diarsiteksikan dengan Baik Pilar Keamanan*.

Anda menggunakan panggilan API yang AWS dipublikasikan untuk mengakses CodeBuild melalui jaringan. Klien harus mendukung hal-hal berikut:
+ Keamanan Lapisan Pengangkutan (TLS). Kami mensyaratkan TLS 1.2 dan menganjurkan TLS 1.3.
+ Sandi cocok dengan sistem kerahasiaan maju sempurna (perfect forward secrecy, PFS) seperti DHE (Ephemeral Diffie-Hellman) atau ECDHE (Elliptic Curve Ephemeral Diffie-Hellman). Sebagian besar sistem modern seperti Java 7 dan versi lebih baru mendukung mode-mode ini.

# Akses penyedia sumber Anda di CodeBuild
<a name="access-tokens"></a>

Untuk GitHub atau Server GitHub Perusahaan, Anda menggunakan token akses pribadi, rahasia Secrets Manager, koneksi, atau OAuth aplikasi untuk mengakses penyedia sumber. Untuk Bitbucket, Anda menggunakan token akses, kata sandi aplikasi, rahasia Secrets Manager, koneksi, atau OAuth aplikasi untuk mengakses penyedia sumber. 

**Topics**
+ [Buat dan simpan token dalam rahasia Secrets Manager](asm-create-secret.md)
+ [GitHub dan akses Server GitHub Perusahaan di CodeBuild](access-tokens-github-overview.md)
+ [Akses Bitbucket di CodeBuild](access-tokens-bitbucket-overview.md)
+ [GitLab akses di CodeBuild](access-tokens-gitlab-overview.md)

# Buat dan simpan token dalam rahasia Secrets Manager
<a name="asm-create-secret"></a>

Jika Anda memilih untuk menggunakan token akses Anda menggunakan Secrets Manager, Anda dapat menggunakan koneksi rahasia yang ada atau membuat rahasia baru. Untuk membuat rahasia baru, lakukan hal berikut:

------
#### [ Konsol Manajemen AWS ]

**Untuk membuat rahasia Secrets Manager di Konsol Manajemen AWS**

1. Untuk **penyedia Sumber**, pilih **Bitbucket**, **GitHub**, atau **GitHub Enterprise**.

1. Untuk **Credential**, lakukan salah satu hal berikut:
   + Pilih **Kredensi sumber default** untuk menggunakan kredensi sumber default akun Anda untuk diterapkan ke semua proyek.

     1. Jika Anda tidak tersambung ke penyedia sumber, pilih **Kelola kredensi sumber default**.

     1. Untuk **tipe Credential**, pilih jenis kredensi selain. **CodeConnections**

     1. Untuk **Layanan**, pilih **Secrets Manager** dan untuk **Rahasia pilih Rahasia** **baru**.

     1. Dalam **nama Rahasia**, masukkan nama rahasia Anda.

     1. Dalam **deskripsi Rahasia - opsional**, masukkan deskripsi untuk rahasia Anda.

     1. Bergantung pada penyedia sumber yang Anda pilih, masukkan token atau nama pengguna dan kata sandi aplikasi Anda dan pilih **Simpan**.
   + Pilih **Kredensi sumber kustom untuk menggunakan kredensi** sumber kustom untuk mengganti setelan default akun Anda.

     1. Untuk **tipe Credential**, pilih jenis kredensi selain. **CodeConnections**

     1. Dalam **Koneksi**, pilih **Buat rahasia**.

     1. Dalam **nama Rahasia**, masukkan nama rahasia Anda.

     1. Dalam **deskripsi Rahasia - opsional**, masukkan deskripsi untuk rahasia Anda.

     1. Bergantung pada penyedia sumber yang Anda pilih, masukkan token atau nama pengguna dan kata sandi aplikasi Anda, lalu pilih **Buat**.

------
#### [ AWS CLI ]

**Untuk membuat rahasia Secrets Manager di AWS CLI**
+ Buka terminal (Linux, macOS, atau Unix) atau command prompt (Windows). Gunakan **create-secret** perintah AWS CLI untuk menjalankan Secrets Manager.

  ```
  aws secretsmanager create-secret --region <aws-region> \
              --name '<secret-name>' \
              --description '<secret-description>' \
              --secret-string '{
                  "ServerType":"<server-type>",
                  "AuthType":"<auth-type>",
                  "Token":"<token>"
                  }' \
              --tags Key=codebuild:source,Value='' \
                  Key=codebuild:source:type,Value=<type> \
                  Key=codebuild:source:provider,Value=<provider>
  ```

  Rahasia Secrets Manager yang CodeBuild menerima harus berada di akun dan AWS Wilayah yang sama dengan CodeBuild proyek dan harus dalam format JSON berikut:

  ```
  {
              "ServerType": ServerType,
              "AuthType: AuthType,
              "Token": string,
              "Username": string // Optional and is only used for Bitbucket app password
          }
  ```    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/asm-create-secret.html)

  Selain itu, CodeBuild gunakan tag sumber daya berikut pada rahasia untuk memastikan rahasia mudah dipilih saat membuat atau mengedit proyek.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/asm-create-secret.html)

------

# GitHub dan akses Server GitHub Perusahaan di CodeBuild
<a name="access-tokens-github-overview"></a>

Untuk GitHub, Anda dapat menggunakan token akses pribadi, OAuth aplikasi, rahasia Secrets Manager, atau koneksi GitHub Aplikasi untuk mengakses penyedia sumber. Untuk GitHub Enterprise Server, Anda dapat menggunakan token akses pribadi, rahasia Secrets Manager, atau koneksi GitHub Aplikasi untuk mengakses penyedia sumber.

**Topics**
+ [GitHub Koneksi aplikasi untuk GitHub dan Server GitHub Perusahaan](connections-github-app.md)
+ [GitHub dan token akses Server GitHub Perusahaan](access-tokens-github.md)
+ [GitHub OAuth aplikasi](oauth-app-github.md)

# GitHub Koneksi aplikasi untuk GitHub dan Server GitHub Perusahaan
<a name="connections-github-app"></a>

Anda dapat menggunakan GitHub Aplikasi untuk terhubung CodeBuild. GitHub Koneksi aplikasi didukung melalui [AWS CodeConnections](https://docs.aws.amazon.com/dtconsole/latest/userguide/welcome-connections.html).

Akses penyedia sumber memungkinkan Anda memicu build dengan berlangganan [GitHub acara webhook](github-webhook.md) menggunakan [ CreateWebhook](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_CreateWebhook.html), atau menggunakannya[Tutorial: Konfigurasikan CodeBuild pelari GitHub Tindakan yang di-host](action-runner.md). CodeBuild

**catatan**  
CodeConnections tersedia di wilayah yang lebih sedikit daripada CodeBuild. Anda dapat menggunakan koneksi lintas wilayah di CodeBuild. Koneksi yang dibuat di wilayah keikutsertaan, tidak dapat digunakan di wilayah lain. Untuk informasi lebih lanjut, lihat [AWS CodeConnections kuota dan titik akhir](https://docs.aws.amazon.com/general/latest/gr/codestar_connections.html).

**Topics**
+ [Langkah 1: Buat koneksi ke GitHub App (konsol)](#connections-github-console)
+ [Langkah 2: Berikan akses peran IAM CodeBuild proyek untuk menggunakan koneksi](#connections-github-role-access)
+ [Langkah 3: Konfigurasikan CodeBuild untuk menggunakan koneksi baru](#connections-github-account-credential)
+ [Memecahkan Masalah Aplikasi GitHub](#connections-github-troubleshooting)

## Langkah 1: Buat koneksi ke GitHub App (konsol)
<a name="connections-github-console"></a>

Gunakan langkah-langkah ini untuk menggunakan CodeBuild konsol guna menambahkan koneksi untuk proyek Anda GitHub.

**Untuk membuat koneksi ke GitHub**
+ Ikuti petunjuk di *Panduan Pengguna Alat Pengembang* untuk [Membuat koneksi ke GitHub](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create-github.html).

**catatan**  
Alih-alih membuat atau menggunakan koneksi yang ada di akun Anda, Anda dapat menggunakan koneksi yang dibagikan dari AWS akun lain. Untuk informasi selengkapnya, lihat [Berbagi koneksi dengan AWS akun](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-share.html).

## Langkah 2: Berikan akses peran IAM CodeBuild proyek untuk menggunakan koneksi
<a name="connections-github-role-access"></a>

Anda dapat memberikan akses peran IAM CodeBuild proyek untuk menggunakan GitHub token yang dijual oleh koneksi Anda.

**Untuk memberikan CodeBuild akses peran IAM proyek**

1. Buat peran IAM untuk CodeBuild proyek Anda dengan mengikuti petunjuk [Memungkinkan CodeBuild untuk berinteraksi dengan AWS layanan lain](setting-up-service-role.md) untuk CodeBuild proyek Anda.

1. Saat mengikuti petunjuk, tambahkan kebijakan IAM berikut ke peran CodeBuild proyek Anda untuk memberikan akses ke koneksi.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "codeconnections:GetConnectionToken",
                   "codeconnections:GetConnection"
               ],
               "Resource": [
                   "arn:aws:iam::*:role/Service*"
               ]
           }
       ]
   }
   ```

------

## Langkah 3: Konfigurasikan CodeBuild untuk menggunakan koneksi baru
<a name="connections-github-account-credential"></a>

Anda dapat mengonfigurasi koneksi sebagai kredensi tingkat akun dan menggunakannya dalam proyek.

------
#### [ Konsol Manajemen AWS ]

**Untuk mengonfigurasi koneksi sebagai kredensi tingkat akun di Konsol Manajemen AWS**

1. Untuk **penyedia Sumber**, pilih **GitHub**. 

1. Untuk **Credential**, lakukan salah satu hal berikut:
   + Pilih **Kredensi sumber default** untuk menggunakan kredensi sumber default akun Anda untuk diterapkan ke semua proyek.

     1. Jika Anda tidak tersambung GitHub, pilih **Kelola kredensi sumber default**.

     1. Untuk **jenis Kredenal**, pilih **GitHub Aplikasi**.

     1. Di **Koneksi**, pilih untuk menggunakan koneksi yang ada atau buat koneksi baru.
   + Pilih **Kredensi sumber kustom untuk menggunakan kredensi** sumber kustom untuk mengganti setelan default akun Anda.

     1. Untuk **jenis Kredenal**, pilih **GitHub Aplikasi**.

     1. Di **Koneksi**, pilih untuk menggunakan koneksi yang ada atau buat koneksi baru.

------
#### [ AWS CLI ]

**Untuk mengonfigurasi koneksi sebagai kredensi tingkat akun di AWS CLI**
+ Buka terminal (Linux, macOS, atau Unix) atau command prompt (Windows). Gunakan AWS CLI untuk menjalankan **import-source-credentials** perintah, menentukan, `--auth-type``--server-type`, dan `--token` untuk koneksi Anda.

  Gunakan perintah berikut ini.

  ```
  aws codebuild import-source-credentials --auth-type CODECONNECTIONS --server-type GITHUB --token <connection-arn>
  ```

------

Anda juga dapat mengatur beberapa token untuk CodeBuild proyek Anda. Untuk informasi selengkapnya, lihat [Konfigurasikan beberapa token sebagai kredenal tingkat sumber](multiple-access-tokens.md#asm-source-credential).

## Memecahkan masalah dengan Aplikasi GitHub
<a name="connections-github-troubleshooting"></a>

Informasi berikut dapat membantu Anda memecahkan masalah umum dengan Aplikasi. GitHub 

**Topics**
+ [Instal AWS Konektor untuk GitHub aplikasi di wilayah yang tidak diinginkan](#connections-github-troubleshooting.undesired-region)
+ [Koneksi GitHub Aplikasi tidak memiliki akses ke repositori](#connections-github-troubleshooting.repo-access)
+ [Peran IAM AWS layanan tidak memiliki izin IAM yang diperlukan.](#connections-github-troubleshooting.iam-permissions)

### Instal AWS Konektor untuk GitHub aplikasi di wilayah yang tidak diinginkan
<a name="connections-github-troubleshooting.undesired-region"></a>

**Masalah:** Anda menginstal AWS Konektor untuk GitHub dari GitHub Marketplace, tetapi koneksi dibuat di wilayah yang tidak diinginkan. Jika Anda mencoba mengonfigurasi ulang aplikasi di GitHub situs web, itu tidak akan berfungsi karena aplikasi sudah diinstal di GitHub akun Anda.

**Kemungkinan penyebabnya:** Aplikasi sudah diinstal di GitHub akun Anda, jadi Anda hanya dapat mengonfigurasi ulang izin aplikasi.

**Solusi yang disarankan:** Anda dapat membuat koneksi baru dengan ID instalasi di wilayah yang diinginkan.

1. Buka CodeConnections konsol di [https://console.aws.amazon.com/codesuite/pengaturan/koneksi](https://console.aws.amazon.com/codesuite/settings/connections) dan arahkan ke wilayah yang diinginkan menggunakan pemilih wilayah di bilah navigasi konsol. AWS 

1. Ikuti petunjuk di *Panduan Pengguna Alat Pengembang* untuk [Membuat koneksi ke GitHub](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create-github.html).
**catatan**  
Karena Anda telah menginstal AWS Connector for GitHub app, Anda dapat memilihnya daripada menginstal aplikasi baru.

### Koneksi GitHub Aplikasi tidak memiliki akses ke repositori
<a name="connections-github-troubleshooting.repo-access"></a>

**Masalah:** AWS Layanan yang menggunakan koneksi, seperti CodeBuild atau CodePipeline, melaporkan bahwa layanan tersebut tidak memiliki akses ke repositori atau repositori tidak ada. Beberapa pesan kesalahan yang mungkin termasuk:
+ `Authentication required for primary source.`
+ `Unable to create webhook at this time. Please try again later.`
+ `Failed to create webhook. GitHub API limit reached. Please try again later.`

***Kemungkinan penyebabnya:** Anda mungkin telah menggunakan GitHub aplikasi dan belum memberikan cakupan izin webhook.*  
**Solusi yang disarankan:** Untuk memberikan cakupan izin yang diperlukan, ikuti petunjuk dalam [Menavigasi ke GitHub Aplikasi yang ingin Anda tinjau atau ubah untuk](https://docs.github.com/en/apps/using-github-apps/reviewing-and-modifying-installed-github-apps#navigating-to-the-github-app-you-want-to-review-or-modify) mengonfigurasi aplikasi yang diinstal. Di bawah bagian izin, Anda akan melihat aplikasi tidak memiliki izin webhooks, dan ada opsi bagi Anda untuk meninjau izin yang baru diminta. Tinjau dan terima izin baru. Untuk informasi selengkapnya, lihat [Menyetujui izin yang diperbarui untuk](https://docs.github.com/en/apps/using-github-apps/approving-updated-permissions-for-a-github-app) Aplikasi. GitHub 

***Kemungkinan penyebabnya:** Koneksi berfungsi seperti yang diharapkan, tetapi tiba-tiba tidak memiliki akses ke repositori.*  
**Solusi yang memungkinkan:** Mulailah dengan meninjau [otorisasi](https://docs.github.com/en/apps/using-github-apps/reviewing-and-revoking-authorization-of-github-apps) dan [instalasi](https://docs.github.com/en/apps/using-github-apps/reviewing-and-modifying-installed-github-apps) Anda, lalu verifikasi GitHub Aplikasi diotorisasi dan diinstal. Jika penginstalan GitHub Aplikasi ditangguhkan, maka Anda harus melepaskannya. Jika GitHub Aplikasi tidak diizinkan untuk koneksi [UAT (User Access Token)](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-with-a-github-app-on-behalf-of-a-user), atau tidak diinstal untuk koneksi [IAT (Installation Access Token)](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-as-a-github-app-installation), koneksi yang ada tidak dapat digunakan lagi, dan Anda perlu membuat koneksi baru. Perhatikan bahwa menginstal ulang GitHub Aplikasi tidak akan menghidupkan kembali koneksi sebelumnya yang terkait dengan instalasi lama.  
**Solusi yang mungkin:** Jika koneksi adalah koneksi UAT, pastikan koneksi tidak digunakan secara bersamaan, seperti yang digunakan dalam beberapa proses build CodeBuild secara bersamaan. Ini karena GitHub segera membatalkan UAT yang dikeluarkan sebelumnya jika token yang kedaluwarsa disegarkan oleh koneksi. Jika Anda perlu menggunakan koneksi UAT untuk beberapa CodeBuild build bersamaan, Anda dapat membuat beberapa koneksi dan menggunakan setiap koneksi secara independen.  
**Solusi yang mungkin:** Jika koneksi UAT belum digunakan dalam 6 bulan terakhir, koneksi akan dibatalkan oleh. GitHub Untuk memperbaikinya, buat koneksi baru.

***Kemungkinan penyebabnya:** Anda mungkin telah menggunakan koneksi UAT tanpa menginstal aplikasi.*  
**Solusi yang disarankan:** Meskipun membuat koneksi UAT tidak memerlukan pengaitkan koneksi dengan instalasi GitHub Aplikasi, penginstalan diperlukan agar repositori dapat diakses. Ikuti petunjuk untuk [meninjau instalasi](https://docs.github.com/en/apps/using-github-apps/reviewing-and-modifying-installed-github-apps) untuk memastikan GitHub Aplikasi diinstal. Jika tidak diinstal, navigasikan ke [halaman GitHub Aplikasi](https://github.com/marketplace/aws-connector-for-github) untuk menginstal aplikasi. Untuk informasi selengkapnya tentang akses UAT, lihat [Tentang token akses pengguna](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app#about-user-access-tokens).

### Peran IAM AWS layanan tidak memiliki izin IAM yang diperlukan.
<a name="connections-github-troubleshooting.iam-permissions"></a>

**Masalah:** Anda melihat salah satu pesan galat berikut:
+ `Access denied to connection <connection-arn>`
+ `Failed to get access token from <connection-arn>`

**Solusi yang disarankan:** Biasanya Anda menggunakan koneksi dengan AWS layanan, seperti CodePipeline atau CodeBuild. Ketika Anda memberikan AWS layanan peran IAM, AWS layanan dapat menggunakan izin peran untuk bertindak atas nama Anda. Pastikan peran IAM memiliki izin yang diperlukan. Untuk informasi selengkapnya tentang izin IAM yang diperlukan, lihat [Memberikan akses peran IAM CodeBuild proyek untuk menggunakan koneksi](#connections-github-role-access) dan [manajemen Identitas dan akses untuk AWS CodeStar Pemberitahuan dan CodeConnections](https://docs.aws.amazon.com/dtconsole/latest/userguide/security-iam.html) di *Panduan Pengguna konsol Alat Pengembang*.

# GitHub dan token akses Server GitHub Perusahaan
<a name="access-tokens-github"></a>

## Prasyarat token akses
<a name="access-tokens-github-prereqs"></a>

Sebelum memulai, Anda harus menambahkan cakupan izin yang tepat ke token GitHub akses Anda. 

Untuk GitHub, token akses pribadi Anda harus memiliki cakupan berikut. 
+ **repo**: Memberikan kontrol penuh atas repositori pribadi. 
+ **repo:status:** Memberikan read/write akses ke status komit repositori publik dan pribadi.
+ **admin:repo\$1hook: Memberikan kontrol penuh atas kait** repositori. Cakupan ini tidak diperlukan jika token Anda memiliki `repo` ruang lingkup. 
+ **admin:org\$1hook: Memberikan kontrol penuh atas kait** organisasi. Cakupan ini hanya diperlukan jika Anda menggunakan fitur webhook organisasi.

Untuk informasi selengkapnya, lihat [Memahami cakupan OAuth aplikasi](https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/) di GitHub situs web.

Jika Anda menggunakan token akses pribadi berbutir halus, tergantung pada kasus penggunaan Anda, token akses pribadi Anda mungkin memerlukan izin berikut:
+ **Isi: Read-only**: Memberikan akses ke repositori pribadi. Izin ini diperlukan jika Anda menggunakan repositori pribadi sebagai sumber.
+ **Status komit: Baca dan tulis**: Memberikan izin untuk membuat status komit. Izin ini diperlukan jika proyek Anda telah menyiapkan webhook, atau fitur status build laporan diaktifkan.
+ **Webhooks: Baca dan tulis**: Memberikan izin untuk mengelola webhook. Izin ini diperlukan jika proyek Anda telah menyiapkan webhook.
+ **Permintaan tarik: Hanya baca**: Memberikan izin untuk mengakses permintaan tarik. Izin ini diperlukan jika webhook Anda memiliki `FILE_PATH` filter pada peristiwa permintaan tarik.
+ **Administrasi: Baca dan tulis**: Izin ini diperlukan jika Anda menggunakan fitur pelari GitHub Tindakan yang dihosting sendiri. CodeBuild Untuk detail selengkapnya, lihat [Membuat token pendaftaran untuk repositori](https://docs.github.com/en/rest/actions/self-hosted-runners?apiVersion=2022-11-28#create-a-registration-token-for-a-repository) dan. [Tutorial: Konfigurasikan CodeBuild pelari GitHub Tindakan yang di-host](action-runner.md)

**catatan**  
Jika Anda ingin mengakses repositori organisasi, pastikan Anda menentukan organisasi sebagai pemilik sumber daya token akses.

Untuk informasi selengkapnya, lihat [Izin yang diperlukan untuk token akses pribadi berbutir halus](https://docs.github.com/en/rest/authentication/permissions-required-for-fine-grained-personal-access-tokens?apiVersion=2022-11-28) di situs web. GitHub 

## Connect GitHub dengan token akses (konsol)
<a name="access-tokens-github-console"></a>

Untuk menggunakan konsol untuk menghubungkan proyek Anda GitHub dengan menggunakan token akses, lakukan hal berikut saat Anda membuat proyek. Untuk informasi, lihat [Buat proyek build (konsol)](create-project.md#create-project-console). 

1. Untuk **penyedia Sumber**, pilih **GitHub**. 

1. Untuk **Credential**, lakukan salah satu hal berikut:
   + Pilih untuk menggunakan kredensil akun untuk menerapkan kredensi sumber default akun Anda ke semua proyek.

     1. Jika Anda tidak tersambung GitHub, pilih **Kelola kredensi akun**.

     1. Untuk **tipe Credential**, pilih **Personal Access Token**.
   + Jika Anda memilih untuk menggunakan kredensi tingkat akun untuk **Layanan**, pilih layanan mana yang ingin Anda gunakan untuk menyimpan token Anda dan lakukan hal berikut:

     1. Jika Anda memilih untuk menggunakan **Secrets Manager**, Anda dapat memilih untuk menggunakan koneksi rahasia yang ada atau membuat rahasia baru, lalu pilih **Simpan**. Untuk informasi selengkapnya cara membuat rahasia baru, lihat[Buat dan simpan token dalam rahasia Secrets Manager](asm-create-secret.md).

     1. Jika Anda memilih untuk menggunakan **CodeBuild**, masukkan token akses GitHub pribadi Anda, lalu pilih **Simpan**.
   + Pilih **Use override credentials untuk project ini hanya untuk** menggunakan kredensi sumber kustom untuk mengganti setelan kredensi akun Anda.

     1. Dari daftar kredensi yang terisi, pilih salah satu opsi di bawah Token **akses pribadi**.

     1. Anda juga dapat membuat token akses pribadi baru dengan memilih **buat koneksi token akses pribadi baru** dalam deskripsi.

## Connect GitHub dengan token akses (CLI)
<a name="access-tokens-github-cli"></a>

Ikuti langkah-langkah ini untuk menggunakan AWS CLI untuk menghubungkan proyek Anda GitHub dengan menggunakan token akses. Untuk informasi tentang menggunakan AWS CLI with AWS CodeBuild, lihat[Referensi baris perintah](cmd-ref.md). 

1. Jalankan perintah **import-source-credentials**: 

   ```
   aws codebuild import-source-credentials --generate-cli-skeleton
   ```

   Data berformat JSON muncul di output. Salin data ke file (misalnya,`import-source-credentials.json`) di lokasi di komputer lokal atau contoh di AWS CLI mana diinstal. Ubah data yang disalin sebagai berikut, dan simpan hasil Anda. 

   ```
   {
       "serverType": "server-type",
       "authType": "auth-type",
       "shouldOverwrite": "should-overwrite",
       "token": "token",
       "username": "username"
       }
   ```

   Ganti yang berikut ini: 
   + *server-type*: Nilai yang dibutuhkan. Penyedia sumber yang digunakan untuk kredensi ini. Nilai yang valid adalah GITHUB, BITBUCKET, GITHUB\$1ENTERPRISE, GITLAB, dan GITLAB\$1SELF\$1MANAGED.
   + *auth-type*: Nilai yang dibutuhkan. Jenis otentikasi yang digunakan untuk terhubung ke repositori. Nilai yang valid adalah OAUTH, BASIC\$1AUTH, PERSONAL\$1ACCESS\$1TOKEN, CODECONNECTIONS, dan SECRETS\$1MANAGER. Untuk GitHub, hanya PERSONAL\$1ACCESS\$1TOKEN yang diizinkan. BASIC\$1AUTH hanya diizinkan dengan kata sandi aplikasi Bitbucket.
   + *should-overwrite*: Nilai opsional. Setel `false` untuk mencegah penimpaan kredenal sumber repositori. Setel `true` untuk menimpa kredensyal sumber repositori. Nilai default-nya adalah `true`.
   + *token*: Nilai yang dibutuhkan. Untuk GitHub atau Server GitHub Perusahaan, ini adalah token akses pribadi. Untuk Bitbucket, ini adalah token akses pribadi atau kata sandi aplikasi. Untuk CODECONNECTIONS tipe auth-, ini adalah koneksi ARN. Untuk tipe auth-SECRETS\$1MANAGER, ini adalah ARN rahasia.
   + *username*: Nilai opsional. Parameter ini diabaikan untuk GitHub dan penyedia sumber Server GitHub Perusahaan. 

1. Untuk menghubungkan akun Anda dengan token akses, beralih ke direktori yang berisi `import-source-credentials.json` file yang Anda simpan di langkah 1 dan jalankan **import-source-credentials** perintah lagi. 

   ```
   aws codebuild import-source-credentials --cli-input-json file://import-source-credentials.json
   ```

   Data berformat JSON muncul di output dengan Amazon Resource Name (ARN). 

   ```
   {
       "arn": "arn:aws:codebuild:region:account-id:token/server-type"
       }
   ```
**catatan**  
Jika Anda menjalankan **import-source-credentials** perintah dengan jenis server dan jenis autentikasi yang sama untuk kedua kalinya, token akses yang disimpan diperbarui. 

   Setelah akun Anda terhubung dengan token akses, Anda dapat menggunakannya `create-project` untuk membuat CodeBuild proyek Anda. Untuk informasi selengkapnya, lihat [Buat proyek build (AWS CLI)](create-project.md#create-project-cli). 

1. Untuk melihat token akses yang terhubung, jalankan **list-source-credentials** perintah. 

   ```
   aws codebuild list-source-credentials
   ```

   `sourceCredentialsInfos`Objek berformat JSON muncul di output: 

   ```
   {
           "sourceCredentialsInfos": [
               {
                   "authType": "auth-type",
                   "serverType": "server-type", 
                   "arn": "arn"
               }
           ]
       }
   ```

   `sourceCredentialsObject`Berisi daftar informasi kredensial sumber yang terhubung: 
   + `authType`Ini adalah jenis otentikasi yang digunakan oleh kredensyal. Ini bisa`OAUTH`,`BASIC_AUTH`,`PERSONAL_ACCESS_TOKEN`,`CODECONNECTIONS`, atau`SECRETS_MANAGER`. 
   + `serverType`Ini adalah jenis penyedia sumber. Ini bisa`GITHUB`,`GITHUB_ENTERPRISE`,`BITBUCKET`,`GITLAB`, atau`GITLAB_SELF_MANAGED`. 
   + `arn`Itu adalah ARN dari token. 

1. Untuk memutuskan sambungan dari penyedia sumber dan menghapus token aksesnya, jalankan **delete-source-credentials** perintah dengan ARN-nya. 

   ```
   aws codebuild delete-source-credentials --arn arn-of-your-credentials
   ```

   Data berformat JSON dikembalikan dengan ARN dari kredenal yang dihapus. 

   ```
   {
       "arn": "arn:aws:codebuild:region:account-id:token/server-type"
       }
   ```

# GitHub OAuth aplikasi
<a name="oauth-app-github"></a>

## Connect GitHub menggunakan OAuth (konsol)
<a name="oauth-app-github-console"></a>

Untuk menggunakan konsol untuk menghubungkan project Anda GitHub menggunakan OAuth aplikasi, lakukan hal berikut saat Anda membuat project. Untuk informasi, lihat [Buat proyek build (konsol)](create-project.md#create-project-console). 

1. Untuk **penyedia Sumber**, pilih **GitHub**. 

1. Untuk **Credential**, lakukan salah satu hal berikut:
   + Pilih untuk menggunakan kredensil akun untuk menerapkan kredensi sumber default akun Anda ke semua proyek.

     1. Jika Anda tidak tersambung GitHub, pilih **Kelola kredensi akun**.

     1. Untuk **jenis Credential**, pilih **OAuth app**.
   + Jika Anda memilih untuk menggunakan kredensi tingkat akun untuk **Layanan**, pilih layanan mana yang ingin Anda gunakan untuk menyimpan token Anda dan lakukan hal berikut:

     1. Jika Anda memilih untuk menggunakan **Secrets Manager**, Anda dapat memilih untuk menggunakan koneksi rahasia yang ada atau membuat rahasia baru, lalu pilih **Simpan**. Untuk informasi selengkapnya cara membuat rahasia baru, lihat[Buat dan simpan token dalam rahasia Secrets Manager](asm-create-secret.md).

     1. Jika Anda memilih untuk menggunakan **CodeBuild**dan kemudian pilih **Simpan**.
   + Pilih **Use override credentials untuk project ini hanya untuk** menggunakan kredensi sumber kustom untuk mengganti setelan kredensi akun Anda.

     1. **Dari daftar kredensyal yang terisi, pilih salah satu opsi di bawah OAuth aplikasi.**

     1. Anda juga dapat membuat token OAuth aplikasi baru dengan memilih **buat koneksi token aplikasi Oauth baru** dalam deskripsi.

Untuk meninjau OAuth aplikasi resmi Anda, navigasikan ke [Aplikasi](https://github.com/settings/applications) aktif GitHub, dan verifikasi bahwa aplikasi bernama yang `AWS CodeBuild (region)` dimiliki oleh [aws-codesuite](https://github.com/aws-codesuite) terdaftar.

# Akses Bitbucket di CodeBuild
<a name="access-tokens-bitbucket-overview"></a>

Untuk Bitbucket, Anda menggunakan token akses, kata sandi aplikasi, OAuth aplikasi, atau koneksi Bitbucket untuk mengakses penyedia sumber.

**Topics**
+ [Koneksi Aplikasi Bitbucket](connections-bitbucket-app.md)
+ [Kata sandi aplikasi Bitbucket atau token akses](access-tokens-bitbucket.md)
+ [Aplikasi Bitbucket OAuth](oauth-app-bitbucket.md)

# Koneksi Aplikasi Bitbucket
<a name="connections-bitbucket-app"></a>

Anda dapat menggunakan Bitbucket untuk terhubung CodeBuild. Koneksi Bitbucket App didukung melalui [AWS CodeConnections](https://docs.aws.amazon.com/dtconsole/latest/userguide/welcome-connections.html).

**catatan**  
CodeConnections tersedia di wilayah kurang dari CodeBuild. Anda dapat menggunakan koneksi lintas wilayah di CodeBuild. Koneksi yang dibuat di wilayah keikutsertaan, tidak dapat digunakan di wilayah lain. Untuk informasi lebih lanjut, lihat [AWS CodeConnections kuota dan titik akhir](https://docs.aws.amazon.com/general/latest/gr/codestar_connections.html).

**Topics**
+ [Langkah 1: Buat koneksi ke Bitbucket (konsol)](#connections-bitbucket-console)
+ [Langkah 2: Berikan akses peran IAM CodeBuild proyek untuk menggunakan koneksi](#connections-bitbucket-role-access)
+ [Langkah 3: Konfigurasikan CodeBuild untuk menggunakan koneksi baru](#connections-bitbucket-account-credential)

## Langkah 1: Buat koneksi ke Bitbucket (konsol)
<a name="connections-bitbucket-console"></a>

Gunakan langkah-langkah ini untuk menggunakan CodeBuild konsol untuk menambahkan koneksi untuk proyek Anda di Bitbucket.

**Untuk membuat koneksi ke Bitbucket**
+ Ikuti petunjuk di *Panduan Pengguna Alat Pengembang* untuk [Membuat koneksi ke Bitbucket](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create-bitbucket.html).

**catatan**  
Alih-alih membuat atau menggunakan koneksi yang ada di akun Anda, Anda dapat menggunakan koneksi yang dibagikan dari AWS akun lain. Untuk informasi selengkapnya, lihat [Berbagi koneksi dengan AWS akun](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-share.html).

## Langkah 2: Berikan akses peran IAM CodeBuild proyek untuk menggunakan koneksi
<a name="connections-bitbucket-role-access"></a>

Anda dapat memberikan akses peran IAM CodeBuild proyek untuk menggunakan token Bitbucket yang dijual oleh koneksi Anda.

**Untuk memberikan CodeBuild akses peran IAM proyek**

1. Buat peran IAM untuk CodeBuild proyek Anda dengan mengikuti petunjuk [Memungkinkan CodeBuild untuk berinteraksi dengan AWS layanan lain](setting-up-service-role.md) untuk CodeBuild proyek Anda.

1. Saat mengikuti petunjuk, tambahkan kebijakan IAM berikut ke peran CodeBuild proyek Anda untuk memberikan akses ke koneksi.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "codeconnections:GetConnectionToken",
                   "codeconnections:GetConnection"
               ],
               "Resource": [
                   "arn:aws:iam::*:role/Service*"
               ]
           }
       ]
   }
   ```

------

## Langkah 3: Konfigurasikan CodeBuild untuk menggunakan koneksi baru
<a name="connections-bitbucket-account-credential"></a>

Anda dapat mengonfigurasi koneksi sebagai kredensi tingkat akun dan menggunakannya dalam proyek.

------
#### [ Konsol Manajemen AWS ]

**Untuk mengonfigurasi koneksi sebagai kredensi tingkat akun di Konsol Manajemen AWS**

1. Untuk **penyedia Sumber**, pilih **Bitbucket**. 

1. Untuk **Credential**, lakukan salah satu hal berikut:
   + Pilih **Kredensi sumber default** untuk menggunakan kredensi sumber default akun Anda untuk diterapkan ke semua proyek.

     1. Jika Anda tidak terhubung ke Bitbucket, pilih **Kelola kredensi sumber default**.

     1. Untuk **tipe Credential**, pilih **CodeConnections**.

     1. Di **Koneksi**, pilih untuk menggunakan koneksi yang ada atau buat koneksi baru.
   + Pilih **Kredensi sumber kustom untuk menggunakan kredensi** sumber kustom untuk mengganti setelan default akun Anda.

     1. Untuk **tipe Credential**, pilih **CodeConnections**.

     1. Di **Koneksi**, pilih untuk menggunakan koneksi yang ada atau buat koneksi baru.

------
#### [ AWS CLI ]

**Untuk mengonfigurasi koneksi sebagai kredensi tingkat akun di AWS CLI**
+ Buka terminal (Linux, macOS, atau Unix) atau command prompt (Windows). Gunakan AWS CLI untuk menjalankan **import-source-credentials** perintah, menentukan, `--auth-type``--server-type`, dan `--token` untuk koneksi Anda.

  Gunakan perintah berikut ini.

  ```
  aws codebuild import-source-credentials --auth-type CODECONNECTIONS --server-type BITBUCKET --token <connection-arn>
  ```

------

Untuk informasi selengkapnya tentang menyiapkan beberapa token dalam CodeBuild proyek Anda, lihat[Konfigurasikan beberapa token sebagai kredenal tingkat sumber](multiple-access-tokens.md#asm-source-credential).

# Kata sandi aplikasi Bitbucket atau token akses
<a name="access-tokens-bitbucket"></a>

## Prasyarat
<a name="access-tokens-bitbucket-prerequisites"></a>

Sebelum memulai, Anda harus menambahkan cakupan izin yang tepat ke kata sandi aplikasi Bitbucket atau token akses Anda. 

Untuk Bitbucket, kata sandi aplikasi atau token akses Anda harus memiliki cakupan berikut. 
+ **repository:read: Memberikan akses baca** ke semua repositori yang dapat diakses oleh pengguna otorisasi. 
+ **pullrequest:read: Memberikan akses baca** ke permintaan tarik. Jika project Anda memiliki webhook Bitbucket, kata sandi aplikasi atau token akses Anda harus memiliki cakupan ini. 
+ **webhook**: Memberikan akses ke webhook. Jika project Anda memiliki operasi webhook, kata sandi aplikasi atau token akses Anda harus memiliki cakupan ini. 
+ **akun**: Memberikan akses baca ke informasi akun pengguna.

Untuk informasi selengkapnya, lihat [Cakupan untuk Bitbucket Cloud REST API](https://developer.atlassian.com/cloud/bitbucket/bitbucket-cloud-rest-api-scopes/) dan [Bitbucket Cloud OAuth di](https://confluence.atlassian.com/bitbucket/oauth-on-bitbucket-cloud-238027431.html) situs web Bitbucket.

## Connect Bitbucket dengan password aplikasi (konsol)
<a name="access-tokens-bitbucket-password-console"></a>

Untuk menggunakan konsol untuk menghubungkan proyek Anda ke Bitbucket menggunakan kata sandi aplikasi, lakukan hal berikut saat Anda membuat proyek. Untuk informasi, lihat [Buat proyek build (konsol)](create-project.md#create-project-console). 

1. Untuk **penyedia Sumber**, pilih **Bitbucket**. 

1. Untuk **Credential**, lakukan salah satu hal berikut:
   + Pilih untuk menggunakan kredensil akun untuk menerapkan kredensi sumber default akun Anda ke semua proyek.

     1. Jika Anda tidak terhubung ke Bitbucket, pilih **Kelola kredensi akun**.

     1. Untuk **jenis Kredenal**, pilih **Kata sandi aplikasi**.
   + Jika Anda memilih untuk menggunakan kredensi tingkat akun untuk **Layanan**, pilih layanan mana yang ingin Anda gunakan untuk menyimpan token Anda dan lakukan hal berikut:

     1. Jika Anda memilih untuk menggunakan **Secrets Manager**, Anda dapat memilih untuk menggunakan koneksi rahasia yang ada atau membuat rahasia baru, lalu pilih **Simpan**. Untuk informasi selengkapnya cara membuat rahasia baru, lihat[Buat dan simpan token dalam rahasia Secrets Manager](asm-create-secret.md).

     1. Jika Anda memilih untuk menggunakan **CodeBuild**, masukkan nama pengguna dan kata sandi aplikasi Bitbucket Anda, lalu pilih **Simpan**.
   + Pilih **Use override credentials untuk project ini hanya untuk** menggunakan kredensi sumber kustom untuk mengganti setelan kredensi akun Anda.

     1. Dari daftar kredensi terisi, pilih salah satu opsi di bawah Kata sandi **aplikasi**.

     1. Anda juga dapat membuat token kata sandi Aplikasi baru dengan memilih **buat koneksi kata sandi aplikasi baru** dalam deskripsi.

## Connect Bitbucket dengan token akses (konsol)
<a name="access-tokens-bitbucket-console"></a>

Untuk menggunakan konsol untuk menghubungkan proyek Anda ke Bitbucket menggunakan token akses, lakukan hal berikut saat Anda membuat proyek. Untuk informasi, lihat [Buat proyek build (konsol)](create-project.md#create-project-console). 

1. Untuk **penyedia Sumber**, pilih **Bitbucket**. 

1. Untuk **Credential**, lakukan salah satu hal berikut:
   + Pilih untuk menggunakan kredensil akun untuk menerapkan kredensi sumber default akun Anda ke semua proyek.

     1. Jika Anda tidak terhubung ke Bitbucket, pilih **Kelola kredensi akun**.

     1. Untuk **tipe Credential**, pilih **Personal Access Token**.
   + Jika Anda memilih untuk menggunakan kredensi tingkat akun untuk **Layanan**, pilih layanan mana yang ingin Anda gunakan untuk menyimpan token Anda dan lakukan hal berikut:

     1. Jika Anda memilih untuk menggunakan **Secrets Manager**, Anda dapat memilih untuk menggunakan koneksi rahasia yang ada atau membuat rahasia baru, lalu pilih **Simpan**. Untuk informasi selengkapnya cara membuat rahasia baru, lihat[Buat dan simpan token dalam rahasia Secrets Manager](asm-create-secret.md).

     1. Jika Anda memilih untuk menggunakan **CodeBuild**, masukkan token akses pribadi Bitbucket Anda, lalu pilih **Simpan**.
   + Pilih **Use override credentials untuk project ini hanya untuk** menggunakan kredensi sumber kustom untuk mengganti setelan kredensi akun Anda.

     1. Dari daftar kredensi yang terisi, pilih salah satu opsi di bawah Token **akses pribadi**.

     1. Anda juga dapat membuat token akses pribadi baru dengan memilih **buat koneksi token akses pribadi baru** dalam deskripsi.

## Hubungkan Bitbucket dengan kata sandi aplikasi atau token akses (CLI)
<a name="access-tokens-bitbucket-cli"></a>

Ikuti langkah-langkah berikut untuk menggunakan AWS CLI untuk menghubungkan proyek Anda ke Bitbucket menggunakan kata sandi aplikasi atau token akses. Untuk informasi tentang menggunakan AWS CLI with AWS CodeBuild, lihat[Referensi baris perintah](cmd-ref.md). 

1. Jalankan perintah **import-source-credentials**: 

   ```
   aws codebuild import-source-credentials --generate-cli-skeleton
   ```

   Data berformat JSON muncul di output. Salin data ke file (misalnya,`import-source-credentials.json`) di lokasi di komputer lokal atau contoh di AWS CLI mana diinstal. Ubah data yang disalin sebagai berikut, dan simpan hasil Anda. 

   ```
   {
       "serverType": "BITBUCKET",
       "authType": "auth-type",
       "shouldOverwrite": "should-overwrite",
       "token": "token",
       "username": "username"
       }
   ```

   Ganti yang berikut ini: 
   + *server-type*: Nilai yang dibutuhkan. Penyedia sumber yang digunakan untuk kredensi ini. Nilai yang valid adalah GITHUB, BITBUCKET, GITHUB\$1ENTERPRISE, GITLAB, dan GITLAB\$1SELF\$1MANAGED.
   + *auth-type*: Nilai yang dibutuhkan. Jenis otentikasi yang digunakan untuk terhubung ke repositori. Nilai yang valid adalah OAUTH, BASIC\$1AUTH, PERSONAL\$1ACCESS\$1TOKEN, CODECONNECTIONS, dan SECRETS\$1MANAGER. Untuk GitHub, hanya PERSONAL\$1ACCESS\$1TOKEN yang diizinkan. BASIC\$1AUTH hanya diizinkan dengan kata sandi aplikasi Bitbucket.
   + *should-overwrite*: Nilai opsional. Setel `false` untuk mencegah penimpaan kredenal sumber repositori. Setel `true` untuk menimpa kredensyal sumber repositori. Nilai default-nya adalah `true`.
   + *token*: Nilai yang dibutuhkan. Untuk GitHub atau Server GitHub Perusahaan, ini adalah token akses pribadi. Untuk Bitbucket, ini adalah token akses pribadi atau kata sandi aplikasi. Untuk CODECONNECTIONS tipe auth-, ini adalah koneksi ARN. Untuk tipe auth-SECRETS\$1MANAGER, ini adalah ARN rahasia.
   + *username*: Nilai opsional. Parameter ini diabaikan untuk GitHub dan penyedia sumber Server GitHub Perusahaan. 

1. Untuk menghubungkan akun Anda dengan kata sandi aplikasi atau token akses, alihkan ke direktori yang berisi `import-source-credentials.json` file yang Anda simpan di langkah 1 dan jalankan **import-source-credentials** perintah lagi. 

   ```
   aws codebuild import-source-credentials --cli-input-json file://import-source-credentials.json
   ```

   Data berformat JSON muncul di output dengan Amazon Resource Name (ARN). 

   ```
   {
       "arn": "arn:aws:codebuild:region:account-id:token/server-type"
       }
   ```
**catatan**  
Jika Anda menjalankan **import-source-credentials** perintah dengan jenis server dan jenis autentikasi yang sama untuk kedua kalinya, token akses yang disimpan diperbarui. 

   Setelah akun Anda terhubung dengan kata sandi aplikasi, Anda dapat menggunakannya `create-project` untuk membuat CodeBuild proyek Anda. Untuk informasi selengkapnya, lihat [Buat proyek build (AWS CLI)](create-project.md#create-project-cli). 

1. Untuk melihat kata sandi aplikasi yang terhubung atau token akses, jalankan **list-source-credentials** perintah. 

   ```
   aws codebuild list-source-credentials
   ```

   `sourceCredentialsInfos`Objek berformat JSON muncul di output: 

   ```
   {
           "sourceCredentialsInfos": [
               {
                   "authType": "auth-type",
                   "serverType": "BITBUCKET", 
                   "arn": "arn"
               }
           ]
       }
   ```

   `sourceCredentialsObject`Berisi daftar informasi kredensial sumber yang terhubung: 
   + `authType`Ini adalah jenis otentikasi yang digunakan oleh kredensi. Ini bisa`OAUTH`,`BASIC_AUTH`,`PERSONAL_ACCESS_TOKEN`,`CODECONNECTIONS`, atau`SECRETS_MANAGER`. 
   + `serverType`Ini adalah jenis penyedia sumber. Ini bisa`GITHUB`,`GITHUB_ENTERPRISE`,`BITBUCKET`,`GITLAB`, atau`GITLAB_SELF_MANAGED`. 
   + `arn`Itu adalah ARN dari token. 

1. Untuk memutuskan sambungan dari penyedia sumber dan menghapus kata sandi aplikasi atau token aksesnya, jalankan **delete-source-credentials** perintah dengan ARN-nya. 

   ```
   aws codebuild delete-source-credentials --arn arn-of-your-credentials
   ```

   Data berformat JSON dikembalikan dengan ARN dari kredenal yang dihapus. 

   ```
   {
       "arn": "arn:aws:codebuild:region:account-id:token/server-type"
       }
   ```

# Aplikasi Bitbucket OAuth
<a name="oauth-app-bitbucket"></a>

## Connect Bitbucket menggunakan OAuth (konsol)
<a name="oauth-app-bitbucket-console"></a>

Untuk menggunakan konsol untuk menghubungkan proyek Anda ke Bitbucket menggunakan OAuth aplikasi, lakukan hal berikut saat Anda membuat proyek. Untuk informasi, lihat [Buat proyek build (konsol)](create-project.md#create-project-console). 

1. Untuk **penyedia Sumber**, pilih **Bitbucket**. 

1. Untuk **Credential**, lakukan salah satu hal berikut:
   + Pilih untuk menggunakan kredensil akun untuk menerapkan kredensi sumber default akun Anda ke semua proyek.

     1. Jika Anda tidak terhubung ke Bitbucket, pilih **Kelola kredensi akun**.

     1. Untuk **jenis Credential**, pilih **OAuth app**.
   + Jika Anda memilih untuk menggunakan kredensi tingkat akun untuk **Layanan**, pilih layanan mana yang ingin Anda gunakan untuk menyimpan token Anda dan lakukan hal berikut:

     1. Jika Anda memilih untuk menggunakan **Secrets Manager**, Anda dapat memilih untuk menggunakan koneksi rahasia yang ada atau membuat rahasia baru, lalu pilih **Simpan**. Untuk informasi selengkapnya cara membuat rahasia baru, lihat[Buat dan simpan token dalam rahasia Secrets Manager](asm-create-secret.md).

     1. Jika Anda memilih untuk menggunakan **CodeBuild**dan kemudian pilih **Simpan**.
   + Pilih **Use override credentials untuk project ini hanya untuk** menggunakan kredensi sumber kustom untuk mengganti setelan kredensi akun Anda.

     1. **Dari daftar kredensyal yang terisi, pilih salah satu opsi di bawah OAuth aplikasi.**

     1. Anda juga dapat membuat token OAuth aplikasi baru dengan memilih **buat koneksi token aplikasi Oauth baru** dalam deskripsi.

Untuk meninjau OAuth aplikasi resmi Anda, navigasikan ke [Otorisasi aplikasi](https://bitbucket.org/account/settings/app-authorizations/) di Bitbucket, dan verifikasi bahwa aplikasi bernama terdaftar`AWS CodeBuild (region)`. 

# GitLab akses di CodeBuild
<a name="access-tokens-gitlab-overview"></a>

Untuk GitLab, Anda menggunakan GitLab koneksi untuk mengakses penyedia sumber.

**Topics**
+ [Connect CodeBuild ke GitLab](#connections-gitlab)

## Connect CodeBuild ke GitLab
<a name="connections-gitlab"></a>

Koneksi memungkinkan Anda untuk mengotorisasi dan membuat konfigurasi yang mengaitkan penyedia pihak ketiga Anda dengan AWS sumber daya yang Anda gunakan. AWS CodeConnections Untuk mengaitkan repositori pihak ketiga sebagai sumber untuk proyek build, Anda menggunakan koneksi. 

Untuk menambahkan GitLab atau penyedia sumber GitLab Self Managed CodeBuild, Anda dapat memilih salah satu untuk: 
+ Gunakan wizard **Buat proyek build CodeBuild ** konsol atau halaman **Edit Sumber** untuk memilih opsi **GitLab**atau **GitLab Self Managed** provider. Lihat [Buat koneksi ke GitLab (konsol)](#connections-gitlab-console) untuk menambahkan penyedia sumber. Konsol membantu Anda membuat sumber daya koneksi.
+ Gunakan CLI untuk membuat sumber daya koneksi Anda, lihat [Buat koneksi ke GitLab (CLI)](#connections-gitlab-cli) untuk membuat sumber daya koneksi dengan CLI.

**catatan**  
Anda juga dapat membuat koneksi menggunakan konsol Alat Pengembang di bawah **Pengaturan**. Lihat [Membuat Koneksi](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create.html).

**catatan**  
Dengan mengotorisasi instalasi koneksi ini di GitLab, Anda memberikan izin layanan kami untuk memproses data Anda dengan mengakses akun Anda, dan Anda dapat mencabut izin kapan saja dengan menghapus instalasi aplikasi.

### Buat koneksi ke GitLab
<a name="connections-gitlab-create"></a>

Bagian ini menjelaskan cara terhubung GitLab ke CodeBuild. Untuk informasi selengkapnya tentang koneksi GitLab , lihat [Connect CodeBuild ke GitLab](#connections-gitlab).

Sebelum Anda memulai:
+ Anda harus sudah membuat akun dengan GitLab.
**catatan**  
Koneksi hanya menyediakan akses ke repositori yang dimiliki oleh akun yang digunakan untuk membuat dan mengotorisasi koneksi. 
**catatan**  
Anda dapat membuat koneksi ke repositori tempat Anda memiliki peran **Pemilik** GitLab, dan kemudian koneksi dapat digunakan dengan repositori dengan sumber daya seperti. CodeBuild Untuk repositori dalam grup, Anda tidak perlu menjadi pemilik grup.
+ Untuk menentukan sumber untuk proyek build Anda, Anda harus sudah membuat repositori. GitLab

**Topics**
+ [Buat koneksi ke GitLab (konsol)](#connections-gitlab-console)
+ [Buat koneksi ke GitLab (CLI)](#connections-gitlab-cli)

#### Buat koneksi ke GitLab (konsol)
<a name="connections-gitlab-console"></a>

Gunakan langkah-langkah ini untuk menggunakan CodeBuild konsol untuk menambahkan koneksi untuk proyek Anda (repositori) di. GitLab

**catatan**  
Alih-alih membuat atau menggunakan koneksi yang ada di akun Anda, Anda dapat menggunakan koneksi yang dibagikan dari AWS akun lain. Untuk informasi selengkapnya, lihat [Berbagi koneksi dengan AWS akun](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-share.html).

**Untuk membuat atau mengedit proyek build**

1. Masuk ke CodeBuild konsol.

1. Pilih salah satu dari berikut ini.
   + Pilih untuk membuat proyek build. Ikuti langkah-langkah [Buat proyek build (konsol)](create-project.md#create-project-console) untuk menyelesaikan layar pertama dan di bagian **Sumber**, di bawah **Penyedia Sumber**, pilih **GitLab**.
   + Pilih untuk mengedit proyek build yang sudah ada. Pilih **Edit**, lalu pilih **Sumber**. Di halaman **Edit Sumber**, di bawah **Penyedia sumber**, pilih **GitLab**.

1. Pilih salah satu cara berikut:
   + Di bawah **Koneksi**, pilih **Koneksi default**. Koneksi default menerapkan GitLab koneksi default di semua proyek.
   + Di bawah **Koneksi**, pilih **Koneksi khusus**. Koneksi kustom menerapkan GitLab koneksi khusus yang mengesampingkan pengaturan default akun Anda.

1. Lakukan salah satu tindakan berikut:
   + Di bawah **Koneksi default** atau **Koneksi khusus**, jika Anda belum membuat sambungan ke penyedia Anda, pilih **Buat GitLab koneksi baru**. Lanjutkan ke langkah 5 untuk membuat koneksi.
   + Di bawah **Koneksi**, jika Anda telah membuat koneksi ke penyedia Anda, pilih koneksi. Lanjutkan ke langkah 10.
**catatan**  
Jika Anda menutup jendela pop-up sebelum GitLab koneksi dibuat, Anda perlu menyegarkan halaman.

1. Untuk membuat sambungan ke GitLab repositori, di bawah **Pilih penyedia**, pilih. **GitLab** Di **Nama koneksi**, masukkan nama untuk koneksi yang ingin Anda buat. Pilih **Connect to GitLab**.  
![\[Tangkapan layar konsol yang menampilkan opsi koneksi yang dipilih untuk GitLab.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/connections-create-gitlab.png)

1. **Saat halaman login untuk GitLab ditampilkan, masuk dengan kredensialnya, lalu pilih Masuk.**

1. Jika ini adalah pertama kalinya Anda mengotorisasi koneksi, halaman otorisasi ditampilkan dengan pesan yang meminta otorisasi untuk koneksi untuk mengakses akun Anda. GitLab 

   Pilih **Izinkan**.  
![\[Screenshot yang menampilkan pesan untuk mengotorisasi koneksi untuk GitLab akun Anda.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/gitlab-authorization.png)

1. Browser kembali ke halaman konsol koneksi. Di bawah **pengaturan GitLab koneksi**, koneksi baru ditampilkan di **Nama koneksi**.

1. Pilih **Hubungkan**.

   Setelah GitLab koneksi berhasil dibuat, spanduk sukses akan ditampilkan di bagian atas. 

1. Pada halaman **Buat proyek build**, di daftar drop-down **Koneksi default** atau **Koneksi kustom**, pastikan ARN koneksi Anda terdaftar. Jika tidak, pilih tombol refresh agar muncul.

1. Di **Repository**, pilih nama proyek Anda GitLab dengan menentukan jalur proyek dengan namespace. Misalnya, untuk repositori tingkat grup, masukkan nama repositori dalam format berikut:. `group-name/repository-name` [Untuk informasi selengkapnya tentang path dan namespace, lihat `path_with_namespace` bidang di https://docs.gitlab.com/ee/ api/projects.html\$1. get-single-project](https://docs.gitlab.com/ee/api/projects.html#get-single-project) [Untuk informasi selengkapnya tentang namespace di GitLab, lihat https://docs.gitlab.com/ee/ user/namespace/.](https://docs.gitlab.com/ee/user/namespace/)
**catatan**  
Untuk grup di GitLab, Anda harus secara manual menentukan jalur proyek dengan namespace. Misalnya, untuk repositori bernama `myrepo` dalam grup`mygroup`, masukkan yang berikut ini:. `mygroup/myrepo` Anda dapat menemukan jalur proyek dengan namespace di URL di. GitLab

   

1. Dalam **versi Sumber - opsional**, masukkan ID permintaan tarik, cabang, ID komit, tag, atau referensi, dan ID komit. Untuk informasi selengkapnya, lihat [Contoh versi sumber dengan AWS CodeBuild](sample-source-version.md).
**catatan**  
Kami menyarankan Anda memilih nama cabang Git yang tidak terlihat seperti komit IDs, seperti `811dd1ba1aba14473856cee38308caed7190c0d` atau`5392f7`. Ini membantu Anda menghindari tabrakan checkout Git dengan commit yang sebenarnya.

   

1. Di **kedalaman klon Git - opsional**, Anda dapat membuat klon dangkal dengan riwayat terpotong ke jumlah komit yang ditentukan. Jika Anda ingin klon penuh, pilih **Penuh**.

1. Di **Status Build - opsional**, pilih **Laporkan status build ke penyedia sumber saat build Anda dimulai dan selesai** jika Anda ingin status awal dan penyelesaian build dilaporkan ke penyedia sumber Anda.

   Untuk dapat melaporkan status build ke penyedia sumber, pengguna yang terkait dengan penyedia sumber harus memiliki akses tulis ke repo. Jika pengguna tidak memiliki akses tulis, status build tidak dapat diperbarui. Untuk informasi selengkapnya, lihat [Akses penyedia sumber](access-tokens.md).

#### Buat koneksi ke GitLab (CLI)
<a name="connections-gitlab-cli"></a>

Anda dapat menggunakan AWS Command Line Interface (AWS CLI) untuk membuat koneksi. 

Untuk melakukannya, gunakan perintah **create-connection**. 

**penting**  
Koneksi yang dibuat melalui AWS CLI atau AWS CloudFormation dalam `PENDING` status secara default. Setelah Anda membuat koneksi dengan CLI atau CloudFormation, gunakan konsol untuk mengedit koneksi untuk membuat statusnya. `AVAILABLE`

**Untuk membuat koneksi**
+ Ikuti petunjuk di *Panduan Pengguna konsol Alat Pengembang* untuk [Membuat koneksi ke GitLab (CLI)](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create-gitlab.html#connections-create-gitlab-cli).

# Pencegahan "confused deputy" lintas layanan
<a name="cross-service-confused-deputy-prevention"></a>

Masalah "confused deputy" adalah masalah keamanan di mana entitas yang tidak memiliki izin untuk melakukan tindakan dapat memengaruhi entitas yang memiliki hak akses lebih tinggi untuk melakukan tindakan. Pada tahun AWS, peniruan lintas layanan dapat mengakibatkan masalah wakil yang membingungkan. Peniruan identitas lintas layanan dapat terjadi ketika satu layanan (*layanan yang dipanggil*) memanggil layanan lain (*layanan yang dipanggil*). Layanan pemanggilan dapat dimanipulasi menggunakan izinnya untuk bertindak pada sumber daya pelanggan lain dengan cara yang seharusnya tidak dilakukannya kecuali bila memiliki izin untuk mengakses. Untuk mencegah hal ini, AWS menyediakan alat yang membantu Anda melindungi data untuk semua layanan dengan principal layanan yang telah diberi akses ke sumber daya di akun Anda. 

Sebaiknya gunakan kunci konteks kondisi [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount)global [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)dan dalam kebijakan sumber daya untuk membatasi izin yang AWS CodeBuild memberikan layanan lain ke sumber daya. Gunakan `aws:SourceArn` jika Anda ingin hanya satu sumber daya yang akan dikaitkan dengan akses lintas layanan. Gunakan `aws:SourceAccount` jika Anda ingin mengizinkan sumber daya apa pun di akun tersebut dikaitkan dengan penggunaan lintas layanan.

Cara paling efektif untuk melindungi dari masalah "confused deputy" adalah dengan menggunakan kunci konteks kondisi global `aws:SourceArn` dengan ARN lengkap sumber daya. Jika Anda tidak mengetahui ARN lengkap sumber daya atau jika Anda menentukan beberapa sumber daya, gunakan kunci kondisi konteks global `aws:SourceArn` dengan karakter wildcard (`*`) untuk bagian ARN yang tidak diketahui. Misalnya, `arn:aws:codebuild:*:123456789012:*`. 

Jika nilai `aws:SourceArn` tidak berisi ID akun, seperti ARN bucket Amazon S3, Anda harus menggunakan kedua kunci konteks kondisi global tersebut untuk membatasi izin. 

Nilai `aws:SourceArn` harus menjadi CodeBuild proyek ARN.

Contoh berikut menunjukkan bagaimana Anda dapat menggunakan kunci konteks kondisi `aws:SourceAccount` global `aws:SourceArn` dan CodeBuild untuk mencegah masalah wakil yang membingungkan.

------
#### [ 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"
                }
            }
        }
    ]
}
```

------