Acceso a los buckets de Amazon S3 con Redshift Spectrum
Amazon Redshift Spectrum no admite el enrutamiento de VPC mejorado con clústeres aprovisionados. El enrutamiento de VPC mejorado de Amazon Redshift dirige tráfico específico a través de la VPC. Todo el tráfico entre el clúster y los buckets de Amazon S3 está obligado a pasar por la VPC de Amazon VPC. Redshift Spectrum se ejecuta en recursos administrados por AWS que son propiedad de Amazon Redshift. Como estos recursos están fuera de la VPC, Redshift Spectrum no usa Enhanced VPC Routing.
El tráfico entre Redshift Spectrum y Amazon S3 se enruta de forma segura a través de la red privada de AWS, fuera de su VPC. El tráfico en tránsito se firma con el protocolo Signature Version 4 (SIGv4) de Amazon y se cifra mediante HTTPS. La autorización para este tráfico se basa en el rol de IAM que se adjunta a su clúster de Amazon Redshift. Para administrar aún más el tráfico de Redshift Spectrum, puede modificar el rol de IAM de su clúster y la política adjunta al bucket de Amazon S3. Es posible que también deba configurar su VPC de manera que permita que su clúster acceda a AWS Glue o a Athena, tal como se detalla a continuación.
Tenga en cuenta que el enrutamiento de VPC mejorado afecta a la forma en la que Amazon Redshift accede a otros recursos, las consultas podrían presentar error a menos que configure la VPC correctamente. Para obtener más información, consulte Control del tráfico de red con enrutamiento de VPC mejorado de Redshift, que analiza con más detalle la creación de un punto de conexión de VPC, una puerta de enlace NAT y otros recursos de red para dirigir el tráfico a los buckets de Amazon S3.
nota
Amazon Redshift sin servidor admite el enrutamiento de VPC mejorado para consultas a tablas externas en Amazon S3. Para obtener más información sobre la configuración, consulte Carga de datos desde Amazon S3 en la Guía de introducción a Amazon Redshift sin servidor.
Configuración de la política de permisos al utilizar Amazon Redshift Spectrum
Tenga en cuenta lo siguiente cuando utilice Redshift Spectrum:
Políticas de acceso a buckets de Amazon S3 y roles de IAM
Puede controlar el acceso a los datos en sus buckets de Amazon S3 usando una política de bucket adjunta al bucket y un rol de IAM adjunto a un clúster aprovisionado.
Redshift Spectrum en clústeres aprovisionados no puede acceder a los datos almacenados en buckets de Amazon S3 que usen una política de bucket que limite el acceso únicamente a los puntos de conexión de VPC especificados. En su lugar, use una política de bucket que limite el acceso a únicamente entidades principales específicas, como a una cuenta de AWS específica o usuarios específicos.
Para el rol de IAM al cual se le concede acceso al bucket, utilice una relación de confianza que permita que únicamente la entidad principal del servicio Amazon Redshift asuma el rol. Cuando se adjunta al clúster, el rol solo se puede usar en el contexto de Amazon Redshift y no se puede compartir fuera del clúster. Para obtener más información, consulte Restricción de acceso a los roles de IAM. También se puede utilizar una política de control de servicio (SCP) para restringir aún más el rol; consulte Impedir que los usuarios y roles de IAM realicen los cambios especificados, con una excepción para un rol de administrador especificado en la Guía del usuario de AWS Organizations.
nota
Para utilizar Redshift Spectrum, no puede haber ninguna política de IAM que bloquee el uso de direcciones URL prefirmadas de Amazon S3. Las URL prefirmadas generadas por Amazon Redshift Spectrum son válidas durante 1 hora para que Amazon Redshift tenga tiempo suficiente para cargar todos los archivos del bucket de Amazon S3. Se genera una URL prefirmada única para cada archivo escaneado por Redshift Spectrum. Para las políticas de bucket que incluyen una acción s3:signatureAge
, asegúrese de establecer el valor en al menos 3 600 000 milisegundos.
El siguiente ejemplo de política de bucket solo permite acceder al bucket especificado desde el tráfico originado en Redshift Spectrum que es propiedad de la cuenta de AWS 123456789012
.
{ "Version": "2012-10-17", "Statement": [{ "Sid": "BucketPolicyForSpectrum", "Effect": "Allow", "Principal": { "AWS": ["arn:aws:iam::123456789012:role/redshift"] }, "Action": ["s3:GetObject", "s3:List*"], "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket/*"], "Condition": { "StringEquals": { "aws:UserAgent": "AWS Redshift/Spectrum" } } }] }
Permisos para asumir el rol de IAM
El rol que se adjuntó a su clúster debería tener una relación de confianza que permita que el servicio Amazon Redshift sea el único en asumirlo, tal como se muestra a continuación.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Puede agregar una política al rol del clúster que impida el acceso de COPY y UNLOAD a un bucket específico. La siguiente política solo permite tráfico al bucket especificado procedente de Redshift Spectrum.
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": ["s3:Get*", "s3:List*"], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": {"StringEquals": {"aws:UserAgent": "AWS Redshift/Spectrum"}} }] }
Para obtener más información, consulte Políticas de IAM para Redshift Spectrum en la Guía para desarrolladores de bases de datos de Amazon Redshift.
Registro y auditoría del acceso a Amazon S3
Uno de los beneficios de usar el enrutamiento de VPC mejorado de Amazon Redshift es que todo el tráfico COPY y UNLOAD queda registrado en los registros de flujo de la VPC. El tráfico originado en Redshift Spectrum que se dirige a Amazon S3 no pasa por la VPC, por lo que no queda registrado en el registro de flujo de la VPC. Cuando Redshift Spectrum accede a los datos en Amazon S3, realiza estas operaciones en el contexto de la cuenta de AWS y de los respectivos privilegios del rol. Puede registrar y auditar el acceso a Amazon S3 mediante el registro de acceso al servidor en AWS CloudTrail y Amazon S3.
Asegúrese de que los rangos de IP de S3 estén agregados a la lista de permitidos. Para obtener más información acerca de los rangos de IP de S3 necesarios, consulte Aislamiento de red.
Registros de AWS CloudTrail
Para rastrear todo el acceso a objetos en Amazon S3, incluido el acceso a Redshift Spectrum, habilite el registro de CloudTrail para objetos de Amazon S3.
Puede utilizar CloudTrail para ver, buscar, descargar, archivar, analizar y responder a la actividad de la cuenta en su infraestructura de AWS. Para obtener más información, consulte Introducción a CloudTrail.
De forma predeterminada, CloudTrail solo realiza un seguimiento de las acciones en el nivel de bucket. Para realizar un seguimiento de las acciones en el nivel del objeto (como GetObject
), habilite eventos de datos y administración para cada bucket registrado.
Registro de acceso al servidor de Simple Storage Service (Amazon S3)
El registro de acceso al servidor brinda registros detallados para las solicitudes realizadas a un bucket. La información del registro de acceso puede ser útil en auditorías de acceso y seguridad. Para obtener más información, consulte Cómo habilitar el registro de acceso al servidor en la Guía del usuario de Amazon Simple Storage Service.
Para obtener más información, consulte la publicación How to Use Bucket Policies and Apply Defense-in-Depth to Help Secure Your Amazon S3 Data
Acceso a AWS Glue o Amazon Athena
Redshift Spectrum accede a su catálogo de datos en AWS Glue o Athena. Otra opción es utilizar un metaalmacén de Hive específico para su catálogo de datos.
Para habilitar el acceso a AWS Glue o Athena, configure su VPC con una gateway de Internet o una gateway NAT. Configure los grupos de seguridad de la VPC de manera que permitan el tráfico saliente hacia los puntos de enlace públicos de AWS Glue y Athena. Alternativamente, puede configurar un punto de conexión de la VPC de la interfaz para que AWS Glue acceda a su AWS Glue Data Catalog. Cuando se utiliza un punto de conexión de interfaz de la VPC, la comunicación entre la VPC y AWS Glue se lleva a cabo dentro de la red de AWS. Para obtener más información, consulte Creación de un punto de conexión de interfaz.
Puede configurar las siguientes rutas en la VPC:
-
Gateway de Internet: para conectarse a servicios de AWS fuera de la VPC, puede adjuntar una gateway de Internet a la subred de la VPC, tal como se describe en la Guía del usuario de Amazon VPC. Para utilizar una puerta de enlace de Internet, un clúster aprovisionado debe tener una dirección IP pública para permitir que otros servicios se comuniquen con él.
-
Gateway NAT: para conectarse a un bucket de Amazon S3 que esté en otra región de AWS o a otro servicio de la red de AWS, configure una gateway de conversión de las direcciones de red (NAT), tal como se describe en la Guía del usuario de Amazon VPC. También use esta configuración para obtener acceso a una instancia de alojamiento fuera de la red de AWS.
Para obtener más información, consulte Control del tráfico de red con enrutamiento de VPC mejorado de Redshift.