Restringir el acceso a un origen de un punto de acceso de varias regiones de Amazon S3
Puede utilizar el control de acceso al origen (OAC) para restringir el acceso a un origen de un punto de acceso de varias regiones de Amazon S3. Los puntos de acceso de varias regiones de S3 proporcionan un punto de conexión global que realiza el enrutamiento de las solicitudes al bucket de S3 más cercano en función de la latencia de la red.
nota
El OAC con puntos de acceso multirregionales de S3 no es compatible con los puntos de conexión de MRAP respaldados por buckets en regiones registradas. Las solicitudes que se enruten a un bucket en una región registrada producirán un error. Todos los buckets asociados al punto de acceso multirregional deben estar en regiones habilitadas de forma predeterminada.
Para obtener información sobre cómo utilizar OAC con un bucket de Amazon S3 estándar como origen, consulte Restricción del acceso a un origen de Amazon S3.
Requisitos previos
Antes de crear y configurar OAC, debe disponer de una distribución de CloudFront con un origen de punto de acceso de varias regiones de Amazon S3. El nombre de dominio de origen debe seguir el formato de nombre de host del punto de acceso de varias regiones de S3:
multi-region-access-point-alias.accesspoint.s3-global.amazonaws.com
Para obtener más información sobre cómo crear un punto de acceso de varias regiones de S3, consulte la sección Creación de puntos de acceso de varias regiones en la Guía del usuario de Amazon Simple Storage Service.
Concesión de permiso de CloudFront para acceder al punto de acceso de varias regiones de S3
Actualice la política de punto de acceso de varias regiones para permitir que la entidad principal de servicio de CloudFront (cloudfront.amazonaws.com) acceda al punto de acceso de varias regiones. Utilice un elemento Condition en la política para permitir que CloudFront acceda al punto de acceso de varias regiones solo cuando la solicitud sea en nombre de la distribución de CloudFront que contiene el origen.
Para obtener información sobre cómo añadir o modificar una política de punto de acceso de varias regiones, consulte los ejemplos de políticas de punto de acceso de varias regiones en la Guía del usuario de Amazon Simple Storage Service.
ejemplo Política de punto de acceso de varias regiones en OAC de CloudFront
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCloudFrontOACAccess", "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3::111122223333:accesspoint/Multi-Region-Access-Point-Alias.mrap/object/*", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudfront::111122223333:distribution/CloudFront distribution ID" } } } ] }
Concesión de permiso a CloudFront para acceder a los buckets de S3 subyacentes
Además de la política de punto de acceso de varias regiones, también debe conceder a CloudFront permiso para acceder a cada uno de los buckets de S3 subyacentes asociados al punto de acceso de varias regiones. Puede hacerlo de una de las dos formas siguientes:
importante
Debe añadir esta política de bucket a todos los buckets de S3 asociados al punto de acceso de varias regiones. Si algún bucket no cumple con la política, se rechazarán las solicitudes de enrutamiento de CloudFront dirigidas a dicho bucket.
Opción 1: Conceder el acceso solo a CloudFront
Añada una política de bucket a cada bucket de S3 que permita a la entidad principal de servicio de CloudFront acceder al bucket. Utilice esta opción cuando también necesite permitir el acceso directo al bucket desde otras fuentes.
ejemplo Política de bucket de S3 para un bucket subyacente
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCloudFrontOACAccessViaMRAP", "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket-us-east-1/*", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudfront::111122223333:distribution/CloudFront distribution ID" } } } ] }
Opción 2: Delegar el acceso completo del bucket al punto de acceso de varias regiones
Conceda al punto de acceso de varias regiones acceso completo a cada bucket subyacente. Con este enfoque, todo el acceso al bucket queda regulado por la política de punto de acceso de varias regiones, lo que simplifica la administración del acceso. Recomendamos esta opción para aquellos casos en los que no se requiere acceso directo al bucket.
ejemplo Política de bucket de S3 que delega el acceso al punto de acceso de varias regiones
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DelegateAccessToMRAP", "Effect": "Allow", "Principal": "*", "Action": "s3:*", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket-us-east-1", "arn:aws:s3:::amzn-s3-demo-bucket-us-east-1/*" ], "Condition": { "StringEquals": { "s3:DataAccessPointArn": "arn:aws:s3::111122223333:accesspoint/Multi-Region-Access-Point-Alias.mrap" } } } ] }
Para obtener más información, consulte el ejemplo de política de puntos de acceso de varias regiones en la Guía del usuario de Amazon Simple Storage Service.
SSE-KMS
Si los objetos de los buckets de S3 subyacentes se cifran mediante el cifrado del lado del servidor con AWS KMS (SSE-KMS), debe asegurarse de que la distribución de CloudFront tenga permiso para utilizar la clave de AWS KMS. Dado que los puntos de acceso de varias regiones de S3 pueden realizar el enrutamiento de las solicitudes a buckets en varias regiones, debe añadir una instrucción a la política de claves de KMS en cada región en la que un bucket subyacente utilice SSE-KMS. Para obtener información sobre cómo modificar una política de claves, consulte Modificación de una política de claves en la Guía del desarrollador de AWS Key Management Service.
ejemplo Instrucción de política de claves de KMS
El siguiente ejemplo muestra una declaración de política de claves de KMS que permite a la distribución de CloudFront con OAC acceder a una clave de KMS para SSE-KMS.
{ "Sid": "AllowCloudFrontServicePrincipalSSE-KMS", "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudfront::111122223333:distribution/CloudFront distribution ID" } } }
importante
Debe añadir esta instrucción de política de claves a la clave de KMS en todas las regiones en las que un bucket de S3 subyacente utilice el cifrado SSE-KMS.
Creación del control de acceso de origen
Para crear un control de acceso de origen (OAC), puede utilizar la Consola de administración de AWS, CloudFormation, la AWS CLI o la API de CloudFront.
nota
Los desencadenadores de solicitudes de origen de Lambda@Edge son incompatibles con los orígenes que utilizan un OAC de SigV4a, ya sea que se acceda al origen directamente o a través de un grupo de orígenes.
Comportamiento de firma
Las opciones de comportamiento de firma para los orígenes de punto de acceso de varias regiones de S3 son las mismas que las de los orígenes de buckets normales de Amazon S3. Para obtener más información, consulte Configuración avanzada para el control de acceso de origen en Restricción del acceso a un origen de Amazon S3.