

 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/). 

# Autorización de las operaciones COPY, UNLOAD, CREATE EXTERNAL FUNCTION y CREATE EXTERNAL SCHEMA mediante roles de IAM
<a name="copy-unload-iam-role"></a>

Puede utilizar el comando [COPY](https://docs.aws.amazon.com/redshift/latest/dg/r_COPY.html) para cargar (o importar) datos en Amazon Redshift y utilizar el comando [UNLOAD](https://docs.aws.amazon.com/redshift/latest/dg/r_UNLOAD.html) para descargar (o exportar) datos desde Amazon Redshift. Puede utilizar el comando CREATE EXTERNAL FUNCTION para crear funciones definidas por el usuario que invoquen funciones desde AWS Lambda. 

Con Amazon Redshift Spectrum, el comando [CREATE EXTERNAL SCHEMA](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_SCHEMA.html) se utiliza para especificar la ubicación del bucket de Amazon S3 que contiene los datos. Cuando ejecute los comandos COPY, UNLOAD o CREATE EXTERNAL SCHEMA, debe proporcionar credenciales de seguridad. Estas credenciales autorizan a su clúster de Amazon Redshift a leer o escribir datos en su lugar de destino o desde él, como un bucket de Amazon S3. 

Cuando ejecuta CREATE EXTERNAL FUNCTION, proporciona credenciales de seguridad mediante el parámetro del rol de IAM. Estas credenciales autorizan a su clúster de Amazon Redshift a invocar funciones de Lambda desde AWS Lambda. 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. Para obtener información sobre la creación de un rol de IAM, consulte [Autorización a Amazon Redshift para obtener acceso a los servicios de AWS en su nombre](authorizing-redshift-service.md).

Los usuarios necesitan acceso programático si desean interactuar con AWS fuera de la Consola de administración de AWS. 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 | 
| --- | --- | --- | 
| IAM | (Recomendado) Use credenciales de consola como 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: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/copy-unload-iam-role.html)  | 
|  Identidad del personal (Usuarios administrados en el IAM Identity Center)  | Utiliza 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: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/copy-unload-iam-role.html)  | 
| IAM | Utiliza 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html) 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: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/copy-unload-iam-role.html)  | 

Los pasos para utilizar un rol de IAM son los siguientes:
+ Cree un rol de IAM para usar con el clúster de Amazon Redshift.
+ Asocie el rol de IAM al clúster.
+ Incluya el ARN del rol de IAM cuando llame al comando COPY, UNLOAD, CREATE EXTERNAL SCHEMA o CREATE EXTERNAL FUNCTION.

# Asociación de roles de IAM a los clústeres
<a name="copy-unload-iam-role-associating-with-clusters"></a>

Cuando haya creado un rol de IAM que autorice a Amazon Redshift a acceder a otros servicios de AWS en su nombre, debe asociar ese rol con un clúster de Amazon Redshift. Debe hacerlo para poder utilizar el rol para cargar o descargar datos. 

## Permisos requeridos para asociar un rol de IAM a un clúster
<a name="copy-unload-iam-role-associating-with-clusters-perms"></a>

Para asociar un rol de IAM a un clúster, un usuario de IAM debe disponer del permiso `iam:PassRole` para dicho rol de IAM. Este permiso permite que un administrador pueda restringir los roles de IAM que un usuario puede asociar a clústeres de Amazon Redshift. Como práctica recomendada, aconsejamos asociar las políticas de permisos a un rol de IAM y luego asignarlo a los usuarios y grupos según sea necesario. Para obtener más información, consulte [Administración de identidades y accesos en Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-authentication-access-control.html).

En el siguiente ejemplo se muestra una política de IAM que se puede asociar a un usuario y que le permite realizar estas acciones: 
+ obtener los detalles de todos los clústeres de Amazon Redshift que pertenecen a esa cuenta de usuario
+ asociar cualquiera de los tres roles de IAM a uno de los dos clústeres de Amazon Redshift

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "redshift:DescribeClusters",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                 "redshift:ModifyClusterIamRoles",
                 "redshift:CreateCluster"
            ],
            "Resource": [
                 "arn:aws:redshift:us-east-1:123456789012:cluster:my-redshift-cluster",
                 "arn:aws:redshift:us-east-1:123456789012:cluster:my-second-redshift-cluster"
            ]
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": [
                "arn:aws:iam::123456789012:role/MyRedshiftRole",
                "arn:aws:iam::123456789012:role/SecondRedshiftRole",
                "arn:aws:iam::123456789012:role/ThirdRedshiftRole"
             ]
        }
    ]
}
```

------

Una vez que un usuario tenga los permisos adecuados, ese usuario puede asociar un rol de IAM con un clúster de Amazon Redshift. El rol de IAM estará listo entonces para su uso con el comando COPY u UNLOAD u otros comandos de Amazon Redshift.

Para obtener más información acerca de las políticas de IAM, consulte [Información general de las políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) en la *Guía del usuario de IAM*.

## Administración de la asociación de roles de IAM a un clúster
<a name="managing-iam-role-association-with-cluster"></a>

Puede asociar un rol de IAM con un clúster de Amazon Redshift cuando cree el clúster. O puede modificar un clúster existente y agregar o eliminar una o más asociaciones a roles de IAM. 

Tenga en cuenta lo siguiente:
+ El número máximo de roles de IAM que puede asociar está sujeto a una cuota.
+ Puede asociar un rol de IAM a varios clústeres de Amazon Redshift.
+ Puede asociar un rol de IAM a un clúster de Amazon Redshift solo si el rol de IAM y el clúster son propiedad de la misma cuenta de AWS. 

Puede administrar las asociaciones de roles de IAM a un clúster con la consola mediante el siguiente procedimiento.

**Para administrar las asociaciones a roles de IAM**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon Redshift en [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/).

1. En el menú de navegación, elija **Clusters** (Clústeres) y, a continuación, elija el clúster que desea actualizar.

1. En **Actions (Acciones)**, seleccione **Administrar roles de IAM** para mostrar la lista actual de roles de IAM asociados al clúster. 

1. En la página **Manage IAM roles (Administrar roles de IAM)**, seleccione los roles de IAM disponibles que desea agregar y luego seleccione **Add IAM role (Agregar rol de IAM)**. 

1. Seleccione **Done (Aceptar)** para guardar los cambios. 

Puede administrar las asociaciones de roles de IAM a un clúster con la AWS CLI a través de los siguientes métodos.

Para asociar un rol de IAM a un clúster cuando se crea el clúster, especifique el nombre de recurso de Amazon (ARN) del rol de IAM para el parámetro `--iam-role-arns` del comando `create-cluster`. El número máximo de roles de IAM que puede agregar cuando llama al comando `create-cluster` está sujeto a una cuota. 

La asociación y la desvinculación de roles de IAM a clústeres de Amazon Redshift es un proceso asíncrono. Llame al comando `describe-clusters` para obtener el estado de todas las asociaciones de roles de IAM a su clúster.

En el siguiente ejemplo, se asocian dos roles de IAM al clúster recién creado con el nombre `my-redshift-cluster`.

```
aws redshift create-cluster \
    --cluster-identifier "my-redshift-cluster" \
    --node-type "ra3.4xlarge" \
    --number-of-nodes 16 \
    --iam-role-arns "arn:aws:iam::123456789012:role/RedshiftCopyUnload" \
                    "arn:aws:iam::123456789012:role/SecondRedshiftRole"
```

Para asociar un rol de IAM a un clúster de Amazon Redshift existente, especifique el nombre de recurso de Amazon (ARN) del rol de IAM para el parámetro `--add-iam-roles` del comando `modify-cluster-iam-roles`. El número máximo de roles de IAM que puede agregar cuando llama al comando `modify-cluster-iam-roles` está sujeto a una cuota. 

En el siguiente ejemplo, se asocia un rol de IAM a un clúster existente con el nombre `my-redshift-cluster`.

```
aws redshift modify-cluster-iam-roles \
    --cluster-identifier "my-redshift-cluster" \
    --add-iam-roles "arn:aws:iam::123456789012:role/RedshiftCopyUnload"
```

Para desvincular un rol de IAM de un clúster, especifique el ARN del rol de IAM para el parámetro `--remove-iam-roles` del comando `modify-cluster-iam-roles`. `modify-cluster-iam-roles` El número máximo de roles de IAM que puede eliminar cuando llama al comando `modify-cluster-iam-roles` está sujeto a una cuota.

En el siguiente ejemplo, se quita la asociación de un rol de IAM para la cuenta `123456789012` de AWS de un clúster denominado `my-redshift-cluster`.

```
aws redshift modify-cluster-iam-roles \
    --cluster-identifier "my-redshift-cluster" \
    --remove-iam-roles "arn:aws:iam::123456789012:role/RedshiftCopyUnload"
```

### Descripción de asociaciones de roles de IAM a un clúster mediante la AWS CLI
<a name="w2aac37c30c30c35c31b7b9c29"></a>

Para obtener una lista de todos los roles de IAM que están asociados a un clúster de Amazon Redshift y los estados de la asociación de los roles de IAM, llame al comando `describe-clusters`. El ARN de cada rol de IAM asociado al clúster se devuelve en la lista `IamRoles` como se muestra en el siguiente resultado de ejemplo.

Los roles que se asociaron al clúster muestran un estado de `in-sync`. Los roles que se encuentran en el proceso de asociación al clúster muestran un estado de `adding`. Los roles que se están desvinculando del clúster muestran un estado de `removing`.

```
{
    "Clusters": [
        {
            "ClusterIdentifier": "my-redshift-cluster",
            "NodeType": "ra3.4xlarge",
            "NumberOfNodes": 16,
            "IamRoles": [
                {
                    "IamRoleArn": "arn:aws:iam::123456789012:role/MyRedshiftRole",
                    "IamRoleApplyStatus": "in-sync"
                },
                {
                    "IamRoleArn": "arn:aws:iam::123456789012:role/SecondRedshiftRole",
                    "IamRoleApplyStatus": "in-sync"
                }
            ],
            ...
        },
        {
            "ClusterIdentifier": "my-second-redshift-cluster",
            "NodeType": "ra3.4xlarge",
            "NumberOfNodes": 10,
            "IamRoles": [
                {
                    "IamRoleArn": "arn:aws:iam::123456789012:role/MyRedshiftRole",
                    "IamRoleApplyStatus": "in-sync"
                },
                {
                    "IamRoleArn": "arn:aws:iam::123456789012:role/SecondRedshiftRole",
                    "IamRoleApplyStatus": "in-sync"
                },
                {
                    "IamRoleArn": "arn:aws:iam::123456789012:role/ThirdRedshiftRole",
                    "IamRoleApplyStatus": "in-sync"
                }
            ],
            ...
        }
    ]
}
```

Para obtener más información acerca de cómo usar AWS CLI, consulte la *Guía del usuario de [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)*.