Kebijakan berbasis identitas (IAM) contoh - AWS CodePipeline

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

Kebijakan berbasis identitas (IAM) contoh

Anda dapat melampirkan kebijakan ke identitas IAM. Misalnya, Anda dapat melakukan hal berikut:

  • Lampirkan kebijakan izin ke pengguna atau grup di akun Anda- Untuk memberikan izin pengguna untuk melihat jaringan pipa di CodePipeline console, Anda dapat melampirkan kebijakan izin untuk pengguna atau grup yang menaungi pengguna.

  • Lampirkan kebijakan izin untuk peran (memberikan izin lintas akun) – Anda dapat melampirkan kebijakan izin berbasis identitas ke IAM role untuk memberikan izin lintas akun. Misalnya, administrator di Akun A dapat membuat peran untuk memberikan izin lintas akun ke akun AWS lain (misalnya, Akun B) atau layanan AWS sebagai berikut:

    1. Administrator akun A membuat IAM role dan melampirkan kebijakan izin ke peran yang memberikan izin pada sumber daya di akun A.

    2. Administrator akun A melampirkan kebijakan kepercayaan peran yang mengidentifikasi Akun B sebagai penanggung jawab yang dapat mengambil peran tersebut.

    3. Administrator Akun B kemudian dapat mendelegasikan izin untuk menerima peran pada pengguna siapa pun dalam akun B. Dengan melakukannya, pengguna dalam akun B dapat membuat atau mengakses sumber daya di akun A. Prinsip dalam kebijakan kepercayaan juga dapat menjadi prinsip layanan AWS jika Anda ingin memberikan izin layanan AWS untuk menjalankan peran tersebut.

    Untuk informasi selengkapnya tentang menggunakan IAM untuk mendelegasikan izin, lihat Manajemen Akses dalam Panduan Pengguna IAM.

Berikut ini menunjukkan contoh kebijakan izin yang memberikan izin untuk menonaktifkan dan mengaktifkan transisi antara semua tahapan dalam pipeline bernamaMyFirstPipelinedi dalamus-west-2 region:

{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "codepipeline:EnableStageTransition", "codepipeline:DisableStageTransition" ], "Resource" : [ "arn:aws:codepipeline:us-west-2:111222333444:MyFirstPipeline/*" ] } ] }

Contoh berikut menunjukkan kebijakan di akun 111222333444 yang memungkinkan pengguna untuk melihat, tetapi tidak mengubah, pipeline bernamaMyFirstPipelinedi dalam CodePipeline konsol Kebijakan ini didasarkan padaAWSCodePipeline_ReadOnlyAccesskebijakan yang dikelola, tetapi karena khusus untukMyFirstPipelinepipeline, tidak dapat menggunakan kebijakan yang dikelola secara langsung. Jika Anda tidak ingin membatasi kebijakan ke pipeline tertentu, pertimbangkan untuk menggunakan salah satu kebijakan terkelola yang dibuat dan dikelola oleh CodePipeline. Untuk informasi lebih lanjut, lihat Bekerja dengan Kebijakan Terkelola. Anda harus melampirkan kebijakan ini ke peran IAM yang Anda buat untuk akses, misalnya, peran bernamaCrossAccountPipelineViewers:

{ "Statement": [ { "Action": [ "codepipeline:GetPipeline", "codepipeline:GetPipelineState", "codepipeline:GetPipelineExecution", "codepipeline:ListPipelineExecutions", "codepipeline:ListActionExecutions", "codepipeline:ListActionTypes", "codepipeline:ListPipelines", "codepipeline:ListTagsForResource", "iam:ListRoles", "s3:ListAllMyBuckets", "codecommit:ListRepositories", "codedeploy:ListApplications", "lambda:ListFunctions", "codestar-notifications:ListNotificationRules", "codestar-notifications:ListEventTypes", "codestar-notifications:ListTargets" ], "Effect": "Allow", "Resource": "arn:aws:codepipeline:us-west-2:111222333444:MyFirstPipeline" }, { "Action": [ "codepipeline:GetPipeline", "codepipeline:GetPipelineState", "codepipeline:GetPipelineExecution", "codepipeline:ListPipelineExecutions", "codepipeline:ListActionExecutions", "codepipeline:ListActionTypes", "codepipeline:ListPipelines", "codepipeline:ListTagsForResource", "iam:ListRoles", "s3:GetBucketPolicy", "s3:GetObject", "s3:ListBucket", "codecommit:ListBranches", "codedeploy:GetApplication", "codedeploy:GetDeploymentGroup", "codedeploy:ListDeploymentGroups", "elasticbeanstalk:DescribeApplications", "elasticbeanstalk:DescribeEnvironments", "lambda:GetFunctionConfiguration", "opsworks:DescribeApps", "opsworks:DescribeLayers", "opsworks:DescribeStacks" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "CodeStarNotificationsReadOnlyAccess", "Effect": "Allow", "Action": [ "codestar-notifications:DescribeNotificationRule" ], "Resource": "*", "Condition": { "StringLike": { "codestar-notifications:NotificationsForResource": "arn:aws:codepipeline:*" } } } ], "Version": "2012-10-17" }

Setelah Anda membuat kebijakan ini, buat IAM role di akun 111222333444 dan lampirkan kebijakan untuk peran tersebut. Dalam hubungan kepercayaan peran, Anda harus menambahkanAWSakun yang akan mengambil peran ini. Contoh berikut menunjukkan kebijakan yang mengizinkan pengguna dari111111111111 AWSakun untuk mengasumsikan peran yang didefinisikan dalam akun 111222333444:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111111111111:root" }, "Action": "sts:AssumeRole" } ] }

Contoh berikut menunjukkan kebijakan yang dilakukan di111111111111 AWSakun yang memungkinkan pengguna untuk mengambil peran bernamaCrossAccountPipelineViewersdi akun 111222333444:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::111222333444:role/CrossAccountPipelineViewers" } ] }

Anda dapat membuat kebijakan IAM tertentu untuk membatasi panggilan dan sumber daya yang aksesnya dimiliki pengguna di akun Anda, dan kemudian melampirkan kebijakan tersebut untuk pengguna IAM. Untuk informasi selengkapnya tentang cara membuat IAM role dan untuk mengeksplorasi pernyataan kebijakan IAM untuk CodePipelineLihatContoh kebijakan yang dikelola pelanggan.