

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

# Keamanan di AWS CodePipeline
<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 *dari* 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 CodePipeline, 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, termasuk sensitivitas data Anda, persyaratan perusahaan Anda, serta undang-undang dan peraturan yang berlaku. 

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

**Topics**
+ [Perlindungan data di AWS CodePipeline](data-protection.md)
+ [Identitas dan manajemen akses untuk AWS CodePipeline](security-iam.md)
+ [Penebangan dan pemantauan di CodePipeline](incident-response.md)
+ [Validasi kepatuhan untuk AWS CodePipeline](compliance-validation.md)
+ [Ketahanan di AWS CodePipeline](disaster-recovery-resiliency.md)
+ [Keamanan infrastruktur di AWS CodePipeline](infrastructure-security.md)
+ [Praktik terbaik keamanan](security-best-practices.md)

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

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

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

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

Praktik terbaik keamanan berikut juga membahas perlindungan data di CodePipeline:
+ [Konfigurasikan enkripsi sisi server untuk artefak yang disimpan di Amazon S3 CodePipeline](S3-artifact-encryption.md)
+ [Gunakan AWS Secrets Manager untuk melacak kata sandi basis data atau kunci API pihak ketiga](parameter-store-encryption.md)

## Privasi lalu lintas antarjaringan
<a name="inter-network-traffic-privacy"></a>

 Amazon VPC adalah Layanan AWS yang dapat Anda gunakan untuk meluncurkan AWS sumber daya di jaringan virtual (*virtual private cloud*) yang Anda tentukan. CodePipelinemendukung endpoint Amazon VPC yang didukung oleh AWS PrivateLink, sebuah AWS teknologi yang memfasilitasi komunikasi pribadi antara Layanan AWS menggunakan antarmuka network elastis dengan alamat IP pribadi. Ini berarti Anda dapat terhubung langsung CodePipeline melalui titik akhir pribadi di VPC Anda, menjaga semua lalu lintas di dalam VPC dan jaringan Anda. AWS Sebelumnya, aplikasi yang berjalan di dalam VPC memerlukan akses internet untuk terhubung. CodePipeline Dengan VPC, Anda memiliki kontrol atas pengaturan jaringan Anda, seperti:
+ Rentang alamat IP,
+ Subnet,
+ Tabel rute, dan
+ Gerbang jaringan.

Untuk menghubungkan VPC Anda CodePipeline, Anda menentukan titik akhir VPC antarmuka untuk. CodePipeline Jenis titik akhir ini memungkinkan Anda untuk menghubungkan Layanan AWS VPC Anda ke. Endpoint menyediakan konektivitas yang andal dan dapat diskalakan CodePipeline tanpa memerlukan gateway internet, instance terjemahan alamat jaringan (NAT), atau koneksi VPN. Untuk informasi tentang pengaturan VPC, lihat Panduan Pengguna [VPC](https://docs.aws.amazon.com/vpc/latest/userguide/).

## Enkripsi saat diam
<a name="encryption-at-rest"></a>

Data dalam CodePipeline dienkripsi saat istirahat menggunakan. AWS KMS keys Artefak kode disimpan dalam bucket S3 milik pelanggan dan dienkripsi dengan kunci atau yang dikelola pelanggan. Kunci yang dikelola AWS Untuk informasi selengkapnya, lihat [Konfigurasikan enkripsi sisi server untuk artefak yang disimpan di Amazon S3 CodePipeline](S3-artifact-encryption.md).

## Enkripsi saat bergerak
<a name="encryption-in-transit"></a>

Semua service-to-service komunikasi dienkripsi dalam perjalanan menggunakan SSL/TLS. 

## Pengelolaan kunci enkripsi
<a name="key-management"></a>

Jika Anda memilih opsi default untuk mengenkripsi artefak kode, CodePipeline gunakan file. Kunci yang dikelola AWS Anda tidak dapat mengubah atau menghapus ini Kunci yang dikelola AWS. Jika Anda menggunakan kunci yang dikelola pelanggan AWS KMS untuk mengenkripsi atau mendekripsi artefak di bucket S3, Anda dapat mengubah atau memutar kunci yang dikelola pelanggan ini seperlunya.

**penting**  
CodePipeline hanya mendukung tombol KMS simetris. Jangan gunakan kunci KMS asimetris untuk mengenkripsi data di bucket S3 Anda.

**Topics**

# Konfigurasikan enkripsi sisi server untuk artefak yang disimpan di Amazon S3 CodePipeline
<a name="S3-artifact-encryption"></a>

Ada dua cara untuk mengonfigurasi enkripsi sisi server untuk artefak Amazon S3:
+ CodePipeline membuat bucket artefak S3 dan default Kunci yang dikelola AWS saat Anda membuat pipeline menggunakan wizard Create Pipeline. Kunci yang dikelola AWS Ini dienkripsi bersama dengan data objek dan dikelola oleh. AWS
+ Anda dapat membuat dan mengelola kunci yang dikelola pelanggan Anda sendiri.

**penting**  
CodePipeline hanya mendukung tombol KMS simetris. Jangan gunakan kunci KMS asimetris untuk mengenkripsi data di bucket S3 Anda.

Jika Anda menggunakan tombol S3 default, Anda tidak dapat mengubah atau menghapus ini Kunci yang dikelola AWS. Jika Anda menggunakan kunci yang dikelola pelanggan AWS KMS untuk mengenkripsi atau mendekripsi artefak di bucket S3, Anda dapat mengubah atau memutar kunci yang dikelola pelanggan ini seperlunya.

Amazon S3 mendukung kebijakan bucket yang dapat Anda gunakan jika Anda memerlukan enkripsi sisi server untuk semua objek yang disimpan di bucket. Misalnya, kebijakan bucket berikut menolak izin mengunggah objek (`s3:PutObject`) kepada semua orang jika permintaan tidak mencakup header `x-amz-server-side-encryption` yang meminta enkripsi sisi server dengan SSE-KMS.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "SSEAndSSLPolicy",
    "Statement": [
        {
            "Sid": "DenyUnEncryptedObjectUploads",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::codepipeline-us-west-2-89050EXAMPLE/*",
            "Condition": {
                "StringNotEquals": {
                    "s3:x-amz-server-side-encryption": "aws:kms"
                }
            }
        },
        {
            "Sid": "DenyInsecureConnections",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::codepipeline-us-west-2-89050EXAMPLE/*",
            "Condition": {
                "Bool": {
                    "aws:SecureTransport": "false"
                }
            }
        }
    ]
}
```

------

Untuk informasi selengkapnya tentang enkripsi sisi server dan AWS KMS, lihat [Melindungi Data Menggunakan Enkripsi Sisi Server dan Melindungi data menggunakan enkripsi sisi server](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html) dengan kunci [KMS yang disimpan di (SSE-KMS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)). AWS Key Management Service 

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

**Topics**
+ [Lihat Anda Kunci yang dikelola AWS](#S3-view-default-keys)
+ [Konfigurasikan enkripsi sisi server untuk bucket S3 menggunakan atau CloudFormation AWS CLI](#S3-rotate-customer-key)

## Lihat Anda Kunci yang dikelola AWS
<a name="S3-view-default-keys"></a>

Saat Anda menggunakan wizard **Create Pipeline** untuk membuat pipeline pertama, bucket S3 akan dibuat untuk Anda di Wilayah yang sama dengan pipeline yang Anda buat. Ember digunakan untuk menyimpan artefak pipa. Saat pipa berjalan, artefak dimasukkan ke dalam dan diambil dari ember S3. Secara default, CodePipeline menggunakan enkripsi sisi server dengan AWS KMS menggunakan untuk Amazon Kunci yang dikelola AWS S3 (kuncinya). `aws/s3` Kunci yang dikelola AWS Ini dibuat dan disimpan di AWS akun Anda. Saat artefak diambil dari bucket S3, CodePipeline gunakan proses SSE-KMS yang sama untuk mendekripsi artefak.

**Untuk melihat informasi tentang Anda Kunci yang dikelola AWS**

1. Masuk ke Konsol Manajemen AWS dan buka AWS KMS konsol.

1. Jika halaman selamat datang muncul, pilih **Mulai sekarang**.

1. Di panel navigasi layanan, pilih **tombol AWS terkelola**. 

1. Pilih Wilayah untuk pipeline Anda. Misalnya, jika pipa dibuat di`us-east-2`, pastikan filter disetel ke US East (Ohio).

   Untuk informasi selengkapnya tentang Wilayah dan titik akhir yang tersedia CodePipeline, lihat [AWS CodePipeline titik akhir dan](https://docs.aws.amazon.com/general/latest/gr/codepipeline.html) kuota.

1. Dalam daftar, pilih kunci dengan alias yang digunakan untuk pipeline Anda (secara default, **aws/s3**). Informasi dasar tentang kunci ditampilkan.



## Konfigurasikan enkripsi sisi server untuk bucket S3 menggunakan atau CloudFormation AWS CLI
<a name="S3-rotate-customer-key"></a>

Bila Anda menggunakan CloudFormation atau AWS CLI untuk membuat pipeline, Anda harus mengkonfigurasi enkripsi sisi server secara manual. Gunakan contoh kebijakan bucket di atas, lalu buat kunci terkelola pelanggan Anda sendiri. Anda juga dapat menggunakan kunci Anda sendiri alih-alih tombol Kunci yang dikelola AWS. Beberapa alasan untuk memilih kunci Anda sendiri meliputi:
+ Anda ingin memutar kunci pada jadwal untuk memenuhi persyaratan bisnis atau keamanan untuk organisasi Anda.
+ Anda ingin membuat pipeline yang menggunakan sumber daya yang terkait dengan AWS akun lain. Ini membutuhkan penggunaan kunci yang dikelola pelanggan. Untuk informasi selengkapnya, lihat [Buat pipeline CodePipeline yang menggunakan sumber daya dari AWS akun lain](pipelines-create-cross-account.md). 

Praktik terbaik kriptografi mencegah penggunaan ulang kunci enkripsi secara ekstensif. Sebagai praktik terbaik, putar kunci Anda secara teratur. Untuk membuat materi kriptografi baru untuk AWS KMS kunci Anda, Anda dapat membuat kunci yang dikelola pelanggan, dan kemudian mengubah aplikasi atau alias Anda untuk menggunakan kunci yang dikelola pelanggan baru. Atau, Anda dapat mengaktifkan rotasi kunci otomatis untuk kunci terkelola pelanggan yang ada. 

Untuk memutar kunci terkelola pelanggan Anda, lihat [Memutar kunci](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html). 

**penting**  
CodePipeline hanya mendukung tombol KMS simetris. Jangan gunakan kunci KMS asimetris untuk mengenkripsi data di bucket S3 Anda.

# Gunakan AWS Secrets Manager untuk melacak kata sandi basis data atau kunci API pihak ketiga
<a name="parameter-store-encryption"></a>

Sebaiknya gunakan AWS Secrets Manager untuk memutar, mengelola, dan mengambil kredenal database, kunci API, dan **rahasia** lainnya sepanjang siklus hidupnya. Secrets Manager memungkinkan Anda mengganti kredensi hardcode dalam kode Anda (termasuk kata sandi) dengan panggilan API ke Secrets Manager untuk mengambil rahasia secara terprogram. Untuk informasi selengkapnya, lihat [Apa itu AWS Secrets Manager?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) di *Panduan Pengguna AWS Secrets Manager*.

Untuk pipeline di mana Anda meneruskan parameter yang merupakan rahasia (seperti OAuth kredensil) dalam CloudFormation template, Anda harus menyertakan referensi dinamis dalam template Anda yang mengakses rahasia yang telah Anda simpan di Secrets Manager. Untuk pola ID referensi dan contoh, lihat [Secrets Manager Secrets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager) di *Panduan AWS CloudFormation Pengguna*. Untuk contoh yang menggunakan referensi dinamis dalam cuplikan templat untuk GitHub webhook dalam pipeline, lihat Konfigurasi Sumber Daya [Webhook](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-webhook.html#aws-resource-codepipeline-webhook--examples).



## Lihat juga
<a name="related-resources-managing-secrets"></a>

Sumber daya terkait berikut dapat membantu Anda saat Anda bekerja dengan mengelola rahasia.
+ Secrets Manager dapat memutar kredensyal database secara otomatis, seperti untuk rotasi rahasia Amazon RDS. Untuk informasi selengkapnya, lihat [Memutar AWS Rahasia Secrets Manager Anda](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html) di *Panduan Pengguna AWS Secrets Manager*.
+ Untuk melihat petunjuk untuk menambahkan referensi dinamis Secrets Manager ke CloudFormation template Anda, lihat[https://aws.amazon.com/blogs/security/how-to-create-and-retrieve-secrets-managed-in-aws-secrets-manager-using-aws-cloudformation-template/](https://aws.amazon.com/blogs/security/how-to-create-and-retrieve-secrets-managed-in-aws-secrets-manager-using-aws-cloudformation-template/). 

# Identitas dan manajemen akses untuk AWS CodePipeline
<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. CodePipeline 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)
+ [Bagaimana AWS CodePipeline bekerja dengan IAM](security_iam_service-with-iam.md)
+ [AWS CodePipeline contoh kebijakan berbasis identitas](security_iam_id-based-policy-examples.md)
+ [AWS CodePipeline contoh kebijakan berbasis sumber daya](security_iam_resource-based-policy-examples.md)
+ [Memecahkan masalah AWS CodePipeline identitas dan akses](security_iam_troubleshoot.md)
+ [referensi izin](permissions-reference.md)
+ [Kelola peran CodePipeline layanan](how-to-custom-role.md)

## 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 CodePipeline identitas dan akses](security_iam_troubleshoot.md))
+ **Administrator layanan** - tentukan akses pengguna dan mengirimkan permintaan izin (lihat [Bagaimana AWS CodePipeline bekerja dengan IAM](security_iam_service-with-iam.md))
+ **Administrator IAM** - tulis kebijakan untuk mengelola akses (lihat [AWS CodePipeline contoh kebijakan berbasis identitas](security_iam_id-based-policy-examples.md))

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

### Pengguna root akun AWS
<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.

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

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

Sebelum Anda menggunakan IAM untuk mengelola akses CodePipeline, Anda harus memahami fitur IAM apa yang tersedia untuk digunakan. CodePipeline Untuk mendapatkan tampilan tingkat tinggi tentang bagaimana CodePipeline dan lainnya Layanan AWS yang bekerja dengan IAM, lihat [Layanan AWS 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**
+ [CodePipeline kebijakan berbasis identitas](#security_iam_service-with-iam-id-based-policies)
+ [CodePipeline kebijakan berbasis sumber daya](#security_iam_service-with-iam-resource-based-policies)
+ [Otorisasi berdasarkan tag CodePipeline](#security_iam_service-with-iam-tags)
+ [CodePipeline Peran IAM](#security_iam_service-with-iam-roles)

## CodePipeline kebijakan berbasis identitas
<a name="security_iam_service-with-iam-id-based-policies"></a>

Dengan kebijakan berbasis identitas IAM, Anda dapat menentukan tindakan dan sumber daya yang diizinkan atau ditolak, serta kondisi di mana tindakan tersebut diperbolehkan atau ditolak. CodePipeline mendukung tindakan tertentu, sumber daya, dan kunci syarat. Untuk mempelajari semua elemen yang Anda gunakan dalam kebijakan JSON, lihat [Referensi elemen kebijakan IAM JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) dalam *Panduan Pengguna IAM*.

### Tindakan
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

Administrator dapat menggunakan kebijakan AWS JSON untuk menentukan siapa yang memiliki akses ke apa. Yaitu, di mana **utama** dapat melakukan **tindakan** pada **sumber daya**, dan dalam **kondisi apa**.

Elemen `Action` dari kebijakan JSON menjelaskan tindakan yang dapat Anda gunakan untuk mengizinkan atau menolak akses dalam sebuah kebijakan. Sertakan tindakan dalam kebijakan untuk memberikan izin untuk melakukan operasi terkait.

Tindakan kebijakan CodePipeline menggunakan awalan berikut sebelum tindakan:`codepipeline:`. 

Misalnya, untuk memberikan izin kepada seseorang untuk melihat pipeline yang ada di akun, Anda menyertakan `codepipeline:GetPipeline` tindakan tersebut dalam kebijakan mereka. Pernyataan kebijakan harus mencakup salah satu `Action` atau `NotAction` elemen. CodePipeline mendefinisikan serangkaian tindakannya sendiri yang menggambarkan tugas yang dapat Anda lakukan dengan layanan ini.

Untuk menetapkan beberapa tindakan dalam satu pernyataan, pisahkan dengan koma seperti berikut:

```
"Action": [
      "codepipeline:action1",
      "codepipeline:action2"
```

Anda dapat menentukan beberapa tindakan menggunakan wildcard (\$1). Sebagai contoh, untuk menentukan semua tindakan yang dimulai dengan kata `Get`, sertakan tindakan berikut:

```
"Action": "codepipeline:Get*"
```



Untuk daftar tindakan, lihat CodePipeline [Tindakan yang Ditentukan oleh AWS CodePipeline](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awscodepipeline.html#awscodepipeline-actions-as-permissions) dalam *Panduan Pengguna IAM*.

### Sumber daya
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

Administrator dapat menggunakan kebijakan AWS JSON untuk menentukan siapa yang memiliki akses ke apa. Yaitu, di mana **utama** dapat melakukan **tindakan** pada **sumber daya**, dan dalam **kondisi apa**.

Elemen kebijakan JSON `Resource` menentukan objek yang menjadi target penerapan tindakan. Praktik terbaiknya, tentukan sumber daya menggunakan [Amazon Resource Name (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html). Untuk tindakan yang tidak mendukung izin di tingkat sumber daya, gunakan wildcard (\$1) untuk menunjukkan bahwa pernyataan tersebut berlaku untuk semua sumber daya.

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



#### sumber daya dan operasi
<a name="ACP_ARN_Format"></a>

Di, sumber daya utama adalah pipa. Dalam kebijakan, Anda menggunakan Nama Sumber Daya Amazon (ARN) untuk mengidentifikasi sumber daya yang diterapkan kebijakan tersebut. mendukung sumber daya lain yang dapat digunakan dengan sumber daya utama, seperti tahapan, tindakan, dan tindakan kustom. Ini dirujuk sebagai sub-sumber daya. Sumber daya dan subsumber daya ini memiliki Nama Sumber Daya Amazon (ARNs) unik yang terkait dengannya. Untuk informasi selengkapnya ARNs, lihat [Nama Sumber Daya Amazon (ARN) dan Layanan AWS ruang nama](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) di. *Referensi Umum Amazon Web Services* Untuk mendapatkan ARN pipeline yang terkait dengan pipeline Anda, Anda dapat menemukan ARN pipeline di bawah **Pengaturan** di konsol. Untuk informasi selengkapnya, lihat [Lihat ARN pipeline dan peran layanan ARN (konsol)](pipelines-settings-console.md).


| Jenis Sumber Daya | Format ARN | 
| --- | --- | 
|  Pipa  |  arn:aws:codepipeline::: *region* *account* *pipeline-name*  | 
| Stage |  arn:aws:codepipeline:::/*region**account**pipeline-name**stage-name*  | 
| Tindakan |  arn:aws:codepipeline::://*region**account**pipeline-name**stage-name**action-name*  | 
| Tindakan kustom | arn:aws:codepipeline: ::actiontype:///regionaccountownercategoryproviderversion | 
|  Semua sumber daya   |  arn:aws:codepipeline: \$1  | 
|  Semua sumber daya yang dimiliki oleh akun yang ditentukan di Wilayah yang ditentukan  |  arn:aws:codepipeline::: \$1 *region* *account*  | 

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

Di, ada panggilan API yang mendukung izin tingkat sumber daya. Izin tingkat sumber daya menunjukkan apakah panggilan API dapat menentukan ARN sumber daya, atau apakah panggilan API hanya dapat menentukan semua sumber daya menggunakan wildcard. Lihat penjelasan [referensi izin](permissions-reference.md) mendetail tentang izin tingkat sumber daya dan daftar panggilan CodePipeline API yang mendukung izin tingkat sumber daya.

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

```
"Resource": "arn:aws:codepipeline:us-east-2:111222333444:myPipeline"
```

Anda juga dapat menentukan semua pipeline milik akun tertentu dengan menggunakan karakter wildcard (\$1) sebagai berikut:

```
"Resource": "arn:aws:codepipeline:us-east-2:111222333444:*"
```

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

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

**catatan**  
Saat Anda membuat kebijakan IAM, ikuti saran keamanan standar untuk memberikan hak istimewa paling sedikit—yaitu, hanya memberikan izin yang diperlukan untuk melakukan tugas. Jika panggilan API mendukung ARNs, maka panggilan tersebut mendukung izin tingkat sumber daya, dan Anda tidak perlu menggunakan karakter wildcard (\$1).

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

```
"Resource": ["arn1", "arn2"]
```

 menyediakan satu set operasi untuk bekerja dengan sumber daya. Untuk daftar operasi yang tersedia, lihat [referensi izin](permissions-reference.md).

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

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



 Semua tindakan Amazon EC2 men-support kunci syarat `aws:RequestedRegion` dan `ec2:Region`. Untuk informasi selengkapnya, lihat [Contoh: Membatasi Akses ke Wilayah Tertentu](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ExamplePolicies_EC2.html#iam-example-region). 

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

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



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

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

CodePipeline tidak mendukung kebijakan berbasis sumber daya. Namun, contoh kebijakan berbasis sumber daya untuk layanan S3 yang terkait dengan disediakan. CodePipeline 

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



Untuk melihat contoh kebijakan CodePipeline berbasis sumber daya, lihat, [AWS CodePipeline contoh kebijakan berbasis sumber daya](security_iam_resource-based-policy-examples.md)

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

Anda dapat melampirkan tag ke CodePipeline sumber daya atau meneruskan tag dalam permintaan CodePipeline. 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 `codepipeline:ResourceTag/key-name`, `aws:RequestTag/key-name`, atau `aws:TagKeys`. Untuk informasi selengkapnya tentang penandaan sumber daya CodePipeline , lihat [Penandaan pada sumber daya](tag-resources.md).

Untuk melihat contoh kebijakan berbasis identitas untuk membatasi akses ke sumber daya berdasarkan tag pada sumber daya tersebut, lihat [Menggunakan tag untuk mengontrol akses ke CodePipeline sumber daya](tag-based-access-control.md).

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

[Peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) adalah entitas di AWS akun Anda yang memiliki izin tertentu.

### Menggunakan kredensi sementara dengan CodePipeline
<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) 

CodePipeline mendukung penggunaan kredensyal sementara. 

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

CodePipeline memungkinkan layanan untuk mengambil [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.

CodePipeline mendukung peran layanan. 

# AWS CodePipeline 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 CodePipeline . 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 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*.

Untuk mempelajari cara membuat pipeline yang menggunakan sumber daya dari akun lain, dan untuk contoh kebijakan terkait, lihat[Buat pipeline CodePipeline yang menggunakan sumber daya dari AWS akun lain](pipelines-create-cross-account.md).

**Topics**
+ [Praktik terbaik kebijakan](security_iam_service-with-iam-policy-best-practices.md)
+ [Menampilkan sumber daya di konsol](security-iam-resources-console.md)
+ [Mengizinkan pengguna melihat izin mereka sendiri](security_iam_id-based-policy-examples-view-own-permissions.md)
+ [Contoh kebijakan berbasis identitas (IAM)](security-iam-id-policies-examples.md)
+ [Menggunakan tag untuk mengontrol akses ke CodePipeline sumber daya](tag-based-access-control.md)
+ [Izin yang diperlukan untuk menggunakan konsol](security-iam-permissions-console.md)
+ [Izin diperlukan untuk melihat log komputasi di konsol](security-iam-permissions-console-logs.md)
+ [AWS kebijakan terkelola untuk AWS CodePipeline](managed-policies.md)
+ [Contoh kebijakan yang dikelola pelanggan](#customer-managed-policies)

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

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

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

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

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

# Mengizinkan pengguna 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": "*"
        }
    ]
}
```

# Contoh kebijakan berbasis identitas (IAM)
<a name="security-iam-id-policies-examples"></a>

Anda dapat melampirkan kebijakan ke identitas IAM. Misalnya, Anda dapat melakukan hal berikut: 
+ **Lampirkan kebijakan izin ke pengguna atau grup di akun Anda** — Untuk memberikan izin pengguna untuk melihat saluran pipa di konsol, Anda dapat melampirkan kebijakan izin ke pengguna atau grup tempat pengguna tersebut berada.
+ **Melampirkan kebijakan izin pada peran (memberikan izin lintas akun)** – Anda dapat melampirkan kebijakan izin berbasis identitas ke peran IAM untuk memberikan izin lintas akun. Misalnya, administrator di Akun A dapat membuat peran untuk memberikan izin lintas akun ke AWS akun lain (misalnya, Akun B) atau Layanan AWS 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. Prinsip dalam kebijakan kepercayaan juga dapat menjadi Layanan AWS prinsipal jika Anda ingin memberikan Layanan AWS izin untuk mengambil peran.

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

Berikut ini menunjukkan contoh kebijakan izin yang memberikan izin untuk menonaktifkan dan mengaktifkan transisi di antara semua tahapan dalam pipeline yang disebutkan dalam: `MyFirstPipeline` `us-west-2 region`

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement" : [
    {
      "Effect" : "Allow",
      "Action" : [
        "codepipeline:EnableStageTransition",
        "codepipeline:DisableStageTransition"
      ],
      "Resource" : [
        "arn:aws:codepipeline:us-west-2:111222333444:MyFirstPipeline/*"
      ]
    }
  ]
}
```

------

Contoh berikut menunjukkan kebijakan di akun 111222333444 yang memungkinkan pengguna untuk melihat, tetapi tidak mengubah, pipeline yang dinamai di konsol. `MyFirstPipeline` Kebijakan ini didasarkan pada kebijakan yang `AWSCodePipeline_ReadOnlyAccess` dikelola, tetapi karena khusus untuk `MyFirstPipeline` pipeline, kebijakan ini tidak dapat menggunakan kebijakan terkelola secara langsung. Jika Anda tidak ingin membatasi kebijakan ke pipeline tertentu, pertimbangkan untuk menggunakan salah satu kebijakan terkelola yang dibuat dan dikelola oleh. Untuk informasi lebih lanjut, lihat [Bekerja dengan Kebijakan Terkelola](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-using.html). Anda harus melampirkan kebijakan ini ke peran IAM yang Anda buat untuk akses, misalnya, peran bernama`CrossAccountPipelineViewers`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
        "codepipeline:GetPipeline",
        "codepipeline:GetPipelineState",
        "codepipeline:GetPipelineExecution",
        "codepipeline:ListPipelineExecutions",
        "codepipeline:ListActionExecutions",
        "codepipeline:ListActionTypes",
        "codepipeline:ListPipelines",
        "codepipeline:ListTagsForResource",
        "iam:ListRoles",
        "s3:ListAllMyBuckets",
        "codecommit:ListRepositories",
        "codedeploy:ListApplications",
        "lambda:ListFunctions",
        "codestar-notifications:ListNotificationRules",
        "codestar-notifications:ListEventTypes",
        "codestar-notifications:ListTargets"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:codepipeline:us-west-2:111222333444:MyFirstPipeline"
    },
    {
      "Action": [
        "codepipeline:GetPipeline",
        "codepipeline:GetPipelineState",
        "codepipeline:GetPipelineExecution",
        "codepipeline:ListPipelineExecutions",
        "codepipeline:ListActionExecutions",
        "codepipeline:ListActionTypes",
        "codepipeline:ListPipelines",
        "codepipeline:ListTagsForResource",
        "iam:ListRoles",
        "s3:GetBucketPolicy",
        "s3:GetObject",
        "s3:ListBucket",
        "codecommit:ListBranches",
        "codedeploy:GetApplication",
        "codedeploy:GetDeploymentGroup",
        "codedeploy:ListDeploymentGroups",
        "elasticbeanstalk:DescribeApplications",
        "elasticbeanstalk:DescribeEnvironments",
        "lambda:GetFunctionConfiguration",
        "opsworks:DescribeApps",
        "opsworks:DescribeLayers",
        "opsworks:DescribeStacks"
      ],
      "Effect": "Allow",
      "Resource": "*"
    },
    {
      "Sid": "CodeStarNotificationsReadOnlyAccess",
      "Effect": "Allow",
      "Action": [
        "codestar-notifications:DescribeNotificationRule"
      ],
      "Resource": "*",
      "Condition": {
        "ArnLike": {
          "codestar-notifications:NotificationsForResource": "arn:aws:iam::*:role/Service*"
        }
      }
    }
  ]
}
```

------

Setelah Anda membuat kebijakan ini, buat peran IAM di akun 111222333444 dan lampirkan kebijakan ke peran tersebut. Dalam hubungan kepercayaan peran, Anda harus menambahkan AWS akun yang akan mengambil peran ini. Contoh berikut menunjukkan kebijakan yang memungkinkan pengguna dari *111111111111* AWS akun untuk mengambil peran yang ditentukan dalam akun 111222333444:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111111111111:root"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

------

Contoh berikut menunjukkan kebijakan yang dibuat di *111111111111* AWS akun yang memungkinkan pengguna untuk mengambil peran yang disebutkan *CrossAccountPipelineViewers* di akun 111222333444:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": "arn:aws:iam::111222333444:role/CrossAccountPipelineViewers"
        }
    ]
}
```

------

Anda dapat membuat kebijakan IAM untuk membatasi panggilan dan sumber daya yang dapat diakses oleh pengguna di akun Anda, lalu melampirkan kebijakan tersebut ke pengguna administratif Anda. Untuk informasi selengkapnya tentang cara membuat peran IAM dan untuk menjelajahi contoh pernyataan kebijakan IAM, lihat. [Contoh kebijakan yang dikelola pelanggan](security_iam_id-based-policy-examples.md#customer-managed-policies) 

# Menggunakan tag untuk mengontrol akses ke CodePipeline sumber daya
<a name="tag-based-access-control"></a>

Kondisi dalam pernyataan kebijakan IAM adalah bagian dari sintaks yang Anda gunakan untuk menentukan izin ke sumber daya yang diperlukan oleh tindakan. CodePipeline Menggunakan tanda dalam kondisi adalah salah satu cara untuk mengontrol akses ke sumber daya dan permintaan. Untuk informasi tentang menandai CodePipeline sumber daya, lihat[Penandaan pada sumber daya](tag-resources.md). Topik ini membahas kontrol akses berbasis tanda.

Saat merancang kebijakan IAM, Anda mungkin menetapkan izin terperinci dengan memberikan akses ke sumber daya tertentu. Saat jumlah sumber daya yang Anda kelola bertambah, tugas ini menjadi lebih sulit. Menandai sumber daya dan menggunakan tanda dalam kondisi pernyataan kebijakan dapat mempermudah tugas ini. Anda memberikan akses secara massal ke sumber daya dengan tag tertentu. Kemudian Anda menerapkan tag ini berulang kali ke sumber daya yang relevan, selama pembuatan atau yang lebih baru.

Tag dapat dilampirkan ke sumber daya atau diteruskan atas permintaan ke layanan yang mendukung penandaan. Di CodePipeline, sumber daya dapat memiliki tag, dan beberapa tindakan dapat menyertakan tag. Saat membuat kebijakan IAM, Anda dapat menggunakan kunci kondisi tag untuk mengontrol:
+ Manakah pengguna yang dapat melakukan tindakan pada sumber daya alur, berdasarkan tanda yang telah dimiliki.
+ Tanda apa yang dapat diteruskan dalam permintaan tindakan.
+ Apakah kunci tanda tertentu dapat digunakan dalam permintaan.

Operator ketentuan string memungkinkan Anda membangun elemen `Condition` yang membatasi akses berdasarkan perbandingan kunci ke nilai string. Anda dapat menambahkan `IfExists` ke akhir nama operator kondisi apa pun kecuali kondisi Null. Anda melakukan ini untuk mengatakan "Jika kunci kebijakan ada dalam konteks permintaan, proses kuncinya seperti yang ditentukan dalam kebijakan. Jika kuncinya tidak ada, evaluasi elemen ketentuan sebagai benar." Misalnya, Anda dapat menggunakan `StringEqualsIfExists` untuk membatasi dengan kunci kondisi yang mungkin tidak ada pada jenis sumber daya lainnya. 

Untuk sintaks dan semantik lengkap kunci kondisi tag, lihat [Mengontrol Akses](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html) Menggunakan Tag. Untuk informasi tambahan tentang kunci kondisi, lihat sumber daya berikut. Contoh CodePipeline kebijakan di bagian ini selaras dengan informasi berikut tentang kunci kondisi dan memperluasnya dengan contoh nuansa CodePipeline seperti penyarangan sumber daya.
+ [Operator kondisi string](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String)
+ [Layanan AWS yang bekerja dengan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)
+ [Sintaks SCP](https://docs.aws.amazon.com/IAM/latest/UserGuide/orgs_manage_policies_scps_syntax.html)
+ [Elemen kebijakan IAM JSON: Kondisi](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)
+ [aws: RequestTag /tag-kunci](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requesttag)
+ [Kunci kondisi untuk CodePipeline](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awscodepipeline.html#awscodepipeline-policy-keys)

Contoh berikut menunjukkan cara menentukan kondisi tag dalam kebijakan untuk CodePipeline pengguna.

**Example 1: Batasi tindakan berdasarkan tanda dalam permintaan**  
Kebijakan pengguna `AWSCodePipeline_FullAccess` terkelola memberi pengguna izin tak terbatas untuk melakukan CodePipeline tindakan apa pun pada sumber daya apa pun.  
Kebijakan berikut membatasi kekuatan ini dan menolak izin pengguna yang tidak sah untuk membuat saluran pipa di mana tag tertentu tercantum dalam permintaan. Untuk melakukan itu, ia menolak tindakan `CreatePipeline` jika permintaan menentukan tag bernama `Project` dengan salah satu nilai `ProjectA` atau `ProjectB`. (Kunci syarat `aws:RequestTag` digunakan untuk mengontrol tanda yang dapat diteruskan dalam permintaan IAM.)   
Dalam contoh berikut, maksud kebijakan adalah untuk menolak izin pengguna yang tidak sah untuk membuat pipeline dengan nilai tag yang ditentukan. Namun, membuat pipa membutuhkan akses sumber daya selain pipa itu sendiri (misalnya, tindakan dan tahapan pipa). Karena yang `'Resource'` ditentukan dalam kebijakan adalah`'*'`, kebijakan dievaluasi terhadap setiap sumber daya yang memiliki ARN dan dibuat ketika pipeline sedang dibuat. Sumber daya tambahan ini tidak memiliki kunci kondisi tag, sehingga `StringEquals` pemeriksaan gagal, dan pengguna tidak diberikan kemampuan untuk membuat pipeline apa pun. Untuk mengatasi ini, gunakan operator ketentuan `StringEqualsIfExists`. Dengan cara ini, pengujian hanya terjadi jika terdapat kunci kondisi.   
Anda dapat membaca berikut ini sebagai: “Jika sumber daya yang diperiksa memiliki kunci `"RequestTag/Project"` kondisi tag, maka izinkan tindakan hanya jika nilai kunci dimulai dengan`projectA`. Jika sumber daya yang diperiksa tidak memiliki kunci kondisi itu, jangan khawatir tentang hal tersebut.”   
Selain itu, kebijakan mencegah pengguna yang tidak sah ini merusak sumber daya dengan menggunakan kunci `aws:TagKeys` kondisi untuk tidak mengizinkan tindakan modifikasi tag menyertakan nilai tag yang sama. Administrator pelanggan harus melampirkan kebijakan IAM ini kepada pengguna administratif yang tidak sah, selain kebijakan pengguna yang dikelola.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "codepipeline:CreatePipeline",
        "codepipeline:TagResource"
      ],
      "Resource": "*",
      "Condition": {
        "StringEqualsIfExists": {
          "aws:RequestTag/Project": ["ProjectA", "ProjectB"]
        }
      }
    },
    {
      "Effect": "Deny",
      "Action": [
        "codepipeline:UntagResource"
      ],
      "Resource": "*",
      "Condition": {
        "ForAllValues:StringEquals": {
          "aws:TagKeys": ["Project"]
        }
      }
    }
  ]
}
```

**Example 2: Batasi tindakan penandaan berdasarkan tag sumber daya**  
Kebijakan pengguna `AWSCodePipeline_FullAccess` terkelola memberi pengguna izin tak terbatas untuk melakukan CodePipeline tindakan apa pun pada sumber daya apa pun.  
Kebijakan berikut membatasi kekuatan ini dan menolak izin pengguna yang tidak sah untuk melakukan tindakan pada pipeline proyek tertentu. Untuk melakukan itu, kebijakan menolak beberapa tindakan jika sumber daya memiliki tanda bernama `Project` dengan salah satu nilai `ProjectA` atau `ProjectB`. (Kunci syarat `aws:ResourceTag` digunakan untuk mengontrol akses ke sumber daya berdasarkan tanda pada sumber daya tersebut.) Administrator pelanggan harus melampirkan kebijakan IAM ini kepada pengguna IAM yang tidak sah, selain kebijakan pengguna terkelola.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "codepipeline:TagResource"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/Project": ["ProjectA", "ProjectB"]
        }
      }
    }
  ]
}
```

**Example 3: Izinkan tindakan berdasarkan tag dalam permintaan**  
Kebijakan berikut memberikan izin kepada pengguna untuk membuat pipeline pengembangan di. CodePipeline  
Untuk melakukan itu, memungkinkan tindakan `CreatePipeline` dan `TagResource` jika permintaan menentukan tag bernama `Project` dengan nilai `ProjectA`. Dengan kata lain, satu-satunya kunci tag yang dapat ditentukan adalah`Project`, dan nilainya harus`ProjectA`.  
Kunci `aws:RequestTag` kondisi digunakan untuk mengontrol tag mana yang dapat diteruskan dalam permintaan IAM. Syarat `aws:TagKeys` memastikan kunci tanda peka huruf besar dan kecil. Kebijakan ini berguna bagi pengguna atau peran yang tidak memiliki kebijakan pengguna `AWSCodePipeline_FullAccess` terkelola yang dilampirkan. Kebijakan terkelola memberi pengguna izin tak terbatas untuk melakukan CodePipeline tindakan apa pun pada sumber daya apa pun.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "codepipeline:CreatePipeline",
        "codepipeline:TagResource"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/Project": "ProjectA"
        },
        "ForAllValues:StringEquals": {
          "aws:TagKeys": ["Project"]
        }
      }
    }
  ]
}
```

**Example 4: Batasi tindakan untagging berdasarkan tag sumber daya**  
Kebijakan pengguna `AWSCodePipeline_FullAccess` terkelola memberi pengguna izin tak terbatas untuk melakukan CodePipeline tindakan apa pun pada sumber daya apa pun.  
Kebijakan berikut membatasi kekuatan ini dan menolak izin pengguna yang tidak sah untuk melakukan tindakan pada pipeline proyek tertentu. Untuk melakukan itu, kebijakan menolak beberapa tindakan jika sumber daya memiliki tanda bernama `Project` dengan salah satu nilai `ProjectA` atau `ProjectB`.   
Selain itu, kebijakan ini mencegah pengguna yang tidak sah ini merusak sumber daya dengan menggunakan kunci `aws:TagKeys` kondisi untuk tidak mengizinkan tindakan modifikasi tag menghapus tag sepenuhnya. `Project` Administrator pelanggan harus melampirkan kebijakan IAM ini ke pengguna atau peran yang tidak sah, selain kebijakan pengguna yang dikelola.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "codepipeline:UntagResource"
      ],
      "Resource": "*",
      "Condition": {
        "ForAllValues:StringEquals": {
          "aws:TagKeys": ["Project"]
        }
      }
    }
  ]
}
```

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

Untuk digunakan di konsol, Anda harus memiliki set izin minimum dari layanan berikut:
+ AWS Identity and Access Management
+ Amazon Simple Storage Service

Izin ini memungkinkan Anda menjelaskan AWS sumber daya lain untuk AWS akun Anda.

Bergantung pada layanan lain yang Anda masukkan ke dalam pipeline, Anda mungkin memerlukan izin dari satu atau beberapa hal berikut:
+ AWS CodeCommit
+ AWS CodeBuild
+ CloudFormation
+ AWS CodeDeploy
+ AWS Elastic Beanstalk
+ AWS Lambda
+ AWS OpsWorks

Jika Anda membuat kebijakan IAM yang lebih ketat daripada izin minimum yang diperlukan, konsol tidak akan berfungsi sebagaimana mestinya bagi pengguna dengan kebijakan IAM tersebut. Untuk memastikan bahwa pengguna masih dapat menggunakan konsol, lampirkan juga kebijakan yang dikelola `AWSCodePipeline_ReadOnlyAccess` kepada pengguna, sebagaimana dijelaskan dalam [AWS kebijakan terkelola untuk AWS CodePipeline](managed-policies.md).

Anda tidak perlu mengizinkan izin konsol minimum untuk pengguna yang melakukan panggilan ke AWS CLI atau API.

# Izin diperlukan untuk melihat log komputasi di konsol
<a name="security-iam-permissions-console-logs"></a>

Untuk melihat log dalam tindakan Perintah di CodePipeline konsol, peran konsol harus memiliki izin. Untuk melihat log di konsol, tambahkan `logs:GetLogEvents` izin ke peran konsol.

Dalam pernyataan kebijakan peran konsol, cakupkan izin ke tingkat pipeline seperti yang ditunjukkan pada contoh berikut.

```
{
    "Effect": "Allow",
    "Action": [
        "Action": "logs:GetLogEvents"
    ],
    "Resource": "arn:aws:logs:*:YOUR_AWS_ACCOUNT_ID:log-group:/aws/codepipeline/YOUR_PIPELINE_NAME:*"
}
```

# AWS kebijakan terkelola untuk AWS CodePipeline
<a name="managed-policies"></a>





Kebijakan AWS terkelola adalah kebijakan mandiri yang dibuat dan dikelola oleh AWS. AWS Kebijakan terkelola dirancang untuk memberikan izin bagi banyak kasus penggunaan umum sehingga Anda dapat mulai menetapkan izin kepada pengguna, grup, dan peran.

Perlu diingat bahwa kebijakan AWS terkelola mungkin tidak memberikan izin hak istimewa paling sedikit untuk kasus penggunaan spesifik Anda karena tersedia untuk digunakan semua pelanggan. AWS Kami menyarankan Anda untuk mengurangi izin lebih lanjut dengan menentukan [kebijakan yang dikelola pelanggan](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies) yang khusus untuk kasus penggunaan Anda.

Anda tidak dapat mengubah izin yang ditentukan dalam kebijakan AWS terkelola. Jika AWS memperbarui izin yang ditentukan dalam kebijakan AWS terkelola, pembaruan akan memengaruhi semua identitas utama (pengguna, grup, dan peran) yang dilampirkan kebijakan tersebut. AWS kemungkinan besar akan memperbarui kebijakan AWS terkelola saat baru Layanan AWS diluncurkan atau operasi API baru tersedia untuk layanan yang ada.

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

**penting**  
AWS mengelola kebijakan `AWSCodePipelineFullAccess` dan `AWSCodePipelineReadOnlyAccess` telah diganti. Gunakan `AWSCodePipeline_FullAccess` dan `AWSCodePipeline_ReadOnlyAccess` kebijakan.













## AWS kebijakan terkelola: `AWSCodePipeline_FullAccess`
<a name="security-iam-awsmanpol-AWSCodePipeline_FullAccess"></a>





Ini adalah kebijakan yang memberikan akses penuh ke CodePipeline. Untuk melihat dokumen kebijakan JSON di konsol IAM, lihat. [AWSCodePipeline\$1FullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSCodePipeline_FullAccess)



**Detail izin**

Kebijakan ini mencakup izin berikut.




+ `codepipeline`— Memberikan izin untuk. CodePipeline
+ `chatbot`— Memberikan izin untuk mengizinkan kepala sekolah mengelola sumber daya di Amazon Q Developer dalam aplikasi obrolan.
+ `cloudformation`— Memberikan izin untuk memungkinkan prinsipal mengelola tumpukan sumber daya di. CloudFormation
+ `cloudtrail`— Memberikan izin untuk memungkinkan prinsipal mengelola sumber daya logging di. CloudTrail
+ `codebuild`— Memberikan izin untuk memungkinkan kepala sekolah mengakses sumber daya build di. CodeBuild
+ `codecommit`— Memberikan izin untuk memungkinkan prinsipal mengakses sumber daya sumber di. CodeCommit
+ `codedeploy`— Memberikan izin untuk memungkinkan prinsipal mengakses sumber daya penerapan di. CodeDeploy
+ `codestar-notifications`— Memberikan izin untuk mengizinkan kepala sekolah mengakses sumber daya di Pemberitahuan. AWS CodeStar 
+ `ec2`— Memberikan izin untuk mengizinkan penerapan untuk mengelola penyeimbangan beban elastis di CodeCatalyst Amazon EC2.
+ `ecr`— Memberikan izin untuk memungkinkan akses ke sumber daya di Amazon ECR.
+ `elasticbeanstalk`— Memberikan izin untuk memungkinkan prinsipal mengakses sumber daya di Elastic Beanstalk.
+ `iam`— Memberikan izin untuk mengizinkan kepala sekolah mengelola peran dan kebijakan di IAM.
+ `lambda`— Memberikan izin untuk mengizinkan kepala sekolah mengelola sumber daya di Lambda.
+ `events`— Memberikan izin untuk memungkinkan kepala sekolah mengelola sumber daya di Acara. CloudWatch 
+ `opsworks`— Memberikan izin untuk memungkinkan kepala sekolah mengelola sumber daya di. AWS OpsWorks
+ `s3`— Memberikan izin untuk mengizinkan prinsipal mengelola sumber daya di Amazon S3.
+ `sns`— Memberikan izin untuk mengizinkan kepala sekolah mengelola sumber daya notifikasi di Amazon SNS.
+ `states`— Memberikan izin untuk memungkinkan kepala sekolah melihat mesin status di. AWS Step Functions Mesin negara terdiri dari kumpulan negara yang mengelola tugas dan transisi antar negara.

Untuk kebijakan, lihat [AWSCodePipeline\$1FullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSCodePipeline_FullAccess.html). 

## AWS kebijakan terkelola: `AWSCodePipeline_ReadOnlyAccess`
<a name="security-iam-awsmanpol-AWSCodePipeline_ReadOnlyAccess"></a>





Ini adalah kebijakan yang memberikan akses hanya-baca ke. CodePipeline Untuk melihat dokumen kebijakan JSON di konsol IAM, lihat. [AWSCodePipeline\$1ReadOnlyAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSCodePipeline_ReadOnlyAccess)



**Detail izin**

Kebijakan ini mencakup izin berikut.




+ `codepipeline`— Memberikan izin untuk tindakan di. CodePipeline
+ `codestar-notifications`— Memberikan izin untuk mengizinkan kepala sekolah mengakses sumber daya di Pemberitahuan. AWS CodeStar 
+ `s3`— Memberikan izin untuk mengizinkan prinsipal mengelola sumber daya di Amazon S3.
+ `sns`— Memberikan izin untuk mengizinkan kepala sekolah mengelola sumber daya notifikasi di Amazon SNS.

Untuk kebijakan, lihat [AWSCodePipeline\$1ReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSCodePipeline_ReadOnlyAccess.html).



## AWS kebijakan terkelola: `AWSCodePipelineApproverAccess`
<a name="security-iam-awsmanpol-AWSCodePipeline_Approver"></a>





Ini adalah kebijakan yang memberikan izin untuk menyetujui atau menolak tindakan persetujuan manual. Untuk melihat dokumen kebijakan JSON di konsol IAM, lihat. [AWSCodePipelineApproverAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSCodePipelineApproverAccess)



**Detail izin**

Kebijakan ini mencakup izin berikut.




+ `codepipeline`— Memberikan izin untuk tindakan di. CodePipeline

Untuk kebijakan, lihat [AWSCodePipelineApproverAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSCodePipelineApproverAccess.html).

## AWS kebijakan terkelola: `AWSCodePipelineCustomActionAccess`
<a name="security-iam-awsmanpol-AWSCodePipelineCustomActionAccess"></a>





Ini adalah kebijakan yang memberikan izin untuk membuat tindakan kustom di CodePipeline atau mengintegrasikan sumber daya Jenkins untuk tindakan build atau pengujian. Untuk melihat dokumen kebijakan JSON di konsol IAM, lihat. [AWSCodePipelineCustomActionAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSCodePipelineCustomActionAccess)



**Detail izin**

Kebijakan ini mencakup izin berikut.




+ `codepipeline`— Memberikan izin untuk tindakan di. CodePipeline

Untuk kebijakan, lihat [AWSCodePipelineCustomActionAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSCodePipelineCustomActionAccess.html).

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

CodePipeline mendukung pemberitahuan, yang dapat memberi tahu pengguna tentang perubahan penting pada saluran pipa. Kebijakan terkelola untuk CodePipeline 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 ini memberikan izin untuk CodePipeline bersama dengan layanan CodeCommit, CodeBuild CodeDeploy, dan AWS CodeStar Pemberitahuan terkait. Kebijakan ini juga memberikan izin yang Anda perlukan untuk bekerja dengan layanan lain yang terintegrasi dengan pipeline Anda, seperti Amazon S3, Elastic Beanstalk, Amazon EC2, dan. CloudTrail CloudFormation Pengguna dengan kebijakan terkelola ini diterapkan juga dapat membuat dan mengelola topik Amazon SNS untuk pemberitahuan, 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.

Kebijakan terkelola `AWSCodePipeline_FullAccess` mencakup pernyataan berikut untuk mengizinkan akses penuh ke notifikasi. 

```
    {
        "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:codepipeline:us-west-2:111222333444:MyFirstPipeline"} 
        }
    },    
    {
        "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": "SNSTopicListAccess",
        "Effect": "Allow",
        "Action": [
            "sns:ListTopics"
        ],
        "Resource": "*"
    },
    {
        "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 `AWSCodePipeline_ReadOnlyAccess` mencakup pernyataan berikut untuk mengizinkan akses penuh ke notifikasi. Pengguna dengan kebijakan ini diterapkan dapat melihat notifikasi untuk sumber daya, tetapi tidak dapat membuat, mengelola, atau berlangganan. 

```
   {
        "Sid": "CodeStarNotificationsPowerUserAccess",
        "Effect": "Allow",
        "Action": [
            "codestar-notifications:DescribeNotificationRule"
        ],
        "Resource": "*",
        "Condition" : {
            "StringLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codepipeline:us-west-2:111222333444:MyFirstPipeline"} 
        }
    },    
    {
        "Sid": "CodeStarNotificationsListAccess",
        "Effect": "Allow",
        "Action": [
            "codestar-notifications:ListNotificationRules",
            "codestar-notifications:ListEventTypes",
            "codestar-notifications:ListTargets"
        ],
        "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 CodePipeline pembaruan kebijakan AWS terkelola
<a name="security-iam-awsmanpol-updates"></a>



Lihat detail tentang pembaruan kebijakan AWS terkelola CodePipeline sejak layanan ini mulai melacak perubahan ini. Untuk peringatan otomatis tentang perubahan pada halaman ini, berlangganan umpan RSS di halaman [Riwayat CodePipeline dokumen](https://docs.aws.amazon.com/codepipeline/latest/userguide/history.html).




| Perubahan | Deskripsi | Date | 
| --- | --- | --- | 
| [AWSCodePipeline\$1FullAccess](#security-iam-awsmanpol-AWSCodePipeline_FullAccess)— Pembaruan kebijakan yang ada | CodePipeline menambahkan izin ke kebijakan ini untuk ListStacks mendukung CloudFormation. | Maret 15, 2024 | 
| [AWSCodePipeline\$1FullAccess](#security-iam-awsmanpol-AWSCodePipeline_FullAccess)— Pembaruan kebijakan yang ada | Kebijakan ini diperbarui untuk menambahkan izin untuk Pengembang Amazon Q di aplikasi obrolan. Untuk informasi selengkapnya, lihat [CodePipeline kebijakan dan pemberitahuan terkelola](#notifications-permissions). | Juni 21, 2023 | 
|  [AWSCodePipeline\$1FullAccess](#security-iam-awsmanpol-AWSCodePipeline_FullAccess)dan kebijakan [AWSCodePipeline\$1ReadOnlyAccess](#security-iam-awsmanpol-AWSCodePipeline_ReadOnlyAccess)terkelola - Pembaruan kebijakan yang ada  |  CodePipeline menambahkan izin ke kebijakan ini untuk mendukung jenis notifikasi tambahan menggunakan Pengembang Amazon Q di aplikasi obrolan`chatbot:ListMicrosoftTeamsChannelConfigurations`.   | 16 Mei 2023 | 
|  **AWSCodePipelineFullAccess**— Usang  |  Kebijakan ini telah diganti dengan `AWSCodePipeline_FullAccess`. Setelah 17 November 2022, kebijakan ini tidak dapat dilampirkan ke pengguna, grup, atau peran baru mana pun. Untuk informasi selengkapnya, lihat [AWS kebijakan terkelola untuk AWS CodePipeline](#managed-policies).  | 17 November 2022 | 
|  **AWSCodePipelineReadOnlyAccess**— Usang  |  Kebijakan ini telah diganti dengan `AWSCodePipeline_ReadOnlyAccess`. Setelah 17 November 2022, kebijakan ini tidak dapat dilampirkan ke pengguna, grup, atau peran baru mana pun. Untuk informasi selengkapnya, lihat [AWS kebijakan terkelola untuk AWS CodePipeline](#managed-policies).  | 17 November 2022 | 
|  CodePipeline mulai melacak perubahan  |  CodePipeline mulai melacak perubahan untuk kebijakan yang AWS dikelola.  | 12 Maret 2021 | 

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

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

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

**Contoh**
+ [Contoh 1: Berikan izin untuk mendapatkan status pipa](#identity-based-policies-example-1)
+ [Contoh 2: Berikan izin untuk mengaktifkan dan menonaktifkan transisi antar tahapan](#identity-based-policies-example-2)
+ [Contoh 3: Berikan izin untuk mendapatkan daftar semua jenis tindakan yang tersedia](#identity-based-policies-example-3)
+ [Contoh 4: Berikan izin untuk menyetujui atau menolak tindakan persetujuan manual](#identity-based-policies-example-4)
+ [Contoh 5: Berikan izin untuk melakukan polling untuk pekerjaan untuk tindakan kustom](#identity-based-policies-example-5)
+ [Contoh 6: Lampirkan atau edit kebijakan untuk integrasi Jenkins dengan AWS CodePipeline](#identity-based-policies-example-6)
+ [Contoh 7: Konfigurasikan akses lintas akun ke pipeline](#identity-based-policies-example-7)

### Contoh 1: Berikan izin untuk mendapatkan status pipa
<a name="identity-based-policies-example-1"></a>

Contoh berikut memberikan izin untuk mendapatkan status pipeline bernama: `MyFirstPipeline`

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "codepipeline:GetPipelineState"
            ],
            "Resource": "arn:aws:codepipeline:us-west-2:111222333444:MyFirstPipeline"
        }
    ]
}
```

------

### Contoh 2: Berikan izin untuk mengaktifkan dan menonaktifkan transisi antar tahapan
<a name="identity-based-policies-example-2"></a>

Contoh berikut memberikan izin untuk menonaktifkan dan mengaktifkan transisi antara semua tahapan dalam pipeline bernama: `MyFirstPipeline`

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "codepipeline:DisableStageTransition",
                "codepipeline:EnableStageTransition"
            ],
            "Resource": "arn:aws:codepipeline:us-west-2:111222333444:MyFirstPipeline/*"
        }
    ]
}
```

------

Untuk memungkinkan pengguna menonaktifkan dan mengaktifkan transisi untuk satu tahap dalam pipeline, Anda harus menentukan tahapannya. Misalnya, untuk memungkinkan pengguna mengaktifkan dan menonaktifkan transisi untuk tahap yang dinamai `Staging` dalam pipeline bernama`MyFirstPipeline`:

```
"Resource": "arn:aws:codepipeline:us-west-2:111222333444:MyFirstPipeline/Staging"
```

### Contoh 3: Berikan izin untuk mendapatkan daftar semua jenis tindakan yang tersedia
<a name="identity-based-policies-example-3"></a>

Contoh berikut memberikan izin untuk mendapatkan daftar semua jenis tindakan yang tersedia yang tersedia untuk pipeline di Wilayah: `us-west-2`

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "codepipeline:ListActionTypes"
            ],
            "Resource": "arn:aws:codepipeline:us-west-2:111222333444:actiontype:*"
        }
    ]
}
```

------

### Contoh 4: Berikan izin untuk menyetujui atau menolak tindakan persetujuan manual
<a name="identity-based-policies-example-4"></a>

Contoh berikut memberikan izin untuk menyetujui atau menolak tindakan persetujuan manual dalam tahapan yang dinamai dalam pipeline bernama`Staging`: `MyFirstPipeline` 

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "codepipeline:PutApprovalResult"
            ],
            "Resource": "arn:aws:codepipeline:us-west-2:111222333444:MyFirstPipeline/Staging/*"
        }
    ]
}
```

------

### Contoh 5: Berikan izin untuk melakukan polling untuk pekerjaan untuk tindakan kustom
<a name="identity-based-policies-example-5"></a>

Contoh berikut memberikan izin untuk melakukan polling pekerjaan untuk tindakan kustom bernama`TestProvider`, yang merupakan tipe `Test` tindakan dalam versi pertamanya, di semua pipeline: 

**catatan**  
Pekerja pekerjaan untuk tindakan kustom mungkin dikonfigurasi di bawah AWS akun yang berbeda atau memerlukan peran IAM tertentu agar berfungsi.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "codepipeline:PollForJobs"
            ],
            "Resource": [
                "arn:aws:codepipeline:us-west-2:111222333444:actionType:Custom/Test/TestProvider/1"
            ]
        }
    ]
}
```

------

### Contoh 6: Lampirkan atau edit kebijakan untuk integrasi Jenkins dengan AWS CodePipeline
<a name="identity-based-policies-example-6"></a>

Jika Anda mengonfigurasi pipeline untuk menggunakan Jenkins untuk membangun atau menguji, buat identitas terpisah untuk integrasi tersebut dan lampirkan kebijakan IAM yang memiliki izin minimum yang diperlukan untuk integrasi antara Jenkins dan. Kebijakan ini sama dengan kebijakan yang `AWSCodePipelineCustomActionAccess` dikelola. Contoh berikut menunjukkan kebijakan untuk integrasi Jenkins:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 

    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "codepipeline:AcknowledgeJob",
                "codepipeline:GetJobDetails",
                "codepipeline:PollForJobs",
                "codepipeline:PutJobFailureResult",
                "codepipeline:PutJobSuccessResult"
            ],
            "Resource": "*"
        }
    ]
}
```

------

### Contoh 7: Konfigurasikan akses lintas akun ke pipeline
<a name="identity-based-policies-example-7"></a>

Anda dapat mengonfigurasi akses ke saluran pipa untuk pengguna dan grup di AWS akun lain. Cara yang disarankan adalah membuat peran di akun tempat pipeline dibuat. Peran tersebut harus memungkinkan pengguna dari AWS akun lain untuk mengambil peran itu dan mengakses pipeline. Untuk informasi selengkapnya, lihat [Panduan: Akses Lintas Akun Menggunakan](https://docs.aws.amazon.com/IAM/latest/UserGuide/walkthru_cross-account-with-roles.html) Peran.

Contoh berikut menunjukkan kebijakan di akun 80398EXAMPLE yang memungkinkan pengguna untuk melihat, tetapi tidak mengubah, pipeline yang dinamai `MyFirstPipeline` di konsol. Kebijakan ini didasarkan pada kebijakan yang `AWSCodePipeline_ReadOnlyAccess` dikelola, tetapi karena khusus untuk `MyFirstPipeline` pipeline, kebijakan ini tidak dapat menggunakan kebijakan terkelola secara langsung. Jika Anda tidak ingin membatasi kebijakan ke pipeline tertentu, pertimbangkan untuk menggunakan salah satu kebijakan terkelola yang dibuat dan dikelola oleh. Untuk informasi lebih lanjut, lihat [Bekerja dengan Kebijakan Terkelola](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-using.html). Anda harus melampirkan kebijakan ini ke peran IAM yang Anda buat untuk akses, misalnya, peran bernama`CrossAccountPipelineViewers`:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 

    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "codepipeline:GetPipeline",
                "codepipeline:GetPipelineState",
                "codepipeline:ListActionTypes",
                "codepipeline:ListPipelines",
                "iam:ListRoles",
                "s3:GetBucketPolicy",
                "s3:GetObject",
                "s3:ListAllMyBuckets",
                "s3:ListBucket",
                "codedeploy:GetApplication",
                "codedeploy:GetDeploymentGroup",
                "codedeploy:ListApplications",
                "codedeploy:ListDeploymentGroups",
                "elasticbeanstalk:DescribeApplications",
                "elasticbeanstalk:DescribeEnvironments",
                "lambda:GetFunctionConfiguration",
                "lambda:ListFunctions"
            ],
            "Resource": "arn:aws:codepipeline:us-east-2:111122223333:MyFirstPipeline"
        }
    ]
}
```

------

Setelah Anda membuat kebijakan ini, buat peran IAM di akun 80398EXAMPLE dan lampirkan kebijakan ke peran tersebut. Dalam hubungan kepercayaan peran, Anda harus menambahkan AWS akun yang mengasumsikan peran ini.

Contoh berikut menunjukkan kebijakan yang dibuat di *111111111111* AWS akun yang memungkinkan pengguna untuk mengambil peran yang disebutkan `CrossAccountPipelineViewers` di akun 80398EXAMPLE:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": "arn:aws:iam::111122223333:role/CrossAccountPipelineViewers"
        }
    ]
}
```

------

# AWS CodePipeline contoh kebijakan berbasis sumber daya
<a name="security_iam_resource-based-policy-examples"></a>

**Topics**

Layanan lain, seperti Amazon S3, juga mendukung kebijakan izin berbasis sumber daya. Misalnya, Anda dapat melampirkan kebijakan ke bucket S3 untuk mengelola izin akses ke bucket tersebut. Meskipun CodePipeline tidak mendukung kebijakan berbasis sumber daya, ia menyimpan artefak untuk digunakan dalam saluran pipa di bucket S3 berversi. 

**Example Untuk membuat kebijakan untuk bucket S3 untuk digunakan sebagai penyimpanan artefak CodePipeline**  
Anda dapat menggunakan bucket S3 berversi apa pun sebagai penyimpanan artefak. CodePipeline Jika Anda menggunakan wizard **Create Pipeline** untuk membuat pipeline pertama Anda, bucket S3 ini dibuat untuk memastikan bahwa semua objek yang diunggah ke penyimpanan artefak dienkripsi dan koneksi ke bucket aman. Jika Anda membuat bucket S3 sendiri, sebagai praktik terbaik, pertimbangkan untuk menambahkan kebijakan berikut atau elemennya ke bucket. Dalam kebijakan ini, ARN untuk bucket S3 adalah. `codepipeline-us-east-2-1234567890` Ganti ARN ini dengan ARN untuk bucket S3 Anda:    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "SSEAndSSLPolicy",
    "Statement": [
        {
            "Sid": "DenyUnEncryptedObjectUploads",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Condition": {
                "StringNotEquals": {
                    "s3:x-amz-server-side-encryption": "aws:kms"
                }
            }
        },
        {
            "Sid": "DenyInsecureConnections",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Condition": {
                "Bool": {
                    "aws:SecureTransport": false
                }
            }
        }
    ]
}
```

# Memecahkan masalah AWS CodePipeline 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 CodePipeline dan IAM.

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

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

Jika Konsol Manajemen AWS memberitahu Anda bahwa Anda tidak berwenang untuk melakukan suatu tindakan, Anda harus menghubungi administrator Anda untuk bantuan. Administrator Anda adalah orang yang memberikan nama pengguna dan kata sandi Anda.

Contoh kesalahan berikut terjadi ketika pengguna `mateojackson` IAM mencoba menggunakan konsol untuk melihat detail tentang pipeline, tetapi tidak memiliki `codepipeline:GetPipeline` izin.

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: codepipeline:GetPipeline on resource: my-pipeline
```

Dalam hal ini, Mateo meminta administratornya untuk memperbarui kebijakannya untuk mengizinkan dia mengakses sumber daya `my-pipeline` menggunakan tindakan `codepipeline:GetPipeline`.

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

Jika Anda menerima kesalahan bahwa Anda tidak berwenang untuk melakukan `iam:PassRole` tindakan, Anda harus menghubungi administrator Anda untuk bantuan. Administrator Anda adalah orang yang memberikan nama pengguna dan kata sandi Anda. Minta orang tersebut untuk memperbarui kebijakan Anda agar Anda dapat memberikan peran ke CodePipeline.

Beberapa Layanan AWS memungkinkan Anda untuk meneruskan peran yang ada ke layanan itu, 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 CodePipeline. Namun, tindakan ini mengharuskan layanan memiliki izin yang diberikan oleh peran layanan. Mary tidak memiliki izin untuk meneruskan peran tersebut ke layanan.

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

Dalam kasus ini, Mary meminta administrator untuk memperbarui kebijakannya agar dia dapat melakukan tindakan `iam:PassRole`.

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

Untuk memungkinkan orang lain mengakses CodePipeline, 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 CodePipeline. Setelah izin diberikan, berikan kredensialnya kepada pengguna atau pengembang aplikasi. Mereka akan menggunakan kredensyal 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 AWS akun saya untuk mengakses CodePipeline sumber daya saya
<a name="security_iam_troubleshoot-cross-account-access"></a>

Anda dapat membuat peran yang dapat digunakan pengguna di akun lain atau orang-orang di luar organisasi Anda untuk mengakses sumber daya Anda. Anda dapat menentukan siapa saja yang dipercaya untuk mengambil peran tersebut. Untuk layanan yang mendukung kebijakan berbasis sumber daya atau daftar kontrol akses (ACLs), Anda dapat menggunakan kebijakan tersebut untuk memberi orang akses ke sumber daya Anda.

Untuk mempelajari selengkapnya, periksa referensi berikut:
+ Untuk mempelajari apakah CodePipeline mendukung fitur-fitur ini, lihat[Bagaimana AWS CodePipeline bekerja dengan IAM](security_iam_service-with-iam.md).
+ Untuk mempelajari cara menyediakan akses ke sumber daya Anda di seluruh sumber daya Akun AWS yang Anda miliki, lihat [Menyediakan akses ke pengguna IAM di pengguna lain Akun AWS yang Anda miliki](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html) di *Panduan Pengguna IAM*.
+ Untuk mempelajari cara menyediakan akses ke sumber daya Anda kepada pihak ketiga Akun AWS, lihat [Menyediakan akses yang Akun AWS dimiliki oleh pihak ketiga](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html) dalam *Panduan Pengguna IAM*.
+ Untuk mempelajari cara memberikan akses melalui federasi identitas, lihat [Menyediakan akses ke pengguna terautentikasi eksternal (federasi identitas)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html) dalam *Panduan Pengguna IAM*.
+ *Untuk mempelajari perbedaan antara menggunakan peran dan kebijakan berbasis sumber daya untuk akses lintas akun, lihat [Akses sumber daya lintas akun di IAM di Panduan Pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html).*

# referensi izin
<a name="permissions-reference"></a>

Gunakan tabel berikut sebagai referensi saat menyiapkan kontrol akses dan menulis kebijakan izin yang dapat dilampirkan ke identitas IAM (kebijakan berbasis identitas). Tabel berikut mencantumkan setiap operasi API dan tindakan terkait yang dapat Anda berikan izin untuk melakukan tindakan tersebut. Untuk operasi yang mendukung *izin tingkat sumber daya*, tabel mencantumkan AWS sumber daya yang dapat Anda berikan izin. Anda menentukan tindakan di bidang `Action` kebijakan.

*Izin tingkat sumber daya adalah izin* yang memungkinkan Anda menentukan sumber daya pengguna mana yang diizinkan untuk melakukan tindakan. AWS CodePipeline memberikan dukungan sebagian untuk izin tingkat sumber daya. Ini berarti bahwa untuk beberapa panggilan AWS CodePipeline API, Anda dapat mengontrol kapan pengguna diizinkan untuk menggunakan tindakan tersebut berdasarkan kondisi yang harus dipenuhi, atau sumber daya mana yang diizinkan untuk digunakan pengguna. Misalnya, Anda dapat memberikan izin kepada pengguna untuk mencantumkan informasi eksekusi pipeline, tetapi hanya untuk pipeline atau pipeline tertentu.

**catatan**  
Kolom **Resources** mencantumkan sumber daya yang diperlukan untuk panggilan API yang mendukung izin tingkat sumber daya. Untuk panggilan API yang tidak mendukung izin tingkat sumber daya, Anda dapat memberikan izin kepada pengguna untuk menggunakannya, tetapi Anda harus menentukan wildcard (\$1) untuk elemen sumber daya pernyataan kebijakan Anda.




**Operasi API dan izin yang diperlukan untuk tindakan**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/permissions-reference.html)

# Kelola peran CodePipeline layanan
<a name="how-to-custom-role"></a>

Peran layanan dikonfigurasi dengan satu atau beberapa kebijakan yang mengontrol akses ke AWS sumber daya yang digunakan oleh pipeline. Anda mungkin ingin melampirkan kebijakan lainnya ke peran ini, mengedit kebijakan yang dilampirkan pada peran, atau mengonfigurasi kebijakan untuk peran layanan lainnya AWS. Anda mungkin juga ingin melampirkan kebijakan ke peran saat mengonfigurasi akses lintas akun ke pipeline Anda.

**penting**  
Memodifikasi pernyataan kebijakan atau melampirkan kebijakan lain ke peran tersebut dapat mencegah jaringan pipa Anda berfungsi. Pastikan Anda memahami implikasinya sebelum memodifikasi peran layanan dengan cara apa pun. Pastikan Anda menguji pipeline Anda setelah Anda membuat perubahan apa pun pada peran layanan.

**catatan**  
Di konsol, peran layanan yang dibuat sebelum September 2018 dibuat dengan nama`oneClick_AWS-CodePipeline-Service_ID-Number`.  
Peran layanan yang dibuat setelah September 2018 menggunakan format nama peran layanan`AWSCodePipelineServiceRole-Region-Pipeline_Name`. Misalnya, untuk pipeline bernama `MyFirstPipeline` in`eu-west-2`, konsol menamai peran dan kebijakan tersebut`AWSCodePipelineServiceRole-eu-west-2-MyFirstPipeline`.

## CodePipeline kebijakan peran layanan
<a name="how-to-custom-role-policy"></a>

Pernyataan kebijakan peran CodePipeline layanan berisi izin minimum untuk mengelola saluran pipa. Anda dapat mengedit pernyataan peran layanan untuk menghapus atau menambahkan akses ke sumber daya yang tidak Anda gunakan. Lihat referensi tindakan yang sesuai untuk CodePipeline penggunaan izin minimum yang diperlukan untuk setiap tindakan.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowS3BucketAccess",
      "Effect": "Allow",
      "Action": [
        "s3:GetBucketVersioning",
        "s3:GetBucketAcl",
        "s3:GetBucketLocation"
      ],
      "Resource": [
        "arn:aws:s3:::[[pipeArtifactBucketNames]]"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceAccount": "{{accountId}}"
        }
      }
    },
    {
      "Sid": "AllowS3ObjectAccess",
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:PutObjectAcl",
        "s3:GetObject",
        "s3:GetObjectVersion",
        "s3:PutObjectTagging",
        "s3:GetObjectTagging",
        "s3:GetObjectVersionTagging"
      ],
      "Resource": [
        "arn:aws:s3:::[[pipeArtifactBucketNames]]/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceAccount": "{{accountId}}"
        }
      }
    }
  ]
}
```

------

**catatan**  
Dalam kebijakan tersebut, izin berikut diperlukan saat objek S3 di bucket sumber Anda memiliki tag di dalamnya:   

```
s3:PutObjectTagging
s3:GetObjectTagging
s3:GetObjectVersionTagging
```

## Hapus izin dari peran CodePipeline layanan
<a name="remove-permissions-from-policy"></a>

Anda dapat mengedit pernyataan peran layanan untuk menghapus akses ke sumber daya yang tidak Anda gunakan. Misalnya, jika tidak ada pipeline yang menyertakan Elastic Beanstalk, Anda dapat mengedit pernyataan kebijakan untuk menghapus bagian yang memberikan akses ke sumber daya Elastic Beanstalk.

Demikian pula, jika tidak ada pipeline yang disertakan CodeDeploy, Anda dapat mengedit pernyataan kebijakan untuk menghapus bagian yang memberikan akses ke CodeDeploy sumber daya:

```
    {
    "Action": [
        "codedeploy:CreateDeployment",
        "codedeploy:GetApplicationRevision",
        "codedeploy:GetDeployment",
        "codedeploy:GetDeploymentConfig",
        "codedeploy:RegisterApplicationRevision"
    ],
    "Resource": "*",
    "Effect": "Allow"
},
```

## Menambahkan izin ke peran CodePipeline layanan
<a name="how-to-update-role-new-services"></a>

Anda harus memperbarui pernyataan kebijakan peran layanan dengan izin untuk pernyataan kebijakan peran layanan default yang Layanan AWS belum disertakan dalam pernyataan kebijakan peran layanan default sebelum dapat menggunakannya di pipeline Anda.

Hal ini sangat penting jika peran layanan yang Anda gunakan untuk pipeline Anda dibuat sebelum dukungan ditambahkan ke untuk. Layanan AWS

Tabel berikut menunjukkan kapan dukungan ditambahkan untuk lainnya Layanan AWS. 


****  

| Layanan AWS | CodePipeline tanggal dukungan | 
| --- | --- | 
| CodePipeline memanggil dukungan tindakan ditambahkan. Lihat [Izin kebijakan peran layanan untuk tindakan CodePipeline pemanggilan](action-reference-PipelineInvoke.md#action-reference-PipelineInvoke-permissions-action). | Maret 14, 2025 | 
|  EC2dukungan tindakan ditambahkan. Lihat [Izin kebijakan peran layanan untuk tindakan penerapan EC2](action-reference-EC2Deploy.md#action-reference-EC2Deploy-permissions-action). | Februari 21, 2025 | 
|  EKSdukungan tindakan ditambahkan. Lihat [Izin kebijakan peran layanan](action-reference-EKS.md#action-reference-EKS-service-role). | Februari 20, 2025 | 
|  Dukungan ECRBuildAndPublish tindakan Amazon Elastic Container Registry ditambahkan. Lihat [Izin peran layanan: tindakan `ECRBuildAndPublish`](action-reference-ECRBuildAndPublish.md#edit-role-ECRBuildAndPublish). | November 22, 2024 | 
| Dukungan InspectorScan tindakan Amazon Inspector ditambahkan. Lihat [Izin peran layanan: tindakan `InspectorScan`](action-reference-InspectorScan.md#edit-role-InspectorScan). | November 22, 2024 | 
| Dukungan tindakan perintah ditambahkan. Lihat [Izin peran layanan: Tindakan perintah](action-reference-Commands.md#edit-role-Commands). | Oktober 03, 2024 | 
| CloudFormation dukungan tindakan ditambahkan. Lihat [Izin peran layanan: tindakan `CloudFormationStackSet`](action-reference-StackSets.md#edit-role-cfn-stackset) dan [Izin peran layanan: tindakan `CloudFormationStackInstances`](action-reference-StackSets.md#edit-role-cfn-stackinstances). | 30 Desember 2020 | 
| CodeCommit dukungan aksi format artefak keluaran klon penuh ditambahkan. Lihat [Izin peran layanan: tindakan CodeCommit](action-reference-CodeCommit.md#edit-role-codecommit). | 11 November 2020 | 
| AWS CodeBuild batch membangun dukungan tindakan ditambahkan. Lihat [Izin peran layanan: tindakan CodeCommit](action-reference-CodeCommit.md#edit-role-codecommit). | 30 Juli 2020 | 
| AWS AppConfig dukungan tindakan ditambahkan. Lihat [Izin peran layanan: tindakan `AppConfig`](action-reference-AppConfig.md#edit-role-appconfig). | 22 Juni 2020 | 
| AWS Step Functions dukungan tindakan ditambahkan. Lihat [Izin peran layanan: tindakan `StepFunctions`](action-reference-StepFunctions.md#edit-role-stepfunctions). | 27 Mei 2020 | 
| AWS CodeStar Dukungan tindakan koneksi ditambahkan. Lihat [Izin peran layanan: tindakan CodeConnections](action-reference-CodestarConnectionSource.md#edit-role-connections). | 18 Desember 2019 | 
| Dukungan tindakan penerapan S3 ditambahkan. Lihat [Izin peran layanan: Tindakan penerapan S3](action-reference-S3Deploy.md#edit-role-s3deploy). | 16 Januari 2019 | 
| Dukungan CodeDeployToECS tindakan tindakan ditambahkan. Lihat [Izin peran layanan: tindakan `CodeDeployToECS`](action-reference-ECSbluegreen.md#edit-role-codedeploy-ecs). | 27 November 2018 | 
| Dukungan tindakan Amazon ECR ditambahkan. Lihat [Izin peran layanan: Tindakan Amazon ECR](action-reference-ECR.md#edit-role-ecr). | 27 November 2018 | 
| Dukungan tindakan Service Catalog ditambahkan. Lihat [Izin peran layanan: Tindakan Service Catalog](action-reference-ServiceCatalog.md#edit-role-servicecatalog). | 16 Oktober 2018 | 
| AWS Device Farm dukungan tindakan ditambahkan. Lihat [Izin peran layanan: tindakan AWS Device Farm](action-reference-DeviceFarm.md#edit-role-devicefarm). | 19 Juli 2018 | 
| Dukungan tindakan Amazon ECS ditambahkan. Lihat [Izin peran layanan: Tindakan standar Amazon ECS](action-reference-ECS.md#edit-role-ecs). | 12 Desember 2017/Pembaruan untuk memilih untuk menandai otorisasi pada 21 Juli 2017 | 
| CodeCommit dukungan tindakan ditambahkan. Lihat [Izin peran layanan: tindakan CodeCommit](action-reference-CodeCommit.md#edit-role-codecommit). | 18 April 2016 | 
| AWS OpsWorks dukungan tindakan ditambahkan. Lihat [Izin peran layanan: tindakan AWS OpsWorks](action-reference-OpsWorks.md#edit-role-opsworks). | Juni 2, 2016 | 
| CloudFormation dukungan tindakan ditambahkan. Lihat [Izin peran layanan: tindakan CloudFormation](action-reference-CloudFormation.md#edit-role-cloudformation). | Selasa, 3 November 2016 | 
| AWS CodeBuild dukungan tindakan ditambahkan. Lihat [Izin peran layanan: tindakan CodeBuild](action-reference-CodeBuild.md#edit-role-codebuild). | 1 Desember 2016 | 
| Dukungan aksi Elastic Beanstalk ditambahkan. Lihat [Izin peran layanan: tindakan `ElasticBeanstalk` penerapan](action-reference-Beanstalk.md#edit-role-beanstalk). | Peluncuran layanan awal | 
| CodeDeploy dukungan tindakan ditambahkan. Lihat [Izin peran layanan: tindakan AWS CodeDeploy](action-reference-CodeDeploy.md#edit-role-codedeploy). | Peluncuran layanan awal | 
| Dukungan tindakan sumber S3 ditambahkan. Lihat [Izin peran layanan: Tindakan sumber S3](action-reference-S3.md#edit-role-s3source). | Peluncuran layanan awal | 

Ikuti langkah-langkah berikut untuk menambahkan izin untuk layanan yang didukung:

 

1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Di konsol IAM, di panel navigasi, pilih **Peran**, lalu pilih `AWS-CodePipeline-Service` peran Anda dari daftar peran.

1. Pada tab **Izin**, di Kebijakan **sebaris, di baris kebijakan** peran layanan Anda, pilih **Edit** Kebijakan.

1. Tambahkan izin yang diperlukan di kotak **Dokumen kebijakan**. 
**catatan**  
Saat Anda membuat kebijakan IAM, ikuti saran keamanan standar untuk memberikan hak istimewa paling sedikit—yaitu, hanya memberikan izin yang diperlukan untuk melakukan tugas. Beberapa panggilan API mendukung izin berbasis sumber daya dan memungkinkan akses dibatasi. Misalnya, dalam hal ini, untuk membatasi izin saat memanggil `DescribeTasks` dan`ListTasks`, Anda dapat mengganti karakter wildcard (\$1) dengan ARN sumber daya atau dengan ARN sumber daya yang berisi karakter wildcard (\$1). Untuk informasi selengkapnya tentang membuat kebijakan yang memberikan akses hak istimewa paling sedikit, lihat. [https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege)

1. Pilih **Kebijakan tinjau** untuk memastikan kebijakan tidak mengandung kesalahan. Jika kebijakan bebas dari kesalahan, pilih **Terapkan** kebijakan.

# Penebangan dan pemantauan di CodePipeline
<a name="incident-response"></a>

Anda dapat menggunakan fitur masuk AWS untuk menentukan tindakan yang telah diambil pengguna di akun Anda dan sumber daya yang digunakan. File log menunjukkan:
+ Waktu dan tanggal tindakan.
+ Alamat IP sumber untuk suatu tindakan.
+ Tindakan mana yang gagal karena izin yang tidak memadai.

Fitur logging tersedia sebagai berikut Layanan AWS:
+ AWS CloudTrail dapat digunakan untuk mencatat panggilan AWS API dan peristiwa terkait yang dibuat oleh atau atas nama Akun AWS. Untuk informasi selengkapnya, lihat [Pencatatan panggilan CodePipeline API dengan AWS CloudTrail](monitoring-cloudtrail-logs.md).
+ Amazon CloudWatch Events dapat digunakan untuk memantau AWS Cloud sumber daya Anda dan aplikasi yang Anda jalankan AWS. Anda dapat membuat peringatan di Amazon CloudWatch Events berdasarkan metrik yang Anda tentukan. Untuk informasi selengkapnya, lihat [Memantau CodePipeline peristiwa](detect-state-changes-cloudwatch-events.md).

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

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

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

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

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

Infrastruktur AWS global dibangun di sekitar AWS Wilayah dan Zona Ketersediaan. AWS Wilayah menyediakan beberapa Availability Zone yang terpisah secara fisik dan terisolasi, yang terhubung dengan latensi rendah, throughput tinggi, dan jaringan yang sangat redundan. Dengan Zona Ketersediaan, Anda dapat merancang 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. 

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

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

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

# Praktik terbaik keamanan
<a name="security-best-practices"></a>



**Topics**

CodePipeline menyediakan sejumlah fitur keamanan untuk dipertimbangkan saat Anda mengembangkan dan menerapkan kebijakan keamanan Anda sendiri. Praktik terbaik berikut adalah pedoman umum dan tidak mewakili solusi keamanan yang lengkap. Karena praktik terbaik ini mungkin tidak sesuai atau tidak memadai untuk lingkungan Anda, perlakukan itu sebagai pertimbangan yang bermanfaat, bukan sebagai resep.

Anda menggunakan enkripsi dan otentikasi untuk repositori sumber yang terhubung ke pipeline Anda. Ini adalah praktik CodePipeline terbaik untuk keamanan:
+ Jika Anda membuat konfigurasi pipeline atau tindakan yang perlu menyertakan rahasia, seperti token atau kata sandi, jangan masukkan rahasia secara langsung dalam konfigurasi tindakan, atau nilai default variabel yang ditentukan pada level pipeline atau CloudFormation konfigurasi, karena informasi akan ditampilkan di log. Gunakan Secrets Manager untuk mengatur dan menyimpan rahasia, lalu gunakan rahasia yang direferensikan dalam konfigurasi pipeline dan tindakan, seperti yang dijelaskan dalam[Gunakan AWS Secrets Manager untuk melacak kata sandi basis data atau kunci API pihak ketiga](parameter-store-encryption.md).
+ Jika Anda membuat pipeline yang menggunakan bucket sumber S3, konfigurasikan enkripsi sisi server untuk artefak yang disimpan di Amazon S3 dengan mengelola, seperti yang dijelaskan dalam. CodePipeline AWS KMS keys[Konfigurasikan enkripsi sisi server untuk artefak yang disimpan di Amazon S3 CodePipeline](S3-artifact-encryption.md)
+ Jika Anda menggunakan penyedia tindakan Jenkins, saat Anda menggunakan penyedia build Jenkins untuk tindakan build atau pengujian pipeline Anda, instal Jenkins pada instans EC2 dan konfigurasikan profil instans EC2 terpisah. Pastikan bahwa profil instance memberi Jenkins hanya AWS izin yang diperlukan untuk melakukan tugas untuk proyek Anda, seperti mengambil file dari Amazon S3. Untuk mempelajari cara membuat peran untuk profil instans Jenkins Anda, lihat langkah-langkahnya. [Buat peran IAM untuk digunakan untuk integrasi Jenkins](tutorials-four-stage-pipeline.md#tutorials-four-stage-pipeline-prerequisites-jenkins-iam-role)