Uso de políticas de punto de conexión para controlar el acceso con puntos de conexión de la VPC - AWS Elastic Beanstalk

Uso de políticas de punto de conexión para controlar el acceso con puntos de conexión de la VPC

En este tema se explica cómo puede adjuntar una política a los puntos de conexión de VPC para controlar el acceso a su aplicación (servicio) y entorno de Elastic Beanstalk.

Una política de punto de conexión es una política de recursos de AWS Identity and Access Management (IAM) que controla el acceso desde el punto de conexión al servicio especificado. La política de punto final es específica del punto final. Es independiente de cualquier política de usuario o instancia de IAM que pueda tener su entorno y no las reemplaza ni las sobrescribe.

De forma predeterminada, un punto de conexión de la VPC permite el acceso completo al servicio al que está asociado. Cuando se crea o modifica un punto de conexión, puede asociar una política de punto de conexión para controlar el acceso a los recursos específicos asociados al servicio. Para obtener información detallada sobre la creación y el uso de políticas de punto de conexión de VPC, consulte Control de acceso a los puntos de conexión de VPC mediante políticas de punto de conexión en la Guía de AWS PrivateLink.

nota

Al crear políticas de punto de conexión restrictivas, es posible que tenga que añadir permisos específicos a los recursos necesarios para que la política de punto de conexión no bloquee el acceso a estos recursos. De este modo, se garantiza que el entorno siga implementándose y funcionando correctamente.

En el ejemplo siguiente se deniega a todos los usuarios el permiso para terminar un entorno a través del punto final de la VPC y se permite el acceso completo a todas las demás acciones.

{ "Statement": [ { "Action": "*", "Effect": "Allow", "Resource": "*", "Principal": "*" }, { "Action": "elasticbeanstalk:TerminateEnvironment", "Effect": "Deny", "Resource": "*", "Principal": "*" } ] }

Permisos de bucket de Amazon S3 necesarios para políticas restrictivas de puntos de conexión de VPC

Si añade restricciones a las políticas de punto de conexión de VPC, debe incluir permisos para determinados buckets de Amazon S3 a fin de que el entorno siga implementándose y funcionando correctamente. En esta sección se explican los buckets de S3 necesarios y se incluyen ejemplos de políticas.

Buckets de S3 que almacenan activos para administrar las plataformas del entorno

El servicio Elastic Beanstalk posee buckets de S3 que almacenan los activos asociados a una pila de soluciones (versión de la plataforma). Estos activos incluyen los archivos de configuración, la aplicación de muestra y los tipos de instancias disponibles. Cuando Elastic Beanstalk crea y administra su entorno, recupera la información necesaria para la versión de la plataforma específica del bucket de activos de cada una de las Región de AWS correspondientes.

ARN del bucket de S3

arn:aws:s3:::elasticbeanstalk-samples-region

Amazon Linux 2 y versiones posteriores

  • arn:aws:s3:::elasticbeanstalk-platform-assets-region

    nota

    El nombre del bucket sigue una convención diferente para la región de BJS. Se usa la cadena public-beta-cn-north-1 en lugar de la región. Por ejemplo, arn:aws:s3:::elasticbeanstalk-platform-assets-public-beta-cn-north-1.

Windows Server, Amazon Linux (AMI), Amazon Linux 2 y versiones posteriores

  • arn:aws:s3:::elasticbeanstalk-env-resources-region

  • arn:aws:s3:::elasticbeanstalk-region

nota

Los nombres de los buckets de platform-assets y env-resources siguen convenciones diferentes en algunas regiones. Consulte la sección sobre los patrones de nomenclatura de los buckets específicos de cada región a continuación.

Región Tipo de bucket Patrón de ARN de los bucket
me-central-1 platform-assets arn:aws:s3:::elasticbeanstalk-platform-assets-me-central-1-f08b818c
env-resources arn:aws:s3:::elasticbeanstalk-env-resources-me-central-1-f08b818c

Operaciones

GetObject

Ejemplo de política de punto de conexión de VPC

En el siguiente ejemplo se muestra cómo proporcionar acceso a los buckets de S3 necesarios para las operaciones de Elastic Beanstalk en la región Este de EE. UU. (Ohio) (us-east-2). En el ejemplo se enumeran todos los buckets de las plataformas Amazon Linux y Windows Server. Actualice su política para incluir únicamente los buckets que se aplican al sistema operativo de su entorno.

importante

Recomendamos que evite el uso de caracteres comodín (*) en lugar de regiones específicas en esta política. Por ejemplo, utilice arn:aws:s3:::cloudformation-waitcondition-us-east-2/* y no arn:aws:s3:::cloudformation-waitcondition-*/*. El uso de caracteres comodín podría conceder acceso a buckets de S3 a los que no quiere darlo. Si desea utilizar la política para más de una región, le recomendamos repetir el primer bloque de Statement de cada región.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowRequestsToAWSResources", "Effect": "Allow", "Principal": {"AWS": "*"}, "Action": ["s3:GetObject"], "Resource": [ "arn:aws:s3:::elasticbeanstalk-platform-assets-us-east-2/*", "arn:aws:s3:::elasticbeanstalk-env-resources-us-east-2/*", "arn:aws:s3:::elasticbeanstalk-env-resources-us-east-2/*", "arn:aws:s3:::elasticbeanstalk-samples-us-east-2/*" ] } ] }

Los buckets de S3 son propiedad de CloudFormation

Elastic Beanstalk utiliza CloudFormation para crear recursos en su entorno. CloudFormation posee buckets de S3 en cada Región de AWS para supervisar las respuestas a las condiciones de espera.

Los servicios como Elastic Beanstalk se comunican con CloudFormation mediante el envío de solicitudes a una URL de Amazon S3 prefirmada para el bucket de S3 propiedad de CloudFormation. CloudFormation crea la URL prefirmada de Amazon S3 mediante la entidad principal de servicio cloudformation.amazonaws.com.

Para obtener información más detallada, consulte Consideraciones sobre los puntos de conexión de VPC de CloudFormation en la Guía del usuario de AWS CloudFormation. Para obtener más información sobre las URL prefirmadas, consulte Trabajo con URL prefirmadas en la Guía del usuario de Amazon S3.

ARN del bucket de S3

  • arn:aws:s3:::cloudformation-waitcondition-region

    Cuando se utilizan condiciones de espera, los nombres de región contienen guiones. Por ejemplo, us-west-2.

  • arn:aws:s3:::cloudformation-custom-resource-response-region

    Cuando se utilizan recursos personalizados, los nombres de Región no contienen guiones. Por ejemplo, uswest2.

Operaciones

GetObject

Ejemplo de política de punto de conexión de VPC

En el siguiente ejemplo se muestra cómo proporcionar acceso a los buckets de S3 necesarios para las operaciones de Elastic Beanstalk en la región Este de EE. UU. (Ohio) (us-east-2).

importante

Recomendamos que evite el uso de caracteres comodín (*) en lugar de regiones específicas en esta política. Por ejemplo, utilice arn:aws:s3:::cloudformation-waitcondition-us-east-2/* y no arn:aws:s3:::cloudformation-waitcondition-*/*. El uso de caracteres comodín podría conceder acceso a buckets de S3 a los que no quiere darlo. Si desea utilizar la política para más de una región, le recomendamos repetir el primer bloque de Statement de cada región.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowRequestsToCloudFormation", "Effect": "Allow", "Principal": {"AWS": "*"}, "Action": ["s3:GetObject"], "Resource": [ "arn:aws:s3:::cloudformation-waitcondition-us-east-2/*", "arn:aws:s3:::cloudformation-custom-resource-response-us-east-2/*" ] } ] }

Buckets de S3 propiedad de las cuentas de cliente para almacenar el código fuente y otros elementos

Este bucket es propiedad de la cuenta de cliente de AWS propietaria del entorno. Almacena los recursos que son específicos de su entorno, como el código fuente y los registros solicitados.

ARN del bucket de S3

arn:aws:s3:::elasticbeanstalk-region-account-id

Operaciones

  • GetObject

  • GetObjectAcl

  • PutObject

  • PutObjectAcl

  • ListBucket

Ejemplo de política de punto de conexión de VPC

En el siguiente ejemplo se muestra cómo proporcionar acceso a los buckets de S3 necesarios para las operaciones de Elastic Beanstalk en la región Este de EE. UU. (Ohio) (us-east-2) y para el ejemplo de ID de cuenta de AWS 123456789012.

importante

Recomendamos que evite el uso de caracteres comodín (*) en lugar de regiones específicas en esta política. Por ejemplo, utilice arn:aws:s3:::cloudformation-waitcondition-us-east-2/* y no arn:aws:s3:::cloudformation-waitcondition-*/*. El uso de caracteres comodín podría conceder acceso a buckets de S3 a los que no quiere darlo. Si desea utilizar la política para más de una región, le recomendamos repetir el primer bloque de Statement de cada región.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowRequestsToCustomerItems", "Effect": "Allow", "Principal": {"AWS": "*"}, "Action": [ "s3:GetObject", "s3:GetObjectAcl", "s3:PutObject", "s3:PutObjectAcl", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::elasticbeanstalk-us-east-2-123456789012/*" ] } ] }

Los buckets de S3 son propiedad de las cuentas de los clientes para respaldar la autenticación del registro de Docker

Este segmento solo se aplica a los entornos basados en la plataforma Docker. El bucket almacena un archivo que se utiliza para autenticarse en un registro de Docker privado que reside en un bucket de S3 aprovisionado por el cliente. Para obtener más información, consulte Uso del archivo Dockerrun.aws.json v3 en el capítulo sobre la plataforma Docker de esta guía.

ARN del bucket de S3

El ARN varía según la cuenta del cliente.

El ARN del bucket de S3 tiene el siguiente formato: arn:aws:s3:::bucket-name.

Operaciones

GetObject

Ejemplo de política de punto de conexión de VPC

El siguiente ejemplo ilustra cómo proporcionar acceso a un bucket de S3 con el nombre amzn-s3-demo-bucket1.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowRequestsToDockerRegistryAuth", "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1" ] } ] }

Actualización de la política de punto de conexión de VPC

Como un punto de conexión de VPC solo tiene una política asociada, debe combinar todos los permisos en una sola política. En el siguiente ejemplo, se combinan todos los ejemplos anteriores en uno solo.

Para obtener información detallada sobre la creación y el uso de políticas de punto de conexión de VPC, consulte Control de acceso a los puntos de conexión de VPC mediante políticas de punto de conexión en la Guía de AWS PrivateLink.

Como en los ejemplos anteriores, en el siguiente se muestra cómo proporcionar acceso a los buckets de S3 necesarios para las operaciones de Elastic Beanstalk en la región Este de EE. UU. (Ohio) (us-east-2). También incluye buckets con el ejemplo de ID de cuenta de AWS 123456789012 y el nombre de bucket amzn-s3-demo-bucket1.

importante

Recomendamos que evite el uso de caracteres comodín (*) en lugar de regiones específicas en esta política. Por ejemplo, utilice arn:aws:s3:::cloudformation-waitcondition-us-east-2/* y no arn:aws:s3:::cloudformation-waitcondition-*/*. El uso de caracteres comodín podría conceder acceso a buckets de S3 a los que no quiere darlo. Si desea utilizar la política para más de una región, le recomendamos repetir el primer bloque de Statement de cada región.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowRequestsToAWSResources", "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::elasticbeanstalk-platform-assets-us-east-2/*", "arn:aws:s3:::elasticbeanstalk-env-resources-us-east-2/*", "arn:aws:s3:::elasticbeanstalk-samples-us-east-2/*" ] }, { "Sid": "AllowRequestsToCloudFormation", "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::cloudformation-waitcondition-us-east-2/*", "arn:aws:s3:::cloudformation-custom-resource-response-us-east-2/*" ] }, { "Sid": "AllowRequestsToCustomerItems", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectAcl", "s3:PutObject", "s3:PutObjectAcl", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::elasticbeanstalk-us-east-2-123456789012/*" ] }, { "Sid": "AllowRequestsToDockerRegistryAuth", "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1" ] } ] }