AWS kebijakan terkelola (standar) untuk CodeDeploy - AWS CodeDeploy

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

AWS kebijakan terkelola (standar) untuk CodeDeploy

AWS mengatasi banyak kasus penggunaan umum dengan menyediakan kebijakan IAM mandiri yang dibuat dan dikelola oleh. AWS Kebijakan yang AWS dikelola ini memberikan izin untuk kasus penggunaan umum sehingga Anda dapat menghindari keharusan menyelidiki izin mana yang diperlukan. Untuk informasi selengkapnya, lihat AWS kebijakan yang dikelola dalam Panduan Pengguna IAM.

Daftar kebijakan AWS terkelola untuk CodeDeploy

Kebijakan AWS terkelola berikut, yang dapat Anda lampirkan ke pengguna di akun Anda, khusus untuk CodeDeploy:

  • AWSCodeDeployFullAccess: Memberikan akses penuh ke CodeDeploy.

    catatan

    AWSCodeDeployFullAccess tidak memberikan izin untuk operasi di layanan lain yang diperlukan untuk menyebarkan aplikasi Anda, seperti Amazon EC2 dan Amazon S3, hanya untuk operasi khusus untuk. CodeDeploy

  • AWSCodeDeployDeployerAccess: Memberikan izin untuk mendaftar dan menyebarkan revisi.

     

  • AWSCodeDeployReadOnlyAccess: Memberikan akses hanya-baca ke. CodeDeploy

     

  • AWSCodeDeployRole: Memungkinkan CodeDeploy untuk:

    • baca tag pada instans Anda atau identifikasi instans Amazon EC2 Anda dengan nama grup Amazon EC2 Auto Scaling

    • membaca, membuat, memperbarui, dan menghapus grup Auto Scaling Amazon EC2, kait siklus hidup, kebijakan penskalaan, dan fitur kolam hangat

    • mempublikasikan informasi ke topik Amazon SNS

    • mengambil informasi tentang alarm Amazon CloudWatch

    • membaca dan memperbarui sumber daya di layanan Elastic Load Balancing

    Kebijakan tersebut berisi kode berikut:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "autoscaling:CompleteLifecycleAction", "autoscaling:DeleteLifecycleHook", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeLifecycleHooks", "autoscaling:PutLifecycleHook", "autoscaling:RecordLifecycleActionHeartbeat", "autoscaling:CreateAutoScalingGroup", "autoscaling:CreateOrUpdateTags", "autoscaling:UpdateAutoScalingGroup", "autoscaling:EnableMetricsCollection", "autoscaling:DescribePolicies", "autoscaling:DescribeScheduledActions", "autoscaling:DescribeNotificationConfigurations", "autoscaling:SuspendProcesses", "autoscaling:ResumeProcesses", "autoscaling:AttachLoadBalancers", "autoscaling:AttachLoadBalancerTargetGroups", "autoscaling:PutScalingPolicy", "autoscaling:PutScheduledUpdateGroupAction", "autoscaling:PutNotificationConfiguration", "autoscaling:DescribeScalingActivities", "autoscaling:DeleteAutoScalingGroup", "autoscaling:PutWarmPool", "ec2:DescribeInstances", "ec2:DescribeInstanceStatus", "ec2:TerminateInstances", "tag:GetResources", "sns:Publish", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "elasticloadbalancing:DescribeLoadBalancers", "elasticloadbalancing:DescribeLoadBalancerAttributes", "elasticloadbalancing:DescribeInstanceHealth", "elasticloadbalancing:RegisterInstancesWithLoadBalancer", "elasticloadbalancing:DeregisterInstancesFromLoadBalancer", "elasticloadbalancing:DescribeTargetGroups", "elasticloadbalancing:DescribeTargetGroupAttributes", "elasticloadbalancing:DescribeTargetHealth", "elasticloadbalancing:RegisterTargets", "elasticloadbalancing:DeregisterTargets" ], "Resource": "*" } ] }

     

  • AWSCodeDeployRoleForLambda: Memberikan CodeDeploy izin untuk mengakses AWS Lambda dan sumber daya lain yang diperlukan untuk penerapan.

     

  • AWSCodeDeployRoleForECS: Memberikan CodeDeploy izin untuk mengakses Amazon ECS dan sumber daya lain yang diperlukan untuk penerapan.

     

  • AWSCodeDeployRoleForECSLimited: Memberikan CodeDeploy izin untuk mengakses Amazon ECS dan sumber daya lain yang diperlukan untuk penerapan dengan pengecualian berikut:

    • Di hooks bagian AppSpec file, hanya fungsi Lambda dengan nama yang dimulai dengan yang CodeDeployHook_ dapat digunakan. Untuk informasi selengkapnya, lihat AppSpec Bagian 'kait' untuk penerapan Amazon ECS.

    • Akses bucket S3 terbatas pada bucket S3 dengan tag registrasi,UseWithCodeDeploy, yang memiliki nilai. true Untuk informasi selengkapnya, lihat Penandaan objek.

  • AmazonEC2RoleforAWSCodeDeployLimited: Memberikan CodeDeploy izin untuk mendapatkan dan mencantumkan objek di bucket CodeDeploy Amazon S3. Kebijakan tersebut berisi kode berikut:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:ListBucket" ], "Resource": "arn:aws:s3:::*/CodeDeploy/*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "*", "Condition": { "StringEquals": { "s3:ExistingObjectTag/UseWithCodeDeploy": "true" } } } ] }

Izin untuk beberapa aspek proses penerapan diberikan kepada dua tipe peran lain yang bertindak atas nama: CodeDeploy

  • Profil instans IAM adalah peran IAM yang Anda lampirkan ke instans Amazon EC2 Anda. Profil ini mencakup izin yang diperlukan untuk mengakses bucket Amazon S3 GitHub atau repositori tempat aplikasi disimpan. Untuk informasi selengkapnya, lihat Langkah 4: Buat profil instans IAM untuk instans Amazon EC2 Anda.

  • Peran layanan adalah peran IAM yang memberikan izin ke AWS layanan sehingga dapat mengakses sumber daya. AWS Kebijakan yang Anda lampirkan ke peran layanan menentukan AWS sumber daya yang dapat diakses oleh layanan dan tindakan yang dapat dilakukan dengan sumber daya tersebut. Untuk CodeDeploy, peran layanan digunakan untuk hal berikut:

    • Untuk membaca tag yang diterapkan pada instans atau nama grup Auto Scaling Amazon EC2 yang terkait dengan instans. Hal ini memungkinkan CodeDeploy untuk mengidentifikasi instance yang dapat digunakan aplikasi.

    • Untuk melakukan operasi pada instans, Amazon EC2 Auto Scaling mengelompokkan, dan penyeimbang beban Elastic Load Balancing.

    • Untuk mempublikasikan informasi ke topik Amazon SNS sehingga notifikasi dapat dikirim saat penerapan atau kejadian instans tertentu terjadi.

    • Untuk mengambil informasi tentang CloudWatch alarm untuk mengatur pemantauan alarm untuk penyebaran.

    Untuk informasi selengkapnya, lihat Langkah 2: Buat peran layanan untuk CodeDeploy.

Anda juga dapat membuat kebijakan IAM khusus untuk memberikan izin untuk CodeDeploy tindakan dan sumber daya. Anda melampirkan kebijakan kustom ini ke peran IAM, lalu Anda menetapkan peran tersebut kepada pengguna atau grup yang memerlukan izin.

CodeDeploy kebijakan dan pemberitahuan terkelola

CodeDeploy mendukung notifikasi, yang dapat memberi tahu pengguna tentang perubahan penting pada penerapan. Kebijakan terkelola untuk CodeDeploy menyertakan pernyataan kebijakan untuk fungsionalitas notifikasi. Untuk informasi selengkapnya, lihat Apa itu notifikasi?.

Izin yang terkait dengan notifikasi dalam kebijakan terkelola akses penuh

Kebijakan terkelola AWSCodeDeployFullAccess mencakup pernyataan berikut untuk mengizinkan akses penuh ke notifikasi. Pengguna dengan kebijakan terkelola ini juga dapat membuat dan mengelola topik Amazon SNS untuk notifikasi, berlangganan dan berhenti berlangganan topik, membuat daftar topik untuk dipilih sebagai target untuk aturan notifikasi, dan membuat daftar klien AWS Chatbot yang dikonfigurasi untuk Slack.

{ "Sid": "CodeStarNotificationsReadWriteAccess", "Effect": "Allow", "Action": [ "codestar-notifications:CreateNotificationRule", "codestar-notifications:DescribeNotificationRule", "codestar-notifications:UpdateNotificationRule", "codestar-notifications:DeleteNotificationRule", "codestar-notifications:Subscribe", "codestar-notifications:Unsubscribe" ], "Resource": "*", "Condition" : { "StringLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codedeploy:*"} } }, { "Sid": "CodeStarNotificationsListAccess", "Effect": "Allow", "Action": [ "codestar-notifications:ListNotificationRules", "codestar-notifications:ListTargets", "codestar-notifications:ListTagsforResource", "codestar-notifications:ListEventTypes" ], "Resource": "*" }, { "Sid": "CodeStarNotificationsSNSTopicCreateAccess", "Effect": "Allow", "Action": [ "sns:CreateTopic", "sns:SetTopicAttributes" ], "Resource": "arn:aws:sns:*:*:codestar-notifications*" }, { "Sid": "SNSTopicListAccess", "Effect": "Allow", "Action": [ "sns:ListTopics" ], "Resource": "*" }, { "Sid": "CodeStarNotificationsChatbotAccess", "Effect": "Allow", "Action": [ "chatbot:DescribeSlackChannelConfigurations", "chatbot:ListMicrosoftTeamsChannelConfigurations" ], "Resource": "*" }

Izin yang terkait dengan notifikasi dalam kebijakan terkelola hanya-baca

Kebijakan terkelola AWSCodeDeployReadOnlyAccess mencakup pernyataan berikut untuk mengizinkan akses penuh ke notifikasi. Pengguna dengan kebijakan ini diterapkan dapat melihat pemberitahuan untuk sumber daya, tetapi tidak dapat membuat, mengelola, atau berlangganan.

{ "Sid": "CodeStarNotificationsPowerUserAccess", "Effect": "Allow", "Action": [ "codestar-notifications:DescribeNotificationRule" ], "Resource": "*", "Condition" : { "StringLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codedeploy:*"} } }, { "Sid": "CodeStarNotificationsListAccess", "Effect": "Allow", "Action": [ "codestar-notifications:ListNotificationRules", "codestar-notifications:ListEventTypes", "codestar-notifications:ListTargets" ], "Resource": "*" }

Untuk informasi selengkapnya tentang IAM dan notifikasi, lihat Identity and Access Management for AWS CodeStar Notifications.