

Pemberitahuan akhir dukungan: Pada 7 Oktober 2026, AWS akan mengakhiri dukungan untuk AWS Proton. Setelah 7 Oktober 2026, Anda tidak akan lagi dapat mengakses AWS Proton konsol atau AWS Proton sumber daya. Infrastruktur yang Anda gunakan akan tetap utuh. Untuk informasi selengkapnya, lihat Panduan [AWS Proton Pengakhiran Layanan dan Migrasi](https://docs.aws.amazon.com/proton/latest/userguide/proton-end-of-support.html).

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

# CodeBuild pembuatan peran penyediaan
<a name="ag-env-codebuild-provisioning-role-creation"></a>

Alat Infrastruktur sebagai Kode (IAAC) seperti CloudFormation dan Terraform memerlukan izin untuk berbagai jenis sumber daya. AWS Misalnya, jika templat IAAC mendeklarasikan bucket Amazon S3, templat tersebut memerlukan izin untuk membuat, membaca, memperbarui, dan menghapus bucket Amazon S3. Ini dianggap sebagai praktik terbaik keamanan untuk membatasi peran ke izin minimal yang diperlukan. Mengingat luasnya AWS sumber daya, sulit untuk membuat kebijakan hak istimewa terkecil untuk templat IAAC, terutama ketika sumber daya yang dikelola oleh templat tersebut dapat berubah nanti. Misalnya, dalam pengeditan terbaru Anda ke template yang dikelola oleh AWS Proton, Anda menambahkan sumber daya database RDS.

Mengkonfigurasi izin yang tepat membantu membuat penerapan IAC Anda lancar. AWS Proton CodeBuild Penyediaan mengeksekusi perintah CLI yang disediakan pelanggan sewenang-wenang dalam proyek yang terletak di akun CodeBuild pelanggan. Biasanya, perintah ini membuat dan menghapus infrastruktur menggunakan alat Infrastructure as Code (IAAC) seperti. AWS CDK Ketika AWS sumber daya menyebarkan yang templatnya menggunakan CodeBuild Provisioning, AWS akan memulai build dalam CodeBuild proyek yang dikelola oleh. AWS Sebuah peran diteruskan ke CodeBuild, yang CodeBuild mengasumsikan untuk menjalankan perintah. Peran ini, yang disebut CodeBuild Peran Penyediaan, disediakan oleh pelanggan dan berisi izin yang diperlukan untuk menyediakan infrastruktur. Ini dimaksudkan untuk diasumsikan hanya oleh CodeBuild dan bahkan tidak AWS Proton dapat mengasumsikan itu.

**Menciptakan peran**  
 CodeBuild Peran Penyediaan dapat dibuat di konsol IAM atau di. AWS CLI Untuk membuatnya di AWS CLI:

```
aws iam create-role --role-name AWSProtonCodeBuildProvisioning --assume-role-policy-document '{"Version": "2012-10-17",		 	 	 "Statement":[{"Effect":"Allow","Principal":{"Service":"codebuild.amazonaws.com"},"Action":"sts:AssumeRole"}]}'
aws iam attach-role-policy --role-name AWSProtonCodeBuildProvisioning --policy-arn arn:aws:iam::aws:policy/AWSProtonCodeBuildProvisioningBasicAccess
```

Ini juga melampirkan`AWSProtonCodeBuildProvisioningBasicAccess`, yang berisi izin minimal yang diperlukan oleh CodeBuild layanan untuk menjalankan build.

Jika Anda lebih suka menggunakan konsol, pastikan hal berikut saat Anda membuat peran:

1. Untuk entitas tepercaya, pilih AWS layanan lalu pilih CodeBuild.

1. Pada langkah Tambahkan izin, pilih `AWSProtonCodeBuildProvisioningBasicAccess` dan kebijakan lain yang ingin Anda lampirkan.

**Akses Administrator**  
Jika Anda melampirkan `AdministratorAccess` kebijakan ke CodeBuild Peran Penyediaan, itu akan menjamin bahwa template IAAC tidak akan gagal karena kurangnya izin. Ini juga berarti bahwa siapa pun yang dapat membuat Template Lingkungan atau Template Layanan dapat melakukan tindakan tingkat administrator, bahkan jika pengguna tersebut bukan administrator. AWS Proton tidak merekomendasikan penggunaan `AdministatorAccess` dengan Peran CodeBuild Penyediaan. Jika Anda memutuskan untuk menggunakan `AdministratorAccess` CodeBuild Peran Penyediaan, lakukan di lingkungan kotak pasir.

Anda dapat membuat peran dengan `AdministratorAccess` di konsol IAM atau dengan menjalankan perintah ini:

```
aws iam create-role --role-name AWSProtonCodeBuildProvisioning --assume-role-policy-document '{"Version": "2012-10-17",		 	 	 "Statement":[{"Effect":"Allow","Principal":{"Service":"codebuild.amazonaws.com"},"Action":"sts:AssumeRole"}]}'
aws iam attach-role-policy --role-name AWSProtonCodeBuildProvisioning --policy-arn arn:aws:iam::aws:policy/AdministratorAccess
```

**Membuat Peran Cakupan Minimal**

Jika Anda ingin membuat peran dengan izin minimum, ada beberapa pendekatan:
+ Terapkan dengan izin admin, lalu cakup perannya. Kami merekomendasikan menggunakan [IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html).
+ Gunakan kebijakan terkelola untuk memberikan akses ke layanan yang Anda rencanakan untuk digunakan.

**AWS CDK**  
Jika Anda menggunakan AWS CDK with AWS Proton, dan Anda telah menjalankan `cdk bootstrap` di setiap akun/wilayah lingkungan, maka sudah ada peran untuk. `cdk deploy` Dalam hal ini, lampirkan kebijakan berikut ke CodeBuild Peran Penyediaan:

```
{
    "Action": "sts:AssumeRole",
    "Resource": [
        "arn:aws:iam::account-id:role/cdk-*-deploy-role-*",
        "arn:aws:iam::account-id:role/cdk-*-file-publishing-role-*"
    ],
    "Effect": "Allow"
}
```

**VPC kustom**  
Jika Anda memutuskan untuk menjalankan CodeBuild [VPC kustom](https://docs.aws.amazon.com/proton/latest/userguide/vpc-codebuild-custom-support.html), Anda memerlukan izin berikut dalam peran Anda: CodeBuild 

```
{
    "Effect": "Allow",
    "Action": [
        "ec2:CreateNetworkInterface"
    ],
    "Resource": [
        "arn:aws:ec2:region:account-id:network-interface/*",
        "arn:aws:ec2:region:account-id:subnet/*",
        "arn:aws:ec2:region:account-id:security-group/*"
    ]
},
{
    "Effect": "Allow",
    "Action": [
        "ec2:DeleteNetworkInterface"
    ],
    "Resource": [
        "arn:aws:ec2:region:account-id:*/*"
    ]
},
{
    "Effect": "Allow",
    "Action": [
        "ec2:DescribeDhcpOptions",
        "ec2:DescribeNetworkInterfaces",
        "ec2:DescribeSubnets",
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeVpcs"
    ],
    "Resource": "*"
},
{
    "Effect": "Allow",
    "Action": [
        "ec2:CreateNetworkInterfacePermission"
    ],
    "Resource": "arn:aws:ec2:region:account-id:network-interface/*",
    "Condition": {
        "StringEquals": {
            "ec2:AuthorizedService": "codebuild.amazonaws.com"
        }
    }
}
```

Anda juga dapat menggunakan kebijakan `[AmazonEC2FullAccess](https://us-east-1.console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AmazonEC2FullAccess)` terkelola, meskipun itu termasuk izin yang mungkin tidak Anda perlukan. Untuk melampirkan kebijakan terkelola menggunakan CLI:

```
aws iam create-role --role-name AWSProtonCodeBuildProvisioning --assume-role-policy-document '{"Version": "2012-10-17",		 	 	 "Statement":[{"Effect":"Allow","Principal":{"Service":"codebuild.amazonaws.com"},"Action":"sts:AssumeRole"}]}'
aws iam attach-role-policy --role-name AWSProtonCodeBuildProvisioning --policy-arn arn:aws:iam::aws:policy/AdministratorAccess
```