Autorización a Amazon Redshift para obtener acceso a los servicios de AWS en su nombre
Algunas características de Amazon Redshift requieren que este servicio acceda a otros servicios de AWS en su nombre. Por ejemplo, los comandos COPY y UNLOAD pueden cargar o descargar datos en el clúster de Amazon Redshift mediante un bucket de Amazon S3. El comando CREATE EXTERNAL FUNCTION puede invocar una función de AWS Lambda mediante una función escalar de Lambda definida por el usuario (UDF). Amazon Redshift Spectrum puede usar un catálogo de datos en Amazon Athena oAWS Glue. Para que los clústeres de Amazon Redshift actúen en su nombre, debe proporcionarles credenciales de seguridad. El método preferido para proporcionar credenciales de seguridad consiste en especificar un rol de AWS Identity and Access Management (IAM). Para COPY y UNLOAD, puede proporcionar credenciales temporales.
Los usuarios necesitan acceso programático si desean interactuar con AWS fuera de la AWS Management Console. La forma de conceder el acceso programático depende del tipo de usuario que acceda a AWS.
Para conceder acceso programático a los usuarios, seleccione una de las siguientes opciones.
¿Qué usuario necesita acceso programático? | Para | Mediante |
---|---|---|
Identidad del personal (Usuarios administrados en el IAM Identity Center) |
Utilice credenciales temporales para firmar las solicitudes programáticas a la AWS CLI, los AWS SDK y las API de AWS. |
Siga las instrucciones de la interfaz que desea utilizar:
|
IAM | Utilice credenciales temporales para firmar las solicitudes programáticas a la AWS CLI, los AWS SDK y las API de AWS. | Siguiendo las instrucciones de Uso de credenciales temporales con recursos de AWS de la Guía del usuario de IAM. |
IAM | (No recomendado) Utilizar credenciales a largo plazo para firmar las solicitudes programáticas a la AWS CLI, los AWS SDK o las API de AWS. |
Siga las instrucciones de la interfaz que desea utilizar:
|
A continuación, se explica cómo crear un rol de IAM con los permisos adecuados para tener acceso a otros servicios de AWS. También necesitará asociar el rol al clúster y especificar el nombre de recurso de Amazon (ARN) del rol cuando ejecute el comando de Amazon Redshift. Para obtener más información, consulte Autorización de las operaciones COPY, UNLOAD, CREATE EXTERNAL FUNCTION y CREATE EXTERNAL SCHEMA mediante roles de IAM.
Además, un superusuario puede conceder el privilegio ASSUMEROLE a usuarios y grupos específicos para proporcionar acceso a un rol para las operaciones COPY y UNLOAD. Para obtener más información, consulte GRANT en la Guía para desarrolladores de base de datos de Amazon Redshift.
Creación de un rol de IAM que permita al clúster de Amazon Redshift obtener acceso a los servicios de AWS
Creación de un rol de IAM con permisos
Para crear un rol de IAM que permita al clúster de Amazon Redshift comunicarse con otros servicios de AWS en su nombre, siga estos pasos. Los valores utilizados en esta sección son ejemplos; puede elegir valores en función de sus necesidades.
Para crear un rol de IAM que permita a Amazon Redshift el acceso a los servicios de AWS
-
Abra la consola de IAM
. -
Seleccione Roles en el panel de navegación.
-
Elija Crear rol.
-
Elija AWS service (Servicio de AWS) y, a continuación, elija Redshift.
-
En Select your use case (Seleccione su caso de uso), elija Redshift - Customizable (Redshift - Personalizable) y Next: Permissions (Siguiente: permisos). Aparece la página Attach permissions policy (Adjuntar política de permisos).
-
Para obtener acceso a Amazon S3 mediante COPY, por ejemplo, puede usar
AmazonS3ReadOnlyAccess
y agregarlo. Para acceder a Amazon S3 mediante COPY o UNLOAD, le sugerimos que cree políticas administradas que restrinjan el acceso al bucket y al prefijo deseados según corresponda. Para las operaciones de lectura y escritura, recomendamos aplicar los privilegios mínimos y restringirlas únicamente a los buckets y los prefijos de clave de Amazon S3 que Amazon Redshift requiere.Para poder obtener acceso para invocar las funciones de Lambda del comando CREATE EXTERNAL FUNCTION, agregue
AWSLambdaRole
.En Redshift Spectrum, además del acceso a Amazon S3, agregue
AWSGlueConsoleFullAccess
oAmazonAthenaFullAccess
.Elija Siguiente: etiquetas.
-
Aparece la página Add tags (Agregar etiquetas). Si lo desea, puede agregar etiquetas. Elija Siguiente: Revisar.
-
En Role Name (Nombre de la función), escriba un nombre para la función; por ejemplo,
RedshiftCopyUnload
. Elija Crear rol. -
El nuevo rol está disponible para todos los usuarios en clústeres que utilizan el rol. Para restringir el acceso solo para usuarios específicos o para clústeres en regiones específicas, edite la relación de confianza del rol. Para obtener más información, consulte Restricción de acceso a los roles de IAM.
-
Asocie el rol al clúster. Puede asociar un rol de IAM a un clúster cuando crea el clúster o agrega el rol a un clúster existente. Para obtener más información, consulte Asociación de roles de IAM a los clústeres.
nota
Para restringir el acceso a datos específicos, utilice un rol de IAM que otorgue los privilegios mínimos necesarios.