Memungkinkan CodeBuild untuk berinteraksi dengan AWS layanan lain - AWS CodeBuild

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

Memungkinkan CodeBuild untuk berinteraksi dengan AWS layanan lain

Jika Anda mengikuti langkah-langkah Memulai menggunakan konsol untuk mengakses AWS CodeBuild untuk pertama kalinya, kemungkinan besar Anda tidak memerlukan informasi dalam topik ini. Namun, saat Anda terus menggunakan CodeBuild, Anda mungkin ingin melakukan hal-hal seperti memungkinkan CodeBuild untuk berinteraksi dengan AWS layanan lain.

CodeBuild Untuk memungkinkan berinteraksi dengan AWS layanan dependen atas nama Anda, Anda memerlukan peran AWS CodeBuild layanan. Anda dapat membuat peran CodeBuild layanan dengan menggunakan CodeBuild atau AWS CodePipeline konsol. Untuk informasi, lihat:

Jika Anda tidak berencana untuk menggunakan konsol ini, bagian ini menjelaskan cara membuat peran CodeBuild layanan dengan IAM konsol atau. AWS CLI

penting

CodeBuild menggunakan peran layanan untuk semua operasi yang dilakukan atas nama Anda. Jika peran tersebut mencakup izin yang seharusnya tidak dimiliki pengguna, Anda dapat secara tidak sengaja meningkatkan izin pengguna. Pastikan peran memberikan keistimewaan paling rendah.

Peran layanan yang dijelaskan di halaman ini berisi kebijakan yang memberikan izin minimum yang diperlukan untuk digunakan. CodeBuild Anda mungkin perlu menambahkan izin tambahan, tergantung pada kasus penggunaan Anda.

Untuk membuat peran CodeBuild layanan (konsol)
  1. Buka IAM konsol di https://console.aws.amazon.com/iam/.

    Anda seharusnya sudah masuk ke konsol dengan menggunakan salah satu dari berikut ini:

    • Akun AWS root Anda. Ini tidak disarankan. Untuk informasi selengkapnya, lihat Pengguna Akun AWS root di Panduan pengguna.

    • Pengguna administrator di AWS akun Anda. Untuk informasi selengkapnya, lihat Membuat pengguna Akun AWS root dan Grup Pertama Anda di Panduan pengguna.

    • Pengguna di AWS akun Anda dengan izin untuk melakukan serangkaian tindakan minimum berikut:

      iam:AddRoleToInstanceProfile iam:AttachRolePolicy iam:CreateInstanceProfile iam:CreatePolicy iam:CreateRole iam:GetRole iam:ListAttachedRolePolicies iam:ListPolicies iam:ListRoles iam:PassRole iam:PutRolePolicy iam:UpdateAssumeRolePolicy

      Untuk informasi selengkapnya, lihat Ikhtisar IAM Kebijakan di Panduan pengguna.

  2. Di panel navigasi, pilih Kebijakan.

  3. Pilih Buat Kebijakan.

  4. Pada halaman Buat Kebijakan, pilih JSON.

  5. Untuk JSON kebijakan tersebut, masukkan yang berikut ini, lalu pilih Kebijakan Tinjau:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "CloudWatchLogsPolicy", "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "*" }, { "Sid": "CodeCommitPolicy", "Effect": "Allow", "Action": [ "codecommit:GitPull" ], "Resource": "*" }, { "Sid": "S3GetObjectPolicy", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "*" }, { "Sid": "S3PutObjectPolicy", "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": "*" }, { "Sid": "ECRPullPolicy", "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" }, { "Sid": "ECRAuthPolicy", "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken" ], "Resource": "*" }, { "Sid": "S3BucketIdentity", "Effect": "Allow", "Action": [ "s3:GetBucketAcl", "s3:GetBucketLocation" ], "Resource": "*" } ] }
    catatan

    Kebijakan ini berisi pernyataan yang memungkinkan akses ke sejumlah besar AWS sumber daya yang berpotensi besar. Untuk membatasi AWS CodeBuild akses AWS sumber daya tertentu, ubah nilai Resource array. Untuk informasi selengkapnya, lihat dokumentasi keamanan untuk AWS layanan ini.

  6. Pada halaman Kebijakan Tinjauan, untuk Nama Kebijakan, masukkan nama untuk kebijakan (misalnya,CodeBuildServiceRolePolicy), lalu pilih Buat kebijakan.

    catatan

    Jika Anda menggunakan nama yang berbeda, pastikan untuk menggunakannya selama prosedur ini.

  7. Di panel navigasi, pilih Peran.

  8. Pilih Buat peran.

  9. Pada halaman Buat peran, dengan AWS Layanan sudah dipilih, pilih CodeBuild, lalu pilih Berikutnya:Izin.

  10. Pada halaman Lampirkan kebijakan izin, pilih CodeBuildServiceRolePolicy, lalu pilih Berikutnya: Tinjau.

  11. Pada halaman Buat peran dan ulasan, untuk nama Peran, masukkan nama untuk peran (misalnya,CodeBuildServiceRole), lalu pilih Buat peran.

Untuk membuat peran CodeBuild layanan (AWS CLI)
  1. Pastikan Anda telah mengonfigurasi AWS CLI dengan kunci AWS akses dan kunci akses AWS rahasia yang sesuai dengan salah satu IAM entitas, seperti yang dijelaskan dalam prosedur sebelumnya. Untuk informasi selengkapnya, lihat Menyiapkan AWS Command Line Interface dengan Panduan AWS Command Line Interface Pengguna.

  2. Dalam direktori kosong di workstation lokal atau contoh di mana diinstal, buat dua file bernama create-role.json danput-role-policy.json. AWS CLI Jika Anda memilih nama file yang berbeda, pastikan untuk menggunakannya selama prosedur ini.

    create-role.json:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "codebuild.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    catatan

    Kami menyarankan Anda menggunakan kunci syarat aws:SourceAccount dan aws:SourceArn untuk melindungi diri Anda dari masalah wakil yang membingungkan. Misalnya, Anda dapat mengedit kebijakan kepercayaan sebelumnya dengan blok kondisi berikut. aws:SourceAccountItu adalah pemilik CodeBuild proyek dan aws:SourceArn adalah CodeBuild proyeknyaARN.

    Jika Anda ingin membatasi peran layanan Anda ke AWS akun, create-role.json mungkin terlihat mirip dengan ini:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "codebuild.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": [ "account-ID" ] } } } ] }

    Jika Anda ingin membatasi peran layanan Anda ke CodeBuild proyek tertentu, create-role.json mungkin terlihat mirip dengan ini:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "codebuild.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:codebuild:region-ID:account-ID:project/project-name" } } } ] }
    catatan

    Jika Anda tidak tahu atau belum memutuskan nama untuk CodeBuild proyek Anda dan menginginkan pembatasan kebijakan kepercayaan pada ARN pola tertentu, Anda dapat mengganti bagian tersebut ARN dengan wildcard (*). Setelah Anda membuat proyek Anda, Anda kemudian dapat memperbarui kebijakan kepercayaan.

    put-role-policy.json:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "CloudWatchLogsPolicy", "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "*" }, { "Sid": "CodeCommitPolicy", "Effect": "Allow", "Action": [ "codecommit:GitPull" ], "Resource": "*" }, { "Sid": "S3GetObjectPolicy", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "*" }, { "Sid": "S3PutObjectPolicy", "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": "*" }, { "Sid": "S3BucketIdentity", "Effect": "Allow", "Action": [ "s3:GetBucketAcl", "s3:GetBucketLocation" ], "Resource": "*" } ] }
    catatan

    Kebijakan ini berisi pernyataan yang memungkinkan akses ke sejumlah besar AWS sumber daya yang berpotensi besar. Untuk membatasi AWS CodeBuild akses AWS sumber daya tertentu, ubah nilai Resource array. Untuk informasi selengkapnya, lihat dokumentasi keamanan untuk AWS layanan ini.

  3. Beralih ke direktori tempat Anda menyimpan file sebelumnya, lalu jalankan dua perintah berikut, satu per satu, dalam urutan ini. Anda dapat menggunakan nilai yang berbeda untuk CodeBuildServiceRole danCodeBuildServiceRolePolicy, tetapi pastikan untuk menggunakannya di sini.

    aws iam create-role --role-name CodeBuildServiceRole --assume-role-policy-document file://create-role.json
    aws iam put-role-policy --role-name CodeBuildServiceRole --policy-name CodeBuildServiceRolePolicy --policy-document file://put-role-policy.json