Peran layanan Elastic Beanstalk - AWS Elastic Beanstalk

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

Peran layanan Elastic Beanstalk

Peran layanan adalah IAM peran yang diasumsikan Elastic Beanstalk saat menelepon layanan lain atas nama Anda. Misalnya, Elastic Beanstalk menggunakan peran layanan saat memanggil Amazon Elastic Compute Cloud (Amazon), Elastic Load BalancingEC2, dan EC2 Amazon Auto Scaling untuk mengumpulkan informasi. APIs Peran layanan yang digunakan Elastic Beanstalk adalah peran yang Anda tentukan saat membuat lingkungan Elastic Beanstalk.

Ada dua kebijakan terkelola yang melekat pada peran layanan. Kebijakan ini memberikan izin yang memungkinkan Elastic Beanstalk mengakses sumber daya yang diperlukan untuk membuat dan mengelola AWS lingkungan Anda. Satu kebijakan terkelola memberikan izin untuk pemantauan kesehatan yang ditingkatkan dan SQS dukungan Amazon tingkat pekerja, dan satu lagi memberikan izin tambahan yang diperlukan untuk pembaruan platform terkelola.

Kebijakan ini memberikan semua izin yang diperlukan Elastic Beanstalk untuk memantau kesehatan lingkungan. Ini juga mencakup SQS tindakan Amazon untuk memungkinkan Elastic Beanstalk memantau aktivitas antrian untuk lingkungan pekerja.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "elasticloadbalancing:DescribeInstanceHealth", "elasticloadbalancing:DescribeLoadBalancers", "elasticloadbalancing:DescribeTargetHealth", "ec2:DescribeInstances", "ec2:DescribeInstanceStatus", "ec2:GetConsoleOutput", "ec2:AssociateAddress", "ec2:DescribeAddresses", "ec2:DescribeSecurityGroups", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances", "autoscaling:DescribeScalingActivities", "autoscaling:DescribeNotificationConfigurations", "sns:Publish" ], "Resource": [ "*" ] } ] }

Kebijakan ini memberikan izin untuk Elastic Beanstalk untuk memperbarui lingkungan atas nama Anda untuk melakukan pembaruan platform yang terkelola.

Pengelompokan izin tingkat layanan

Kebijakan ini dikelompokkan ke dalam pernyataan berdasarkan kumpulan izin yang diberikan.

  • ElasticBeanstalkPermissions— Kelompok izin ini untuk memanggil tindakan layanan Elastic Beanstalk (Elastic Beanstalk). APIs

  • AllowPassRoleToElasticBeanstalkAndDownstreamServices – Kelompok izin ini mengizinkan peran apa pun untuk diteruskan ke Elastic Beanstalk dan ke layanan hilir lainnya seperti AWS CloudFormation.

  • ReadOnlyPermissions – Kelompok izin ini adalah untuk mengumpulkan informasi tentang lingkungan berjalan.

  • *OperationPermissions – Grup dengan pola penamaan ini adalah untuk memanggil operasi yang diperlukan untuk melakukan pembaruan platform.

  • *BroadOperationPermissions – Grup dengan pola penamaan ini adalah untuk memanggil operasi yang diperlukan untuk melakukan pembaruan platform. Mereka juga menyertakan izin yang luas untuk mendukung lingkungan lama.

  • *TagResource— Grup dengan pola penamaan ini adalah untuk panggilan yang menggunakan tag-on-create APIs untuk melampirkan tag pada sumber daya yang sedang dibuat di lingkungan Elastic Beanstalk.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ElasticBeanstalkPermissions", "Effect": "Allow", "Action": [ "elasticbeanstalk:*" ], "Resource": "*" }, { "Sid": "AllowPassRoleToElasticBeanstalkAndDownstreamServices", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::*:role/*", "Condition": { "StringEquals": { "iam:PassedToService": [ "elasticbeanstalk.amazonaws.com", "ec2.amazonaws.com", "ec2.amazonaws.com.rproxy.goskope.com.cn", "autoscaling.amazonaws.com", "elasticloadbalancing.amazonaws.com", "ecs.amazonaws.com", "cloudformation.amazonaws.com" ] } } }, { "Sid": "ReadOnlyPermissions", "Effect": "Allow", "Action": [ "autoscaling:DescribeAccountLimits", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances", "autoscaling:DescribeLaunchConfigurations", "autoscaling:DescribeLoadBalancers", "autoscaling:DescribeNotificationConfigurations", "autoscaling:DescribeScalingActivities", "autoscaling:DescribeScheduledActions", "ec2:DescribeAccountAttributes", "ec2:DescribeAddresses", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceAttribute", "ec2:DescribeInstances", "ec2:DescribeKeyPairs", "ec2:DescribeLaunchTemplates", "ec2:DescribeLaunchTemplateVersions", "ec2:DescribeSecurityGroups", "ec2:DescribeSnapshots", "ec2:DescribeSpotInstanceRequests", "ec2:DescribeSubnets", "ec2:DescribeVpcClassicLink", "ec2:DescribeVpcs", "elasticloadbalancing:DescribeInstanceHealth", "elasticloadbalancing:DescribeLoadBalancers", "elasticloadbalancing:DescribeTargetGroups", "elasticloadbalancing:DescribeTargetHealth", "logs:DescribeLogGroups", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "rds:DescribeOrderableDBInstanceOptions", "sns:ListSubscriptionsByTopic" ], "Resource": [ "*" ] }, { "Sid": "EC2BroadOperationPermissions", "Effect": "Allow", "Action": [ "ec2:AllocateAddress", "ec2:AssociateAddress", "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateLaunchTemplate", "ec2:CreateLaunchTemplateVersion", "ec2:CreateSecurityGroup", "ec2:DeleteLaunchTemplate", "ec2:DeleteLaunchTemplateVersions", "ec2:DeleteSecurityGroup", "ec2:DisassociateAddress", "ec2:ReleaseAddress", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress" ], "Resource": "*" }, { "Sid": "EC2RunInstancesOperationPermissions", "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": "*", "Condition": { "ArnLike": { "ec2:LaunchTemplate": "arn:aws:ec2:*:*:launch-template/*" } } }, { "Sid": "EC2TerminateInstancesOperationPermissions", "Effect": "Allow", "Action": [ "ec2:TerminateInstances" ], "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "StringLike": { "ec2:ResourceTag/aws:cloudformation:stack-id": [ "arn:aws:cloudformation:*:*:stack/awseb-e-*", "arn:aws:cloudformation:*:*:stack/eb-*" ] } } }, { "Sid": "ECSBroadOperationPermissions", "Effect": "Allow", "Action": [ "ecs:CreateCluster", "ecs:DescribeClusters", "ecs:RegisterTaskDefinition" ], "Resource": "*" }, { "Sid": "ECSDeleteClusterOperationPermissions", "Effect": "Allow", "Action": "ecs:DeleteCluster", "Resource": "arn:aws:ecs:*:*:cluster/awseb-*" }, { "Sid": "ASGOperationPermissions", "Effect": "Allow", "Action": [ "autoscaling:AttachInstances", "autoscaling:CreateAutoScalingGroup", "autoscaling:CreateLaunchConfiguration", "autoscaling:CreateOrUpdateTags", "autoscaling:DeleteLaunchConfiguration", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteScheduledAction", "autoscaling:DetachInstances", "autoscaling:DeletePolicy", "autoscaling:PutScalingPolicy", "autoscaling:PutScheduledUpdateGroupAction", "autoscaling:PutNotificationConfiguration", "autoscaling:ResumeProcesses", "autoscaling:SetDesiredCapacity", "autoscaling:SuspendProcesses", "autoscaling:TerminateInstanceInAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup" ], "Resource": [ "arn:aws:autoscaling:*:*:launchConfiguration:*:launchConfigurationName/awseb-e-*", "arn:aws:autoscaling:*:*:launchConfiguration:*:launchConfigurationName/eb-*", "arn:aws:autoscaling:*:*:autoScalingGroup:*:autoScalingGroupName/awseb-e-*", "arn:aws:autoscaling:*:*:autoScalingGroup:*:autoScalingGroupName/eb-*" ] }, { "Sid": "CFNOperationPermissions", "Effect": "Allow", "Action": [ "cloudformation:*" ], "Resource": [ "arn:aws:cloudformation:*:*:stack/awseb-*", "arn:aws:cloudformation:*:*:stack/eb-*" ] }, { "Sid": "ELBOperationPermissions", "Effect": "Allow", "Action": [ "elasticloadbalancing:AddTags", "elasticloadbalancing:ApplySecurityGroupsToLoadBalancer", "elasticloadbalancing:ConfigureHealthCheck", "elasticloadbalancing:CreateLoadBalancer", "elasticloadbalancing:DeleteLoadBalancer", "elasticloadbalancing:DeregisterInstancesFromLoadBalancer", "elasticloadbalancing:DeregisterTargets", "elasticloadbalancing:RegisterInstancesWithLoadBalancer", "elasticloadbalancing:RegisterTargets" ], "Resource": [ "arn:aws:elasticloadbalancing:*:*:targetgroup/awseb-*", "arn:aws:elasticloadbalancing:*:*:targetgroup/eb-*", "arn:aws:elasticloadbalancing:*:*:loadbalancer/awseb-*", "arn:aws:elasticloadbalancing:*:*:loadbalancer/eb-*", "arn:aws:elasticloadbalancing:*:*:loadbalancer/*/awseb-*/*", "arn:aws:elasticloadbalancing:*:*:loadbalancer/*/eb-*/*" ] }, { "Sid": "CWLogsOperationPermissions", "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:PutRetentionPolicy" ], "Resource": "arn:aws:logs:*:*:log-group:/aws/elasticbeanstalk/*" }, { "Sid": "S3ObjectOperationPermissions", "Effect": "Allow", "Action": [ "s3:DeleteObject", "s3:GetObject", "s3:GetObjectAcl", "s3:GetObjectVersion", "s3:GetObjectVersionAcl", "s3:PutObject", "s3:PutObjectAcl", "s3:PutObjectVersionAcl" ], "Resource": "arn:aws:s3:::elasticbeanstalk-*/*" }, { "Sid": "S3BucketOperationPermissions", "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:GetBucketPolicy", "s3:ListBucket", "s3:PutBucketPolicy" ], "Resource": "arn:aws:s3:::elasticbeanstalk-*" }, { "Sid": "SNSOperationPermissions", "Effect": "Allow", "Action": [ "sns:CreateTopic", "sns:GetTopicAttributes", "sns:SetTopicAttributes", "sns:Subscribe" ], "Resource": "arn:aws:sns:*:*:ElasticBeanstalkNotifications-*" }, { "Sid": "SQSOperationPermissions", "Effect": "Allow", "Action": [ "sqs:GetQueueAttributes", "sqs:GetQueueUrl" ], "Resource": [ "arn:aws:sqs:*:*:awseb-e-*", "arn:aws:sqs:*:*:eb-*" ] }, { "Sid": "CWPutMetricAlarmOperationPermissions", "Effect": "Allow", "Action": [ "cloudwatch:PutMetricAlarm" ], "Resource": [ "arn:aws:cloudwatch:*:*:alarm:awseb-*", "arn:aws:cloudwatch:*:*:alarm:eb-*" ] }, { "Sid": "AllowECSTagResource", "Effect": "Allow", "Action": [ "ecs:TagResource" ], "Resource": "*", "Condition": { "StringEquals": { "ecs:CreateAction": [ "CreateCluster", "RegisterTaskDefinition" ] } } } ] }

Anda dapat membuat lingkungan Elastic Beanstalk dengan salah satu pendekatan berikut. Setiap bagian menjelaskan bagaimana pendekatan menangani peran layanan.

Konsol Elastic Beanstalk

Jika Anda membuat lingkungan menggunakan konsol Elastic Beanstalk, Elastic Beanstalk meminta Anda untuk membuat peran layanan yang diberi nama. aws-elasticbeanstalk-service-role Ketika dibuat melalui Elastic Beanstalk, peran ini mencakup kebijakan kepercayaan yang memungkinkan Elastic Beanstalk untuk mengambil peran layanan. Dua kebijakan terkelola yang dijelaskan sebelumnya dalam topik ini juga melekat pada peran tersebut.

Antarmuka Baris Perintah Elastic Beanstalk (EB) CLI

Anda dapat membuat lingkungan menggunakan eb create perintah Elastic Beanstalk Command Line Interface (EB). CLI Jika Anda tidak menentukan peran layanan melalui --service-role opsi. Elastic Beanstalk menciptakan peran layanan default yang sama. aws-elasticbeanstalk-service-role Jika peran layanan default sudah ada, Elastic Beanstalk menggunakannya untuk lingkungan baru. Ketika dibuat melalui Elastic Beanstalk, peran ini mencakup kebijakan kepercayaan yang memungkinkan Elastic Beanstalk untuk mengambil peran layanan. Dua kebijakan terkelola yang dijelaskan sebelumnya dalam topik ini juga melekat pada peran tersebut.

Elastic Beanstalk API

Anda dapat menciptakan lingkungan menggunakan CreateEnvironment aksi Elastic BeanstalkAPI. Jika Anda tidak menentukan peran layanan, Elastic Beanstalk akan membuat peran terkait layanan pemantauan. Ini adalah jenis peran layanan unik yang telah ditentukan sebelumnya oleh Elastic Beanstalk untuk menyertakan semua izin yang diperlukan layanan untuk memanggil orang lain atas nama Anda. AWS layanan Peran terkait layanan berkaitan dengan akun Anda. Elastic Beanstalk membuatnya sekali, dan kemudian menggunakannya kembali saat membuat lingkungan tambahan. Anda juga dapat menggunakan IAM untuk membuat peran terkait layanan pemantauan untuk akun Anda terlebih dahulu. Jika akun Anda memiliki peran terkait layanan pemantauan, Anda dapat menggunakannya untuk membuat lingkungan menggunakan konsol Elastic Beanstalk, Elastic Beanstalk, atau API EB. CLI Untuk petunjuk tentang cara menggunakan peran terkait layanan dengan lingkungan Elastic Beanstalk, lihat. Menggunakan peran yang terhubung dengan layanan untuk Elastic Beanstalk

Untuk informasi selengkapnya tentang peran layanan, lihat Mengelola peran layanan Elastic Beanstalk.