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

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

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

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. 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 de usuario administradas

  • AdministratorAccess-AWSElasticBeanstalk: le proporciona al usuario permisos administrativos completos para crear, modificar y eliminar aplicaciones de Elastic Beanstalk, versiones de aplicaciones, opciones de configuración, entornos y sus recursos subyacentes.

  • AWSElasticBeanstalkReadOnly: permite al usuario ver aplicaciones y entornos, pero no realizar operaciones que los modifiquen. Proporciona acceso de solo lectura a todos los recursos de Elastic Beanstalk y a otros recursos de 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 depósito 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 una política administrada, utilice la páginaPolicies (Políticas) de la consola de IAM.

nota

Anteriormente, Elastic Beanstalk admitía otras dos políticas de usuario administradas: AWSElasticBeanstalkFullAccess y AWSElasticBeanstalkReadOnlyAccess. 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.

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, seleccione la casilla situada junto a AWSElasticBeanstalkReadOnly o AdministratorAccess-AWSElasticBeanstalk.

  4. Seleccione Policy actions y, a continuación, Attach.

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

  6. Elija Attach policy.

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:CreateLauchTemplate

  • EC2:CreateLauchTemplateVersions

  • 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 un entorno, el usuario debe tener también permiso para crear los recursos de AWS que se utilizan en 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" ] } } } ] }