

 Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del parche 198. Las UDF de Python existentes seguirán funcionando hasta el 30 de junio de 2026. Para obtener más información, consulte la [publicación del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Parámetros de autorización
<a name="copy-parameters-authorization"></a>

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) 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:
+ [Permisos de IAM para COPY, UNLOAD y CREATE LIBRARY](copy-usage_notes-access-permissions.md#copy-usage_notes-iam-permissions)
+ [Control de acceso con base en roles](copy-usage_notes-access-permissions.md#copy-usage_notes-access-role-based)
+ [Control de acceso basado en claves](copy-usage_notes-access-permissions.md#copy-usage_notes-access-key-based)

Utilice una de las siguientes opciones para brindar autorización al comando COPY: 
+ [Uso del parámetro IAM\$1ROLE](#copy-iam-role)Parámetro de 
+ [Uso de los parámetros ACCESS\$1KEY\$1ID y SECRET\$1ACCESS\$1KEY](#copy-access-key-id)Parámetros 
+ [Uso del parámetro CREDENTIALS](#copy-credentials)Cláusula 

## Uso del parámetro IAM\$1ROLE
<a name="copy-iam-role"></a>

### IAM\$1ROLE
<a name="copy-iam-role-iam"></a>

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\$1ROLE, no puede utilizar ACCESS\$1KEY\$1ID, SECRET\$1ACCESS\$1KEY, SESSION\$1TOKEN ni CREDENTIALS.

A continuación, se muestra la sintaxis del parámetro IAM\$1ROLE. 

```
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](copy-usage_notes-access-permissions.md#copy-usage_notes-access-role-based). 

## Uso de los parámetros ACCESS\$1KEY\$1ID y SECRET\$1ACCESS\$1KEY
<a name="copy-access-key-id"></a>

### ACCESS\$1KEY\$1ID, SECRET\$1ACCESS\$1KEY
<a name="copy-access-key-id-access"></a>

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\$1ROLE. Para obtener más información, consulte [Control de acceso con base en roles](copy-usage_notes-access-permissions.md#copy-usage_notes-access-role-based). 

### SESSION\$1TOKEN
<a name="copy-token"></a>

El token de sesión para utilizar con credenciales de acceso temporales. Cuando se especifica SESSION\$1TOKEN, también debe utilizar ACCESS\$1KEY\$1ID y SECRET\$1ACCESS\$1KEY para proporcionar credenciales temporales de clave de acceso. Si especifica SESSION\$1TOKEN, no puede utilizar IAM\$1ROLE ni CREDENTIALS. ‎Para obtener más información, consulte [Credenciales de seguridad temporales](copy-usage_notes-access-permissions.md#r_copy-temporary-security-credentials) 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](copy-usage_notes-access-permissions.md#copy-usage_notes-access-role-based). 

A continuación se muestra la sintaxis del parámetro SESSION\$1TOKEN con los parámetros ACCESS\$1KEY\$1ID y SECRET\$1ACCESS\$1KEY. 

```
ACCESS_KEY_ID '<access-key-id>'
SECRET_ACCESS_KEY '<secret-access-key>'
SESSION_TOKEN '<temporary-token>';
```

Si especifica SESSION\$1TOKEN, no puede utilizar CREDENTIALS ni IAM\$1ROLE. 

## Uso del parámetro CREDENTIALS
<a name="copy-credentials"></a>

### CREDENTIALS
<a name="copy-credentials-cred"></a>

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\$1ROLE ni con ACCESS\$1KEY\$1ID y SECRET\$1ACCESS\$1KEY.

A continuación, se muestra la sintaxis del parámetro CREDENTIALS.

```
[WITH] CREDENTIALS [AS] 'credentials-args'
```

**nota**  
Para mayor flexibilidad, recomendamos utilizar el parámetro [IAM\$1ROLE](#copy-iam-role-iam) en lugar del parámetro CREDENTIALS.

De manera opcional, si se usa el parámetro [ENCRYPTED](copy-parameters-data-source-s3.md#copy-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](copy-usage_notes-access-permissions.md#copy-usage_notes-access-role-based.phrase) o [key-based access control](copy-usage_notes-access-permissions.md#copy-usage_notes-access-key-based.phrase). 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](copy-usage_notes-access-permissions.md#copy-usage_notes-iam-permissions). 

**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>'
```

Un comando COPY que utilice un control de acceso basado en roles con credenciales temporales se parecería a la siguiente instrucción de ejemplo: 

```
COPY customer FROM 's3://amzn-s3-demo-bucket/mydata' 
CREDENTIALS
'aws_access_key_id=<temporary-access-key-id>;aws_secret_access_key=<temporary-secret-access-key-id>;token=<temporary-token>'
```

 Para obtener más información, consulte [Credenciales de seguridad temporales](copy-usage_notes-access-permissions.md#r_copy-temporary-security-credentials).

Si se utiliza el parámetro [ENCRYPTED](copy-parameters-data-source-s3.md#copy-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>'
```

Un comando COPY que utilice un control de acceso basado en roles con una clave de cifrado se parecería a la siguiente instrucción de ejemplo:

```
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>'
```