Menggunakan tag untuk mengontrol akses ke AWS CodeBuild sumber daya - AWS CodeBuild

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

Menggunakan tag untuk mengontrol akses ke AWS CodeBuild sumber daya

Kondisi dalam pernyataan IAM kebijakan adalah bagian dari sintaks yang dapat Anda gunakan untuk menentukan izin untuk tindakan berbasis CodeBuild proyek. Anda dapat membuat kebijakan yang mengizinkan atau menolak tindakan pada proyek berdasarkan tag yang terkait dengan proyek tersebut, lalu menerapkan kebijakan tersebut ke IAM grup yang Anda konfigurasikan untuk mengelola pengguna. Untuk informasi tentang menerapkan tag ke proyek menggunakan konsol atau AWS CLI, lihatBuat proyek build di AWS CodeBuild. Untuk informasi tentang menerapkan tag menggunakan CodeBuild SDK, lihat CreateProject dan Tag di CodeBuildAPIReferensi. Untuk informasi tentang penggunaan tag untuk mengontrol akses ke AWS sumber daya, lihat Mengontrol Akses ke AWS Sumber Daya Menggunakan Tag Sumber Daya di Panduan IAM Pengguna.

penting

Saat menggunakan fitur kapasitas cadangan, data yang di-cache pada instance armada, termasuk file sumber, lapisan Docker, dan direktori cache yang ditentukan dalam buildspec, dapat diakses oleh proyek lain dalam akun yang sama. Ini dirancang dan memungkinkan proyek dalam akun yang sama untuk berbagi instance armada.

contoh Contoh 1: Batasi tindakan CodeBuild proyek berdasarkan tag sumber daya

Contoh berikut menyangkal semua BatchGetProjects tindakan pada proyek yang ditandai dengan kunci Environment dengan nilai kunci dari. Production Administrator pengguna harus melampirkan IAM kebijakan ini selain kebijakan pengguna terkelola untuk pengguna yang tidak sah. Kunci aws:ResourceTag kondisi digunakan untuk mengontrol akses ke sumber daya berdasarkan tag mereka.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "codebuild:BatchGetProjects" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:ResourceTag/Environment": "Production" } } } ] }
contoh Contoh 2: Batasi tindakan CodeBuild proyek berdasarkan tag permintaan

Kebijakan berikut menolak izin pengguna untuk CreateProject tindakan jika permintaan berisi tag dengan kunci Environment dan nilai Production kunci. Selain itu, kebijakan mencegah pengguna yang tidak sah ini memodifikasi proyek dengan menggunakan kunci aws:TagKeys kondisi untuk tidak mengizinkan UpdateProject jika permintaan berisi tag dengan kunci. Environment Administrator harus melampirkan IAM kebijakan ini selain kebijakan pengguna yang dikelola kepada pengguna yang tidak berwenang untuk melakukan tindakan ini. Kunci aws:RequestTag kondisi digunakan untuk mengontrol tag mana yang dapat diteruskan dalam IAM permintaan

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "codebuild:CreateProject" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:RequestTag/Environment": "Production" } } }, { "Effect": "Deny", "Action": [ "codebuild:UpdateProject" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": ["Environment"] } } } ] }
contoh Contoh 3: Tolak atau izinkan tindakan pada grup laporan berdasarkan tag sumber daya

Anda dapat membuat kebijakan yang mengizinkan atau menolak tindakan pada CodeBuild sumber daya (proyek dan grup laporan) berdasarkan AWS tag yang terkait dengan sumber daya tersebut, lalu menerapkan kebijakan tersebut ke IAM grup yang Anda konfigurasikan untuk mengelola pengguna. Misalnya, Anda dapat membuat kebijakan yang menolak semua CodeBuild tindakan pada grup laporan apa pun dengan kunci AWS tag Status dan nilai kunciSecret, lalu menerapkan kebijakan tersebut ke IAM grup yang Anda buat untuk pengembang umum (Developers). Anda kemudian perlu memastikan bahwa pengembang yang mengerjakan grup laporan yang ditandai tersebut bukan anggota jenderal itu Developers grup, tetapi milik IAM kelompok lain yang tidak memiliki kebijakan restriktif yang diterapkan (SecretDevelopers).

Contoh berikut menyangkal semua CodeBuild tindakan pada grup laporan yang ditandai dengan kunci Status dan nilai kunci: Secret

{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Deny", "Action" : [ "codebuild:BatchGetReportGroups," "codebuild:CreateReportGroup", "codebuild:DeleteReportGroup", "codebuild:ListReportGroups", "codebuild:ListReportsForReportGroup", "codebuild:UpdateReportGroup" ] "Resource" : "*", "Condition" : { "StringEquals" : "aws:ResourceTag/Status": "Secret" } } ] }
contoh Contoh 4: Batasi CodeBuild tindakan AWSCodeBuildDeveloperAccess berdasarkan tag sumber daya

Anda dapat membuat kebijakan yang mengizinkan CodeBuild tindakan pada semua grup laporan dan proyek yang tidak ditandai dengan tag tertentu. Misalnya, kebijakan berikut memungkinkan AWSCodeBuildDeveloperAccess izin yang setara untuk semua grup laporan dan proyek kecuali yang ditandai dengan tag yang ditentukan:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codebuild:StartBuild", "codebuild:StopBuild", "codebuild:BatchGet*", "codebuild:GetResourcePolicy", "codebuild:DescribeTestCases", "codebuild:List*", "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:GetRepository", "codecommit:ListBranches", "cloudwatch:GetMetricStatistics", "events:DescribeRule", "events:ListTargetsByRule", "events:ListRuleNamesByTarget", "logs:GetLogEvents", "s3:GetBucketLocation", "s3:ListAllMyBuckets" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:ResourceTag/Status": "Secret", "aws:ResourceTag/Team": "Saanvi" } } } ] }