Ruolo di servizio Elastic Beanstalk - AWS Elastic Beanstalk

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Ruolo di servizio Elastic Beanstalk

Un ruolo di servizio è il IAM ruolo che Elastic Beanstalk assume quando chiama altri servizi per tuo conto. Ad esempio, Elastic Beanstalk utilizza un ruolo di servizio quando chiama Amazon Elastic Compute Cloud (Amazon)EC2, Elastic Load Balancing e EC2 Amazon Auto Scaling per raccogliere informazioni. APIs Il ruolo di servizio utilizzato da Elastic Beanstalk è quello specificato quando viene creato l'ambiente Elastic Beanstalk.

Sono presenti due policy gestite collegate al ruolo di servizio: Queste policy forniscono le autorizzazioni che consentono a Elastic Beanstalk di accedere alle risorse AWS necessarie per creare e gestire i tuoi ambienti. Una policy gestita fornisce le autorizzazioni per il monitoraggio avanzato dello stato di salute e il SQS supporto Amazon a livello lavorativo, mentre un'altra fornisce le autorizzazioni aggiuntive necessarie per gli aggiornamenti gestiti della piattaforma.

Questa policy concede tutte le autorizzazioni richieste da Elastic Beanstalk per monitorare l'integrità dell'ambiente. Include anche SQS azioni Amazon per consentire a Elastic Beanstalk di monitorare l'attività delle code per gli ambienti di lavoro.

{ "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": [ "*" ] } ] }

Questa policy concede le autorizzazioni a Elastic Beanstalk per aggiornare gli ambienti per tuo conto ed eseguire gli aggiornamenti gestiti della piattaforma.

Raggruppamenti di autorizzazioni a livello di servizio

Questa policy è raggruppata in istruzioni in base al set di autorizzazioni fornite.

  • ElasticBeanstalkPermissions— Questo gruppo di autorizzazioni serve a richiamare le azioni del servizio Elastic Beanstalk (Elastic Beanstalk). APIs

  • AllowPassRoleToElasticBeanstalkAndDownstreamServices: questo gruppo di autorizzazioni consente di passare qualsiasi ruolo a Elastic Beanstalk e ad altri servizi downstream come AWS CloudFormation.

  • ReadOnlyPermissions: questo gruppo di autorizzazioni serve a raccogliere informazioni sull'ambiente in esecuzione.

  • *OperationPermissions: i gruppi con questo modello di denominazione servono a chiamare le operazioni necessarie per eseguire gli aggiornamenti della piattaforma.

  • *BroadOperationPermissions: i gruppi con questo modello di denominazione servono a chiamare le operazioni necessarie per eseguire gli aggiornamenti della piattaforma. Includono inoltre autorizzazioni estese per il supporto degli ambienti legacy.

  • *TagResource— I gruppi con questo modello di denominazione sono destinati alle chiamate che utilizzano per tag-on-create APIs allegare tag alle risorse che vengono create in un ambiente 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" ] } } } ] }

Puoi creare un ambiente Elastic Beanstalk con uno dei seguenti approcci. Ogni sezione descrive come l'approccio gestisce il ruolo di servizio.

Console Elastic Beanstalk

Se crei un ambiente utilizzando la console Elastic Beanstalk, Elastic Beanstalk ti chiederà di creare un ruolo di servizio denominato aws-elasticbeanstalk-service-role. Quando creato tramite Elastic Beanstalk, questo ruolo include una policy di attendibilità che consenta a Elastic Beanstalk di assumere il ruolo di servizio. Al ruolo sono allegate anche le due policy gestite descritte in precedenza in questo argomento.

Interfaccia a riga di comando (EB) Elastic Beanstalk CLI

È possibile creare un ambiente utilizzando il eb create comando dell'Elastic Beanstalk Command Line Interface (EB). CLI Se non si specifica un ruolo di servizio attraverso l'opzione --service-role. Elastic Beanstalk crea lo stesso ruolo di servizio predefinito aws-elasticbeanstalk-service-role. Se il ruolo di servizio predefinito esiste già, Elastic Beanstalk lo utilizza per il nuovo ambiente. Quando creato tramite Elastic Beanstalk, questo ruolo include una policy di attendibilità che consenta a Elastic Beanstalk di assumere il ruolo di servizio. Al ruolo sono allegate anche le due policy gestite descritte in precedenza in questo argomento.

Elastic Beanstalk API

Puoi creare un ambiente usando l'CreateEnvironmentazione di Elastic BeanstalkAPI. Se non si specifica un ruolo di servizio, Elastic Beanstalk crea un ruolo collegato al servizio di monitoraggio. Si tratta di un tipo unico di ruolo di servizio predefinito da Elastic Beanstalk per includere tutte le autorizzazioni richieste dal servizio per chiamare altri utenti per conto dell'utente. AWS servizi Il ruolo collegato al servizio è associato al tuo account. Elastic Beanstalk lo crea una volta, quindi lo riutilizza quando crea altri ambienti. Puoi anche utilizzarlo IAM per creare in anticipo il ruolo collegato al servizio di monitoraggio per il tuo account. Se il tuo account ha un ruolo collegato al servizio di monitoraggio, puoi utilizzarlo per creare un ambiente utilizzando la console Elastic Beanstalk, Elastic Beanstalk o EB. API CLI Per le istruzioni su come utilizzare i ruoli collegati ai servizi con ambienti Elastic Beanstalk, consultaUtilizzo dei ruoli collegati ai servizi per Elastic Beanstalk.

Per ulteriori informazioni sui ruoli di servizio, consulta Gestione dei ruoli del servizio Elastic Beanstalk.