Rol de servicio de Elastic Beanstalk - AWS Elastic Beanstalk

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Rol de servicio de Elastic Beanstalk

Un rol de servicio es el IAM rol que Elastic Beanstalk asume cuando llama a otros servicios en su nombre. Por ejemplo, Elastic Beanstalk usa un rol de servicio cuando llama a Amazon Elastic Compute Cloud (EC2Amazon), Elastic Load Balancing y Amazon EC2 Auto Scaling APIs para recopilar información. El rol de servicio que utiliza Elastic Beanstalk es el que especificó cuando creó el entorno de Elastic Beanstalk.

Hay dos políticas administradas que están asociadas al rol de servicio. Estas políticas proporcionan los permisos que habilitan a Elastic Beanstalk a acceder a los recursos de AWS necesarios para crear y administrar sus entornos. Una política gestionada proporciona permisos para mejorar la supervisión del estado y el SQS soporte de Amazon a nivel de trabajadores, y otra proporciona los permisos adicionales necesarios para las actualizaciones gestionadas de la plataforma.

Esta política otorga todos los permisos que necesita Elastic Beanstalk para monitorear el estado del entorno. También incluye SQS acciones de Amazon para permitir que Elastic Beanstalk supervise la actividad de las colas en los entornos de los trabajadores.

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

Esta política concede permisos a Elastic Beanstalk para actualizar los entornos en su nombre para realizar actualizaciones de plataformas administradas.

Agrupaciones de permisos de nivel de servicio

Esta política se agrupa en instrucciones basadas en el conjunto de permisos proporcionados.

  • ElasticBeanstalkPermissions— Este grupo de permisos sirve para llamar a las acciones del servicio de Elastic Beanstalk (Elastic Beanstalk). APIs

  • AllowPassRoleToElasticBeanstalkAndDownstreamServices: este grupo de permisos permite que cualquier rol se transfiera a Elastic Beanstalk y a otros servicios descendentes como AWS CloudFormation.

  • ReadOnlyPermissions: este grupo de permisos sirve para recopilar información sobre el entorno en ejecución.

  • *OperationPermissions: los grupos con este patrón de nomenclatura son para llamar a las operaciones necesarias a fin de llevar a cabo actualizaciones de plataforma.

  • *BroadOperationPermissions: los grupos con este patrón de nomenclatura son para llamar a las operaciones necesarias a fin de llevar a cabo actualizaciones de plataforma. También incluyen amplios permisos para admitir entornos heredados.

  • *TagResource— Los grupos con este patrón de nomenclatura son para las llamadas que utilizan el para adjuntar etiquetas tag-on-create APIs a los recursos que se están creando en un entorno de 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.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" ] } } } ] }

Puede crear un entorno de Elastic Beanstalk con cualquiera de los siguientes enfoques. Cada sección describe cómo el enfoque administra el rol de servicio.

Consola de Elastic Beanstalk

Si crea un entorno mediante la consola de Elastic Beanstalk, Elastic Beanstalk le pide que cree un rol de servicio denominado aws-elasticbeanstalk-service-role. Cuando se crea con Elastic Beanstalk, este rol incluye una política de confianza que permite a Elastic Beanstalk asumir el rol de servicio. Las dos políticas administradas antes mencionadas en este tema también se asocian al rol.

Interfaz de línea de comandos (EB) de Elastic Beanstalk CLI

Puede crear un entorno mediante el eb create comando de la interfaz de línea de comandos (EB) de Elastic Beanstalk. CLI Si no especifica un rol de servicio mediante la opción --service-role. Elastic Beanstalk crea el mismo rol de servicio aws-elasticbeanstalk-service-role predeterminado. Si el rol de servicio predeterminado ya existe, Elastic Beanstalk lo utiliza para el entorno nuevo. Cuando se crea con Elastic Beanstalk, este rol incluye una política de confianza que permite a Elastic Beanstalk asumir el rol de servicio. Las dos políticas administradas antes mencionadas en este tema también se asocian al rol.

Elastic Beanstalk API

Puede crear un entorno mediante la CreateEnvironment acción de Elastic Beanstalk. API Si no especifica un rol de servicio, Elastic Beanstalk crea un rol vinculado a servicios de supervisión. Se trata de un tipo único de rol de servicio predefinido por Elastic Beanstalk para incluir todos los permisos que el servicio necesita para llamar a Servicios de AWS otros en su nombre. El rol vinculado al servicio está asociado a su cuenta. Elastic Beanstalk lo crea una vez y, a continuación, vuelve a utilizarlo al crear entornos adicionales. También puede utilizarlo IAM para crear de antemano el rol vinculado al servicio de monitoreo para su cuenta. Si su cuenta tiene una función vinculada al servicio de supervisión, puede usarla para crear un entorno mediante la consola de Elastic Beanstalk, Elastic Beanstalk o el EB. API CLI Para obtener instrucciones sobre cómo utilizar roles vinculados a servicios con entornos de Elastic Beanstalk, consulte Uso de roles vinculados a servicios para Elastic Beanstalk.

Para obtener más información acerca de los roles de servicio, consulte Administración de roles de servicio de Elastic Beanstalk.