Administración de políticas de usuario 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.

Administración de políticas de usuario de Elastic Beanstalk

AWS Elastic Beanstalk proporciona dos políticas administradas que le permiten asignar acceso total o acceso de solo lectura a todos los recursos que administra Elastic Beanstalk. Puede adjuntar las políticas a los usuarios o grupos AWS Identity and Access Management (de IAM) o a las funciones que asumen sus usuarios.

Políticas de usuario administradas
  • AdministratorAccess- AWSElasticBeanstalk — Otorga al usuario todos los permisos administrativos para crear, modificar y eliminar las aplicaciones, las versiones de las aplicaciones, los ajustes de configuración, los entornos y sus recursos subyacentes de Elastic Beanstalk. Para ver el contenido de las políticas administradas, consulte la AWSElasticBeanstalk página AdministratorAccess- de la Guía de referencia de políticas AWS administradas.

  • AWSElasticBeanstalkReadOnly— Permite al usuario ver las aplicaciones y los entornos, pero no realizar operaciones que los modifiquen. Proporciona acceso de solo lectura a todos los recursos de Elastic Beanstalk y a otros recursos AWS que recupera la consola de Elastic Beanstalk. Tenga en cuenta que el acceso de solo lectura no permite realizar acciones como descargar archivos registro de Elastic Beanstalk para poder consultarlos. Esto se debe a que los registros se almacenan en el bucket de Amazon S3, donde Elastic Beanstalk requeriría permiso de escritura. Consulte el ejemplo al final de este tema para obtener información sobre cómo habilitar el acceso a los logs de Elastic Beanstalk. Para ver el contenido de las políticas administradas, consulte la página de la Guía de referencia de políticas administradas. AWSElasticBeanstalkReadOnlyAWS

importante

Las políticas administradas de Elastic Beanstalk no proporcionan permisos granulares, ya que otorgan todos los permisos potencialmente necesarios para trabajar con aplicaciones de Elastic Beanstalk. En algunos casos, es posible que desee restringir aún más los permisos de nuestras políticas administradas. Para ver un ejemplo de un caso de uso, consulteImpedir el acceso al bucket de Amazon S3 entre entornos.

Nuestras políticas administradas tampoco incluyen los permisos para recursos personalizados que puede agregar a su solución y que no son administrados por Elastic Beanstalk. Para implementar permisos más granulares, permisos mínimos requeridos o permisos personalizados a nivel de recursos, utilice políticas personalizadas.

Políticas obsoletas administradas por

Anteriormente, Elastic Beanstalk admitía otras dos políticas de usuarios administrados y. AWSElasticBeanstalkFullAccessAWSElasticBeanstalkReadOnlyAccess Planeamos retirar estas políticas anteriores. Es posible que aún pueda verlas y utilizarlas en la consola de IAM. No obstante, se recomienda que realice la transición al uso de las nuevas políticas de usuario administradas y agregue políticas personalizadas para conceder permisos a recursos personalizados, si tiene alguno.

Políticas para la integración con otros servicios

También ofrecemos políticas más detalladas que le permiten integrar su entorno con otros servicios, si prefiere utilizarlos.

  • AWSElasticBeanstalkRoleCWL— Permite que un entorno gestione los grupos de CloudWatch registros de Amazon Logs.

  • AWSElasticBeanstalkRoleRDS— Permite que un entorno integre una instancia de Amazon RDS.

  • AWSElasticBeanstalkRoleWorkerTier— Permite a un nivel de entorno de trabajo crear una tabla de Amazon DynamoDB y una cola de Amazon SQS.

  • AWSElasticBeanstalkRoleECS— Permite que un entorno Docker multicontenedor gestione los clústeres de Amazon ECS.

  • AWSElasticBeanstalkRoleCore— Permite las operaciones principales de un entorno de servicios web.

  • AWSElasticBeanstalkRoleSNS— Permite que un entorno permita la integración de temas de Amazon SNS.

Para ver la fuente JSON de una política administrada específica, consulte la Guía de referencia de políticas AWS administradas.

Control del acceso con políticas administradas

Puede usar políticas administradas para conceder acceso completo o acceso de solo lectura a Elastic Beanstalk. Elastic Beanstalk actualiza estas políticas automáticamente cuando se necesitan permisos adicionales para tener acceso a nuevas características.

Para aplicar una política administrada a usuarios o grupos de IAM
  1. Abra la página Policies (Políticas) en la consola de IAM.

  2. Escriba AWSElasticBeanstalk en el cuadro de búsqueda para filtrar las políticas.

  3. En la lista de políticas, selecciona la casilla de verificación situada junto a AWSElasticBeanstalkReadOnlyo AdministratorAccess- AWSElasticBeanstalk.

  4. Seleccione Policy actions (Acciones de la política) y, a continuación, Attach (Adjuntar).

  5. Seleccione uno o varios usuarios y grupos a los que asociar la política. Puede utilizar el menú Filter (Filtro) y el cuadro de búsqueda para filtrar la lista entidades principales.

  6. Elija Asociar política.

Creación de una política de usuario personalizada

Puede crear su propia política de IAM para permitir o denegar acciones específicas de la API de Elastic Beanstalk en recursos específicos de Elastic Beanstalk y controlar el acceso a recursos personalizados que no son administrados por Elastic Beanstalk. Para obtener más información acerca de cómo asociar una política a un usuario o grupo, consulte Trabajar con políticas en la Guía del usuario de IAM. Para obtener más información acerca de cómo crear una política personalizada, consulte Creación de políticas de IAM en la Guía del usuario de IAM.

nota

Aunque puede restringir la forma en que un usuario interactúa con las API de Elastic Beanstalk, actualmente no existe ninguna manera eficaz de impedir que los usuarios que tienen permiso para crear los recursos subyacentes necesarios creen otros recursos en Amazon EC2 y otros servicios.

Piense en estas políticas como un medio eficaz de distribuir las responsabilidades de Elastic Beanstalk, no como una forma de proteger todos los recursos subyacentes.

En noviembre de 2019, Elastic Beanstalk lanzó soporte para plantillas de lanzamiento de Amazon EC2. Se trata de un nuevo tipo de recurso que el grupo de Auto Scaling del entorno puede utilizar para lanzar instancias Amazon EC2 y que requiere nuevos permisos. La mayoría de los clientes no deberían verse afectados, ya que los entornos pueden seguir utilizando las configuraciones de lanzamiento del recurso heredado si la política del usuario carece de los permisos necesarios. Sin embargo, si intenta utilizar una nueva característica que requiera plantillas de lanzamiento de Amazon EC2 y tiene una política personalizada, es posible que se produzca un error al crear o actualizar el entorno. En este caso, asegúrese de que la política personalizada tenga los siguientes permisos.

Permisos necesarios para las plantillas de inicio de Amazon EC2
  • EC2:CreateLaunchTemplate

  • EC2:CreateLaunchTemplateVersions

  • EC2:DeleteLaunchTemplate

  • EC2:DeleteLaunchTemplateVersions

  • EC2:DescribeLaunchTemplate

  • EC2:DescribeLaunchTemplateVersions

Una política de IAM contiene instrucciones de política que describen los permisos que desea conceder. Cuando cree una instrucción de política de Elastic Beanstalk, debe saber cómo usar las cuatro partes siguientes de una instrucción de política:

  • El efecto especifica si se permiten o deniegan las acciones de la instrucción.

  • La acción especifica las operaciones de la API que desea controlar. Por ejemplo, utilice elasticbeanstalk:CreateEnvironment para especificar la operación CreateEnvironment. Algunas operaciones, como la creación de un entorno, requieren permisos adicionales. Para obtener más información, consulte Recursos y condiciones para las acciones de Elastic Beanstalk.

    nota

    Para utilizar la operación API UpdateTagsForResource, especifique una de las siguientes dos acciones virtuales (o ambas) en lugar del nombre de operación API:

    elasticbeanstalk:AddTags

    Controla los permisos para llamar a UpdateTagsForResource y pasar una lista de etiquetas para añadir en el parámetro TagsToAdd.

    elasticbeanstalk:RemoveTags

    Controla el permiso para llamar a UpdateTagsForResource y pasar una lista de claves de etiquetas para eliminar del parámetro TagsToRemove.

  • El recurso especifica los recursos cuyo acceso desea controlar. Para especificar recursos de Elastic Beanstalk, enumere el nombre de recurso de Amazon (ARN) de cada recurso.

  • (opcional) La condición especifica las restricciones sobre los permisos concedidos en la instrucción. Para obtener más información, consulte Recursos y condiciones para las acciones de Elastic Beanstalk.

En las siguientes secciones se muestran algunos casos en los que puede considerar el uso de una política de usuario personalizada.

Habilitar la creación del entorno limitado de Elastic Beanstalk

La política del siguiente ejemplo permite al usuario llamar a la acción CreateEnvironment para crear un entorno cuyo nombre comience por Test con la aplicación y versión de la aplicación especificadas.

{ "Version": "2012-10-17", "Statement": [ { "Sid":"CreateEnvironmentPerm", "Action": [ "elasticbeanstalk:CreateEnvironment" ], "Effect": "Allow", "Resource": [ "arn:aws:elasticbeanstalk:us-east-2:123456789012:environment/My First Elastic Beanstalk Application/Test*" ], "Condition": { "StringEquals": { "elasticbeanstalk:InApplication": ["arn:aws:elasticbeanstalk:us-east-2:123456789012:application/My First Elastic Beanstalk Application"], "elasticbeanstalk:FromApplicationVersion": ["arn:aws:elasticbeanstalk:us-east-2:123456789012:applicationversion/My First Elastic Beanstalk Application/First Release"] } } }, { "Sid":"AllNonResourceCalls", "Action":[ "elasticbeanstalk:CheckDNSAvailability", "elasticbeanstalk:CreateStorageLocation" ], "Effect":"Allow", "Resource":[ "*" ] } ] }

La política anterior muestra cómo conceder acceso limitado a las operaciones de Elastic Beanstalk. Para poder lanzar realmente un entorno, el usuario debe tener permiso para crear también los AWS recursos que alimentan el entorno. Por ejemplo, la siguiente política concede acceso al conjunto predeterminado de recursos para un entorno de servidor web:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:*", "ecs:*", "elasticloadbalancing:*", "autoscaling:*", "cloudwatch:*", "s3:*", "sns:*", "cloudformation:*", "sqs:*" ], "Resource": "*" } ] }

Habilitar el acceso a los registros de Elastic Beanstalk almacenados en Amazon S3

La política del siguiente ejemplo permite a un usuario extraer registros de Elastic Beanstalk, almacenarlos en un escenario en Amazon S3 y recuperarlos.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:DeleteObject", "s3:GetObjectAcl", "s3:PutObjectAcl" ], "Effect": "Allow", "Resource": "arn:aws:s3:::elasticbeanstalk-*" } ] }
nota

Para restringir estos permisos únicamente a la ruta de registros, utilice el siguiente formato de recursos.

"arn:aws:s3:::elasticbeanstalk-us-east-2-123456789012/resources/environments/logs/*"

Habilitación de la administración de una aplicación específica de Elastic Beanstalk

La política del siguiente ejemplo permite a un usuario administrar entornos y otros recursos en una aplicación de Elastic Beanstalk específica. La política niega las acciones de Elastic Beanstalk en recursos de otras aplicaciones, y también niega la creación y eliminación de aplicaciones de Elastic Beanstalk.

nota

La política no deniega el acceso a los recursos a través de otros servicios. Demuestra una forma eficaz de distribuir responsabilidades para administrar las aplicaciones de Elastic Beanstalk entre diferentes usuarios, no como una forma de proteger los recursos subyacentes.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "elasticbeanstalk:CreateApplication", "elasticbeanstalk:DeleteApplication" ], "Resource": [ "*" ] }, { "Effect": "Deny", "Action": [ "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:CreateConfigurationTemplate", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplicationVersion", "elasticbeanstalk:DeleteConfigurationTemplate", "elasticbeanstalk:DeleteEnvironmentConfiguration", "elasticbeanstalk:DescribeApplicationVersions", "elasticbeanstalk:DescribeConfigurationOptions", "elasticbeanstalk:DescribeConfigurationSettings", "elasticbeanstalk:DescribeEnvironmentResources", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DescribeEvents", "elasticbeanstalk:DeleteEnvironmentConfiguration", "elasticbeanstalk:RebuildEnvironment", "elasticbeanstalk:RequestEnvironmentInfo", "elasticbeanstalk:RestartAppServer", "elasticbeanstalk:RetrieveEnvironmentInfo", "elasticbeanstalk:SwapEnvironmentCNAMEs", "elasticbeanstalk:TerminateEnvironment", "elasticbeanstalk:UpdateApplicationVersion", "elasticbeanstalk:UpdateConfigurationTemplate", "elasticbeanstalk:UpdateEnvironment", "elasticbeanstalk:RetrieveEnvironmentInfo", "elasticbeanstalk:ValidateConfigurationSettings" ], "Resource": [ "*" ], "Condition": { "StringNotEquals": { "elasticbeanstalk:InApplication": [ "arn:aws:elasticbeanstalk:us-east-2:123456789012:application/myapplication" ] } } } ] }