

Pemberitahuan akhir dukungan: Pada 7 Oktober 2026, dukungan AWS akan berakhir 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 Penghentian 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 template IaAC mendeklarasikan bucket Amazon S3, template 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 sumber AWS daya, sulit untuk membuat kebijakan hak istimewa terendah untuk templat IaAC, terutama ketika sumber daya yang dikelola oleh templat tersebut dapat berubah nanti. Misalnya, dalam pengeditan terbaru ke template yang dikelola oleh AWS Proton, Anda menambahkan sumber daya database RDS.

Mengonfigurasi izin yang tepat membantu membuat penerapan iAC Anda lancar. AWS Proton CodeBuild Penyediaan mengeksekusi perintah CLI yang disediakan pelanggan sewenang-wenang dalam CodeBuild proyek yang terletak di akun pelanggan. Biasanya, perintah ini membuat dan menghapus infrastruktur menggunakan alat Infrastructure as Code (IaaC) seperti AWS CDK. Ketika AWS sumber daya menerapkan yang templatnya menggunakan Penye CodeBuild diaan, AWS akan memulai build dalam CodeBuild proyek yang dikelola oleh. AWS 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 penyediaan infrastruktur. Itu dimaksudkan untuk diasumsikan hanya oleh CodeBuild dan bahkan tidak AWS Proton dapat mengasumsikannya.

**Menciptakan peran**  
Per CodeBuild an 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 Tambah izin, pilih `AWSProtonCodeBuildProvisioningBasicAccess` dan kebijakan lain yang ingin Anda lampirkan.

**Akses Administrator**  
Jika Anda melampirkan `AdministratorAccess` kebijakan ke Peran CodeBuild Penyediaan, itu akan menjamin bahwa template IaAC apa pun 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 itu bukan administrator. AWS Proton tidak merekomendasikan penggunaan `AdministatorAccess` dengan Peran Penye CodeBuild diaan. Jika Anda memutuskan untuk menggunakan `AdministratorAccess` dengan Per CodeBuild an Penyediaan, lakukan di lingkungan sandbox.

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 Minimally-Scoped Peran**

Jika Anda ingin membuat peran dengan izin minimum, ada beberapa pendekatan:
+ Terapkan dengan izin admin, lalu uraikan perannya. Sebaiknya gunakan [ 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 dengan AWS Proton, dan Anda telah menjalankan `cdk bootstrap` di setiap lingkungan account/Region, maka sudah ada peran untuk`cdk deploy`. Dalam hal ini, lampirkan kebijakan berikut ke Peran Penye CodeBuild diaan:

```
{
    "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"
}
```

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

```
{
    "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 ter `[AmazonEC2FullAccess](https://us-east-1.console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AmazonEC2FullAccess)` kelola, 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
```