

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

# Keamanan di AWS CodeCommit
<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/) menjelaskan hal ini sebagai keamanan ** cloud dan keamanan *dalam* 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 efektivitas keamanan kami sebagai bagian dari [Program AWS Kepatuhan Program AWS Kepatuhan](https://aws.amazon.com/compliance/programs/) . Untuk mempelajari tentang program kepatuhan yang berlaku AWS CodeCommit, lihat [AWS Layanan dalam Lingkup oleh AWS Layanan 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, yang mencakup 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 CodeCommit. Topik berikut menunjukkan cara mengonfigurasi CodeCommit untuk memenuhi tujuan keamanan dan kepatuhan Anda. Anda juga belajar cara menggunakan AWS layanan lain yang membantu Anda memantau dan mengamankan CodeCommit sumber daya Anda. 

**Topics**
+ [Perlindungan data di AWS CodeCommit](data-protection.md)
+ [Identity and Access Management untuk AWS CodeCommit](security-iam.md)
+ [Ketahanan di AWS CodeCommit](disaster-recovery-resiliency.md)
+ [Keamanan infrastruktur di AWS CodeCommit](infrastructure-security.md)

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

Sebagai layanan terkelola, 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 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.

CodeCommit repositori secara otomatis dienkripsi saat istirahat. Tidak diperlukan tindakan pelanggan. CodeCommit juga mengenkripsi data repositori dalam perjalanan. Anda dapat menggunakan protokol HTTPS, protokol SSH, atau keduanya dengan CodeCommit repositori. Untuk informasi selengkapnya, lihat [Menyiapkan untuk AWS CodeCommit](setting-up.md). Anda juga dapat mengonfigurasi [akses lintas akun ke](cross-account.md) CodeCommit repositori.

**Topics**
+ [AWS Key Management Service dan enkripsi untuk AWS CodeCommit repositori](encryption.md)
+ [Menghubungkan ke AWS CodeCommit repositori dengan kredensi berputar](temporary-access.md)

# AWS Key Management Service dan enkripsi untuk AWS CodeCommit repositori
<a name="encryption"></a>

Data dalam CodeCommit repositori dienkripsi dalam perjalanan dan saat istirahat. Ketika data didorong ke dalam CodeCommit repositori (misalnya, dengan menelepon**git push**), CodeCommit mengenkripsi data yang diterima saat disimpan dalam repositori. Ketika data ditarik dari CodeCommit repositori (misalnya, dengan memanggil**git pull**), CodeCommit mendekripsi data dan kemudian mengirimkannya ke pemanggil. Ini mengasumsikan pengguna IAM yang terkait dengan permintaan push atau pull telah diautentikasi oleh. AWS Data yang dikirim atau diterima ditransmisikan menggunakan protokol jaringan terenkripsi HTTPS atau SSH.

Anda dapat menggunakan salah satu Kunci yang dikelola AWS atau kunci yang dikelola pelanggan untuk mengenkripsi dan mendekripsi data di repositori Anda. Untuk informasi selengkapnya tentang perbedaan antara kunci yang dikelola pelanggan dan Kunci yang dikelola AWS, lihat [Kunci yang dikelola pelanggan dan Kunci yang dikelola AWS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-mgmt). Jika Anda tidak menentukan kunci yang dikelola pelanggan, CodeCommit akan menggunakan Kunci yang dikelola AWS untuk mengenkripsi dan mendekripsi data di repositori Anda. Ini Kunci yang dikelola AWS dibuat secara otomatis untuk Anda di Anda Akun AWS. Pertama kali Anda membuat CodeCommit repositori di akun Amazon Web Services baru Wilayah AWS , jika Anda tidak menentukan kunci yang dikelola pelanggan, akan CodeCommit membuat Kunci yang dikelola AWS (`aws/codecommit`kunci) yang sama Wilayah AWS di AWS Key Management Service (AWS KMS). `aws/codecommit`Kunci ini hanya digunakan oleh CodeCommit. Ini disimpan dalam akun Amazon Web Services Anda. Bergantung pada apa yang Anda tentukan, CodeCommit baik menggunakan kunci yang dikelola pelanggan atau Kunci yang dikelola AWS untuk mengenkripsi dan mendekripsi data dalam repositori. 

**penting**  
 CodeCommit melakukan AWS KMS tindakan berikut terhadap AWS KMS kunci yang digunakan untuk mengenkripsi dan mendekripsi data dalam repositori. Jika Anda menggunakan Kunci yang dikelola AWS, pengguna tidak memerlukan izin eksplisit untuk tindakan ini, tetapi pengguna tidak boleh memiliki kebijakan terlampir yang menolak tindakan ini untuk kunci tersebut`aws/codecommit`. Jika Anda menggunakan kunci terkelola pelanggan yang memiliki Akun AWS ID yang ditetapkan sebagai prinsipal kebijakan untuk kunci tersebut, izin ini harus disetel secara eksplisit. `allow` Khususnya, ketika Anda membuat repositori pertama Anda, dan jika Anda memperbarui kunci untuk repositori Anda, Anda tidak boleh memiliki izin berikut yang disetel ke `deny` jika Anda menggunakan Kunci yang dikelola AWS, dan harus disetel ke `allow` jika Anda menggunakan kunci yang dikelola pelanggan dengan prinsip kebijakan:  
`"kms:Encrypt"`
`"kms:Decrypt"`
`"kms:ReEncrypt"`(tergantung pada konteksnya, ini bisa membutuhkan`kms:ReEncryptFrom`,   
`kms:ReEncryptTo`, atau `kms:ReEncrypt*` tidak diatur untuk menyangkal)
`"kms:GenerateDataKey"`
`"kms:GenerateDataKeyWithoutPlaintext"`
`"kms:DescribeKey"`

Jika Anda ingin menggunakan kunci yang dikelola pelanggan Anda sendiri, kunci harus tersedia di Wilayah AWS tempat repositori ada. CodeCommit mendukung penggunaan kunci terkelola pelanggan tunggal dan Multi-wilayah. Meskipun semua jenis asal material utama didukung, sebaiknya gunakan opsi **KMS** default. Pelanggan yang menggunakan opsi **toko kunci Eksternal** mungkin mengalami penundaan dari penyedia toko mereka. Selain itu. CodeCommit memiliki persyaratan berikut untuk kunci yang dikelola pelanggan:
+ CodeCommit hanya mendukung menggunakan tombol simetris.
+ Jenis penggunaan kunci harus diatur ke **Enkripsi dan dekripsi**.

Untuk informasi selengkapnya tentang membuat kunci terkelola pelanggan, lihat [Konsep](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-mgmt) dan [Membuat kunci](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html).

Untuk melihat informasi tentang yang Kunci yang dikelola AWS dihasilkan oleh CodeCommit, lakukan hal berikut:

1. Masuk ke Konsol Manajemen AWS dan buka konsol AWS Key Management Service (AWS KMS) di [https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms).

1. Untuk mengubah Wilayah AWS, gunakan pemilih Wilayah di sudut kanan atas halaman.

1. Di panel navigasi, pilih **Kunci yang dikelola AWS**. Pastikan Anda masuk ke Wilayah AWS tempat Anda ingin meninjau kunci. 

1. Dalam daftar kunci enkripsi, pilih Kunci yang dikelola AWS dengan alias **aws/codecommit**. Informasi dasar tentang Kunci milik AWS ditampilkan.

Anda tidak dapat mengubah atau menghapus ini Kunci yang dikelola AWS. 

## Bagaimana algoritma enkripsi digunakan untuk mengenkripsi data repositori
<a name="encryption-algorithms"></a>

CodeCommit menggunakan dua pendekatan berbeda untuk mengenkripsi data. Objek Git individu di bawah 6 MB dienkripsi menggunakan AES-GCM-256, yang menyediakan validasi integritas data. Objek antara 6 MB dan maksimum 2 GB untuk satu gumpalan dienkripsi menggunakan AES-CBC-256. CodeCommit selalu memvalidasi konteks enkripsi.

## Konteks enkripsi
<a name="encryption-context"></a>

Setiap layanan terintegrasi dengan AWS KMS menentukan konteks enkripsi untuk operasi enkripsi dan dekripsi. Konteks enkripsi tersebut adalah informasi diautentikasi tambahan yang digunakan AWS KMS untuk memeriksa integritas data. Bila ditentukan untuk operasi enkripsi, maka harus juga ditentukan dalam operasi dekripsi. Jika tidak, dekripsi gagal. CodeCommit menggunakan ID CodeCommit repositori untuk konteks enkripsi. Anda dapat menggunakan **get-repository** perintah atau CodeCommit konsol untuk menemukan ID repositori. Cari ID CodeCommit repositori di AWS CloudTrail log untuk memahami operasi enkripsi mana yang diambil untuk mengenkripsi atau AWS KMS mendekripsi data dalam repositori. CodeCommit 

Untuk informasi selengkapnya AWS KMS, lihat [Panduan AWS Key Management Service Pengembang](https://docs.aws.amazon.com/kms/latest/developerguide/).

# Menghubungkan ke AWS CodeCommit repositori dengan kredensi berputar
<a name="temporary-access"></a>

Anda dapat memberi pengguna akses ke AWS CodeCommit repositori Anda tanpa mengonfigurasi pengguna IAM untuk mereka atau menggunakan kunci akses dan kunci rahasia. Untuk menetapkan izin ke identitas federasi, Anda membuat peran dan menentukan izin untuk peran tersebut. Ketika identitas terfederasi mengautentikasi, identitas tersebut terhubung dengan peran dan diberi izin yang ditentukan oleh peran. Untuk informasi tentang peran untuk federasi, lihat [Buat peran untuk penyedia identitas pihak ketiga](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp.html) dalam *Panduan Pengguna IAM*. Jika menggunakan Pusat Identitas IAM, Anda harus mengonfigurasi set izin. Untuk mengontrol apa yang dapat diakses identitas Anda setelah identitas tersebut diautentikasi, Pusat Identitas IAM akan mengorelasikan set izin ke peran dalam IAM. Untuk informasi tentang set izin, lihat [Set izin](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) dalam *Panduan Pengguna AWS IAM Identity Center *. *Anda juga dapat mengonfigurasi akses berbasis peran bagi pengguna IAM untuk mengakses CodeCommit repositori di akun Amazon Web Services terpisah (teknik yang dikenal sebagai akses lintas akun).* Untuk panduan konfigurasi akses lintas akun ke repositori, lihat [Konfigurasikan akses lintas akun ke AWS CodeCommit repositori menggunakan peran](cross-account.md). 

Anda dapat mengkonfigurasi akses untuk pengguna yang ingin atau harus mengotentikasi melalui metode seperti:
+ Security Assertion Markup Language (SAML)
+ Autentikasi Multi-Faktor (MFA)
+ Federation
+ Login with Amazon
+ Amazon Cognito
+ Facebook
+ Google
+ Penyedia identitas yang kompatibel OpenID Connect (OIDC)

**catatan**  
Informasi berikut hanya berlaku untuk penggunaan **git-remote-codecommit** atau pembantu AWS CLI kredenal untuk terhubung ke CodeCommit repositori. Karena pendekatan yang disarankan untuk akses sementara atau federasi CodeCommit adalah untuk mengatur**git-remote-codecommit**, topik ini memberikan contoh menggunakan utilitas itu. Untuk informasi selengkapnya, lihat [Langkah-langkah penyiapan untuk koneksi HTTPS ke AWS CodeCommit dengan git-remote-codecommit](setting-up-git-remote-codecommit.md).   
Anda tidak dapat menggunakan kredensi SSH atau Git dan HTTPS untuk terhubung ke CodeCommit repositori dengan kredenal akses berputar atau sementara. 

Anda tidak perlu menyelesaikan langkah-langkah ini jika semua persyaratan berikut ini benar:
+ Anda masuk ke instans Amazon EC2.
+ Anda menggunakan Git dan HTTPS dengan bantuan AWS CLI kredensi untuk terhubung dari instans Amazon EC2 ke repositori. CodeCommit 
+ Instans Amazon EC2 memiliki profil instans IAM terlampir yang berisi izin akses yang dijelaskan di [Untuk koneksi HTTPS di Linux, macOS, atau Unix dengan pembantu kredensi AWS CLI ](setting-up-https-unixes.md) atau [Untuk koneksi HTTPS di Windows dengan pembantu AWS CLI kredensi](setting-up-https-windows.md).
+ Anda telah menginstal dan mengkonfigurasi Git pembantu kredensial pada instans Amazon EC2, seperti yang dijelaskan dalam [Untuk koneksi HTTPS di Linux, macOS, atau Unix dengan pembantu kredensi AWS CLI ](setting-up-https-unixes.md) atau [Untuk koneksi HTTPS di Windows dengan pembantu AWS CLI kredensi](setting-up-https-windows.md).

Instans Amazon EC2 yang memenuhi persyaratan sebelumnya sudah disiapkan untuk mengkomunikasikan kredensil akses sementara atas nama Anda. CodeCommit 

**catatan**  
Anda dapat mengonfigurasi dan menggunakan **git-remote-codecommit** pada instans Amazon EC2.

Untuk memberi pengguna akses sementara ke CodeCommit repositori Anda, selesaikan langkah-langkah berikut.



## Langkah 1: Selesaikan prasyarat
<a name="temporary-access-prerequisites"></a>

Selesaikan langkah-langkah penyiapan untuk memberi pengguna akses ke CodeCommit repositori Anda menggunakan kredensi berputar: 
+ Untuk akses lintas akun, lihat [Panduan: Mendelegasikan Akses Akun Amazon Web Services menggunakan IAM role](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-walkthrough-crossacct.html) dan [Konfigurasikan akses lintas akun ke AWS CodeCommit repositori menggunakan peran](cross-account.md).
+ Untuk SAFL dan federasi, lihat [Menggunakan Sistem Otentikasi Organisasi Anda untuk Memberikan Akses ke AWS Sumber Daya](https://docs.aws.amazon.com/STS/latest/UsingSTS/STSUseCases.html#IdentityBrokerApplication) dan [Tentang Federasi berbasis AWS STS SAFL 2.0](https://docs.aws.amazon.com/STS/latest/UsingSTS/CreatingSAML.html).
+ Untuk MFA, lihat [Menggunakan Perangkat Multi-Factor Authentication (MFA) dengan AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingMFA.html) dan [Membuat Kredensials Keamanan Sementara Untuk Mengaktifkan Akses Untuk Pengguna IAM](https://docs.aws.amazon.com/STS/latest/UsingSTS/CreatingSessionTokens.html).
+ [Untuk Login with Amazon, Amazon Cognito, Facebook, Google, atau penyedia identitas yang kompatibel dengan OIDC, lihat Tentang Federasi Identitas Web. AWS STS](https://docs.aws.amazon.com/STS/latest/UsingSTS/web-identity-federation.html)

Gunakan informasi [Otentikasi dan kontrol akses untuk AWS CodeCommit](auth-and-access-control.md) untuk menentukan CodeCommit izin yang ingin Anda berikan kepada pengguna.

## Langkah 2: Dapatkan nama peran atau kredensial akses
<a name="temporary-access-get-credentials"></a>

Jika Anda ingin pengguna Anda mengakses repositori dengan memiliki suatu peran, berikan pengguna Anda Amazon Resource Name (ARN) dari peran itu. Jika tidak, tergantung pada cara Anda mengatur akses, pengguna Anda bisa mendapatkan kredensial berputar dengan salah satu cara berikut:
+ Untuk akses lintas akun, panggil perintah AWS CLI [assume-role](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role.html) atau panggil API. AWS STS [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)
+ Untuk SALL, panggil AWS CLI [assume-role-with-saml](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role-with-saml.html)perintah atau AWS STS [AssumeRoleWithSAFL API](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html).
+ Untuk federasi, hubungi AWS CLI [peran asumsi atau [get-federation-token](https://docs.aws.amazon.com/cli/latest/reference/sts/get-federation-token.html)](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role.html)perintah atau atau. AWS STS [AssumeRole[GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html)](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) APIs
+ Untuk MFA, panggil AWS CLI [get-session-token](https://docs.aws.amazon.com/cli/latest/reference/sts/get-session-token.html)perintah atau API. AWS STS [GetSessionToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html)
+ Untuk Login with Amazon, Amazon Cognito, Facebook, Google, atau penyedia identitas yang kompatibel dengan OIDC, hubungi perintah AWS CLI [assume-role-with-web-identity](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role-with-web-identity.html) atau API. AWS STS [AssumeRoleWithWebIdentity](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html)



## Langkah 3: Instal git-remote-codecommit dan konfigurasikan AWS CLI
<a name="temporary-access-configure-credentials"></a>

Anda harus mengonfigurasi komputer lokal Anda untuk menggunakan kredensil akses dengan menginstal [https://pypi.org/project/git-remote-codecommit/](https://pypi.org/project/git-remote-codecommit/)dan mengonfigurasi profil di file. AWS CLI

1. Ikuti instruksi di [Pengaturan ](setting-up.md) untuk mengatur AWS CLI. Gunakan perintah **aws configure** untuk mengkonfigurasi satu atau lebih profil. Pertimbangkan untuk membuat profil bernama untuk digunakan saat Anda terhubung ke CodeCommit repositori menggunakan kredensi berputar.

1. Anda dapat mengaitkan kredensialnya dengan profil AWS CLI bernama pengguna dengan salah satu cara berikut. 
   + Jika Anda mengasumsikan peran untuk mengakses CodeCommit, konfigurasikan profil bernama dengan informasi yang diperlukan untuk mengambil peran itu. Misalnya, jika Anda ingin mengambil peran bernama *CodeCommitAccess* di akun Amazon Web Services 1111111111, Anda dapat mengonfigurasi profil default yang akan digunakan saat bekerja dengan AWS sumber daya lain dan profil bernama untuk digunakan saat mengambil peran tersebut. Perintah berikut membuat profil bernama bernama *CodeAccess* yang mengasumsikan peran bernama*CodeCommitAccess*. Nama pengguna *Maria\$1Garcia* dikaitkan dengan sesi dan profil default ditetapkan sebagai sumber AWS kredensialnya:

     ```
     aws configure set role_arn arn:aws:iam::111111111111:role/CodeCommitAccess --profile CodeAccess
     aws configure set source_profile default --profile CodeAccess
     aws configure set role_session_name "Maria_Garcia" --profile CodeAccess
     ```

     Jika Anda ingin memverifikasi perubahan, secara manual melihat atau mengedit file `~/.aws/config` (untuk Linux) atau file `%UserProfile%.aws\config` (untuk Windows) dan meninjau informasi di bawah profil bernama. Misalnya, file Anda mungkin terlihat seperti berikut:

     ```
     [default]
     region = us-east-1
     output = json
     
     [profile CodeAccess]
     source_profile = default
     role_session_name = Maria_Garcia
     role_arn = arn:aws:iam::111111111111:role/CodeCommitAccess
     ```

      Setelah Anda mengonfigurasi profil bernama Anda, Anda kemudian dapat mengkloning CodeCommit repositori dengan **git-remote-codecommit** utilitas menggunakan profil bernama. Misalnya, untuk mengkloning repositori bernama: *MyDemoRepo* 

     ```
     git clone codecommit://CodeAccess@MyDemoRepo
     ```
   + Jika Anda menggunakan federasi identitas web dan OpenID Connect (OIDC), konfigurasikan profil bernama yang membuat panggilan `AssumeRoleWithWebIdentity` API AWS Security Token Service (AWS STS) atas nama Anda untuk menyegarkan kredensil sementara. Gunakan **aws configure set** perintah atau edit `~/.aws/credentials` file secara manual (untuk Linux) atau `%UserProfile%.aws\credentials` file (untuk Windows) untuk menambahkan profil AWS CLI bernama dengan nilai pengaturan yang diperlukan. Misalnya, untuk membuat profil yang mengambil *CodeCommitAccess* peran dan menggunakan file token identitas web *my-credentials* */my-token-file* \$1/:

     ```
     [CodeCommitWebIdentity]
     role_arn = arn:aws:iam::111111111111:role/CodeCommitAccess
     web_identity_token_file=~/my-credentials/my-token-file
     role_session_name = Maria_Garcia
     ```

   Untuk informasi selengkapnya, lihat [Mengonfigurasi AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) dan [Menggunakan IAM role di AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html) di *Panduan Pengguna AWS Command Line Interface *.

## Langkah 4: Akses CodeCommit repositori
<a name="temporary-access-use-credentials"></a>

Dengan asumsi pengguna Anda telah mengikuti instruksi [Connect ke sebuah repositori](how-to-connect.md) untuk terhubung ke CodeCommit repositori, pengguna kemudian menggunakan fungsionalitas yang diperluas yang disediakan oleh dan **git-remote-codecommit** Git untuk memanggil**git clone**,**git push**, dan **git pull** untuk mengkloning, mendorong ke, dan menarik dari, CodeCommit repositori yang dia akses. Misalnya, untuk mengkloning suatu repositori:

```
git clone codecommit://CodeAccess@MyDemoRepo
```

Perintah Git commit, push, dan pull menggunakan sintaks Git biasa. 

Saat pengguna menggunakan AWS CLI dan menentukan profil AWS CLI bernama yang terkait dengan kredensil akses yang berputar, hasil yang dicakup ke profil tersebut akan dikembalikan.



# Identity and Access Management untuk AWS CodeCommit
<a name="security-iam"></a>

AWS Identity and Access Management (IAM) adalah Layanan AWS yang membantu administrator mengontrol akses ke AWS sumber daya dengan aman. Administrator IAM mengontrol siapa yang dapat *diautentikasi* (masuk) dan *diberi wewenang* (memiliki izin) untuk menggunakan sumber daya. CodeCommit IAM adalah Layanan AWS yang dapat Anda gunakan tanpa biaya tambahan.

**Topics**
+ [Audiens](#security_iam_audience)
+ [Mengautentikasi dengan identitas](#security_iam_authentication)
+ [Mengelola akses menggunakan kebijakan](#security_iam_access-manage)
+ [Otentikasi dan kontrol akses untuk AWS CodeCommit](auth-and-access-control.md)
+ [Bagaimana AWS CodeCommit bekerja dengan IAM](security_iam_service-with-iam.md)
+ [CodeCommit kebijakan berbasis sumber daya](#security_iam_service-with-iam-resource-based-policies)
+ [Otorisasi berdasarkan tag CodeCommit](#security_iam_service-with-iam-tags)
+ [CodeCommit Peran IAM](#security_iam_service-with-iam-roles)
+ [AWS CodeCommit contoh kebijakan berbasis identitas](#security_iam_id-based-policy-examples)
+ [Memecahkan masalah AWS CodeCommit identitas dan akses](#security_iam_troubleshoot)

## Audiens
<a name="security_iam_audience"></a>

Cara Anda menggunakan AWS Identity and Access Management (IAM) berbeda berdasarkan peran Anda:
+ **Pengguna layanan** - minta izin dari administrator Anda jika Anda tidak dapat mengakses fitur (lihat [Memecahkan masalah AWS CodeCommit identitas dan akses](#security_iam_troubleshoot))
+ **Administrator layanan** - tentukan akses pengguna dan mengirimkan permintaan izin (lihat [Bagaimana AWS CodeCommit bekerja dengan IAM](security_iam_service-with-iam.md))
+ **Administrator IAM** - tulis kebijakan untuk mengelola akses (lihat [AWS CodeCommit contoh kebijakan berbasis identitas](#security_iam_id-based-policy-examples))

## Mengautentikasi dengan identitas
<a name="security_iam_authentication"></a>

Otentikasi adalah cara Anda masuk AWS menggunakan kredensi identitas Anda. Anda harus diautentikasi sebagai Pengguna root akun AWS, pengguna IAM, atau dengan mengasumsikan peran IAM.

Anda dapat masuk sebagai identitas federasi menggunakan kredensil dari sumber identitas seperti AWS IAM Identity Center (Pusat Identitas IAM), autentikasi masuk tunggal, atau kredensional. Google/Facebook Untuk informasi selengkapnya tentang cara masuk, lihat [Cara masuk ke Akun AWS Anda](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) dalam *Panduan Pengguna AWS Sign-In *.

Untuk akses terprogram, AWS sediakan SDK dan CLI untuk menandatangani permintaan secara kriptografis. Untuk informasi selengkapnya, lihat [AWS Signature Version 4 untuk permintaan API](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) dalam *Panduan Pengguna IAM*.

### Akun AWS pengguna root
<a name="security_iam_authentication-rootuser"></a>

 Saat Anda membuat Akun AWS, Anda mulai dengan satu identitas masuk yang disebut *pengguna Akun AWS root* yang memiliki akses lengkap ke semua Layanan AWS dan sumber daya. Kami sangat menyarankan agar Anda tidak menggunakan pengguna root untuk tugas sehari-hari. Untuk tugas yang memerlukan kredensial pengguna root, lihat [Tugas yang memerlukan kredensial pengguna root](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks) dalam *Panduan Pengguna IAM*. 

### Pengguna dan grup IAM
<a name="security_iam_authentication-iamuser"></a>

*[Pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)* adalah identitas dengan izin khusus untuk satu orang atau aplikasi. Sebaiknya gunakan kredensial sementara alih-alih pengguna IAM dengan kredensial jangka panjang. Untuk informasi selengkapnya, lihat [Mewajibkan pengguna manusia untuk menggunakan federasi dengan penyedia identitas untuk mengakses AWS menggunakan kredensi sementara](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) di Panduan Pengguna *IAM*.

[https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) menentukan kumpulan pengguna IAM dan mempermudah pengelolaan izin untuk pengguna dalam jumlah besar. Untuk mempelajari selengkapnya, lihat [Kasus penggunaan untuk pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html) dalam *Panduan Pengguna IAM*.

### Peran IAM
<a name="security_iam_authentication-iamrole"></a>

*[Peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)* adalah identitas dengan izin khusus yang menyediakan kredensial sementara. Anda dapat mengambil peran dengan [beralih dari pengguna ke peran IAM (konsol)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html) atau dengan memanggil operasi AWS CLI atau AWS API. Untuk informasi selengkapnya, lihat [Metode untuk mengambil peran](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html) dalam *Panduan Pengguna IAM*.

Peran IAM berguna untuk akses pengguna terfederasi, izin pengguna IAM sementara, akses lintas akun, akses lintas layanan, dan aplikasi yang berjalan di Amazon EC2. Untuk informasi selengkapnya, lihat [Akses sumber daya lintas akun di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) dalam *Panduan Pengguna IAM*.

## Mengelola akses menggunakan kebijakan
<a name="security_iam_access-manage"></a>

Anda mengontrol akses AWS dengan membuat kebijakan dan melampirkannya ke AWS identitas atau sumber daya. Kebijakan menentukan izin saat dikaitkan dengan identitas atau sumber daya. AWS mengevaluasi kebijakan ini ketika kepala sekolah membuat permintaan. Sebagian besar kebijakan disimpan AWS sebagai dokumen JSON. Untuk informasi selengkapnya tentang dokumen kebijakan JSON, lihat [Gambaran umum kebijakan JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) dalam *Panduan Pengguna IAM*.

Menggunakan kebijakan, administrator menentukan siapa yang memiliki akses ke apa dengan mendefinisikan **principal** mana yang dapat melakukan **tindakan** pada **sumber daya** apa, dan dalam **kondisi** apa.

Secara default, pengguna dan peran tidak memiliki izin. Administrator IAM membuat kebijakan IAM dan menambahkannya ke peran, yang kemudian dapat diambil oleh pengguna. Kebijakan IAM mendefinisikan izin terlepas dari metode yang Anda gunakan untuk melakukan operasinya.

### Kebijakan berbasis identitas
<a name="security_iam_access-manage-id-based-policies"></a>

Kebijakan berbasis identitas adalah dokumen kebijakan izin JSON yang Anda lampirkan ke identitas (pengguna, grup, atau peran). Kebijakan ini mengontrol tindakan apa yang bisa dilakukan oleh identitas tersebut, terhadap sumber daya yang mana, dan dalam kondisi apa. Untuk mempelajari cara membuat kebijakan berbasis identitas, lihat [Tentukan izin IAM kustom dengan kebijakan yang dikelola pelanggan](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) dalam *Panduan Pengguna IAM*.

Kebijakan berbasis identitas dapat berupa *kebijakan inline* (disematkan langsung ke dalam satu identitas) atau *kebijakan terkelola* (kebijakan mandiri yang dilampirkan pada banyak identitas). Untuk mempelajari cara memilih antara kebijakan terkelola dan kebijakan inline, lihat [Pilih antara kebijakan terkelola dan kebijakan inline](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html) dalam *Panduan Pengguna IAM*.

### Kebijakan berbasis sumber daya
<a name="security_iam_access-manage-resource-based-policies"></a>

Kebijakan berbasis sumber daya adalah dokumen kebijakan JSON yang Anda lampirkan ke sumber daya. Contohnya termasuk *kebijakan kepercayaan peran IAM* dan *kebijakan bucket* Amazon S3. Dalam layanan yang mendukung kebijakan berbasis sumber daya, administrator layanan dapat menggunakannya untuk mengontrol akses ke sumber daya tertentu. Anda harus [menentukan principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) dalam kebijakan berbasis sumber daya.

Kebijakan berbasis sumber daya merupakan kebijakan inline yang terletak di layanan tersebut. Anda tidak dapat menggunakan kebijakan AWS terkelola dari IAM dalam kebijakan berbasis sumber daya.

### Daftar kontrol akses (ACLs)
<a name="security_iam_access-manage-acl"></a>

Access control lists (ACLs) mengontrol prinsipal mana (anggota akun, pengguna, atau peran) yang memiliki izin untuk mengakses sumber daya. ACLs mirip dengan kebijakan berbasis sumber daya, meskipun mereka tidak menggunakan format dokumen kebijakan JSON.

Amazon S3, AWS WAF, dan Amazon VPC adalah contoh layanan yang mendukung. ACLs Untuk mempelajari selengkapnya ACLs, lihat [Ringkasan daftar kontrol akses (ACL)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html) di *Panduan Pengembang Layanan Penyimpanan Sederhana Amazon*.

### Jenis-jenis kebijakan lain
<a name="security_iam_access-manage-other-policies"></a>

AWS mendukung jenis kebijakan tambahan yang dapat menetapkan izin maksimum yang diberikan oleh jenis kebijakan yang lebih umum:
+ **Batasan izin** – Menetapkan izin maksimum yang dapat diberikan oleh kebijakan berbasis identitas kepada entitas IAM. Untuk informasi selengkapnya, lihat [Batasan izin untuk entitas IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) dalam *Panduan Pengguna IAM*.
+ **Kebijakan kontrol layanan (SCPs)** — Tentukan izin maksimum untuk organisasi atau unit organisasi di AWS Organizations. Untuk informasi selengkapnya, lihat [Kebijakan kontrol layanan](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) dalam *Panduan Pengguna AWS Organizations *.
+ **Kebijakan kontrol sumber daya (RCPs)** — Tetapkan izin maksimum yang tersedia untuk sumber daya di akun Anda. Untuk informasi selengkapnya, lihat [Kebijakan kontrol sumber daya (RCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html) di *Panduan AWS Organizations Pengguna*.
+ **Kebijakan sesi** – Kebijakan lanjutan yang diteruskan sebagai parameter saat membuat sesi sementara untuk peran atau pengguna terfederasi. Untuk informasi selengkapnya, lihat [Kebijakan sesi](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) dalam *Panduan Pengguna IAM*.

### Berbagai jenis kebijakan
<a name="security_iam_access-manage-multiple-policies"></a>

Ketika beberapa jenis kebijakan berlaku pada suatu permintaan, izin yang dihasilkan lebih rumit untuk dipahami. Untuk mempelajari cara AWS menentukan apakah akan mengizinkan permintaan saat beberapa jenis kebijakan terlibat, lihat [Logika evaluasi kebijakan](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) di *Panduan Pengguna IAM*.

# Otentikasi dan kontrol akses untuk AWS CodeCommit
<a name="auth-and-access-control"></a>

Akses ke AWS CodeCommit membutuhkan kredensyal. Kredensial tersebut harus memiliki izin untuk mengakses AWS sumber daya, seperti CodeCommit repositori, dan pengguna IAM Anda, yang Anda gunakan untuk mengelola kredensi Git Anda atau kunci publik SSH yang Anda gunakan untuk membuat koneksi Git. Bagian berikut memberikan rincian tentang bagaimana Anda dapat menggunakan [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) dan CodeCommit untuk membantu mengamankan akses ke sumber daya Anda:
+ [Autentikasi](#authentication)
+ [Kontrol akses](#access-control)

## Autentikasi
<a name="authentication"></a>

Karena CodeCommit repositori berbasis Git dan mendukung fungsionalitas dasar Git, termasuk kredensi Git, kami menyarankan Anda menggunakan pengguna IAM saat bekerja dengannya. CodeCommit Anda dapat mengakses CodeCommit dengan tipe identitas lain, tetapi jenis identitas lainnya tunduk pada batasan, seperti yang dijelaskan di bawah ini.

Jenis identitas:
+ **Pengguna IAM** — [Pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html) adalah identitas dalam akun Amazon Web Services Anda yang memiliki izin khusus tertentu. Misalnya, pengguna IAM dapat memiliki izin untuk membuat dan mengelola kredensi Git untuk mengakses repositori. CodeCommit **Ini adalah tipe pengguna yang disarankan untuk bekerja dengan CodeCommit.** [Anda dapat menggunakan nama pengguna dan kata sandi IAM untuk masuk untuk mengamankan AWS halaman web seperti, [Forum AWS Diskusi [Konsol Manajemen AWS](https://console.aws.amazon.com/)](https://forums.aws.amazon.com/), atau Pusat.AWS Dukungan](https://console.aws.amazon.com/support/home#/) 

  Anda dapat menghasilkan kredensial Git atau mengaitkan kunci publik SSH dengan pengguna IAM Anda, atau Anda dapat menginstal dan mengkonfigurasi **git-remote-codecommit**. Ini adalah cara termudah untuk mengatur Git agar berfungsi dengan CodeCommit repositori Anda. Dengan [Kredenensi Git](setting-up-gc.md), Anda menghasilkan nama pengguna statis dan kata sandi di IAM. Anda kemudian menggunakan kredensial ini untuk koneksi HTTPS dengan Git dan alat pihak ketiga yang mendukung otentikasi nama pengguna dan kata sandi Git. Dengan koneksi SSH, Anda membuat file kunci publik dan pribadi di mesin lokal Anda yang Git dan CodeCommit gunakan untuk otentikasi SSH. Anda mengaitkan kunci publik dengan pengguna IAM Anda, dan Anda menyimpan kunci privat di mesin lokal Anda. **[git-remote-codecommit](setting-up-git-remote-codecommit.md)** meluaskan Git itu sendiri, dan tidak memerlukan menyiapkan kredensial Git untuk pengguna.

  Selain itu, Anda juga dapat membuat [access key](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) untuk setiap pengguna. Gunakan kunci akses saat Anda mengakses AWS layanan secara terprogram, baik melalui [salah satu AWS SDKs](https://aws.amazon.com/tools/) atau dengan menggunakan [AWS Command Line Interface ()AWS CLI](https://aws.amazon.com/cli/). Alat SDK dan CLI menggunakan access key untuk menandatangani permintaan Anda secara kriptografis. Jika Anda tidak menggunakan AWS alat, Anda harus menandatangani permintaan sendiri. CodeCommit mendukung *Signature Version 4*, protokol untuk mengautentikasi permintaan API masuk. Untuk informasi selengkapnya tentang melakukan autentikasi permintaan, lihat [Proses Penandatanganan Tanda Tangan Versi 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) dalam *Referensi Umum AWS*.
+ **Pengguna root akun Amazon Web Services** — Saat mendaftar AWS, Anda memberikan alamat email dan kata sandi yang terkait dengan akun Amazon Web Services Anda. Ini adalah *kredensial root* Anda, dan memberikan akses penuh ke semua sumber daya AWS Anda. Beberapa CodeCommit fitur tidak tersedia untuk pengguna akun root. Selain itu, satu-satunya cara untuk menggunakan Git dengan akun root Anda adalah dengan menginstal dan mengkonfigurasi **git-remote-codecommit** (disarankan) atau untuk mengkonfigurasi pembantu AWS kredenal, yang disertakan dengan file. AWS CLI Anda tidak dapat menggunakan kredensial Git atau SSH pasangan kunci publik-privat dengan pengguna akun root Anda. Untuk alasan ini, kami tidak menyarankan menggunakan pengguna akun root Anda saat berinteraksi dengan CodeCommit.
**penting**  
Demi alasan keamanan, kami menyarankan Anda menggunakan kredensial root hanya untuk membuat *pengguna administrator*, yang merupakan *pengguna IAM* dengan izin penuh ke akun AWS Anda. Kemudian, Anda dapat menggunakan administrator ini untuk membuat pengguna IAM lainnya dan peran dengan izin terbatas. Untuk informasi selengkapnya, lihat [Praktik Terbaik IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#create-iam-users) dan [Membuat Pengguna Admin dan Grup](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html) dalam *Panduan Pengguna IAM*.
+ **IAM Identity Center dan pengguna di IAM Identity Center** — AWS IAM Identity Center memperluas kemampuan AWS Identity and Access Management untuk menyediakan tempat sentral yang menyatukan administrasi pengguna dan akses mereka ke Akun AWS dan aplikasi cloud. Meskipun direkomendasikan sebagai praktik terbaik bagi sebagian besar pengguna yang bekerja dengan AWS, IAM Identity Center saat ini tidak menyediakan mekanisme untuk kredensi Git atau pasangan kunci SSH. Pengguna ini dapat menginstal dan mengonfigurasi **git-remote-codecommit** untuk mengkloning CodeCommit repositori secara lokal, tetapi tidak semua lingkungan pengembangan terintegrasi (IDEs) mendukung kloning, mendorong, atau menarik. **git-remote-codecommit**

  Sebagai praktik terbaik, mewajibkan pengguna manusia untuk menggunakan federasi dengan penyedia identitas untuk mengakses Layanan AWS menggunakan kredensi sementara.

  *Identitas federasi* adalah pengguna dari direktori perusahaan Anda, penyedia identitas web, atau Directory Service yang mengakses Layanan AWS menggunakan kredensi dari sumber identitas. Identitas terfederasi mengambil peran yang memberikan kredensial sementara.

  Untuk manajemen akses terpusat, kami menyarankan AWS IAM Identity Center. Untuk informasi selengkapnya, lihat [Apa itu Pusat Identitas IAM?](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html) dalam *Panduan Pengguna AWS IAM Identity Center *.
+ **IAM role** — Seperti pengguna IAM, sebuah [IAM role](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) adalah identitas IAM yang dapat Anda buat di akun Anda untuk memberikan izin spesifik.

  *[Peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)* adalah identitas dengan izin khusus yang menyediakan kredensial sementara. Anda dapat mengambil peran dengan [beralih dari pengguna ke peran IAM (konsol)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html) atau dengan memanggil operasi AWS CLI atau AWS API. Untuk informasi selengkapnya, lihat [Metode untuk mengambil peran](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html) dalam *Panduan Pengguna IAM*.

  Peran IAM berguna untuk akses pengguna terfederasi, izin pengguna IAM sementara, akses lintas akun, akses lintas layanan, dan aplikasi yang berjalan di Amazon EC2. Untuk informasi selengkapnya, lihat [Akses sumber daya lintas akun di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) dalam *Panduan Pengguna IAM*.
**catatan**  
 Anda tidak dapat menggunakan kredensial Git atau SSH pasangan kunci publik-privat dengan pengguna gabungan. Selain itu, preferensi pengguna tidak tersedia untuk pengguna gabungan. Untuk informasi tentang cara menyiapkan koneksi menggunakan akses gabungan , lihat [Langkah-langkah penyiapan untuk koneksi HTTPS ke AWS CodeCommit dengan git-remote-codecommit](setting-up-git-remote-codecommit.md).

## Kontrol akses
<a name="access-control"></a>

Anda dapat memiliki kredensi yang valid untuk mengautentikasi permintaan Anda, tetapi kecuali Anda memiliki izin, Anda tidak dapat membuat atau mengakses sumber daya. CodeCommit Misalnya, Anda harus memiliki izin untuk melihat repositori, kode dorongan, membuat dan mengelola kredensials Git, dan sebagainya.

Bagian berikut menjelaskan cara mengelola izin untuk CodeCommit. Anda sebaiknya membaca gambaran umum terlebih dahulu.
+ [Ikhtisar mengelola izin akses ke sumber daya Anda CodeCommit](#auth-and-access-control-iam-access-control-identity-based)
+ [Menggunakan kebijakan berbasis identitas (Kebijakan IAM) untuk CodeCommit](auth-and-access-control-iam-identity-based-access-control.md)
+ [CodeCommit referensi izin](auth-and-access-control-permissions-reference.md)

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

Setiap AWS sumber daya dimiliki oleh akun Amazon Web Services. Izin untuk membuat, dan mengakses sumber daya diatur oleh kebijakan izin. Administrator akun dapat melampirkan kebijakan izin pada identitas IAM (yaitu pengguna, grup, dan peran). Beberapa layanan, seperti AWS Lambda, juga mendukung melampirkan kebijakan izin ke sumber daya. 

**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 mereka dapatkan izinnya, dan tindakan khusus yang ingin Anda izinkan di sumber daya tersebut.

**Topics**
+ [CodeCommit sumber daya dan operasi](#arn-formats)
+ [Memahami kepemilikan sumber daya](#understanding-resource-ownership)
+ [Mengelola akses ke sumber daya](#managing-access-resources)
+ [Pelingkupan sumber daya di CodeCommit](#resource-scoping)
+ [Menentukan elemen kebijakan: sumber daya, tindakan, efek, dan prinsipal](#actions-effects-principals)
+ [Menetapkan ketentuan dalam kebijakan](#policy-conditions)

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

Di CodeCommit, sumber daya utama adalah repositori. Setiap sumber daya ini memiliki Amazon Resource Name (ARN) yang unik yang dikaitkan dengannya. Dalam kebijakan, Anda menggunakan Amazon Resource Name (ARN) untuk mengidentifikasi sumber daya yang mengikuti kebijakan tersebut. Untuk informasi selengkapnya ARNs, 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* CodeCommit saat ini tidak mendukung jenis sumber daya lain, yang disebut sebagai subsumber daya.

Tabel berikut menjelaskan cara menentukan CodeCommit sumber daya.


| Jenis Sumber Daya | Format ARN | 
| --- | --- | 
| Repositori |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
|  Semua CodeCommit repositori  |  arn:aws:codecommit:\$1  | 
|  Semua CodeCommit repositori yang dimiliki oleh akun yang ditentukan dalam yang ditentukan Wilayah AWS  |  arn:aws:codecommit::: \$1 *region* *account-id*  | 

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

Misalnya, Anda dapat menunjukkan repositori tertentu (*MyDemoRepo*) dalam pernyataan Anda menggunakan ARN sebagai berikut:

```
"Resource": "arn:aws:codecommit:us-west-2:111111111111:MyDemoRepo"
```

Untuk menentukan semua repositori milik akun tertentu, gunakan karakter wildcard (\$1) sebagai berikut:

```
"Resource": "arn:aws:codecommit:us-west-2:111111111111:*"
```

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

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

Anda juga dapat menggunakan karakter wildcard (\$1) untuk menentukan semua sumber daya yang cocok dengan bagian dari nama repositori. Misalnya, ARN berikut menentukan CodeCommit repositori apa pun yang dimulai dengan nama `MyDemo` dan yang terdaftar ke akun Amazon Web Services di: `111111111111` `us-east-2` Wilayah AWS

```
arn:aws:codecommit:us-east-2:111111111111:MyDemo*
```

 Untuk daftar operasi yang tersedia yang bekerja dengan CodeCommit sumber daya, lihat[CodeCommit referensi izin](auth-and-access-control-permissions-reference.md).

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

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

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

Untuk mengelola akses ke AWS sumber daya, Anda menggunakan kebijakan izin. *Kebijakan izin* menjelaskan siapa yang memiliki akses ke suatu objek. Bagian berikut menjelaskan pilihan yang tersedia untuk membuat kebijakan izin.

**catatan**  
Bagian ini membahas penggunaan IAM dalam konteks. CodeCommit Bagian ini tidak memberikan informasi yang mendetail tentang layanan IAM. Untuk informasi selengkapnya tentang IAM, lihat [Apa itu 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 ](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 izin yang terlampir pada sumber daya disebut sebagai kebijakan berbasis sumber daya. Saat ini, hanya CodeCommit mendukung kebijakan berbasis identitas (kebijakan IAM).

**Topics**
+ [Kebijakan berbasis identitas (kebijakan IAM)](#identity-based-policies)
+ [Kebijakan berbasis sumber daya](#resource-based-policies-overview)

#### Kebijakan berbasis identitas (kebijakan IAM)
<a name="identity-based-policies"></a>

Untuk mengelola akses ke AWS sumber daya, Anda melampirkan kebijakan izin ke identitas IAM. Di CodeCommit, Anda menggunakan kebijakan berbasis identitas untuk mengontrol akses ke repositori. Misalnya, Anda dapat melakukan hal berikut: 
+ **Lampirkan kebijakan izin ke pengguna atau grup di akun Anda** — Untuk memberikan izin pengguna untuk melihat CodeCommit sumber daya di CodeCommit konsol, lampirkan kebijakan izin berbasis identitas ke pengguna atau grup tempat pengguna tersebut berada.
+ **Lampirkan kebijakan izin untuk peran (untuk memberikan izin lintas akun)** - Delegasi, seperti ketika Anda ingin memberikan akses lintas akun, melibatkan pengaturan kepercayaan antara akun yang memiliki sumber daya (rekening terpercaya), dan akun yang berisi pengguna yang perlu mengakses sumber daya (rekening terpercaya). Kebijakan izin memberikan izin yang diperlukan pengguna suatu peran untuk melaksanakan tugas yang diinginkan pada sumber daya. Kebijakan kepercayaan menentukan akun terpercaya mana yang diizinkan untuk memberikan izin kepada pengguna untuk menjalankan peran tersebut. Untuk informasi selengkapnya, lihat [Syarat dan Konsep IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html). 

  Untuk memberikan izin lintas-akun, lampirkan kebijakan izin berbasis identitas ke IAM role. Misalnya, administrator di Akun A dapat membuat peran untuk memberikan izin lintas akun ke akun Amazon Web Services lainnya (misalnya, Akun B) atau AWS layanan sebagai berikut:

  1. Administrator akun A membuat peran IAM dan melampirkan kebijakan izin ke peran ini yang memberikan izin pada sumber daya di akun A.

  1. Administrator akun A melampirkan kebijakan kepercayaan ke peran yang mengidentifikasi Akun B sebagai prinsipal yang dapat mengambil peran tersebut.

  1. Administrator Akun B kemudian dapat mendelegasikan izin untuk mengambil peran kepada setiap pengguna di Akun B. Melakukan hal ini memungkinkan pengguna di Akun B untuk membuat atau mengakses sumber daya di Akun A. Jika Anda ingin memberikan izin AWS layanan untuk mengambil peran tersebut, prinsipal dalam kebijakan kepercayaan juga dapat menjadi prinsipal AWS layanan. Untuk informasi selengkapnya, lihat Delegasi dalam [Syarat dan Konsep IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html).

  Untuk informasi selengkapnya tentang penggunaan IAM untuk mendelegasikan izin, lihat [Manajemen Akses](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html) dalam *Panduan Pengguna IAM*.



Contoh kebijakan berikut memungkinkan pengguna untuk membuat cabang dalam repositori bernama: *MyDemoRepo*

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement" : [
    {
      "Effect" : "Allow",
      "Action" : [
        "codecommit:CreateBranch"
      ],
      "Resource" : "arn:aws:codecommit:us-east-2:111122223333:MyDemoRepo"
    }
  ]
}
```

------

Untuk membatasi panggilan dan sumber daya yang dapat diakses oleh pengguna di akun Anda, buat kebijakan IAM tertentu, lalu lampirkan kebijakan tersebut ke pengguna IAM. Untuk informasi selengkapnya tentang cara membuat peran IAM dan untuk menjelajahi contoh pernyataan kebijakan IAM CodeCommit, lihat. [Contoh kebijakan identitas yang dikelola pelanggan](customer-managed-policies.md#customer-managed-policies-identity) 

#### Kebijakan berbasis sumber daya
<a name="resource-based-policies-overview"></a>

Layanan lain, seperti Amazon S3, juga men-support kebijakan izin berbasis sumber daya. Misalnya, Anda dapat melampirkan kebijakan berbasis sumber daya ke bucket S3 untuk mengelola izin akses ke bucket tersebut. CodeCommit tidak mendukung kebijakan berbasis sumber daya, tetapi Anda dapat menggunakan tag untuk mengidentifikasi sumber daya, yang kemudian dapat Anda gunakan dalam kebijakan IAM. Untuk contoh kebijakan berbasis tag, lihat [Kebijakan berbasis identitas (kebijakan IAM)](#identity-based-policies). 

### Pelingkupan sumber daya di CodeCommit
<a name="resource-scoping"></a>

Di CodeCommit, Anda dapat membuat cakupan kebijakan dan izin berbasis identitas ke sumber daya, seperti yang dijelaskan dalam. [CodeCommit sumber daya dan operasi](#arn-formats) Namun, Anda tidak dapat membuat cakupan izin `ListRepositories` ke sumber daya. Alih-alih, Anda harus membuat cakupan untuk semua sumber daya (menggunakan `*` wildcard). Jika tidak, tindakan tersebut akan gagal. 

Semua CodeCommit izin lainnya dapat dicakup ke sumber daya.

### Menentukan elemen kebijakan: sumber daya, tindakan, efek, dan prinsipal
<a name="actions-effects-principals"></a>

Anda dapat membuat kebijakan untuk mengizinkan atau menolak akses pengguna ke sumber daya, atau mengizinkan atau menolak pengguna untuk mengambil tindakan spesifik pada sumber daya tersebut. CodeCommit mendefinisikan satu set operasi API publik yang menentukan cara pengguna bekerja dengan layanan, apakah itu melalui CodeCommit konsol, AWS CLI, atau dengan langsung APIs memanggilnya. SDKs Untuk memberikan izin untuk operasi API ini, CodeCommit tentukan serangkaian tindakan yang dapat Anda tentukan dalam kebijakan. 

Sebagian operasi API dapat mensyaratkan izin untuk lebih dari satu tindakan. Untuk informasi selengkapnya tentang sumber daya dan operasi API, lihat [CodeCommit sumber daya dan operasi](#arn-formats) dan [CodeCommit referensi izin](auth-and-access-control-permissions-reference.md).

Berikut ini adalah elemen kebijakan dasar:
+ **Sumber daya** – Untuk mengidentifikasi sumber daya yang menerapkan kebijakan, Anda menggunakan Amazon Resource Name (ARN). Untuk informasi selengkapnya, lihat [CodeCommit sumber daya dan operasi](#arn-formats).
+ **Tindakan** – Untuk mengidentifikasi operasi sumber daya yang ingin Anda izinkan atau tolak, Anda menggunakan kata kunci tindakan. Misalnya, tergantung pada yang ditentukan`Effect`, `codecommit:GetBranch` izin mengizinkan atau menolak pengguna untuk melakukan `GetBranch` operasi, yang mendapatkan detail tentang cabang di CodeCommit repositori.
+ **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 untuk memastikan bahwa pengguna tidak dapat mengaksesnya, meskipun kebijakan yang berbeda memberikan akses.
+ **Principal** — Dalam kebijakan berbasis identitas (kebijakan IAM), satu-satunya jenis kebijakan yang CodeCommit mendukung, pengguna yang melekat pada kebijakan tersebut adalah prinsipal implisit. 

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

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

### Menetapkan ketentuan dalam kebijakan
<a name="policy-conditions"></a>

Saat Anda memberikan izin, Anda menggunakan bahasa kebijakan akses untuk IAM untuk menentukan syarat di mana kebijakan harus diterapkan. Misalnya, Anda mungkin ingin kebijakan diterapkan hanya setelah tanggal tertentu. Untuk informasi selengkapnya tentang menentukan syarat dalam bahasa kebijakan, lihat [Syarat](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Condition) dan [Tata Bahasa Kebijakan](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html) di *Panduan Pengguna IAM*.

Untuk menyatakan kondisi, Anda menggunakan kunci kondisi standar. Tidak ada kunci syarat khusus untuk CodeCommit. Namun, ada tombol kondisi AWS-wide yang dapat Anda gunakan sesuai kebutuhan. Untuk daftar lengkap tombol AWS-wide, lihat Kunci yang [Tersedia untuk Ketentuan](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#AvailableKeys) di *Panduan Pengguna IAM*. 

# Menggunakan kebijakan berbasis identitas (Kebijakan IAM) untuk CodeCommit
<a name="auth-and-access-control-iam-identity-based-access-control"></a>

Contoh kebijakan berbasis identitas berikut menunjukkan bagaimana administrator akun dapat melampirkan kebijakan izin ke identitas IAM (pengguna, grup, dan peran) untuk memberikan izin untuk melakukan operasi pada sumber daya. CodeCommit 

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

**Topics**
+ [Izin yang diperlukan untuk menggunakan konsol CodeCommit](#console-permissions)
+ [Menampilkan sumber daya di konsol](#console-resources)
+ [AWS kebijakan terkelola untuk CodeCommit](security-iam-awsmanpol.md)
+ [Contoh kebijakan yang dikelola pelanggan](customer-managed-policies.md)

Berikut ini adalah contoh kebijakan izin berbasis identitas: 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement" : [
    {
      "Effect" : "Allow",
      "Action" : [
        "codecommit:BatchGetRepositories"
      ],
      "Resource" : [
        "arn:aws:codecommit:us-east-2:111122223333:MyDemoRepo",
        "arn:aws:codecommit:us-east-2:111122223333:MyDemo*"
      ]
    }
  ]
}
```

------

Kebijakan ini memiliki satu pernyataan yang memungkinkan pengguna untuk mendapatkan informasi tentang CodeCommit repositori bernama `MyDestinationRepo` dan semua CodeCommit repositori yang dimulai dengan nama `MyDemo` di Wilayah. **us-east-2** 

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

Untuk melihat izin yang diperlukan untuk setiap operasi CodeCommit API, dan untuk informasi selengkapnya tentang CodeCommit operasi, lihat[CodeCommit referensi izin](auth-and-access-control-permissions-reference.md).

Untuk memungkinkan pengguna menggunakan CodeCommit konsol, administrator harus memberi mereka izin untuk CodeCommit tindakan. Misalnya, Anda dapat melampirkan kebijakan [AWSCodeCommitPowerUser](security-iam-awsmanpol.md#managed-policies-poweruser)terkelola atau yang setara dengan pengguna atau grup.

Selain izin yang diberikan kepada pengguna berdasarkan kebijakan berbasis identitas, CodeCommit memerlukan izin untuk tindakan (). AWS Key Management Service AWS KMS Pengguna IAM tidak perlu izin `Allow` eksplisit untuk tindakan ini, tetapi pengguna tidak boleh memiliki kebijakan terlampir yang menetapkan izin berikut untuk `Deny`:

```
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt",
        "kms:GenerateDataKey",
        "kms:GenerateDataKeyWithoutPlaintext",
        "kms:DescribeKey"
```

Untuk informasi selengkapnya tentang enkripsi dan CodeCommit, lihat[AWS KMS dan enkripsi](encryption.md).

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

 CodeCommit Konsol memerlukan `ListRepositories` izin untuk menampilkan daftar repositori untuk akun Amazon Web Services Anda di Wilayah AWS 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 akun Amazon Web Services Anda di Wilayah AWS 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, sumber daya tertentu tidak akan dikembalikan jika ada `Deny` eksplisit untuk melihat sumber daya tersebut.

# AWS kebijakan terkelola untuk CodeCommit
<a name="security-iam-awsmanpol"></a>

Untuk menambahkan izin ke pengguna, grup, dan peran, lebih mudah menggunakan kebijakan AWS terkelola daripada menulis kebijakan sendiri. Dibutuhkan waktu dan keahlian untuk [membuat kebijakan yang dikelola pelanggan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html) yang hanya memberi tim Anda izin yang mereka butuhkan. Untuk memulai dengan cepat, Anda dapat menggunakan kebijakan AWS terkelola kami. Kebijakan ini mencakup kasus penggunaan umum dan tersedia di Akun AWS Anda. Untuk informasi selengkapnya tentang kebijakan AWS [AWS terkelola, lihat kebijakan terkelola](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) di *Panduan Pengguna IAM*.

AWS layanan memelihara dan memperbarui kebijakan AWS terkelola. Anda tidak dapat mengubah izin dalam kebijakan AWS terkelola. Layanan terkadang menambahkan izin tambahan ke kebijakan yang dikelola AWS untuk mendukung fitur-fitur baru. Jenis pembaruan ini akan memengaruhi semua identitas (pengguna, grup, dan peran) di mana kebijakan tersebut dilampirkan. Layanan kemungkinan besar akan memperbarui kebijakan yang dikelola AWS saat ada fitur baru yang diluncurkan atau saat ada operasi baru yang tersedia. Layanan tidak menghapus izin dari kebijakan AWS terkelola, sehingga pembaruan kebijakan tidak akan merusak izin yang ada.

Selain itu, AWS mendukung kebijakan terkelola untuk fungsi pekerjaan yang mencakup beberapa layanan. Misalnya, kebijakan **ReadOnlyAccess** AWS terkelola menyediakan akses hanya-baca ke semua AWS layanan dan sumber daya. Saat layanan meluncurkan fitur baru, AWS tambahkan izin hanya-baca untuk operasi dan sumber daya baru. Untuk melihat daftar dan deskripsi dari kebijakan fungsi tugas, lihat [kebijakan yang dikelola AWS untuk fungsi tugas](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) di *Panduan Pengguna IAM*.

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. Kebijakan terkelola CodeCommit juga memberikan izin untuk melakukan operasi di layanan lain, seperti IAM, Amazon SNS, dan CloudWatch Amazon Events, sebagaimana diperlukan untuk tanggung jawab bagi pengguna yang telah diberikan kebijakan tersebut. Misalnya, AWSCode CommitFullAccess kebijakan tersebut adalah kebijakan pengguna tingkat administratif yang memungkinkan pengguna dengan kebijakan ini membuat dan mengelola aturan CloudWatch Acara untuk repositori (aturan yang namanya diawali) dan topik `codecommit` Amazon SNS untuk pemberitahuan tentang peristiwa terkait repositori (topik yang namanya diawali), serta mengelola repositori di. `codecommit` CodeCommit 

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

**Topics**
+ [AWS kebijakan terkelola: AWSCode CommitFullAccess](#managed-policies-full)
+ [AWS kebijakan terkelola: AWSCode CommitPowerUser](#managed-policies-poweruser)
+ [AWS kebijakan terkelola: AWSCode CommitReadOnly](#managed-policies-read)
+ [CodeCommit kebijakan dan pemberitahuan terkelola](#notifications-permissions)
+ [AWS CodeCommit kebijakan terkelola dan Amazon CodeGuru Reviewer](#codeguru-permissions)
+ [CodeCommit pembaruan kebijakan AWS terkelola](#security-iam-awsmanpol-updates)

## AWS kebijakan terkelola: AWSCode CommitFullAccess
<a name="managed-policies-full"></a>

Anda dapat melampirkan kebijakan `AWSCodeCommitFullAccess` ke identitas IAM Anda. Kebijakan ini memberikan akses penuh ke CodeCommit. Terapkan kebijakan ini hanya untuk pengguna tingkat administratif yang ingin Anda berikan kontrol penuh atas CodeCommit repositori dan sumber daya terkait di akun Amazon Web Services Anda, termasuk kemampuan untuk menghapus repositori.

 AWSCodeCommitFullAccess Kebijakan tersebut berisi pernyataan kebijakan berikut:

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

****  

```
    {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "codecommit:*"
          ],
          "Resource": "*"
        },
        {
          "Sid": "CloudWatchEventsCodeCommitRulesAccess",
          "Effect": "Allow",
          "Action": [
            "events:DeleteRule",
            "events:DescribeRule",
            "events:DisableRule",
            "events:EnableRule",
            "events:PutRule",
            "events:PutTargets",
            "events:RemoveTargets",
            "events:ListTargetsByRule"
          ],
          "Resource": "arn:aws:events:*:*:rule/codecommit*"
        },
        {
          "Sid": "SNSTopicAndSubscriptionAccess",
          "Effect": "Allow",
          "Action": [
            "sns:CreateTopic",
            "sns:DeleteTopic",
            "sns:Subscribe",
            "sns:Unsubscribe",
            "sns:SetTopicAttributes"
          ],
          "Resource": "arn:aws:sns:*:*:codecommit*"
        },
        {
          "Sid": "SNSTopicAndSubscriptionReadAccess",
          "Effect": "Allow",
          "Action": [
            "sns:ListTopics",
            "sns:ListSubscriptionsByTopic",
            "sns:GetTopicAttributes"
          ],
          "Resource": "*"
        },
        {
          "Sid": "LambdaReadOnlyListAccess",
          "Effect": "Allow",
          "Action": [
            "lambda:ListFunctions"
          ],
          "Resource": "*"
        },
        {
          "Sid": "IAMReadOnlyListAccess",
          "Effect": "Allow",
          "Action": [
            "iam:ListUsers"
          ],
          "Resource": "*"
        },
        {
          "Sid": "IAMReadOnlyConsoleAccess",
          "Effect": "Allow",
          "Action": [
            "iam:ListAccessKeys",
            "iam:ListSSHPublicKeys",
            "iam:ListServiceSpecificCredentials"
          ],
          "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
          "Sid": "IAMUserSSHKeys",
          "Effect": "Allow",
          "Action": [
            "iam:DeleteSSHPublicKey",
            "iam:GetSSHPublicKey",
            "iam:ListSSHPublicKeys",
            "iam:UpdateSSHPublicKey",
            "iam:UploadSSHPublicKey"
          ],
          "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
          "Sid": "IAMSelfManageServiceSpecificCredentials",
          "Effect": "Allow",
          "Action": [
            "iam:CreateServiceSpecificCredential",
            "iam:UpdateServiceSpecificCredential",
            "iam:DeleteServiceSpecificCredential",
            "iam:ResetServiceSpecificCredential"
          ],
          "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
          "Sid": "CodeStarNotificationsReadWriteAccess",
          "Effect": "Allow",
          "Action": [
            "codestar-notifications:CreateNotificationRule",
            "codestar-notifications:DescribeNotificationRule",
            "codestar-notifications:UpdateNotificationRule",
            "codestar-notifications:DeleteNotificationRule",
            "codestar-notifications:Subscribe",
            "codestar-notifications:Unsubscribe"
          ],
          "Resource": "*",
          "Condition": {
            "ArnLike": {
              "codestar-notifications:NotificationsForResource": "arn:aws:iam::*:role/Service*"
            }
          }
        },
        {
          "Sid": "CodeStarNotificationsListAccess",
          "Effect": "Allow",
          "Action": [
            "codestar-notifications:ListNotificationRules",
            "codestar-notifications:ListTargets",
            "codestar-notifications:ListTagsforResource",
            "codestar-notifications:ListEventTypes"
          ],
          "Resource": "*"
        },
        {
          "Sid": "CodeStarNotificationsSNSTopicCreateAccess",
          "Effect": "Allow",
          "Action": [
            "sns:CreateTopic",
            "sns:SetTopicAttributes"
          ],
          "Resource": "arn:aws:sns:*:*:codestar-notifications*"
        },
        {
          "Sid": "AmazonCodeGuruReviewerFullAccess",
          "Effect": "Allow",
          "Action": [
            "codeguru-reviewer:AssociateRepository",
            "codeguru-reviewer:DescribeRepositoryAssociation",
            "codeguru-reviewer:ListRepositoryAssociations",
            "codeguru-reviewer:DisassociateRepository",
            "codeguru-reviewer:DescribeCodeReview",
            "codeguru-reviewer:ListCodeReviews"
          ],
          "Resource": "*"
        },
        {
          "Sid": "AmazonCodeGuruReviewerSLRCreation",
          "Action": "iam:CreateServiceLinkedRole",
          "Effect": "Allow",
          "Resource": "arn:aws:iam::*:role/aws-service-role/codeguru-reviewer.amazonaws.com/AWSServiceRoleForAmazonCodeGuruReviewer",
          "Condition": {
            "StringLike": {
              "iam:AWSServiceName": "codeguru-reviewer.amazonaws.com"
            }
          }
        },
        {
          "Sid": "CloudWatchEventsManagedRules",
          "Effect": "Allow",
          "Action": [
            "events:PutRule",
            "events:PutTargets",
            "events:DeleteRule",
            "events:RemoveTargets"
          ],
          "Resource": "*",
          "Condition": {
            "StringEquals": {
              "events:ManagedBy": "codeguru-reviewer.amazonaws.com"
            }
          }
        },
        {
          "Sid": "CodeStarNotificationsChatbotAccess",
          "Effect": "Allow",
          "Action": [
            "chatbot:DescribeSlackChannelConfigurations",
            "chatbot:ListMicrosoftTeamsChannelConfigurations"
          ],
          "Resource": "*"
        },
        {
            "Sid": "CodeStarConnectionsReadOnlyAccess",
            "Effect": "Allow",
            "Action": [
                "codestar-connections:ListConnections",
                "codestar-connections:GetConnection"
            ],
            "Resource": "arn:aws:codestar-connections:*:*:connection/*"
        }
      ]
    }
```

------

## AWS kebijakan terkelola: AWSCode CommitPowerUser
<a name="managed-policies-poweruser"></a>

Anda dapat melampirkan kebijakan `AWSCodeCommitPowerUser` ke identitas IAM Anda. Kebijakan ini memungkinkan pengguna mengakses semua fungsi CodeCommit dan sumber daya terkait repositori, kecuali tidak memungkinkan mereka untuk menghapus repositori atau membuat atau menghapus sumber daya terkait CodeCommit repositori di layanan lain, seperti Amazon Events. AWS CloudWatch Kami merekomendasikan bahwa Anda menerapkan kebijakan ini untuk sebagian besar pengguna.

 AWSCodeCommitPowerUser Kebijakan tersebut berisi pernyataan kebijakan berikut:

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

****  

```
    {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "codecommit:AssociateApprovalRuleTemplateWithRepository",
            "codecommit:BatchAssociateApprovalRuleTemplateWithRepositories",
            "codecommit:BatchDisassociateApprovalRuleTemplateFromRepositories",
            "codecommit:BatchGet*",
            "codecommit:BatchDescribe*",
            "codecommit:Create*",
            "codecommit:DeleteBranch",
            "codecommit:DeleteFile",
            "codecommit:Describe*",
            "codecommit:DisassociateApprovalRuleTemplateFromRepository",
            "codecommit:EvaluatePullRequestApprovalRules",
            "codecommit:Get*",
            "codecommit:List*",
            "codecommit:Merge*",
            "codecommit:OverridePullRequestApprovalRules",
            "codecommit:Put*",
            "codecommit:Post*",
            "codecommit:TagResource",
            "codecommit:Test*",
            "codecommit:UntagResource",
            "codecommit:Update*",
            "codecommit:GitPull",
            "codecommit:GitPush"
          ],
          "Resource": "*"
        },
        {
          "Sid": "CloudWatchEventsCodeCommitRulesAccess",
          "Effect": "Allow",
          "Action": [
            "events:DeleteRule",
            "events:DescribeRule",
            "events:DisableRule",
            "events:EnableRule",
            "events:PutRule",
            "events:PutTargets",
            "events:RemoveTargets",
            "events:ListTargetsByRule"
          ],
          "Resource": "arn:aws:events:*:*:rule/codecommit*"
        },
        {
          "Sid": "SNSTopicAndSubscriptionAccess",
          "Effect": "Allow",
          "Action": [
            "sns:Subscribe",
            "sns:Unsubscribe"
          ],
          "Resource": "arn:aws:sns:*:*:codecommit*"
        },
        {
          "Sid": "SNSTopicAndSubscriptionReadAccess",
          "Effect": "Allow",
          "Action": [
            "sns:ListTopics",
            "sns:ListSubscriptionsByTopic",
            "sns:GetTopicAttributes"
          ],
          "Resource": "*"
        },
        {
          "Sid": "LambdaReadOnlyListAccess",
          "Effect": "Allow",
          "Action": [
            "lambda:ListFunctions"
          ],
          "Resource": "*"
        },
        {
          "Sid": "IAMReadOnlyListAccess",
          "Effect": "Allow",
          "Action": [
            "iam:ListUsers"
          ],
          "Resource": "*"
        },
        {
          "Sid": "IAMReadOnlyConsoleAccess",
          "Effect": "Allow",
          "Action": [
            "iam:ListAccessKeys",
            "iam:ListSSHPublicKeys",
            "iam:ListServiceSpecificCredentials"
          ],
          "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
          "Sid": "IAMUserSSHKeys",
          "Effect": "Allow",
          "Action": [
            "iam:DeleteSSHPublicKey",
            "iam:GetSSHPublicKey",
            "iam:ListSSHPublicKeys",
            "iam:UpdateSSHPublicKey",
            "iam:UploadSSHPublicKey"
          ],
          "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
          "Sid": "IAMSelfManageServiceSpecificCredentials",
          "Effect": "Allow",
          "Action": [
            "iam:CreateServiceSpecificCredential",
            "iam:UpdateServiceSpecificCredential",
            "iam:DeleteServiceSpecificCredential",
            "iam:ResetServiceSpecificCredential"
          ],
          "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
          "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:iam::*:role/Service*"
            }
          }
        },
        {
          "Sid": "CodeStarNotificationsListAccess",
          "Effect": "Allow",
          "Action": [
            "codestar-notifications:ListNotificationRules",
            "codestar-notifications:ListTargets",
            "codestar-notifications:ListTagsforResource",
            "codestar-notifications:ListEventTypes"
          ],
          "Resource": "*"
        },
        {
          "Sid": "AmazonCodeGuruReviewerFullAccess",
          "Effect": "Allow",
          "Action": [
            "codeguru-reviewer:AssociateRepository",
            "codeguru-reviewer:DescribeRepositoryAssociation",
            "codeguru-reviewer:ListRepositoryAssociations",
            "codeguru-reviewer:DisassociateRepository",
            "codeguru-reviewer:DescribeCodeReview",
            "codeguru-reviewer:ListCodeReviews"
          ],
          "Resource": "*"
        },
        {
          "Sid": "AmazonCodeGuruReviewerSLRCreation",
          "Action": "iam:CreateServiceLinkedRole",
          "Effect": "Allow",
          "Resource": "arn:aws:iam::*:role/aws-service-role/codeguru-reviewer.amazonaws.com/AWSServiceRoleForAmazonCodeGuruReviewer",
          "Condition": {
            "StringLike": {
              "iam:AWSServiceName": "codeguru-reviewer.amazonaws.com"
            }
          }
        },
        {
          "Sid": "CloudWatchEventsManagedRules",
          "Effect": "Allow",
          "Action": [
            "events:PutRule",
            "events:PutTargets",
            "events:DeleteRule",
            "events:RemoveTargets"
          ],
          "Resource": "*",
          "Condition": {
            "StringEquals": {
              "events:ManagedBy": "codeguru-reviewer.amazonaws.com"
            }
          }
        },
        {
          "Sid": "CodeStarNotificationsChatbotAccess",
          "Effect": "Allow",
          "Action": [
            "chatbot:DescribeSlackChannelConfigurations",
            "chatbot:ListMicrosoftTeamsChannelConfigurations"
          ],
          "Resource": "*"
        },
        {
            "Sid": "CodeStarConnectionsReadOnlyAccess",
            "Effect": "Allow",
            "Action": [
                "codestar-connections:ListConnections",
                "codestar-connections:GetConnection"
            ],
            "Resource": "arn:aws:codestar-connections:*:*:connection/*"
        }
      ]
    }
```

------

## AWS kebijakan terkelola: AWSCode CommitReadOnly
<a name="managed-policies-read"></a>

Anda dapat melampirkan kebijakan `AWSCodeCommitReadOnly` ke identitas IAM Anda. Kebijakan ini memberikan akses hanya-baca ke CodeCommit dan sumber daya terkait repositori di AWS layanan lain, serta kemampuan untuk membuat dan mengelola sumber daya terkait mereka sendiri (seperti kredensi Git dan kunci SSH untuk digunakan pengguna CodeCommit IAM mereka saat mengakses repositori). Terapkan kebijakan ini kepada pengguna yang ingin Anda beri kemampuan untuk membaca konten repositori, tetapi tidak membuat perubahan apa pun pada kontennya.

 AWSCodeCommitReadOnly Kebijakan tersebut berisi pernyataan kebijakan berikut:

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

****  

```
    { 
       "Version":"2012-10-17",		 	 	 
       "Statement":[ 
          { 
             "Effect":"Allow",
             "Action":[ 
                "codecommit:BatchGet*",
                "codecommit:BatchDescribe*",
                "codecommit:Describe*",
                "codecommit:EvaluatePullRequestApprovalRules",
                "codecommit:Get*",
                "codecommit:List*",
                "codecommit:GitPull"
             ],
             "Resource":"*"
          },
          { 
             "Sid":"CloudWatchEventsCodeCommitRulesReadOnlyAccess",
             "Effect":"Allow",
             "Action":[ 
                "events:DescribeRule",
                "events:ListTargetsByRule"
             ],
             "Resource":"arn:aws:events:*:*:rule/codecommit*"
          },
          { 
             "Sid":"SNSSubscriptionAccess",
             "Effect":"Allow",
             "Action":[ 
                "sns:ListTopics",
                "sns:ListSubscriptionsByTopic",
                "sns:GetTopicAttributes"
             ],
             "Resource":"*"
          },
          { 
             "Sid":"LambdaReadOnlyListAccess",
             "Effect":"Allow",
             "Action":[ 
                "lambda:ListFunctions"
             ],
             "Resource":"*"
          },
          { 
             "Sid":"IAMReadOnlyListAccess",
             "Effect":"Allow",
             "Action":[ 
                "iam:ListUsers"
             ],
             "Resource":"*"
          },
          { 
             "Sid":"IAMReadOnlyConsoleAccess",
             "Effect":"Allow",
             "Action":[ 
                "iam:ListAccessKeys",
                "iam:ListSSHPublicKeys",
                "iam:ListServiceSpecificCredentials",
                "iam:GetSSHPublicKey"
             ],
             "Resource":"arn:aws:iam::*:user/${aws:username}"
          },
          { 
             "Sid":"CodeStarNotificationsReadOnlyAccess",
             "Effect":"Allow",
             "Action":[ 
                "codestar-notifications:DescribeNotificationRule"
             ],
             "Resource":"*",
             "Condition":{ 
                "ArnLike":{ 
                   "codestar-notifications:NotificationsForResource":"arn:aws:codecommit:us-east-2:111122223333:*"
                }
             }
          },
          { 
             "Sid":"CodeStarNotificationsListAccess",
             "Effect":"Allow",
             "Action":[ 
                "codestar-notifications:ListNotificationRules",
                "codestar-notifications:ListEventTypes",
                "codestar-notifications:ListTargets"
             ],
             "Resource":"*"
          },
          {
             "Sid": "AmazonCodeGuruReviewerReadOnlyAccess",
             "Effect": "Allow",
             "Action": [
                "codeguru-reviewer:DescribeRepositoryAssociation",
                "codeguru-reviewer:ListRepositoryAssociations",
                "codeguru-reviewer:DescribeCodeReview",
                "codeguru-reviewer:ListCodeReviews"
             ],
             "Resource": "*"
          },
          {
            "Sid": "CodeStarConnectionsReadOnlyAccess",
            "Effect": "Allow",
            "Action": [
                "codestar-connections:ListConnections",
                "codestar-connections:GetConnection"
            ],
            "Resource": "arn:aws:codestar-connections:*:*:connection/*"
        }
    ]
}
```

------

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

AWS CodeCommit mendukung notifikasi, yang dapat memberi tahu pengguna tentang perubahan penting pada repositori. Kebijakan terkelola untuk CodeCommit 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 akses penuh
<a name="notifications-fullaccess"></a>

Kebijakan terkelola `AWSCodeCommitFullAccess` mencakup pernyataan berikut untuk mengizinkan akses penuh ke notifikasi. Pengguna dengan kebijakan terkelola ini diterapkan juga dapat membuat dan mengelola topik Amazon SNS untuk notifikasi, berlangganan dan berhenti berlangganan pengguna ke topik, mencantumkan topik untuk dipilih sebagai target aturan notifikasi, dan daftar Pengembang Amazon Q di aplikasi obrolan klien yang dikonfigurasi untuk Slack.

```
    {
        "Sid": "CodeStarNotificationsReadWriteAccess",
        "Effect": "Allow",
        "Action": [
            "codestar-notifications:CreateNotificationRule",
            "codestar-notifications:DescribeNotificationRule",
            "codestar-notifications:UpdateNotificationRule",
            "codestar-notifications:DeleteNotificationRule",
            "codestar-notifications:Subscribe",
            "codestar-notifications:Unsubscribe"
        ],
        "Resource": "*",
        "Condition" : {
            "StringLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codecommit:*"} 
        }
    },    
    {
        "Sid": "CodeStarNotificationsListAccess",
        "Effect": "Allow",
        "Action": [
            "codestar-notifications:ListNotificationRules",
            "codestar-notifications:ListTargets",
            "codestar-notifications:ListTagsforResource,"
            "codestar-notifications:ListEventTypes"
        ],
        "Resource": "*"
    },
    {
        "Sid": "CodeStarNotificationsSNSTopicCreateAccess",
        "Effect": "Allow",
        "Action": [
            "sns:CreateTopic",
            "sns:SetTopicAttributes"
        ],
        "Resource": "arn:aws:sns:*:*:codestar-notifications*"
    },
    {
        "Sid": "CodeStarNotificationsChatbotAccess",
        "Effect": "Allow",
        "Action": [
            "chatbot:DescribeSlackChannelConfigurations",
            "chatbot:ListMicrosoftTeamsChannelConfigurations"
          ],
       "Resource": "*"
    }
```

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

Kebijakan terkelola `AWSCodeCommitReadOnlyAccess` 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" : {
            "StringLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codecommit:*"} 
        }
    },    
    {
        "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 `AWSCodeCommitPowerUser` 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:DeleteNotificationRule",
            "codestar-notifications:Subscribe",
            "codestar-notifications:Unsubscribe"
        ],
        "Resource": "*",
        "Condition" : {
            "StringLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codecommit*"} 
        }
    },    
    {
        "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 Management for AWS CodeStar Notifications](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/security-iam.html).

## AWS CodeCommit kebijakan terkelola dan Amazon CodeGuru Reviewer
<a name="codeguru-permissions"></a>

CodeCommit mendukung Amazon CodeGuru Reviewer, layanan peninjauan kode otomatis yang menggunakan analisis program dan pembelajaran mesin untuk mendeteksi masalah umum dan merekomendasikan perbaikan dalam kode Java atau Python Anda. Kebijakan terkelola untuk CodeCommit menyertakan pernyataan kebijakan untuk fungsionalitas CodeGuru Peninjau. Untuk informasi selengkapnya, lihat [Apa Itu Amazon CodeGuru Reviewer](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html).

### Izin terkait dengan CodeGuru Reviewer di AWSCode CommitFullAccess
<a name="codeguru-fullaccess"></a>

Kebijakan `AWSCodeCommitFullAccess` terkelola mencakup pernyataan berikut untuk memungkinkan CodeGuru Reviewer dikaitkan dan dipisahkan dengan CodeCommit repositori. Pengguna dengan kebijakan terkelola ini diterapkan juga dapat melihat status asosiasi antara CodeCommit repositori dan CodeGuru Peninjau dan melihat status pekerjaan peninjauan untuk permintaan tarik.

```
    {
      "Sid": "AmazonCodeGuruReviewerFullAccess",
      "Effect": "Allow",
      "Action": [
        "codeguru-reviewer:AssociateRepository",
        "codeguru-reviewer:DescribeRepositoryAssociation",
        "codeguru-reviewer:ListRepositoryAssociations",
        "codeguru-reviewer:DisassociateRepository",
        "codeguru-reviewer:DescribeCodeReview",
        "codeguru-reviewer:ListCodeReviews"
      ],
      "Resource": "*"
    },
    {
      "Sid": "AmazonCodeGuruReviewerSLRCreation",
      "Action": "iam:CreateServiceLinkedRole",
      "Effect": "Allow",
      "Resource": "arn:aws:iam::*:role/aws-service-role/codeguru-reviewer.amazonaws.com/AWSServiceRoleForAmazonCodeGuruReviewer",
      "Condition": {
        "StringLike": {
          "iam:AWSServiceName": "codeguru-reviewer.amazonaws.com"
        }
      }
    },
    {
      "Sid": "CloudWatchEventsManagedRules",
      "Effect": "Allow",
      "Action": [
        "events:PutRule",
        "events:PutTargets",
        "events:DeleteRule",
        "events:RemoveTargets"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "events:ManagedBy": "codeguru-reviewer.amazonaws.com"
        }
      }
    }
```

### Izin terkait dengan CodeGuru Reviewer di AWSCode CommitPowerUser
<a name="codeguru-poweruser"></a>

Kebijakan `AWSCodeCommitPowerUser` terkelola mencakup pernyataan berikut untuk memungkinkan pengguna mengaitkan dan memisahkan repositori dengan CodeGuru Peninjau, melihat status asosiasi, dan melihat status pekerjaan peninjauan untuk permintaan tarik.

```
    {
      "Sid": "AmazonCodeGuruReviewerFullAccess",
      "Effect": "Allow",
      "Action": [
        "codeguru-reviewer:AssociateRepository",
        "codeguru-reviewer:DescribeRepositoryAssociation",
        "codeguru-reviewer:ListRepositoryAssociations",
        "codeguru-reviewer:DisassociateRepository",
        "codeguru-reviewer:DescribeCodeReview",
        "codeguru-reviewer:ListCodeReviews"
      ],
      "Resource": "*"
    },
    {
      "Sid": "AmazonCodeGuruReviewerSLRCreation",
      "Action": "iam:CreateServiceLinkedRole",
      "Effect": "Allow",
      "Resource": "arn:aws:iam::*:role/aws-service-role/codeguru-reviewer.amazonaws.com/AWSServiceRoleForAmazonCodeGuruReviewer",
      "Condition": {
        "StringLike": {
          "iam:AWSServiceName": "codeguru-reviewer.amazonaws.com"
        }
      }
    },
    {
      "Sid": "CloudWatchEventsManagedRules",
      "Effect": "Allow",
      "Action": [
        "events:PutRule",
        "events:PutTargets",
        "events:DeleteRule",
        "events:RemoveTargets"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "events:ManagedBy": "codeguru-reviewer.amazonaws.com"
        }
      }
    }
```

### Izin terkait dengan CodeGuru Reviewer di AWSCode CommitReadOnly
<a name="codeguru-readonly"></a>

Kebijakan `AWSCodeCommitReadOnlyAccess` terkelola mencakup pernyataan berikut untuk mengizinkan akses hanya-baca ke status asosiasi CodeGuru Peninjau dan melihat status pekerjaan peninjauan untuk permintaan tarik. Pengguna yang menerapkan kebijakan terkelola ini tidak dapat mengaitkan atau memisahkan repositori. 

```
     {
      "Sid": "AmazonCodeGuruReviewerReadOnlyAccess",
      "Effect": "Allow",
      "Action": [
            "codeguru-reviewer:DescribeRepositoryAssociation",
            "codeguru-reviewer:ListRepositoryAssociations",
            "codeguru-reviewer:DescribeCodeReview",
            "codeguru-reviewer:ListCodeReviews"
      ],
      "Resource": "*"
    }
```

### Peran terkait layanan Amazon CodeGuru Reviewer
<a name="codeguru-slr"></a>

Saat Anda mengaitkan repositori dengan CodeGuru Reviewer, peran terkait layanan dibuat sehingga CodeGuru Reviewer dapat mendeteksi masalah dan merekomendasikan perbaikan untuk kode Java atau Python dalam permintaan tarik. Peran terkait layanan diberi nama. AWSService RoleForAmazonCodeGuruReviewer Untuk informasi selengkapnya, lihat [Menggunakan Peran Tertaut Layanan untuk Amazon CodeGuru Reviewer](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/using-service-linked-roles.html).

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*.

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



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




| Ubah | Deskripsi | Date | 
| --- | --- | --- | 
|  [AWS kebijakan terkelola: AWSCode CommitFullAccess](#managed-policies-full)dan [AWS kebijakan terkelola: AWSCode CommitPowerUser](#managed-policies-poweruser) — Perbarui ke kebijakan yang ada  |  CodeCommit menambahkan izin ke kebijakan ini untuk mendukung jenis pemberitahuan tambahan menggunakan Pengembang Amazon Q di aplikasi obrolan.  AWSCodeCommitFullAccess Kebijakan AWSCode CommitPowerUser dan telah diubah untuk menambahkan izin,`chatbot:ListMicrosoftTeamsChannelConfigurations`.  | 16 Mei 2023 | 
|  [AWS kebijakan terkelola: AWSCode CommitReadOnly](#managed-policies-read) – Pembaruan ke kebijakan yang ada  |  CodeCommit menghapus izin duplikat dari kebijakan.  AWSCodeCommitReadOnly Telah diubah untuk menghapus izin duplikat,`"iam:ListAccessKeys"`.  | 18 Agustus 2021 | 
|  CodeCommit mulai melacak perubahan  |  CodeCommit mulai melacak perubahan untuk kebijakan yang AWS dikelola.  | 18 Agustus 2021 | 

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

Anda dapat membuat kebijakan IAM kustom Anda sendiri untuk mengizinkan izin CodeCommit tindakan dan sumber daya. Anda dapat melampirkan kebijakan-kebijakan kustom ini ke pengguna IAM atau grup yang memerlukan izin-izin tersebut. Anda juga dapat membuat kebijakan IAM kustom Anda sendiri untuk integrasi antara CodeCommit dan AWS layanan lainnya.

**Topics**
+ [Contoh kebijakan identitas yang dikelola pelanggan](#customer-managed-policies-identity)

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

Contoh berikut kebijakan IAM memberikan izin untuk berbagai CodeCommit tindakan. Gunakan mereka untuk membatasi CodeCommit akses bagi pengguna dan peran IAM Anda. Kebijakan ini mengontrol kemampuan untuk melakukan tindakan dengan CodeCommit konsol, API AWS SDKs, atau AWS CLI.



**catatan**  
Semua contoh menggunakan Wilayah Barat AS (Oregon) (us-west-2) dan berisi akun fiktif. IDs

 **Contoh**
+ [Contoh 1: Izinkan pengguna untuk melakukan CodeCommit operasi dalam satu Wilayah AWS](#identity-based-policies-example-1)
+ [Contoh 2: Izinkan pengguna menggunakan Git untuk repositori tunggal](#identity-based-policies-example-2)
+ [Contoh 3: Izinkan pengguna terhubung dari rentang alamat IP tertentu untuk mengakses repositori](#identity-based-policies-example-3)
+ [Contoh 4: Tolak atau izinkan tindakan di cabang](#identity-based-policies-example-4)
+ [Contoh 5: Tolak atau izinkan tindakan pada repositori dengan tag](#identity-based-policies-example-5)

### Contoh 1: Izinkan pengguna untuk melakukan CodeCommit operasi dalam satu Wilayah AWS
<a name="identity-based-policies-example-1"></a>

Kebijakan izin berikut menggunakan karakter wildcard (`"codecommit:*"`) untuk memungkinkan pengguna melakukan semua CodeCommit tindakan di Wilayah us-east-2 dan bukan dari yang lain. Wilayah AWS

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "codecommit:*",
            "Resource": "arn:aws:codecommit:us-east-2:111111111111:*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestedRegion": "us-east-2"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "codecommit:ListRepositories",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestedRegion": "us-east-2"
                }
            }
        }
    ]
}
```

------

### Contoh 2: Izinkan pengguna menggunakan Git untuk repositori tunggal
<a name="identity-based-policies-example-2"></a>

Dalam CodeCommit, izin kebijakan `GitPull` IAM berlaku untuk setiap perintah klien Git di mana data diambil dari CodeCommit, termasuk, **git fetch****git clone**, dan sebagainya. Demikian pula, izin kebijakan `GitPush` IAM berlaku untuk setiap perintah klien Git di mana data dikirim ke. CodeCommit Misalnya, jika Izin kebijakan IAM `GitPush` diatur ke `Allow`, pengguna dapat mendorong penghapusan cabang menggunakan protokol Git. Dorongan itu tidak terpengaruh oleh izin yang diterapkan ke operasi `DeleteBranch` untuk pengguna IAM tersebut. `DeleteBranch`Izin berlaku untuk tindakan yang dilakukan dengan konsol AWS CLI, SDKs, dan API, tetapi bukan protokol Git. 

Contoh berikut memungkinkan pengguna tertentu untuk menarik dari, dan mendorong ke, CodeCommit repositori bernama: `MyDemoRepo`

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement" : [
    {
      "Effect" : "Allow",
      "Action" : [
        "codecommit:GitPull",
        "codecommit:GitPush"
      ],
      "Resource" : "arn:aws:codecommit:us-east-2:111122223333:MyDemoRepo"
    }
  ]
}
```

------

### Contoh 3: Izinkan pengguna terhubung dari rentang alamat IP tertentu untuk mengakses repositori
<a name="identity-based-policies-example-3"></a>

Anda dapat membuat kebijakan yang hanya memungkinkan pengguna untuk terhubung ke CodeCommit repositori jika alamat IP mereka berada dalam rentang alamat IP tertentu. Ada dua pendekatan yang sama-sama valid untuk ini. Anda dapat membuat `Deny` kebijakan yang melarang CodeCommit operasi jika alamat IP untuk pengguna tidak berada dalam blok tertentu, atau Anda dapat membuat `Allow` kebijakan yang memungkinkan CodeCommit operasi jika alamat IP untuk pengguna berada dalam blok tertentu.

Anda dapat membuat kebijakan `Deny` yang menolak akses ke semua pengguna yang tidak berada dalam kisaran IP tertentu. Misalnya, Anda dapat melampirkan kebijakan AWSCode CommitPowerUser terkelola dan kebijakan yang dikelola pelanggan ke semua pengguna yang memerlukan akses ke repositori Anda. Contoh kebijakan berikut menolak semua CodeCommit izin untuk pengguna yang alamat IP-nya tidak berada dalam blok alamat IP yang ditentukan 203.0.113.0/16:

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Deny",
         "Action": [
            "codecommit:*"
         ],
         "Resource": "*",
         "Condition": {
            "NotIpAddress": {
               "aws:SourceIp": [
                  "203.0.113.0/16"
               ]
            }
         }
      }
   ]
}
```

------

Contoh kebijakan berikut memungkinkan pengguna tertentu untuk mengakses CodeCommit repositori bernama MyDemoRepo dengan izin setara dari kebijakan AWSCode CommitPowerUser terkelola hanya jika alamat IP mereka berada dalam blok alamat yang ditentukan 203.0.113.0/16:

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "codecommit:BatchGetRepositories",
            "codecommit:CreateBranch",
            "codecommit:CreateRepository",
            "codecommit:Get*",
            "codecommit:GitPull",
            "codecommit:GitPush",
            "codecommit:List*",
            "codecommit:Put*",
            "codecommit:Post*",
            "codecommit:Merge*",
            "codecommit:TagResource",
            "codecommit:Test*",
            "codecommit:UntagResource",
            "codecommit:Update*"
         ],
         "Resource": "arn:aws:codecommit:us-east-2:111122223333:MyDemoRepo",
         "Condition": {
            "IpAddress": {
               "aws:SourceIp": [
                  "203.0.113.0/16"
               ]
            }
         }
      }
   ]
}
```

------



### Contoh 4: Tolak atau izinkan tindakan di cabang
<a name="identity-based-policies-example-4"></a>

Anda dapat membuat kebijakan yang menolak izin pengguna untuk tindakan yang Anda tentukan di satu cabang atau lebih. Atau, Anda dapat membuat kebijakan yang mengizinkan tindakan pada satu atau beberapa cabang yang mungkin tidak mereka miliki di cabang repositori lainnya. Anda dapat menggunakan kebijakan ini dengan kebijakan terkelola (yang telah ditetapkan) yang sesuai. Untuk informasi selengkapnya, lihat [Batasi dorongan dan penggabungan ke cabang di AWS CodeCommit](how-to-conditional-branch.md).

Misalnya, Anda dapat membuat `Deny` kebijakan yang menolak kemampuan pengguna untuk membuat perubahan pada cabang bernama main, termasuk menghapus cabang tersebut, dalam repositori bernama. *MyDemoRepo* Anda dapat menggunakan kebijakan ini dengan kebijakan **AWSCodeCommitPowerUser**terkelola. Pengguna dengan dua kebijakan ini diterapkan akan dapat membuat dan menghapus cabang, membuat permintaan tarik, dan semua tindakan lain sebagaimana diizinkan oleh **AWSCodeCommitPowerUser**, tetapi mereka tidak akan dapat mendorong perubahan ke cabang bernama *main*, menambah atau mengedit file di cabang *utama* di CodeCommit konsol, atau menggabungkan cabang atau permintaan tarik ke cabang *utama*. Karena `Deny` diterapkan untuk `GitPush`, Anda harus menyertakan pernyataan `Null` dalam kebijakan, untuk mengizinkan panggilan `GitPush` awal untuk dianalisis untuk validitas ketika pengguna membuat dorongan dari repos lokal mereka.

**Tip**  
Jika Anda ingin membuat kebijakan yang berlaku untuk semua cabang yang bernama *utama* di semua repositori di akun Amazon Web Services Anda, untuk `Resource`, tentukan tanda bintang ( `*` ) bukan repositori ARN.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "codecommit:GitPush",
                "codecommit:DeleteBranch",
                "codecommit:PutFile",
                "codecommit:Merge*"
            ],
            "Resource": "arn:aws:codecommit:us-east-2:111111111111:MyDemoRepo",
            "Condition": {
                "StringEqualsIfExists": {
                    "codecommit:References": [
                        "refs/heads/main"   
                    ]
                },
                "Null": {
                    "codecommit:References": "false"
                }
            }
        }
    ]
}
```

------

Contoh kebijakan berikut mengizinkan pengguna untuk membuat perubahan pada cabang bernama main di semua repositori di akun Amazon Web Services. Ini tidak mengizinkan perubahan pada cabang lainnya. Anda dapat menggunakan kebijakan ini dengan kebijakan AWSCode CommitReadOnly terkelola untuk mengizinkan push otomatis ke repositori di cabang utama. Karena Efeknya`Allow`, kebijakan contoh ini tidak akan bekerja dengan kebijakan terkelola seperti AWSCodeCommitPowerUser.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "codecommit:GitPush",
                "codecommit:Merge*"
            ],
            "Resource": "*",
            "Condition": {
                "StringEqualsIfExists": {
                    "codecommit:References": [
                        "refs/heads/main"
                    ]
                }
            }
        }
    ]
}
```

------



### Contoh 5: Tolak atau izinkan tindakan pada repositori dengan tag
<a name="identity-based-policies-example-5"></a>

Anda dapat membuat kebijakan yang mengizinkan atau menolak tindakan pada repositori berdasarkan AWS tag yang terkait dengan repositori tersebut, lalu menerapkan kebijakan tersebut ke grup IAM yang Anda konfigurasikan untuk mengelola pengguna IAM. Misalnya, Anda dapat membuat kebijakan yang menolak semua CodeCommit tindakan pada repositori apa pun dengan *Status* kunci AWS tag dan nilai kunci *Rahasia*, lalu menerapkan kebijakan tersebut ke grup IAM yang Anda buat untuk pengembang umum (). *Developers* Anda kemudian perlu memastikan bahwa pengembang yang bekerja pada repositori yang diberi tag tersebut bukan anggota *Developers* grup umum itu, melainkan milik grup IAM berbeda yang tidak memiliki kebijakan restriktif yang diterapkan (). *SecretDevelopers*

*Contoh berikut menyangkal semua CodeCommit tindakan pada repositori yang ditandai dengan *Status* kunci dan nilai kunci Rahasia:*

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "codecommit:Associate*",
        "codecommit:Batch*",
        "codecommit:CancelUploadArchive",
        "codecommit:CreateBranch",
        "codecommit:CreateCommit",
        "codecommit:CreatePullRequest*",
        "codecommit:CreateRepository",
        "codecommit:CreateUnreferencedMergeCommit",
        "codecommit:DeleteBranch",
        "codecommit:DeleteCommentContent",
        "codecommit:DeleteFile",
        "codecommit:DeletePullRequest*",
        "codecommit:DeleteRepository",
        "codecommit:Describe*",
        "codecommit:DisassociateApprovalRuleTemplateFromRepository",
        "codecommit:EvaluatePullRequestApprovalRules",
        "codecommit:GetBlob",
        "codecommit:GetBranch",
        "codecommit:GetComment*",
        "codecommit:GetCommit",
        "codecommit:GetDifferences*",
        "codecommit:GetFile",
        "codecommit:GetFolder",
        "codecommit:GetMerge*",
        "codecommit:GetObjectIdentifier",
        "codecommit:GetPullRequest*",
        "codecommit:GetReferences",
        "codecommit:GetRepository*",
        "codecommit:GetTree",
        "codecommit:GetUploadArchiveStatus",
        "codecommit:Git*",
        "codecommit:ListAssociatedApprovalRuleTemplatesForRepository",
        "codecommit:ListBranches",
        "codecommit:ListPullRequests",
        "codecommit:ListTagsForResource",
        "codecommit:Merge*",
        "codecommit:OverridePullRequestApprovalRules",
        "codecommit:Post*",
        "codecommit:Put*",
        "codecommit:TagResource",
        "codecommit:TestRepositoryTriggers",
        "codecommit:UntagResource",
        "codecommit:UpdateComment",
        "codecommit:UpdateDefaultBranch",
        "codecommit:UpdatePullRequest*",
        "codecommit:UpdateRepository*",
        "codecommit:UploadArchive"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/Status": "Secret"
        }
      }
    }
  ]
}
```

------

Anda dapat lebih menyempurnakan strategi ini dengan menentukan repositori tertentu, bukan semua repositori, sebagai sumber daya. Anda juga dapat membuat kebijakan yang memungkinkan CodeCommit tindakan pada semua repositori yang tidak ditandai dengan tag tertentu. Misalnya, kebijakan berikut mengizinkan **AWSCodeCommitPowerUser**izin yang setara untuk CodeCommit tindakan, kecuali hanya mengizinkan CodeCommit tindakan pada repositori yang tidak ditandai dengan tag yang ditentukan:

**catatan**  
Contoh kebijakan ini hanya mencakup tindakan untuk CodeCommit. Ini tidak termasuk tindakan untuk AWS layanan lain yang termasuk dalam kebijakan yang **AWSCodeCommitPowerUser**dikelola. Untuk informasi selengkapnya, lihat [AWS kebijakan terkelola: AWSCode CommitPowerUser](security-iam-awsmanpol.md#managed-policies-poweruser).

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "codecommit:Associate*",
        "codecommit:Batch*",
        "codecommit:CancelUploadArchive",
        "codecommit:CreateBranch",
        "codecommit:CreateCommit",
        "codecommit:CreatePullRequest*",
        "codecommit:CreateRepository",
        "codecommit:CreateUnreferencedMergeCommit",
        "codecommit:DeleteBranch",
        "codecommit:DeleteCommentContent",
        "codecommit:DeleteFile",
        "codecommit:DeletePullRequest*",
        "codecommit:Describe*",
        "codecommit:DisassociateApprovalRuleTemplateFromRepository",
        "codecommit:EvaluatePullRequestApprovalRules",
        "codecommit:GetBlob",
        "codecommit:GetBranch",
        "codecommit:GetComment*",
        "codecommit:GetCommit",
        "codecommit:GetDifferences*",
        "codecommit:GetFile",
        "codecommit:GetFolder",
        "codecommit:GetMerge*",
        "codecommit:GetObjectIdentifier",
        "codecommit:GetPullRequest*",
        "codecommit:GetReferences",
        "codecommit:GetRepository*",
        "codecommit:GetTree",
        "codecommit:GetUploadArchiveStatus",
        "codecommit:Git*",
        "codecommit:ListAssociatedApprovalRuleTemplatesForRepository",
        "codecommit:ListBranches",
        "codecommit:ListPullRequests",
        "codecommit:ListTagsForResource",
        "codecommit:Merge*",
        "codecommit:OverridePullRequestApprovalRules",
        "codecommit:Post*",
        "codecommit:Put*",
        "codecommit:TagResource",
        "codecommit:TestRepositoryTriggers",
        "codecommit:UntagResource",
        "codecommit:UpdateComment",
        "codecommit:UpdateDefaultBranch",
        "codecommit:UpdatePullRequest*",
        "codecommit:UpdateRepository*",
        "codecommit:UploadArchive"
      ],
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "aws:ResourceTag/Status": "Secret",
          "aws:ResourceTag/Team": "Saanvi"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "codecommit:CreateApprovalRuleTemplate",
        "codecommit:GetApprovalRuleTemplate",
        "codecommit:ListApprovalRuleTemplates",
        "codecommit:ListRepositories",
        "codecommit:ListRepositoriesForApprovalRuleTemplate",
        "codecommit:UpdateApprovalRuleTemplateContent",
        "codecommit:UpdateApprovalRuleTemplateDescription",
        "codecommit:UpdateApprovalRuleTemplateName"
      ],
      "Resource": "*"
    }
  ]
}
```

------

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

Tabel berikut mencantumkan setiap operasi CodeCommit API, tindakan terkait yang dapat Anda berikan izin, dan format ARN sumber daya yang akan digunakan untuk memberikan izin. CodeCommit APIs Dikelompokkan ke dalam tabel berdasarkan ruang lingkup tindakan yang diizinkan oleh API tersebut. Lihat saat menyiapkan [Kontrol akses](auth-and-access-control.md#access-control) dan menulis kebijakan izin yang dapat Anda lampirkan ke identitas IAM (kebijakan berbasis identitas). 

Saat Anda membuat kebijakan izin, Anda menentukan tindakan di bagian kebijakan bidang `Action`. Anda menentukan nilai sumber daya di bidang `Resource` sebagai ARN, dengan atau tanpa karakter wildcard (\$1). 

Untuk menyatakan kondisi dalam CodeCommit kebijakan Anda, gunakan tombol kondisi AWS-wide. Untuk daftar lengkap tombol AWS-wide, lihat Kunci yang [Tersedia](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#AvailableKeys) di *Panduan Pengguna IAM*. Untuk informasi lengkap tentang tindakan, sumber daya, dan kunci kondisi CodeCommit dalam kebijakan IAM, lihat [Kunci tindakan, sumber daya, dan kondisi untuk AWS CodeCommit](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscodecommit.html). 

**catatan**  
Untuk menentukan tindakan, gunakan awalan `codecommit:` yang diikuti dengan nama operasi API (misalnya, `codecommit:GetRepository` atau `codecommit:CreateRepository`. 

**Menggunakan Wildcard**

Untuk menentukan beberapa tindakan atau sumber daya, gunakan karakter wildcard (\$1) di ARN Anda. Misalnya, `codecommit:*` menentukan semua CodeCommit tindakan dan `codecommit:Get*` menentukan semua CodeCommit tindakan yang dimulai dengan kata. `Get` Contoh berikut memberikan akses ke semua repositori dengan nama yang dimulai dengan `MyDemo`. 

```
arn:aws:codecommit:us-west-2:111111111111:MyDemo*
```

Anda dapat menggunakan wildcard hanya dengan *repository-name* sumber daya yang tercantum dalam tabel berikut. Anda tidak dapat menggunakan wildcard dengan *region* atau *account-id* sumber daya. Untuk informasi lebih lanjut tentang wildcard, lihat [Pengidentifikasi IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html) dalam *Panduan Pengguna IAM*. 



**Topics**
+ [Izin yang diperlukan untuk perintah klien Git](#aa-git)
+ [Izin untuk tindakan di cabang](#aa-branches)
+ [Izin untuk tindakan pada penggabungan](#aa-merges)
+ [Izin untuk tindakan pada permintaan tarik](#aa-pr)
+ [Izin untuk tindakan pada templat aturan persetujuan](#aa-art)
+ [Izin yang diperlukan untuk tindakan pada file](#aa-files)
+ [Izin untuk tindakan pada komentar](#aa-comments)
+ [Izin untuk tindakan pada kode yang dilakukan commit](#aa-code)
+ [Izin untuk tindakan pada repositori](#aa-repositories)
+ [Izin yang diperlukan untuk tindakan pada tag](#aa-tags)
+ [Izin yang diperlukan untuk tindakan pada pemicu](#aa-triggers)
+ [Izin untuk tindakan pada integrasi CodePipeline](#aa-acp)

## Izin yang diperlukan untuk perintah klien Git
<a name="aa-git"></a>

Dalam CodeCommit, izin kebijakan `GitPull` IAM berlaku untuk setiap perintah klien Git di mana data diambil dari CodeCommit, termasuk, **git fetch****git clone**, dan sebagainya. Demikian pula, izin kebijakan `GitPush` IAM berlaku untuk setiap perintah klien Git di mana data dikirim ke. CodeCommit Misalnya, jika Izin kebijakan IAM `GitPush` diatur ke `Allow`, pengguna dapat mendorong penghapusan cabang menggunakan protokol Git. Dorongan itu tidak terpengaruh oleh izin yang diterapkan ke operasi `DeleteBranch` untuk pengguna IAM tersebut. `DeleteBranch`Izin berlaku untuk tindakan yang dilakukan dengan konsol AWS CLI, SDKs, dan API, tetapi bukan protokol Git. 

`GitPull` dan `GitPush` adalah izin kebijakan IAM. Mereka bukan tindakan API.

Gunakan bilah gulir untuk melihat seluruh tabel.


**CodeCommit Izin yang Diperlukan untuk Tindakan untuk Perintah Klien Git**  

| CodeCommit Izin untuk Git | Izin yang Diperlukan  | Sumber daya | 
| --- | --- | --- | 
|  GitPull  |  `codecommit:GitPull` Diperlukan untuk menarik informasi dari CodeCommit repositori ke repo lokal. Ini adalah izin kebijakan IAM saja, bukan tindakan API.  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
|  GitPush  |  `codecommit:GitPush` Diperlukan untuk mendorong informasi dari repo lokal ke CodeCommit repositori. Ini adalah izin kebijakan IAM saja, bukan tindakan API.  Jika Anda membuat kebijakan yang mencakup kunci konteks dan pernyataan `Deny` yang mencakup izin ini, Anda juga harus menyertakan konteks `Null`. Untuk informasi selengkapnya, lihat [Batasi dorongan dan penggabungan ke cabang di AWS CodeCommit](how-to-conditional-branch.md).   |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 

## Izin untuk tindakan di cabang
<a name="aa-branches"></a>

Izin berikut mengizinkan atau menolak tindakan pada cabang di CodeCommit repositori. Izin ini hanya berkaitan dengan tindakan yang dilakukan di CodeCommit konsol dan dengan CodeCommit API, dan perintah yang dilakukan menggunakan. AWS CLI Mereka tidak berkaitan dengan tindakan serupa yang dapat dilakukan dengan menggunakan protokol Git. Misalnya, perintah **git show-branch -r** menampilkan daftar cabang remote untuk repositori dan commit menggunakan protokol Git. Itu tidak terpengaruh oleh izin apa pun untuk CodeCommit `ListBranches` operasi. 

Untuk informasi selengkapnya tentang kebijakan cabang, lihat [Batasi dorongan dan penggabungan ke cabang di AWS CodeCommit](how-to-conditional-branch.md) dan[Contoh kebijakan yang dikelola pelanggan](customer-managed-policies.md).

Gunakan bilah gulir untuk melihat seluruh tabel.


**CodeCommit Operasi API dan Izin yang Diperlukan untuk Tindakan di Cabang**  

| CodeCommit Operasi API untuk Cabang | Izin yang Diperlukan (Tindakan API) | Sumber daya | 
| --- | --- | --- | 
|  [CreateBranch](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_CreateBranch.html)  |  `codecommit:CreateBranch` Diperlukan untuk membuat cabang di CodeCommit repositori.  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
|  [DeleteBranch](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_DeleteBranch.html)  |  `codecommit:DeleteBranch` Diperlukan untuk menghapus cabang dari CodeCommit repositori.  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
|  [GetBranch](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetBranch.html)  |  `codecommit:GetBranch` Diperlukan untuk mendapatkan detail tentang cabang di CodeCommit repositori.  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
| [ListBranches](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_ListBranches.html) |  `codecommit:ListBranches` Diperlukan untuk mendapatkan daftar cabang di CodeCommit repositori.  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
| [MergeBranchesByFastForward](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_MergeBranchesByFastForward.html) |  `codecommit:MergeBranchesByFastForward` Diperlukan untuk menggabungkan dua cabang menggunakan strategi penggabungan maju cepat dalam repositori. CodeCommit   | arn:aws:codecommit:: region account-id repository-name | 
| [MergeBranchesBySquash](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_MergeBranchesBySquash.html) |  `codecommit:MergeBranchesBySquash` Diperlukan untuk menggabungkan dua cabang menggunakan strategi penggabungan squash dalam repositori. CodeCommit   | arn:aws:codecommit:: region account-id repository-name | 
| [MergeBranchesByThreeWay](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_MergeBranchesByThreeWay.html) |  `codecommit:MergeBranchesByThreeWay` Diperlukan untuk menggabungkan dua cabang menggunakan strategi penggabungan tiga arah dalam repositori. CodeCommit   | arn:aws:codecommit:: region account-id repository-name | 
| [UpdateDefaultBranch](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdateDefaultBranch.html) | codecommit:UpdateDefaultBranchDiperlukan untuk mengubah cabang default di CodeCommit repositori. |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 

## Izin untuk tindakan pada penggabungan
<a name="aa-merges"></a>

Izin berikut mengizinkan atau menolak tindakan pada penggabungan di CodeCommit repositori. Izin ini berkaitan dengan tindakan yang dilakukan dengan CodeCommit konsol dan CodeCommit API, dan perintah yang dilakukan menggunakan. AWS CLI Mereka tidak berkaitan dengan tindakan serupa yang dapat dilakukan dengan menggunakan protokol Git. Untuk izin terkait pada cabang, lihat [Izin untuk tindakan di cabang](#aa-branches). Untuk izin terkait pada permintaan tarik, lihat [Izin untuk tindakan pada permintaan tarik](#aa-pr).

Gunakan bilah gulir untuk melihat seluruh tabel.


**CodeCommit Izin yang Diperlukan untuk Tindakan untuk Perintah Gabungan**  

| CodeCommit Izin untuk Penggabungan | Izin yang Diperlukan  | Sumber daya | 
| --- | --- | --- | 
|  [BatchDescribeMergeConflicts](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_BatchDescribeMergeConflicts.html)  |  `codecommit:BatchDescribeMergeConflicts` Diperlukan untuk mengembalikan informasi tentang konflik dalam penggabungan antara komit dalam repositori. CodeCommit   |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
|  [CreateUnreferencedMergeCommit](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_CreateUnreferencedMergeCommit.html)  |  `codecommit:CreateUnreferencedMergeCommit` Diperlukan untuk membuat komit yang tidak direferensikan antara dua cabang atau komit dalam CodeCommit repositori untuk tujuan membandingkannya dan mengidentifikasi potensi konflik.   |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
|  [DescribeMergeConflicts](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_DescribeMergeConflicts.html)  |  `codecommit:DescribeMergeConflicts` Diperlukan untuk mengembalikan informasi tentang konflik gabungan antara versi dasar, sumber, dan tujuan file dalam kemungkinan penggabungan dalam repositori. CodeCommit   |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
|  [GetMergeCommit](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetMergeCommit.html)  |  `codecommit:GetMergeCommit` Diperlukan untuk mengembalikan informasi tentang penggabungan antara komit sumber dan tujuan dalam CodeCommit repositori.   |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
|  [GetMergeOptions](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetMergeOptions.html)  |  `codecommit:GetMergeOptions` Diperlukan untuk mengembalikan informasi tentang opsi penggabungan yang tersedia antara dua cabang atau penentu komit dalam repositori. CodeCommit   |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 

## Izin untuk tindakan pada permintaan tarik
<a name="aa-pr"></a>

Izin berikut mengizinkan atau menolak tindakan pada permintaan tarik di CodeCommit repositori. Izin ini berkaitan dengan tindakan yang dilakukan dengan CodeCommit konsol dan CodeCommit API, dan perintah yang dilakukan menggunakan. AWS CLI Mereka tidak berkaitan dengan tindakan serupa yang dapat dilakukan dengan menggunakan protokol Git. Untuk izin terkait pada komentar, lihat [Izin untuk tindakan pada komentar](#aa-comments).

Gunakan bilah gulir untuk melihat seluruh tabel.


**CodeCommit Operasi API dan Izin yang Diperlukan untuk Tindakan pada Permintaan Tarik**  

| CodeCommit Operasi API | Izin yang Diperlukan (Tindakan API) | Sumber daya | 
| --- | --- | --- | 
|  BatchGetPullRequests  |  `codecommit:BatchGetPullRequests` Diperlukan untuk mengembalikan informasi tentang satu atau beberapa permintaan tarik dalam CodeCommit repositori. Ini adalah izin kebijakan IAM saja, bukan tindakan API yang dapat Anda panggil.  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
|  [CreatePullRequest](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_CreatePullRequest.html)  |  `codecommit:CreatePullRequest` Diperlukan untuk membuat permintaan tarik di CodeCommit repositori.  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
| [CreatePullRequestApprovalRule](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_CreatePullRequestApprovalRule.html) |  `codecommit:CreatePullRequestApprovalRule` Diperlukan untuk membuat aturan persetujuan untuk permintaan tarik di CodeCommit repositori.  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
| [DeletePullRequestApprovalRule](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_DeletePullRequestApprovalRule.html) |  `codecommit:DeletePullRequestApprovalRule` Diperlukan untuk menghapus aturan persetujuan untuk permintaan tarik di CodeCommit repositori.  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
| [DescribePullRequestEvents](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_DescribePullRequestEvents.html) | Diperlukan untuk mengembalikan informasi tentang satu atau beberapa peristiwa permintaan tarik dalam CodeCommit repositori. | arn:aws:codecommit:: region account-id repository-name | 
| [EvaluatePullRequestApprovalRules](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_EvaluatePullRequestApprovalRules.html) |  `codecommit:EvaluatePullRequestApprovalRules` Diperlukan untuk mengevaluasi apakah permintaan tarik telah memenuhi semua kondisi yang ditentukan dalam aturan persetujuan terkait dalam CodeCommit repositori.   |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
|  [GetCommentsForPullRequest](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetCommentsForPullRequest.html)  |  `codecommit:GetCommentsForPullRequest` Diperlukan untuk mengembalikan komentar yang dibuat atas permintaan tarik.  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
| GetCommitsFromMergeBase |  `codecommit:GetCommitsFromMergeBase` Diperlukan untuk mengembalikan informasi tentang perbedaan antara commit dalam konteks penggabungan potensial. Ini adalah izin kebijakan IAM saja, bukan tindakan API yang dapat Anda panggil.  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
| [GetMergeConflicts](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetMergeConflicts.html) |  `codecommit:GetMergeConflicts` Diperlukan untuk mengembalikan informasi tentang konflik gabungan antara sumber dan cabang tujuan dalam permintaan tarik.  | arn:aws:codecommit:: region account-id repository-name | 
|  [GetPullRequest](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetPullRequest.html)  |  `codecommit:GetPullRequest` Diperlukan untuk mengembalikan informasi tentang permintaan tarik.  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
|  [GetPullRequestApprovalStates](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetPullRequestApprovalStates.html)  |  `codecommit:GetPullRequestApprovalStates` Diperlukan untuk mengembalikan informasi tentang status persetujuan untuk permintaan tarik yang ditentukan.  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
|  [GetPullRequestOverrideState](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetPullRequestOverrideState.html)  |  `codecommit:GetPullRequestOverrideState` Diperlukan untuk mengembalikan informasi tentang apakah aturan persetujuan telah disisihkan (ditimpa) untuk permintaan tarik, dan jika demikian, Amazon Resource Name (ARN) pengguna atau identitas yang mengesampingkan aturan dan persyaratannya untuk permintaan tarik.  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
| [ListPullRequests](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_ListPullRequests.html) |  `codecommit:ListPullRequests` Diperlukan untuk mengembalikan informasi tentang permintaan tarik untuk repositori.  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
| [MergePullRequestByFastForward](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_MergePullRequestByFastForward.html) | codecommit:MergePullRequestByFastForwardDiperlukan untuk menutup permintaan tarik dan mencoba untuk menggabungkan cabang sumber ke cabang tujuan permintaan tarik menggunakan strategi penggabungan maju-cepat. |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
| [MergePullRequestBySquash](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_MergePullRequestBySquash.html) | codecommit:MergePullRequestBySquashDiperlukan untuk menutup permintaan tarik dan mencoba menggabungkan cabang sumber ke cabang tujuan permintaan tarik menggunakan strategi penggabungan squash. |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
| [MergePullRequestByThreeWay](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_MergePullRequestByThreeWay.html) | codecommit:MergePullRequestByThreeWayDiperlukan untuk menutup permintaan tarik dan mencoba untuk menggabungkan cabang sumber ke cabang tujuan permintaan tarik menggunakan strategi gabungan tiga arah. |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
| [OverridePullRequestApprovalRules](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_OverridePullRequestApprovalRules.html) | codecommit:OverridePullRequestApprovalRules Diperlukan untuk menyisihkan semua persyaratan aturan persetujuan untuk permintaan tarik di CodeCommit repositori. |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
| [PostCommentForPullRequest](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_PostCommentForPullRequest.html) | codecommit:PostCommentForPullRequest Diperlukan untuk mengirim komentar pada permintaan tarik di CodeCommit repositori. |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
| [UpdatePullRequestApprovalRuleContent](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdatePullRequestApprovalRuleContent.html) | codecommit:UpdatePullRequestApprovalRuleContent Diperlukan untuk mengubah struktur aturan persetujuan untuk permintaan tarik di CodeCommit repositori. |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
| [UpdatePullRequestApprovalState](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdatePullRequestApprovalState.html) | codecommit:UpdatePullRequestApprovalState Diperlukan untuk mengubah status persetujuan atas permintaan tarik di CodeCommit repositori. |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
| [UpdatePullRequestDescription](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdatePullRequestDescription.html) | codecommit:UpdatePullRequestDescription Diperlukan untuk mengubah deskripsi permintaan tarik di CodeCommit repositori. |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
| [UpdatePullRequestStatus](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdatePullRequestStatus.html) | codecommit:UpdatePullRequestStatus Diperlukan untuk mengubah status permintaan tarik di CodeCommit repositori. |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
| [UpdatePullRequestTitle](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdatePullRequestTitle.html) | codecommit:UpdatePullRequestTitle Diperlukan untuk mengubah judul permintaan tarik di CodeCommit repositori. |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 

## Izin untuk tindakan pada templat aturan persetujuan
<a name="aa-art"></a>

Izin berikut mengizinkan atau menolak tindakan pada templat aturan persetujuan di CodeCommit repositori. Izin ini hanya berkaitan dengan tindakan yang dilakukan di CodeCommit konsol, CodeCommit API, dan perintah yang dilakukan menggunakan. AWS CLI Mereka tidak berkaitan dengan tindakan serupa yang dapat dilakukan dengan menggunakan protokol Git. Untuk izin terkait pada permintaan tarik, lihat [Izin untuk tindakan pada permintaan tarik](#aa-pr).

Gunakan bilah gulir untuk melihat seluruh tabel.


**CodeCommit Operasi API dan Izin yang Diperlukan untuk Tindakan pada Template Aturan Persetujuan**  

| CodeCommit Operasi API untuk Template Aturan Persetujuan | Izin yang Diperlukan  | Sumber daya | 
| --- | --- | --- | 
|  [AssociateApprovalRuleTemplateWithRepository](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_AssociateApprovalRuleTemplateWithRepository.html)  |  `codecommit:AssociateApprovalRuleTemplateWithRepository` Diperlukan untuk mengaitkan templat dengan repositori tertentu dalam akun Amazon Web Services. Setelah dikaitkan, ini secara otomatis membuat aturan persetujuan yang cocok dengan kondisi templat pada setiap permintaan tarik yang dibuat dalam repositori yang ditentukan.  |  \$1  | 
|  [BatchAssociateApprovalRuleTemplateWithRepositories](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_BatchAssociateApprovalRuleTemplateWithRepositories.html)  |  `codecommit:BatchAssociateApprovalRuleTemplateWithRepositories` Diperlukan untuk mengaitkan suatu templat dengan satu atau lebih repositori tertentu dalam akun Amazon Web Services.  |  \$1  | 
|  [BatchDisassociateApprovalRuleTemplateFromRepositories](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_BatchDisassociateApprovalRuleTemplateFromRepositories.html)  |  `codecommit:BatchDisassociateApprovalRuleTemplateFromRepositories` Diperlukan untuk memisahkan kaitan suatu templat dari satu atau lebih repositori tertentu dalam akun Amazon Web Services.  |  \$1  | 
|  [CreateApprovalRuleTemplate](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_CreateApprovalRuleTemplate.html)  |  `codecommit:CreateApprovalRuleTemplate` Diperlukan untuk membuat templat untuk aturan persetujuan yang kemudian dapat dikaitkan dengan satu atau lebih repositori di akun AWS .  |  \$1  | 
|  [DeleteApprovalRuleTemplate](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_DeleteApprovalRuleTemplate.html)  |  `codecommit:DeleteApprovalRuleTemplate` Diperlukan untuk menghapus templat yang ditentukan dalam akun Amazon Web Services. Ini tidak menghapus aturan persetujuan pada permintaan tarik yang telah dibuat dengan templat.   |  \$1  | 
|  [DisassociateApprovalRuleTemplateFromRepository](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_DisassociateApprovalRuleTemplateFromRepository.html)  |  `codecommit:DisassociateApprovalRuleTemplateFromRepository` Diperlukan untuk memisahkan kaitan templat yang ditentukan dari repositori di akun Amazon Web Services. Ini tidak menghapus aturan persetujuan pada permintaan tarik yang telah dibuat dengan templat.   |  \$1  | 
|  [GetApprovalRuleTemplate](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetApprovalRuleTemplate.html)  |  `codecommit:GetApprovalRuleTemplate` Diperlukan untuk mengembalikan informasi tentang templat aturan persetujuan di akun Amazon Web Services.   |  \$1  | 
|  [ListApprovalRuleTemplates](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_ListApprovalRuleTemplates.html)  |  `codecommit:ListApprovalRuleTemplates` Diperlukan untuk daftar persetujuan aturan templat dalam sebuah akun Amazon Web Services.   |  \$1  | 
|  [ListAssociatedApprovalRuleTemplatesForRepository](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_ListAssociatedApprovalRuleTemplatesForRepository.html)  |  `codecommit:ListAssociatedApprovalRuleTemplatesForRepository` Diperlukan untuk daftar semua templat aturan persetujuan yang dikaitkan dengan repositori tertentu dalam akun Amazon Web Services.   |  \$1  | 
|  [ListRepositoriesForApprovalRuleTemplate](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_ListRepositoriesForApprovalRuleTemplate.html)  |  `codecommit:ListRepositoriesForApprovalRuleTemplate` Diperlukan untuk daftar semua repositori yang dikaitkan dengan templat aturan persetujuan tertentu di akun Amazon Web Services.   |  \$1  | 
|  [UpdateApprovalRuleTemplateContent](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdateApprovalRuleTemplateContent.html)  |  `codecommit:UpdateApprovalRuleTemplateContent` Diperlukan untuk memperbarui isi templat aturan persetujuan di akun Amazon Web Services.   |  \$1  | 
|  [UpdateApprovalRuleTemplateDescription](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdateApprovalRuleTemplateDescription.html)  |  `codecommit:UpdateApprovalRuleTemplateDescription` Diperlukan untuk memperbarui deskripsi templat aturan persetujuan di akun Amazon Web Services.   |  \$1  | 
|  [UpdateApprovalRuleTemplateName](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdateApprovalRuleTemplateName.html)  |  `codecommit:UpdateApprovalRuleTemplateName` Diperlukan untuk memperbarui nama templat aturan persetujuan di akun Amazon Web Services.   |  \$1  | 

## Izin yang diperlukan untuk tindakan pada file
<a name="aa-files"></a>

Izin berikut memungkinkan atau menolak tindakan pada file individual di CodeCommit repositori. Izin ini hanya berkaitan dengan tindakan yang dilakukan di CodeCommit konsol, CodeCommit API, dan perintah yang dilakukan menggunakan. AWS CLI Mereka tidak berkaitan dengan tindakan serupa yang dapat dilakukan dengan menggunakan protokol Git. Misalnya, `git push` perintah mendorong file baru dan diubah ke CodeCommit repositori dengan menggunakan protokol Git. Itu tidak terpengaruh oleh izin apa pun untuk CodeCommit `PutFile` operasi.

Gunakan bilah gulir untuk melihat seluruh tabel.


**CodeCommit Operasi API dan Izin yang Diperlukan untuk Tindakan pada File Individu**  

| CodeCommit Operasi API untuk File Individu | Izin yang Diperlukan  | Sumber daya | 
| --- | --- | --- | 
|  [DeleteFile](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_DeleteFile.html)  |  `codecommit:DeleteFile` Diperlukan untuk menghapus file tertentu dari cabang tertentu dalam CodeCommit repositori dari konsol. CodeCommit   |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
|  [GetBlob](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetBlob.html)  |  `codecommit:GetBlob` Diperlukan untuk melihat konten yang dikodekan dari file individual dalam CodeCommit repositori dari konsol. CodeCommit   |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
|  [GetFile](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetFile.html)  |  `codecommit:GetFile` Diperlukan untuk melihat konten yang dikodekan dari file individual dan metadatanya CodeCommit repositori dari konsol. CodeCommit   |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
|  [GetFolder](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetFolder.html)  |  `codecommit:GetFolder` Diperlukan untuk melihat isi folder tertentu dalam CodeCommit repositori dari konsol. CodeCommit   |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
|  [PutFile](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_PutFile.html)  |  `codecommit:PutFile` Diperlukan untuk menambahkan file baru atau yang dimodifikasi ke CodeCommit repositori dari CodeCommit konsol, CodeCommit API, atau file. AWS CLI  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 

## Izin untuk tindakan pada komentar
<a name="aa-comments"></a>

Izin berikut mengizinkan atau menolak tindakan pada komentar di CodeCommit repositori. Izin ini berkaitan dengan tindakan yang dilakukan dengan CodeCommit konsol dan CodeCommit API, dan perintah yang dilakukan menggunakan. AWS CLI Untuk izin terkait pada komentar dalam permintaan tarik, lihat [Izin untuk tindakan pada permintaan tarik](#aa-pr).

Gunakan bilah gulir untuk melihat seluruh tabel.


**CodeCommit Operasi API dan Izin yang Diperlukan untuk Komentar di Repositori**  

| CodeCommit Operasi API | Izin yang Diperlukan (Tindakan API) | Sumber daya | 
| --- | --- | --- | 
|  [DeleteCommentContent](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_DeleteCommentContent.html)  |  `codecommit:DeleteCommentContent` Diperlukan untuk menghapus isi dari komentar yang dibuat pada perubahan, file, atau commit dalam repositori. Komentar tidak dapat dihapus, tetapi isi komentar dapat dihapus jika pengguna memiliki izin ini.   |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
|  [GetComment](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetComment.html)  |  `codecommit:GetComment` Diperlukan untuk mengembalikan informasi tentang komentar yang dibuat pada perubahan, file, atau komit dalam CodeCommit repositori.  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
|  [GetCommentReactions](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetCommentReactions.html)  |  `codecommit:GetCommentReactions` Diperlukan untuk mengembalikan informasi tentang reaksi emoji ke komentar yang dibuat pada perubahan, file, atau komit di CodeCommit repositori.  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
|  [GetCommentsForComparedCommit](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetCommentsForComparedCommit.html)  |  `codecommit:GetCommentsForComparedCommit` Diperlukan untuk mengembalikan informasi tentang komentar yang dibuat pada perbandingan antara dua komit dalam CodeCommit repositori.  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
|  [PostCommentForComparedCommit](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_PostCommentForComparedCommit.html)  |  `codecommit:PostCommentForComparedCommit` Diperlukan untuk membuat komentar tentang perbandingan antara dua komit dalam CodeCommit repositori.  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
| [PostCommentReply](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_PostCommentReply.html) |  `codecommit:PostCommentReply` Diperlukan untuk membuat balasan komentar pada perbandingan antara commit atau permintaan tarik.  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
| [PutCommentReaction](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_PutCommentReaction.html) |  `codecommit:PutCommentReaction` Diperlukan untuk membuat atau memperbarui reaksi emoji ke komentar.  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
| [UpdateComment](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdateComment.html) |  `codecommit:UpdateComment` Diperlukan untuk mengedit komentar pada perbandingan antara commit atau permintaan tarik. Komentar hanya dapat diedit oleh penulis komentar.  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 

## Izin untuk tindakan pada kode yang dilakukan commit
<a name="aa-code"></a>

Izin berikut mengizinkan atau menolak tindakan pada kode yang dilakukan ke CodeCommit repositori. Izin ini berkaitan dengan tindakan yang dilakukan dengan CodeCommit konsol dan CodeCommit API, dan perintah yang dilakukan menggunakan. AWS CLI Mereka tidak berkaitan dengan tindakan serupa yang dapat dilakukan dengan menggunakan protokol Git. Misalnya, perintah **git commit** membuat sebuah commit untuk cabang dalam repositori menggunakan protokol Git. Itu tidak terpengaruh oleh izin apa pun untuk CodeCommit `CreateCommit` operasi. 

Secara eksplisit menolak beberapa izin ini dapat mengakibatkan konsekuensi yang tidak terduga di konsol. CodeCommit Misalnya, mengatur `GetTree` ke `Deny` mencegah pengguna menavigasi isi repositori di konsol, tetapi tidak memblokir pengguna untuk melihat isi file dalam repositori (jika mereka dikirim link ke file dalam email, misalnya). Mengatur `GetBlob` ke `Deny` mencegah pengguna melihat isi file, tetapi tidak memblokir pengguna dari browsing struktur repositori. Mengatur `GetCommit` ke `Deny` mencegah pengguna mengambil rincian tentang commit. Mengatur `GetObjectIdentifier` ke `Deny` memblokir sebagian besar fungsi penjelajahan kode. Jika Anda menyetel ketiga tindakan ini ke `Deny` dalam kebijakan, pengguna dengan kebijakan tersebut tidak dapat menelusuri kode di CodeCommit konsol.

Gunakan bilah gulir untuk melihat seluruh tabel.


**CodeCommit Operasi API dan Izin yang Diperlukan untuk Tindakan pada Kode yang Berkomitmen**  

| CodeCommit Operasi API | Izin yang Diperlukan (Tindakan API) | Sumber daya | 
| --- | --- | --- | 
|  BatchGetCommits  |  `codecommit:BatchGetCommits` Diperlukan untuk mengembalikan informasi tentang satu atau lebih commit dalam CodeCommit repositori. Ini adalah izin kebijakan IAM saja, bukan tindakan API yang dapat Anda panggil.  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
| [CreateCommit](https://docs.aws.amazon.com/codecommit/latest/APIReference/CreateCommit.html) |  `codecommit:CreateCommit` Diperlukan untuk membuat sebuah commit.  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
|  [GetCommit](https://docs.aws.amazon.com/codecommit/latest/APIReference/GetCommit.html)  |  `codecommit:GetCommit` Diperlukan untuk mengembalikan informasi tentang commit.  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
|  GetCommitHistory  |  `codecommit:GetCommitHistory` Diperlukan untuk mengembalikan informasi tentang riwayat komit dalam repositori. Ini adalah izin kebijakan IAM saja, bukan tindakan API yang dapat Anda panggil.  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
| [GetDifferences](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetDifferences.html) |  `codecommit:GetDifferences` Diperlukan untuk mengembalikan informasi tentang perbedaan antara penentu commit (seperti cabang, tag, HEAD, ID Commit, atau referensi yang memenuhi syarat lainnya).  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
| GetObjectIdentifier | codecommit:GetObjectIdentifierDiperlukan untuk menyelesaikan gumpalan, pohon, dan commit untuk pengenal mereka. Ini adalah izin kebijakan IAM saja, bukan tindakan API yang dapat Anda panggil. |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
| GetReferences | codecommit:GetReferencesDiperlukan untuk mengembalikan semua referensi, seperti cabang dan tag. Ini adalah izin kebijakan IAM saja, bukan tindakan API yang dapat Anda panggil. |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
| GetTree | codecommit:GetTreeDiperlukan untuk melihat isi pohon tertentu dalam CodeCommit repositori dari konsol. CodeCommit Ini adalah izin kebijakan IAM saja, bukan tindakan API yang dapat Anda panggil. |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 

## Izin untuk tindakan pada repositori
<a name="aa-repositories"></a>

Izin berikut mengizinkan atau menolak tindakan pada CodeCommit repositori. Izin ini berkaitan dengan tindakan yang dilakukan dengan CodeCommit konsol dan CodeCommit API, dan perintah yang dilakukan menggunakan. AWS CLI Mereka tidak berkaitan dengan tindakan serupa yang dapat dilakukan dengan menggunakan protokol Git. 

Gunakan bilah gulir untuk melihat seluruh tabel.


**CodeCommit Operasi API dan Izin yang Diperlukan untuk Tindakan di Repositori**  

| CodeCommit Operasi API | Izin yang Diperlukan (Tindakan API) | Sumber daya | 
| --- | --- | --- | 
|  [BatchGetRepositories](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_BatchGetRepositories.html)  |  `codecommit:BatchGetRepositories` Diperlukan untuk mendapatkan informasi tentang beberapa CodeCommit repositori di akun Amazon Web Services. Di`Resource`, Anda harus menentukan nama semua CodeCommit repositori tempat pengguna diizinkan (atau ditolak) informasinya.  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
|  [CreateRepository](https://docs.aws.amazon.com/codecommit/latest/APIReference/CreateRepository.html)  |  `codecommit:CreateRepository` Diperlukan untuk membuat CodeCommit repositori.  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
|  [DeleteRepository](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_DeleteRepository.html)  |  `codecommit:DeleteRepository` Diperlukan untuk menghapus CodeCommit repositori.  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
| [GetRepository](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetRepository.html) |  `codecommit:GetRepository` Diperlukan untuk mendapatkan informasi tentang satu CodeCommit repositori.  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
| [ListRepositories](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_ListRepositories.html) | codecommit:ListRepositoriesDiperlukan untuk mendapatkan daftar nama dan sistem IDs beberapa CodeCommit repositori untuk akun Amazon Web Services. Satu-satunya nilai yang diizinkan untuk `Resource` untuk tindakan ini adalah semua repositori (`*`). |  \$1  | 
| [UpdateRepositoryDescription](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdateRepositoryDescription.html) | codecommit:UpdateRepositoryDescriptionDiperlukan untuk mengubah deskripsi CodeCommit repositori. |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
| [UpdateRepositoryName](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdateRepositoryName.html) | codecommit:UpdateRepositoryNameDiperlukan untuk mengubah nama CodeCommit repositori. Di`Resource`, Anda harus menentukan CodeCommit repositori yang diizinkan untuk diubah dan nama repositori baru. |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 

## Izin yang diperlukan untuk tindakan pada tag
<a name="aa-tags"></a>

Izin berikut mengizinkan atau menolak tindakan pada AWS tag untuk CodeCommit sumber daya. 

Gunakan bilah gulir untuk melihat seluruh tabel.


**CodeCommit Operasi API dan Izin yang Diperlukan untuk Tindakan pada Tag**  

| CodeCommit Operasi API | Izin yang Diperlukan (Tindakan API) | Sumber daya | 
| --- | --- | --- | 
|  [ListTagsForResource](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_ListTagsForResource.html)  |  `codecommit:ListTagsForResource` Diperlukan untuk mengembalikan informasi tentang AWS tag yang dikonfigurasi pada sumber daya di CodeCommit.  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
|  [TagResource](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_TagResource.html)  |  `codecommit:TagResource` Diperlukan untuk menambah atau mengedit AWS tag untuk sumber daya di CodeCommit.  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
|  [UntagResource](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UntagResource.html)  |  `codecommit:UntagResource` Diperlukan untuk menghapus AWS tag dari sumber daya di CodeCommit.  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 

## Izin yang diperlukan untuk tindakan pada pemicu
<a name="aa-triggers"></a>

Izin berikut mengizinkan atau menolak tindakan pada pemicu untuk CodeCommit repositori. 

Gunakan bilah gulir untuk melihat seluruh tabel.


**CodeCommit Operasi API dan Izin yang Diperlukan untuk Tindakan pada Pemicu**  

| CodeCommit Operasi API | Izin yang Diperlukan (Tindakan API) | Sumber daya | 
| --- | --- | --- | 
|  [GetRepositoryTriggers](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetRepositoryTriggers.html)  |  `codecommit:GetRepositoryTriggers` Diperlukan untuk mengembalikan informasi tentang pemicu yang dikonfigurasi untuk repositori.  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
|  [PutRepositoryTriggers](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_PutRepositoryTriggers.html)  |  `codecommit:PutRepositoryTriggers` Diperlukan untuk membuat, mengedit, atau menghapus pemicu untuk repositori.  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
|  [TestRepositoryTriggers](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_TestRepositoryTriggers.html)  |  `codecommit:TestRepositoryTriggers` Diperlukan untuk menguji fungsi pemicu repositori dengan mengirimkan data ke topik atau fungsi yang dikonfigurasi untuk pemicu.  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 

## Izin untuk tindakan pada integrasi CodePipeline
<a name="aa-acp"></a>

 CodePipeline Agar dapat menggunakan CodeCommit repositori dalam tindakan sumber untuk pipeline, Anda harus memberikan semua izin yang tercantum dalam tabel berikut ke peran layanan. CodePipeline Jika izin ini tidak ditetapkan dalam peran layanan atau diatur ke **Deny**, alur tidak berjalan secara otomatis ketika perubahan dibuat ke repositori, dan perubahan tidak dapat dirilis secara manual. 

Gunakan bilah gulir untuk melihat seluruh tabel.


**CodeCommit Operasi API dan Izin yang Diperlukan untuk Tindakan pada CodePipeline Integrasi**  

| CodeCommit Operasi API | Izin yang Diperlukan (Tindakan API) | Sumber daya | 
| --- | --- | --- | 
|  [GetBranch](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetBranch.html)  |  `codecommit:GetBranch` Diperlukan untuk mendapatkan detail tentang cabang di CodeCommit repositori.  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
|  [GetCommit](https://docs.aws.amazon.com/codecommit/latest/APIReference/GetCommit.html)  |  `codecommit:GetCommit` Diperlukan untuk mengembalikan informasi tentang komit untuk peran layanan untuk CodePipeline.   |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
|  UploadArchive  |  `codecommit:UploadArchive` Diperlukan untuk mengizinkan peran layanan CodePipeline untuk mengunggah perubahan repositori ke dalam pipeline. Ini adalah izin kebijakan IAM saja, bukan tindakan API yang dapat Anda panggil.  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
|  GetUploadArchiveStatus  |  `codecommit:GetUploadArchiveStatus` Diperlukan untuk menentukan status unggahan arsip: apakah sedang berlangsung, selesai, dibatalkan, atau jika terjadi kesalahan. Ini adalah izin kebijakan IAM saja, bukan tindakan API yang dapat Anda panggil.  |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 
| CancelUploadArchive | codecommit:CancelUploadArchiveDiperlukan untuk membatalkan pengunggahan arsip ke alur. Ini adalah izin kebijakan IAM saja, bukan tindakan API yang dapat dipanggil. |  arn:aws:codecommit:: *region* *account-id* *repository-name*  | 

# Bagaimana AWS CodeCommit bekerja dengan IAM
<a name="security_iam_service-with-iam"></a>

Sebelum Anda menggunakan IAM untuk mengelola akses CodeCommit, Anda harus memahami fitur IAM apa yang tersedia untuk digunakan. CodeCommit Untuk mendapatkan tampilan tingkat tinggi tentang cara CodeCommit dan AWS layanan lain bekerja dengan IAM, lihat [AWS Layanan yang Bekerja dengan IAM di Panduan Pengguna *IAM*](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html).

**Topics**
+ [Kunci syarat](#security_iam_service-with-iam-id-based-policies-conditionkeys)
+ [Contoh](#security_iam_service-with-iam-id-based-policies-examples)

## Kunci syarat
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

Administrator dapat menggunakan kebijakan AWS JSON untuk menentukan siapa yang memiliki akses ke apa. Yaitu, **principal** dapat melakukan **tindakan** pada suatu **sumber daya**, dan dalam suatu **syarat**.

Elemen `Condition` menentukan ketika pernyataan dieksekusi berdasarkan kriteria yang ditetapkan. Anda dapat membuat ekspresi bersyarat yang menggunakan [operator kondisi](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html), misalnya sama dengan atau kurang dari, untuk mencocokkan kondisi dalam kebijakan dengan nilai-nilai yang diminta. Untuk melihat semua kunci kondisi AWS global, lihat [kunci konteks kondisi AWS global](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) di *Panduan Pengguna IAM*.

CodeCommit mendefinisikan kumpulan kunci kondisinya sendiri dan juga mendukung penggunaan beberapa kunci kondisi global. Untuk melihat semua kunci kondisi AWS global, lihat [Kunci Konteks Kondisi AWS Global](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) di *Panduan Pengguna IAM*.

 Beberapa CodeCommit tindakan mendukung kunci `codecommit:References` kondisi. Untuk contoh kebijakan yang menggunakan kunci ini, lihat [Contoh 4: Tolak atau izinkan tindakan di cabang](customer-managed-policies.md#identity-based-policies-example-4). 

Untuk melihat daftar kunci CodeCommit kondisi, lihat [Condition Keys untuk AWS CodeCommit](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awscodecommit.html#awscodecommit-policy-keys) di *Panduan Pengguna IAM*. Untuk mempelajari tindakan dan sumber daya yang dapat Anda gunakan kunci kondisi, lihat [Tindakan yang Ditentukan oleh AWS CodeCommit](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awscodecommit.html#awscodecommit-actions-as-permissions).

## Contoh
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>



Untuk melihat contoh kebijakan CodeCommit berbasis identitas, lihat. [AWS CodeCommit contoh kebijakan berbasis identitas](security-iam.md#security_iam_id-based-policy-examples)

## CodeCommit kebijakan berbasis sumber daya
<a name="security_iam_service-with-iam-resource-based-policies"></a>

CodeCommit tidak mendukung kebijakan berbasis sumber daya. 

## Otorisasi berdasarkan tag CodeCommit
<a name="security_iam_service-with-iam-tags"></a>

Anda dapat melampirkan tag ke CodeCommit sumber daya atau meneruskan tag dalam permintaan CodeCommit. Untuk mengendalikan akses berdasarkan tanda, berikan informasi tentang tanda di [elemen kondisi](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) dari kebijakan menggunakan kunci kondisi `codecommit:ResourceTag/key-name`, `aws:RequestTag/key-name`, atau `aws:TagKeys`. Untuk informasi selengkapnya tentang menandai CodeCommit sumber daya, lihat[Contoh 5: Tolak atau izinkan tindakan pada repositori dengan tag](customer-managed-policies.md#identity-based-policies-example-5). Untuk informasi selengkapnya tentang strategi penandaan, lihat [AWS Menandai](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) Sumber Daya.

CodeCommit juga mendukung kebijakan berdasarkan tag sesi. Untuk informasi lebih lanjut, lihat [Tanda Sesi](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html). 

### Menggunakan tag untuk memberikan informasi identitas di CodeCommit
<a name="security-iam_service-with-iam-tags-identity"></a>

CodeCommit mendukung penggunaan tag sesi, yang merupakan atribut pasangan nilai kunci yang Anda lewati saat Anda mengambil peran IAM, menggunakan kredensil sementara, atau menyatukan pengguna di (). AWS Security Token Service AWS STS Anda juga dapat mengaitkan tag dengan pengguna IAM. Anda dapat menggunakan informasi yang disediakan dalam tag ini untuk mempermudah mengidentifikasi siapa yang membuat perubahan atau menyebabkan suatu peristiwa. CodeCommit termasuk nilai untuk tag dengan nama kunci berikut dalam CodeCommit acara:


****  

| Nama kunci | Nilai | 
| --- | --- | 
| displayName | Nama yang dapat dibaca manusia untuk ditampilkan dan dikaitkan dengan pengguna (misalnya, Mary Major atau Saanvi Sarkar). | 
| emailAddress | Alamat email yang ingin Anda tampilkan dan kaitkan dengan pengguna (misalnya, mary\$1major@example.com atau saanvi\$1sarkar@example.com). | 

Jika informasi ini diberikan, CodeCommit sertakan dalam acara yang dikirim ke Amazon EventBridge dan Amazon CloudWatch Events. Untuk informasi selengkapnya, lihat [Memantau CodeCommit peristiwa di Amazon EventBridge dan Amazon CloudWatch Events](monitoring-events.md).

Untuk menggunakan penandaan sesi, peran harus memiliki kebijakan yang mencakup izin `sts:TagSession` yang diatur ke `Allow`. Jika Anda menggunakan akses gabungan, Anda dapat mengkonfigurasi nama tampilan dan informasi tag email sebagai bagian dari pengaturan Anda. Misalnya, jika Anda menggunakan Azure Active Directory, Anda dapat memberikan informasi klaim berikut:


****  

| Nama klaim | Nilai | 
| --- | --- | 
| https://aws.amazon.com/SAML/Attributes/PrincipalTag:displayName | user.displayname | 
| https://aws.amazon.com/SAML/Attributes/PrincipalTag:emailAddress | user.mail | 

Anda dapat menggunakan tag AWS CLI to pass session untuk `displayName` dan `emailAddress` menggunakan**AssumeRole**. Misalnya, pengguna yang ingin mengambil peran bernama *Developer* yang ingin mengaitkan namanya *Mary Major* mungkin menggunakan **assume-role** perintah yang mirip dengan berikut ini:

```
aws sts assume-role \
--role-arn arn:aws:iam::123456789012:role/Developer \
--role-session-name Mary-Major \
–-tags Key=displayName,Value="Mary Major" Key=emailAddress,Value="mary_major@example.com" \
--external-id Example987
```

Untuk informasi selengkapnya, lihat [AssumeRole](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_adding-assume-role).

Anda dapat menggunakan operasi `AssumeRoleWithSAML` untuk mengembalikan satu set kredensial sementara yang mencakup tanda `displayName` dan `emailAddress`. Anda dapat menggunakan tag ini saat mengakses CodeCommit repositori. Ini mengharuskan perusahaan atau grup Anda telah mengintegrasikan solusi SALL pihak ketiga Anda. AWS Jika demikian, Anda dapat meneruskan atribut SAML sebagai tag sesi. Misalnya, jika Anda ingin meneruskan atribut identitas untuk nama tampilan dan alamat email untuk pengguna bernama *Saanvi Sarkar* tag sesi:

```
<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:displayName">
  <AttributeValue>Saanvi Sarkar</AttributeValue>
</Attribute>
<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:emailAddress">
  <AttributeValue>saanvi_sarkar@example.com</AttributeValue>
</Attribute>
```

Untuk informasi selengkapnya, lihat [Melewati Tag Sesi menggunakan AssumeRoleWith SALL](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_adding-assume-role-saml).

Anda dapat menggunakan operasi `AssumeRoleWithIdentity` untuk mengembalikan satu set kredensial sementara yang mencakup tanda `displayName` dan `emailAddress`. Anda dapat menggunakan tag ini saat mengakses CodeCommit repositori. Untuk meneruskan tag sesi dari OpenID Connect (OIDC), Anda harus menyertakan tag sesi di JSON Web Token (JWT). Misalnya, token JWP yang diterjemahkan digunakan untuk memanggil `AssumeRoleWithWebIdentity` yang menyertakan tag `emailAddress` sesi `displayName` dan untuk pengguna bernama: *Li Juan*

```
{
    "sub": "lijuan",
    "aud": "ac_oic_client",
    "jti": "ZYUCeREXAMPLE",
    "iss": "https://xyz.com",
    "iat": 1566583294,
    "exp": 1566583354,
    "auth_time": 1566583292,
    "https://aws.amazon.com/tags": {
        "principal_tags": {
            "displayName": ["Li Juan"],
            "emailAddress": ["li_juan@example.com"],
        },
        "transitive_tag_keys": [
            "displayName",
            "emailAddress"
        ]
    }
}
```

Untuk informasi selengkapnya, lihat [Melewati Tag Sesi menggunakan AssumeRoleWithWebIdentity](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_adding-assume-role-idp).

Anda dapat menggunakan operasi `GetFederationToken` untuk mengembalikan satu set kredensial sementara yang mencakup tanda `displayName` dan `emailAddress`. Anda dapat menggunakan tag ini saat mengakses CodeCommit repositori. Misalnya, untuk menggunakan token federasi AWS CLI untuk mendapatkan token federasi yang menyertakan `displayName` dan `emailAddress` tag:

```
aws sts get-federation-token \
--name my-federated-user \
–-tags key=displayName,value="Nikhil Jayashankar" key=emailAddress,value=nikhil_jayashankar@example.com
```

Untuk informasi selengkapnya, lihat [Melewati Tag Sesi menggunakan GetFederationToken](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_adding-getfederationtoken).

## CodeCommit Peran IAM
<a name="security_iam_service-with-iam-roles"></a>

[IAM role](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) adalah entitas di dalam akun Amazon Web Services Anda yang memiliki izin khusus.

### Menggunakan kredensi sementara dengan CodeCommit
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

Anda dapat menggunakan kredensial sementara untuk masuk dengan gabungan, menjalankan IAM role, atau menjalankan peran lintas akun. Anda memperoleh kredensil keamanan sementara dengan memanggil operasi AWS STS API seperti [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)atau. [GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html) 

CodeCommit mendukung menggunakan kredensil sementara. Untuk informasi selengkapnya, lihat [Menghubungkan ke AWS CodeCommit repositori dengan kredensi berputar](temporary-access.md).

### Peran terkait layanan
<a name="security_iam_service-with-iam-roles-service-linked"></a>

[Peran terkait AWS layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) memungkinkan layanan mengakses sumber daya di layanan lain untuk menyelesaikan tindakan atas nama Anda. Peran terkait layanan muncul di akun IAM Anda dan dimiliki oleh layanan tersebut. Administrator IAM dapat melihat tetapi tidak dapat mengedit izin untuk peran terkait layanan.

CodeCommit tidak menggunakan peran terkait layanan. 

### Peran layanan
<a name="security_iam_service-with-iam-roles-service"></a>

Fitur ini memungkinkan layanan untuk menerima [peran layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role) atas nama Anda. Peran ini mengizinkan layanan untuk mengakses sumber daya di layanan lain untuk menyelesaikan tindakan atas nama Anda. Peran layanan muncul di akun IAM Anda dan dimiliki oleh akun tersebut. Ini berarti administrator IAM dapat mengubah izin untuk peran ini. Namun, melakukan hal itu dapat merusak fungsionalitas layanan.

CodeCommit tidak menggunakan peran layanan. 

## AWS CodeCommit contoh kebijakan berbasis identitas
<a name="security_iam_id-based-policy-examples"></a>

Secara default, pengguna dan peran IAM tidak memiliki izin untuk membuat atau memodifikasi sumber daya CodeCommit . Mereka juga tidak dapat melakukan tugas menggunakan Konsol Manajemen AWS, AWS CLI, atau AWS API. Administrator IAM harus membuat kebijakan IAM yang memberikan izin kepada pengguna dan peran untuk melakukan operasi API tertentu pada sumber daya yang diperlukan. Administrator kemudian harus melampirkan kebijakan tersebut ke pengguna IAM atau grup yang memerlukan izin tersebut.

Untuk contoh kebijakan, lihat berikut:
+  [Contoh 1: Izinkan pengguna untuk melakukan CodeCommit operasi dalam satu Wilayah AWS](customer-managed-policies.md#identity-based-policies-example-1)
+ [Contoh 2: Izinkan pengguna menggunakan Git untuk repositori tunggal](customer-managed-policies.md#identity-based-policies-example-2)
+ [Contoh 3: Izinkan pengguna terhubung dari rentang alamat IP tertentu untuk mengakses repositori](customer-managed-policies.md#identity-based-policies-example-3)
+ [Contoh 4: Tolak atau izinkan tindakan di cabang](customer-managed-policies.md#identity-based-policies-example-4)
+ [Contoh 5: Tolak atau izinkan tindakan pada repositori dengan tag](customer-managed-policies.md#identity-based-policies-example-5)
+ [Konfigurasikan akses lintas akun ke AWS CodeCommit repositori menggunakan peran](cross-account.md)

Untuk mempelajari cara membuat kebijakan berbasis identitas IAM menggunakan contoh dokumen kebijakan JSON ini, lihat [Membuat Kebijakan pada Tab JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor) dalam *Panduan Pengguna IAM*.

**Topics**
+ [Praktik terbaik kebijakan](#security_iam_service-with-iam-policy-best-practices)
+ [Menggunakan CodeCommit konsol](#security_iam_id-based-policy-examples-console)
+ [Izinkan para pengguna untuk melihat izin mereka sendiri](#security_iam_id-based-policy-examples-view-own-permissions)
+ [Melihat CodeCommit *repositories* berdasarkan tag](#security_iam_id-based-policy-examples-view-repositories-tags)

### Praktik terbaik kebijakan
<a name="security_iam_service-with-iam-policy-best-practices"></a>

Kebijakan berbasis identitas menentukan apakah seseorang dapat membuat, mengakses, atau menghapus CodeCommit sumber daya di akun Anda. Tindakan ini membuat Akun AWS Anda dikenai biaya. Ketika Anda membuat atau mengedit kebijakan berbasis identitas, ikuti panduan dan rekomendasi ini:
+ **Mulailah dengan kebijakan AWS terkelola dan beralih ke izin hak istimewa paling sedikit — Untuk mulai memberikan izin** kepada pengguna dan beban kerja Anda, gunakan *kebijakan AWS terkelola* yang memberikan izin untuk banyak kasus penggunaan umum. Mereka tersedia di Anda Akun AWS. Kami menyarankan Anda mengurangi izin lebih lanjut dengan menentukan kebijakan yang dikelola AWS pelanggan yang khusus untuk kasus penggunaan Anda. Untuk informasi selengkapnya, lihat [Kebijakan yang dikelola AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) atau [Kebijakan yang dikelola AWS untuk fungsi tugas](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) dalam *Panduan Pengguna IAM*.
+ **Menerapkan izin dengan hak akses paling rendah** – Ketika Anda menetapkan izin dengan kebijakan IAM, hanya berikan izin yang diperlukan untuk melakukan tugas. Anda melakukannya dengan mendefinisikan tindakan yang dapat diambil pada sumber daya tertentu dalam kondisi tertentu, yang juga dikenal sebagai *izin dengan hak akses paling rendah*. Untuk informasi selengkapnya tentang cara menggunakan IAM untuk mengajukan izin, lihat [Kebijakan dan izin dalam IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) dalam *Panduan Pengguna IAM*.
+ **Gunakan kondisi dalam kebijakan IAM untuk membatasi akses lebih lanjut** – Anda dapat menambahkan suatu kondisi ke kebijakan Anda untuk membatasi akses ke tindakan dan sumber daya. Sebagai contoh, Anda dapat menulis kondisi kebijakan untuk menentukan bahwa semua permintaan harus dikirim menggunakan SSL. Anda juga dapat menggunakan ketentuan untuk memberikan akses ke tindakan layanan jika digunakan melalui yang spesifik Layanan AWS, seperti CloudFormation. Untuk informasi selengkapnya, lihat [Elemen kebijakan JSON IAM: Kondisi](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) dalam *Panduan Pengguna IAM*.
+ **Gunakan IAM Access Analyzer untuk memvalidasi kebijakan IAM Anda untuk memastikan izin yang aman dan fungsional** – IAM Access Analyzer memvalidasi kebijakan baru dan yang sudah ada sehingga kebijakan tersebut mematuhi bahasa kebijakan IAM (JSON) dan praktik terbaik IAM. IAM Access Analyzer menyediakan lebih dari 100 pemeriksaan kebijakan dan rekomendasi yang dapat ditindaklanjuti untuk membantu Anda membuat kebijakan yang aman dan fungsional. Untuk informasi selengkapnya, lihat [Validasi kebijakan dengan IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) dalam *Panduan Pengguna IAM*.
+ **Memerlukan otentikasi multi-faktor (MFA)** - Jika Anda memiliki skenario yang mengharuskan pengguna IAM atau pengguna root di Anda, Akun AWS aktifkan MFA untuk keamanan tambahan. Untuk meminta MFA ketika operasi API dipanggil, tambahkan kondisi MFA pada kebijakan Anda. Untuk informasi selengkapnya, lihat [Amankan akses API dengan MFA](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) dalam *Panduan Pengguna IAM*.

Untuk informasi selengkapnya tentang praktik terbaik dalam IAM, lihat [Praktik terbaik keamanan di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dalam *Panduan Pengguna IAM*.

### Menggunakan CodeCommit konsol
<a name="security_iam_id-based-policy-examples-console"></a>

Untuk mengakses AWS CodeCommit konsol, Anda harus memiliki set izin minimum. Izin ini harus memungkinkan Anda untuk membuat daftar dan melihat detail tentang CodeCommit sumber daya di akun Amazon Web Services Anda. Jika Anda membuat kebijakan berbasis identitas yang lebih ketat daripada izin minimum yang diperlukan, konsol tersebut tidak akan berfungsi sebagaimana mestinya untuk entitas (pengguna IAM atau peran) dengan kebijakan tersebut.

Untuk memastikan bahwa entitas tersebut masih dapat menggunakan CodeCommit konsol, lampirkan juga kebijakan AWS terkelola berikut ke entitas. Untuk informasi selengkapnya, lihat [Menambahkan Izin ke Pengguna](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) dalam *Panduan Pengguna IAM*:

Untuk informasi selengkapnya, lihat [Menggunakan kebijakan berbasis identitas (Kebijakan IAM) untuk CodeCommit](auth-and-access-control-iam-identity-based-access-control.md).

Anda tidak perlu mengizinkan izin konsol minimum untuk pengguna yang melakukan panggilan hanya ke AWS CLI atau AWS API. Sebagai alternatif, hanya izinkan akses ke tindakan yang cocok dengan operasi API yang sedang Anda coba lakukan.

### Izinkan para pengguna untuk melihat izin mereka sendiri
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

Contoh ini menunjukkan cara membuat kebijakan yang mengizinkan pengguna IAM melihat kebijakan inline dan terkelola yang dilampirkan ke identitas pengguna mereka. Kebijakan ini mencakup izin untuk menyelesaikan tindakan ini di konsol atau menggunakan API atau secara terprogram. AWS CLI AWS 

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

### Melihat CodeCommit *repositories* berdasarkan tag
<a name="security_iam_id-based-policy-examples-view-repositories-tags"></a>

Anda dapat menggunakan syarat dalam kebijakan berbasis identitas Anda untuk mengontrol akses ke sumber daya CodeCommit berdasarkan tanda. Untuk contoh kebijakan yang menunjukkan cara melakukan hal ini, lihat [Contoh 5: Tolak atau izinkan tindakan pada repositori dengan tag](customer-managed-policies.md#identity-based-policies-example-5).

Untuk informasi selengkapnya, lihat [Elemen kebijakan IAM JSON: Syarat](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) dalam *Panduan Pengguna IAM*.

## Memecahkan masalah AWS CodeCommit identitas dan akses
<a name="security_iam_troubleshoot"></a>

Gunakan informasi berikut untuk membantu Anda mendiagnosis dan memperbaiki masalah umum yang mungkin Anda temui saat bekerja dengan CodeCommit dan IAM.

**Topics**
+ [Saya tidak berwenang untuk melakukan tindakan di CodeCommit](#security_iam_troubleshoot-no-permissions)
+ [Saya tidak berwenang untuk melakukan iam: PassRole](#security_iam_troubleshoot-passrole)
+ [Saya ingin melihat access key saya](#security_iam_troubleshoot-access-keys)
+ [Saya seorang administrator dan ingin mengizinkan orang lain mengakses CodeCommit](#security_iam_troubleshoot-admin-delegate)
+ [Saya ingin mengizinkan orang di luar akun Amazon Web Services saya untuk mengakses CodeCommit sumber daya saya](#security_iam_troubleshoot-cross-account-access)

### Saya tidak berwenang untuk melakukan tindakan di CodeCommit
<a name="security_iam_troubleshoot-no-permissions"></a>

Jika Konsol Manajemen AWS memberitahu Anda bahwa Anda tidak berwenang untuk melakukan tindakan, maka Anda harus menghubungi administrator Anda untuk bantuan. Administrator Anda adalah orang yang memberi Anda kredensial masuk.

Untuk informasi selengkapnya, lihat [Izin yang diperlukan untuk menggunakan konsol CodeCommit](auth-and-access-control-iam-identity-based-access-control.md#console-permissions)

### Saya tidak berwenang untuk melakukan iam: PassRole
<a name="security_iam_troubleshoot-passrole"></a>

Jika Anda menerima kesalahan yang tidak diizinkan untuk melakukan `iam:PassRole` tindakan, kebijakan Anda harus diperbarui agar Anda dapat meneruskan peran CodeCommit.

Beberapa Layanan AWS memungkinkan Anda untuk meneruskan peran yang ada ke layanan tersebut alih-alih membuat peran layanan baru atau peran terkait layanan. Untuk melakukannya, Anda harus memiliki izin untuk meneruskan peran ke layanan.

Contoh kesalahan berikut terjadi ketika pengguna IAM bernama `marymajor` mencoba menggunakan konsol tersebut untuk melakukan tindakan di CodeCommit. Namun, tindakan tersebut memerlukan layanan untuk mendapatkan izin yang diberikan oleh peran layanan. Mary tidak memiliki izin untuk meneruskan peran tersebut pada layanan.

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

Dalam kasus ini, kebijakan Mary harus diperbarui agar dia mendapatkan izin untuk melakukan tindakan `iam:PassRole` tersebut.

Jika Anda memerlukan bantuan, hubungi AWS administrator Anda. Administrator Anda adalah orang yang memberi Anda kredensial masuk.

### Saya ingin melihat access key saya
<a name="security_iam_troubleshoot-access-keys"></a>

Setelah membuat access key pengguna IAM, Anda dapat melihat access key ID Anda setiap saat. Namun, Anda tidak dapat melihat secret access key Anda lagi. Jika Anda kehilangan secret key, Anda harus membuat pasangan access key baru. 

Access key terdiri dari dua bagian: access key ID (misalnya, `AKIAIOSFODNN7EXAMPLE`) dan secret access key (misalnya, `wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`). Seperti nama pengguna dan kata sandi, Anda harus menggunakan access key ID dan secret access key sekaligus untuk mengautentikasi permintaan Anda. Kelola access key Anda seaman nama pengguna dan kata sandi Anda.

**penting**  
Jangan memberikan access key Anda kepada pihak ke tiga, bahkan untuk membantu [menemukan ID pengguna kanonis Anda](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html#FindCanonicalId). Dengan melakukan ini, Anda mungkin memberi seseorang akses permanen ke Anda Akun AWS.

Saat Anda membuat pasangan access key, Anda diminta menyimpan access key ID dan secret access key di lokasi yang aman. secret access key hanya tersedia saat Anda membuatnya. Jika Anda kehilangan secret access key Anda, Anda harus menambahkan access key baru ke pengguna IAM Anda. Anda dapat memiliki maksimum dua access key. Jika Anda sudah memiliki dua, Anda harus menghapus satu pasangan kunci sebelum membuat pasangan baru. Untuk melihat instruksi, lihat [Mengelola access keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_CreateAccessKey) di *Panduan Pengguna IAM*.

### Saya seorang administrator dan ingin mengizinkan orang lain mengakses CodeCommit
<a name="security_iam_troubleshoot-admin-delegate"></a>

Untuk memungkinkan orang lain mengakses CodeCommit, Anda harus memberikan izin kepada orang atau aplikasi yang membutuhkan akses. Jika Anda menggunakan AWS IAM Identity Center untuk mengelola orang dan aplikasi, Anda menetapkan set izin kepada pengguna atau grup untuk menentukan tingkat akses mereka. Set izin secara otomatis membuat dan menetapkan kebijakan IAM ke peran IAM yang terkait dengan orang atau aplikasi. Untuk informasi selengkapnya, lihat [Set izin](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) di *Panduan AWS IAM Identity Center Pengguna*.

Jika Anda tidak menggunakan IAM Identity Center, Anda harus membuat entitas IAM (pengguna atau peran) untuk orang atau aplikasi yang membutuhkan akses. Anda kemudian harus melampirkan kebijakan yang memberi mereka izin yang tepat di CodeCommit. Setelah izin diberikan, berikan kredensialnya kepada pengguna atau pengembang aplikasi. Mereka akan menggunakan kredensil tersebut untuk mengakses. AWS*Untuk mempelajari selengkapnya tentang membuat pengguna, grup, kebijakan, dan izin IAM, lihat [Identitas dan Kebijakan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) [dan izin di IAM di Panduan Pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html).*

### Saya ingin mengizinkan orang di luar akun Amazon Web Services saya untuk mengakses CodeCommit sumber daya saya
<a name="security_iam_troubleshoot-cross-account-access"></a>

Lihat informasi yang lebih lengkap di [Konfigurasikan akses lintas akun ke AWS CodeCommit repositori menggunakan peran](cross-account.md).

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

Infrastruktur AWS global dibangun di sekitar Wilayah AWS dan Availability Zones. Wilayah AWS 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 serta mengoperasikan aplikasi dan basis data yang secara otomatis melakukan fail over di antara zona tanpa gangguan. Zona Ketersediaan memiliki ketersediaan dan toleransi kesalahan yang lebih baik, dan dapat diskalakan dibandingkan infrastruktur pusat data tunggal atau multi tradisional. 

Sebuah CodeCommit repositori atau template aturan CodeCommit persetujuan ada di Wilayah AWS tempat itu dibuat. Untuk informasi selengkapnya, lihat [Wilayah dan titik akhir koneksi Git untuk AWS CodeCommit](regions.md). Untuk ketahanan dalam repositori, Anda dapat mengonfigurasi klien Git Anda untuk mendorong ke dua repositori sekaligus. Untuk informasi selengkapnya, lihat [Dorong commit ke repositori Git tambahan](how-to-mirror-repo-pushes.md).

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

# Keamanan infrastruktur di AWS CodeCommit
<a name="infrastructure-security"></a>

Sebagai layanan terkelola, AWS CodeCommit dilindungi oleh prosedur keamanan jaringan AWS global yang dijelaskan dalam whitepaper [Amazon Web Services: Tinjauan Proses Keamanan](https://d0.awsstatic.com/whitepapers/Security/AWS_Security_Whitepaper.pdf).

Anda menggunakan panggilan API yang AWS dipublikasikan untuk mengakses CodeCommit melalui jaringan. Klien harus mendukung Keamanan Lapisan Pengangkutan (TLS) 1.0 atau versi yang lebih baru. Kami merekomendasikan TLS 1.2 atau versi yang lebih baru. Klien juga harus mendukung suite cipher dengan perfect forward secrecy (PFS) seperti Ephemeral Diffie-Hellman (DHE) atau Elliptic Curve Ephemeral Diffie-Hellman (ECDHE). Sebagian besar sistem-sistem modern seperti Java 7 dan versi yang lebih baru mendukung mode-mode ini.

Permintaan harus ditandatangani menggunakan access key ID dan secret access key yang terkait dengan prinsipal IAM. Atau Anda dapat menggunakan [AWS Security Token Service](https://docs.aws.amazon.com/STS/latest/APIReference/Welcome.html) (AWS STS) untuk membuat kredensial keamanan sementara untuk menandatangani permintaan.

Anda dapat memanggil operasi API ini dari lokasi jaringan mana pun, tetapi CodeCommit mendukung pembatasan berdasarkan alamat IP sumber. Anda juga dapat menggunakan CodeCommit kebijakan untuk mengontrol akses dari titik akhir Amazon Virtual Private Cloud (Amazon VPC) tertentu atau spesifik. VPCs Secara efektif, ini mengisolasi akses jaringan ke CodeCommit sumber daya tertentu hanya dari VPC tertentu dalam AWS jaringan.

Untuk informasi selengkapnya, lihat informasi berikut:
+ [Contoh 1: Izinkan pengguna untuk melakukan CodeCommit operasi dalam satu Wilayah AWS](customer-managed-policies.md#identity-based-policies-example-1)
+ [Contoh 3: Izinkan pengguna terhubung dari rentang alamat IP tertentu untuk mengakses repositori](customer-managed-policies.md#identity-based-policies-example-3)
+ [Menggunakan AWS CodeCommit dengan antarmuka VPC endpoint](codecommit-and-interface-VPC.md)