Parámetros de autorización
El comando COPY necesita autorización para acceder a los datos de otro recurso de AWS, incluidos los recursos de Amazon S3, Amazon EMR, Amazon DynamoDB y Amazon EC2. Puede proporcionar esa autorización si hace referencia a un rol de (IAM) de AWS Identity and Access Management que esté asociado a su clúster (role-based access control). Puede cifrar los datos de carga en Amazon S3.
En los siguientes temas se proporcionan más detalles y ejemplos de opciones de autenticación:
Utilice una de las siguientes opciones para brindar autorización al comando COPY:
-
Parámetro IAM_ROLE
-
Parámetros ACCESS_KEY_ID and SECRET_ACCESS_KEY
-
Cláusula CREDENTIALS
- IAM_ROLE { default | 'arn:aws:iam::
<Cuenta de AWS-id>
:role/<role-name>
' } -
Utilice la palabra clave predeterminada para que Amazon Redshift utilice el rol de IAM configurado como predeterminado y asociado al clúster cuando se ejecuta el comando COPY.
Utilice el nombre de recurso de Amazon (ARN), de un rol de IAM que el clúster utiliza para la autenticación y la autorización. Si especifica IAM_ROLE, no puede utilizar ACCESS_KEY_ID, SECRET_ACCESS_KEY, SESSION_TOKEN ni CREDENTIALS.
A continuación, se muestra la sintaxis del parámetro IAM_ROLE.
IAM_ROLE { default | 'arn:aws:iam::
<Cuenta de AWS-id>
:role/<role-name>
' }Para obtener más información, consulte Control de acceso con base en roles.
- ACCESS_KEY_ID 'access-key-id ' SECRET_ACCESS_KEY 'secret-access-key'
-
No se recomienda este método de autorización.
nota
En lugar de proporcionar credenciales de acceso como texto sin formato, le recomendamos encarecidamente utilizar una autenticación basada en roles mediante la especificación del parámetro IAM_ROLE. Para obtener más información, consulte Control de acceso con base en roles.
- SESSION_TOKEN 'temporary-token (token-temporal)'
-
El token de sesión para utilizar con credenciales de acceso temporales. Cuando se especifica SESSION_TOKEN, también debe utilizar ACCESS_KEY_ID y SECRET_ACCESS_KEY para proporcionar credenciales temporales de clave de acceso. Si especifica SESSION_TOKEN, no puede utilizar IAM_ROLE ni CREDENTIALS. Para obtener más información, consulte Credenciales de seguridad temporales en la Guía del usuario de IAM.
nota
En lugar de crear credenciales de seguridad temporales, le recomendamos encarecidamente utilizar una autenticación basada en roles. Cuando brinda autorización mediante un rol de IAM, Amazon Redshift crea de forma automática credenciales temporales de usuario para cada sesión. Para obtener más información, consulte Control de acceso con base en roles.
A continuación se muestra la sintaxis del parámetro SESSION_TOKEN con los parámetros ACCESS_KEY_ID y SECRET_ACCESS_KEY.
ACCESS_KEY_ID '
<access-key-id>
' SECRET_ACCESS_KEY '<secret-access-key>
' SESSION_TOKEN '<temporary-token>
';Si especifica SESSION_TOKEN, no puede utilizar CREDENTIALS ni IAM_ROLE.
- [WITH] CREDENTIALS [AS] 'credentials-args'
-
Se trata de una cláusula que indica el método que el clúster utilizará cuando obtenga acceso a otros recursos de AWS que contienen archivos de datos o archivos de manifiesto. No puede utilizar el parámetro CREDENTIALS con IAM_ROLE ni con ACCESS_KEY_ID y SECRET_ACCESS_KEY.
nota
Para mayor flexibilidad, recomendamos utilizar el parámetro IAM_ROLE en lugar del parámetro CREDENTIALS.
De manera opcional, si se usa el parámetro ENCRYPTED, la cadena credentials-args (credenciales-argumentos) también proporciona la clave de cifrado.
La cadena credentials-args distingue entre mayúsculas y minúsculas y no debe contener espacios.
Las palabras clave WITH y AS son opcionales y se ignoran.
Puede especificar role-based access control o key-based access control. En ambos casos, el rol o el usuario de IAM deben tener los permisos necesarios para acceder a los recursos de AWS especificados. Para obtener más información, consulte Permisos de IAM para COPY, UNLOAD y CREATE LIBRARY.
nota
Para salvaguardar las credenciales de AWS y proteger la información confidencial, le recomendamos encarecidamente utilizar un control de acceso basado en roles.
Para especificar un control de acceso basado en funciones, proporcione la cadena credentials-args (credenciales-argumentos) en el siguiente formato.
'aws_iam_role=arn:aws:iam::
<aws-account-id>
:role/<role-name>
'Para usar las credenciales de token temporales, debe proporcionar el ID de clave de acceso temporal, la clave de acceso secreta temporal y el token temporal. La cadena credentials-args tiene el siguiente formato.
CREDENTIALS 'aws_access_key_id=
<temporary-access-key-id>
;aws_secret_access_key=<temporary-secret-access-key>
;token=<temporary-token>
'Para obtener más información, consulte Credenciales de seguridad temporales.
Si se utiliza el parámetro ENCRYPTED, la cadena credentials-args tiene el siguiente formato, donde
<root-key>
es el valor de la clave raíz que se utilizó para cifrar los archivos.CREDENTIALS '
<credentials-args>
;master_symmetric_key=<root-key>
'Por ejemplo, el siguiente comando COPY utiliza un control de acceso basado en roles con una clave de cifrado.
copy customer from 's3://amzn-s3-demo-bucket/mydata' credentials 'aws_iam_role=arn:aws:iam::
<account-id>
:role/<role-name>
;master_symmetric_key=<root-key>
'El siguiente comando COPY muestra un control de acceso basado en roles con una clave de cifrado.
copy customer from 's3://amzn-s3-demo-bucket/mydata' credentials 'aws_iam_role=arn:aws:iam::
<aws-account-id>
:role/<role-name>
;master_symmetric_key=<root-key>
'