AWS Proton IAMcontoh kebijakan peran layanan - AWS Proton

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

AWS Proton IAMcontoh kebijakan peran layanan

Administrator memiliki dan mengelola sumber daya yang AWS Proton dibuat seperti yang didefinisikan oleh template lingkungan dan layanan. Mereka melampirkan peran IAM layanan ke akun mereka yang memungkinkan AWS Proton untuk membuat sumber daya atas nama mereka. Administrator menyediakan IAM peran dan AWS Key Management Service kunci untuk sumber daya yang kemudian dimiliki dan dikelola oleh pengembang saat AWS Proton menyebarkan aplikasi mereka sebagai AWS Proton layanan di lingkungan AWS Proton . Untuk informasi selengkapnya tentang AWS KMS dan enkripsi data, lihatPerlindungan data di AWS Proton.

Peran layanan adalah peran Amazon Web Services (IAM) yang memungkinkan AWS Proton Anda melakukan panggilan ke sumber daya atas nama Anda. Jika Anda menentukan peran layanan, AWS Proton menggunakan kredensial peran tersebut. Gunakan peran layanan untuk secara eksplisit menentukan tindakan yang AWS Proton dapat dilakukan.

Anda membuat peran layanan dan kebijakan izinnya dengan IAM layanan. Untuk informasi selengkapnya tentang membuat peran layanan, lihat Membuat peran untuk mendelegasikan izin ke AWS layanan di IAMPanduan Pengguna.

AWS Proton peran layanan untuk penyediaan menggunakan AWS CloudFormation

Sebagai anggota tim platform, Anda dapat sebagai administrator membuat peran AWS Proton layanan dan menyediakannya AWS Proton saat Anda membuat lingkungan sebagai peran CloudFormation layanan lingkungan (protonServiceRoleArnparameter CreateEnvironmentAPItindakan). Peran ini memungkinkan AWS Proton untuk melakukan API panggilan ke layanan lain atas nama Anda ketika lingkungan atau salah satu instance layanan yang berjalan di dalamnya menggunakan penyediaan AWS-managed dan AWS CloudFormation untuk menyediakan infrastruktur.

Kami menyarankan Anda menggunakan kebijakan IAM peran dan kepercayaan berikut untuk peran AWS Proton layanan Anda. Saat Anda menggunakan AWS Proton konsol untuk membuat lingkungan dan memilih untuk membuat peran baru, ini adalah kebijakan yang AWS Proton menambahkan peran layanan yang dibuatnya untuk Anda. Saat mencantumkan izin pada kebijakan ini, ingatlah bahwa AWS Proton gagal pada Access Denied kesalahan.

penting

Perlu diketahui bahwa kebijakan yang ditampilkan dalam contoh berikut memberikan hak administrator kepada siapa saja yang dapat mendaftarkan templat ke akun Anda. Karena kami tidak tahu sumber daya mana yang akan Anda tentukan di AWS Proton templat Anda, kebijakan ini memiliki izin yang luas. Kami menyarankan Anda untuk mencatat izin ke sumber daya tertentu yang akan digunakan di lingkungan Anda.

Ganti 123456789012 dengan Akun AWS ID Anda.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:CancelUpdateStack", "cloudformation:ContinueUpdateRollback", "cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackDriftDetectionStatus", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResourceDrifts", "cloudformation:DescribeStacks", "cloudformation:DetectStackResourceDrift", "cloudformation:ExecuteChangeSet", "cloudformation:ListChangeSets", "cloudformation:ListStackResources", "cloudformation:UpdateStack" ], "Resource": "arn:aws:cloudformation:*:123456789012:stack/AWSProton-*" }, { "Effect": "Allow", "NotAction": [ "organizations:*", "account:*" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": [ "cloudformation.amazonaws.com" ] } } }, { "Effect": "Allow", "Action": [ "organizations:DescribeOrganization", "account:ListRegions" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": [ "cloudformation.amazonaws.com" ] } } } ] }
{ "Version": "2012-10-17", "Statement": { "Sid": "ServiceTrustRelationshipWithConfusedDeputyPrevention", "Effect": "Allow", "Principal": { "Service": "proton.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws::proton:*:123456789012:environment/*" } } } }

Berikut ini adalah contoh kebijakan peran AWS Proton layanan bawah cakupan yang dapat Anda gunakan jika Anda hanya memerlukan AWS Proton layanan untuk menyediakan sumber daya S3.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:CancelUpdateStack", "cloudformation:ContinueUpdateRollback", "cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackDriftDetectionStatus", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResourceDrifts", "cloudformation:DescribeStacks", "cloudformation:DetectStackResourceDrift", "cloudformation:ExecuteChangeSet", "cloudformation:ListChangeSets", "cloudformation:ListStackResources", "cloudformation:UpdateStack" ], "Resource": "arn:aws:cloudformation:*:123456789012:stack/AWSProton-*" }, { "Effect": "Allow", "Action": [ "s3:*" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": [ "cloudformation.amazonaws.com" ] } } } ] }

AWS Proton peran layanan untuk CodeBuild penyediaan

Sebagai anggota tim platform, Anda dapat sebagai administrator membuat peran AWS Proton layanan dan menyediakannya AWS Proton saat Anda membuat lingkungan sebagai peran CodeBuild layanan lingkungan (codebuildRoleArnparameter CreateEnvironmentAPItindakan). Peran ini memungkinkan AWS Proton untuk melakukan API panggilan ke layanan lain atas nama Anda ketika lingkungan atau instans layanan yang berjalan di dalamnya menggunakan CodeBuild penyediaan untuk penyediaan infrastruktur.

Saat Anda menggunakan AWS Proton konsol untuk membuat lingkungan dan memilih untuk membuat peran baru, AWS Proton tambahkan kebijakan dengan hak administrator ke peran layanan yang dibuatnya untuk Anda. Saat Anda membuat izin peran dan cakupan Anda sendiri, ingatlah bahwa AWS Proton gagal pada Access Denied kesalahan.

penting

Ketahuilah bahwa kebijakan yang AWS Proton melekat pada peran yang dibuatnya untuk Anda memberikan hak administrator kepada siapa pun yang dapat mendaftarkan templat ke akun Anda. Karena kami tidak tahu sumber daya mana yang akan Anda tentukan di AWS Proton templat Anda, kebijakan ini memiliki izin yang luas. Kami menyarankan Anda untuk mencatat izin ke sumber daya tertentu yang akan digunakan di lingkungan Anda.

Contoh berikut memberikan izin CodeBuild untuk menyediakan sumber daya menggunakan. AWS Cloud Development Kit (AWS CDK)

Ganti 123456789012 dengan Akun AWS ID Anda.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "logs:CreateLogStream", "logs:CreateLogGroup", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:/aws/codebuild/AWSProton- Shell-*", "arn:aws:logs:us-east-1:123456789012:log-group:/aws/codebuild/AWSProton- Shell-*:*" ], "Effect": "Allow" }, { "Action": "proton:NotifyResourceDeploymentStatusChange", "Resource": "arn:aws:proton:us-east-1:123456789012:*", "Effect": "Allow" }, { "Action": "sts:AssumeRole", "Resource": [ "arn:aws:iam::123456789012:role/cdk-*-deploy-role-*", "arn:aws:iam::123456789012:role/cdk-*-file-publishing-role-*" ], "Effect": "Allow" } ] }
{ "Version": "2012-10-17", "Statement": { "Sid": "CodeBuildTrustRelationshipWithConfusedDeputyPrevention", "Effect": "Allow", "Principal": { "Service": "codebuild.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws::proton:*:123456789012:environment/*" } } } }

AWS Proton peran layanan pipa

Untuk menyediakan saluran pipa layanan, AWS Proton perlu izin untuk melakukan API panggilan ke layanan lain. Peran layanan yang diperlukan mirip dengan peran layanan yang Anda berikan saat membuat lingkungan. Namun, peran untuk membuat pipeline dibagikan di antara semua layanan di AWS akun Anda, dan Anda memberikan peran ini sebagai pengaturan Akun di konsol, atau melalui UpdateAccountSettingsAPItindakan.

Saat Anda menggunakan AWS Proton konsol untuk memperbarui setelan akun dan memilih untuk membuat peran baru untuk peran AWS CloudFormation atau peran CodeBuild layanan, kebijakan yang AWS Proton ditambahkan ke peran layanan yang dibuatnya untuk Anda sama dengan kebijakan yang dijelaskan di bagian sebelumnya, AWS-peran penyediaan terkelola danCodeBuild peran penyediaan. Saat mencantumkan izin pada kebijakan ini, ingatlah bahwa AWS Proton gagal pada Access Denied kesalahan.

penting

Ketahuilah bahwa contoh kebijakan di bagian sebelumnya memberikan hak administrator kepada siapa saja yang dapat mendaftarkan templat ke akun Anda. Karena kami tidak tahu sumber daya mana yang akan Anda tentukan di AWS Proton templat Anda, kebijakan ini memiliki izin yang luas. Kami menyarankan Anda untuk memasukkan izin ke sumber daya spesifik yang akan digunakan di saluran pipa Anda.

AWS Proton peran komponen

Sebagai anggota tim platform, Anda dapat sebagai administrator membuat peran AWS Proton layanan dan menyediakannya AWS Proton saat Anda membuat lingkungan sebagai peran CloudFormation komponen lingkungan (componentRoleArnparameter CreateEnvironmentAPItindakan). Peran ini mencakup infrastruktur yang dapat disediakan oleh komponen yang didefinisikan secara langsung. Untuk informasi selengkapnya tentang komponen, lihatAWS Proton komponen.

Contoh kebijakan berikut mendukung pembuatan komponen yang ditentukan secara langsung yang menyediakan bucket Amazon Simple Storage Service (Amazon S3) dan kebijakan akses terkait.

Ganti 123456789012 dengan Akun AWS ID Anda.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:CancelUpdateStack", "cloudformation:CreateChangeSet", "cloudformation:DeleteChangeSet", "cloudformation:DescribeStacks", "cloudformation:ContinueUpdateRollback", "cloudformation:DetectStackResourceDrift", "cloudformation:DescribeStackResourceDrifts", "cloudformation:DescribeStackEvents", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:UpdateStack", "cloudformation:DescribeChangeSet", "cloudformation:ExecuteChangeSet", "cloudformation:ListChangeSets", "cloudformation:ListStackResources" ], "Resource": "arn:aws:cloudformation:*:123456789012:stack/AWSProton-*" }, { "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:DeleteBucket", "s3:GetBucket", "iam:CreatePolicy", "iam:DeletePolicy", "iam:GetPolicy", "iam:ListPolicyVersions", "iam:DeletePolicyVersion" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": "cloudformation.amazonaws.com" } } } ] }
{ "Version": "2012-10-17", "Statement": { "Sid": "ServiceTrustRelationshipWithConfusedDeputyPrevention", "Effect": "Allow", "Principal": { "Service": "proton.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws::proton:*:123456789012:environment/*" } } } }