Memungkinkan CodeBuild untuk berinteraksi dengan orang lain AWS layanan - AWS CodeBuild

View a markdown version of this page

Memungkinkan CodeBuild untuk berinteraksi dengan orang lain AWS layanan - 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 orang lain AWS layanan

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 AWS CodePipeline konsol CodeBuild atau. Untuk informasi, lihat:

Jika Anda tidak berencana untuk menggunakan konsol ini, bagian ini menjelaskan cara membuat peran CodeBuild layanan dengan konsol IAM 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 konsol IAM 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 dan Grup Akun AWS root 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 Ikh tisar Kebijakan IAM di Panduan pengguna.

  2. Di panel navigasi, pilih Kebijakan.

  3. Pilih Buat Kebijakan.

  4. Pada halaman Buat Kebijakan, pilih JSON.

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

    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": "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 sumber AWS daya. AWS CodeBuild Untuk membatasi akses AWS sumber daya tertentu, ubah nilai Resource array. Untuk informasi selengkapnya, lihat dokumentasi keamanan untuk AWS layanan.

  6. Pada halaman Kebijakan Tinjauan, untuk Nama Kebijakan, masukkan nama 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 Next:Permissions.

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

  11. Pada halaman Buat peran dan ulasan, untuk Nama peran, masukkan nama 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 entitas IAM, seperti yang dijelaskan dalam prosedur sebelumnya. Untuk informasi selengkapnya, lihat Menyiapkan dengan AWS Command Line Interface di Panduan AWS Command Line Interface Pengguna.

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

    create-role.json:

    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. Itu aws:SourceAccount adalah pemilik CodeBuild proyek dan aws:SourceArn adalah CodeBuild proyek ARN.

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

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

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

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "codebuild.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:codebuild:us-east-1:111122223333:project/MyProject" } } } ] }
    catatan

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

    put-role-policy.json:

    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 sumber AWS daya. AWS CodeBuild Untuk membatasi akses AWS sumber daya tertentu, ubah nilai Resource array. Untuk informasi selengkapnya, lihat dokumentasi keamanan untuk AWS layanan.

  3. Beralih ke direktori tempat Anda menyimpan file sebelumnya, dan kemudian 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