

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

# 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)

## 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 pipeline](#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 pipeline
<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 untuk 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}}"
        }
    ]
}
```

------