Creación de un rol de IAM como predeterminado para Amazon Redshift - Amazon Redshift

Creación de un rol de IAM como predeterminado para Amazon Redshift

Al crear roles de IAM a través de la consola de Redshift, Amazon Redshift crea los roles mediante programación en su Cuenta de AWS y adjunta automáticamente las políticas existentes administradas por AWS a ellos. Este enfoque significa que puede permanecer dentro de la consola de Redshift y no tiene que cambiar a la consola de IAM para crear roles. Para obtener un control pormenorizado de los permisos de un rol de IAM existente creado en la consola de Amazon Redshift, puede adjuntar una política administrada personalizada al rol de IAM.

Información general de los roles de IAM creados en la consola

Cuando utiliza la consola de Amazon Redshift para crear roles de IAM, Amazon Redshift realiza un seguimiento de todos los roles de IAM creados a través de la consola. Amazon Redshift preselecciona el rol de IAM predeterminado más reciente para crear todos los clústeres nuevos y restaurar clústeres a partir de instantáneas.

Puede crear un rol de IAM a través de la consola que tiene una política con permisos para ejecutar comandos SQL. Estos comandos incluyen COPY, UNLOAD, CREATE EXTERNAL FUNCTION, CREATE EXTERNAL TABLE, CREATE EXTERNAL SCHEMA, CREATE MODEL o CREATE LIBRARY. De forma opcional, puede obtener un control más pormenorizado del acceso de los usuarios a sus recursos de AWS creando y adjuntando políticas personalizadas al rol de IAM.

Cuando crea un rol de IAM y lo configura como predeterminado para el clúster mediante la consola, no tiene que proporcionar el nombre de recurso de Amazon (ARN) del rol de IAM para realizar la autenticación y la autorización.

Uso de los roles de IAM creados en la consola

El rol de IAM que crea a través de la consola para su clúster tiene la política administrada AmazonRedshiftAllCommandsFullAccess adjunta de forma automática. Este rol de IAM permite a Amazon Redshift copiar, descargar, consultar y analizar datos de los recursos de AWS de su cuenta de IAM. La política administrada proporciona acceso a las operaciones COPY, UNLOAD, CREATE EXTERNAL FUNCTION, CREATE EXTERNAL SCHEMA, CREATE MODEL y CREATE LIBRARY. La política también concede permisos para ejecutar instrucciones SELECT para servicios relacionados de AWS, como Amazon S3, Amazon CloudWatch Logs, Amazon SageMaker y AWS Glue.

Los comandos CREATE EXTERNAL FUNCTION, CREATE EXTERNAL SCHEMA, CREATE MODEL y CREATE LIBRARY tienen una palabra clave default. Para esta palabra clave para estos comandos, Amazon Redshift utiliza el rol de IAM establecido como predeterminado y asociado al clúster cuando se ejecuta el comando. Puede ejecutar el comando DEFAULT_IAM_ROLE, para verificar el rol de IAM predeterminado actual que está adjunto al clúster.

Para controlar los privilegios de acceso del rol de IAM creado y establecido como predeterminado para el clúster de Redshift, utilice el privilegio ASSUMEROLE. Este controlador de acceso se aplica a los usuarios y grupos de la base de datos cuando ejecutan comandos, como los enumerados anteriormente. Después de conceder el privilegio ASSUMEROLE a un usuario o un grupo para un rol de IAM, el usuario o el grupo puede asumir ese rol cuando se ejecuten estos comandos. Mediante el uso del privilegio ASSUMEROLE, puede conceder acceso a los comandos adecuados según sea necesario.

Con la consola de Amazon Redshift, puede hacer lo siguiente:

Permisos de la política administrada AmazonRedShiftAllCommandsFullAccess

En el siguiente ejemplo, se muestran los permisos de la política administrada AmazonRedshiftAllCommandsFullAccess que permite ciertas acciones para el rol de IAM que se configura como predeterminado para su clúster. El rol de IAM con políticas de permisos adjuntas autoriza lo que un usuario o grupo puede y no puede hacer. Con estos permisos, puede ejecutar el comando COPY desde Amazon S3, ejecutar UNLOAD y utilizar el comando CREATE MODEL.

{ "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetBucketAcl", "s3:GetBucketCors", "s3:GetEncryptionConfiguration", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:ListMultipartUploadParts", "s3:ListBucketMultipartUploads", "s3:PutObject", "s3:PutBucketAcl", "s3:PutBucketCors", "s3:DeleteObject", "s3:AbortMultipartUpload", "s3:CreateBucket" ], "Resource": [ "arn:aws:s3:::redshift-downloads", "arn:aws:s3:::redshift-downloads/*", "arn:aws:s3:::*redshift*", "arn:aws:s3:::*redshift*/*" ] }

En el siguiente ejemplo, se muestran los permisos de la política administrada AmazonRedshiftAllCommandsFullAccess que permite ciertas acciones para el rol de IAM que se configura como predeterminado para el clúster. El rol de IAM con políticas de permisos adjuntas autoriza lo que un usuario o grupo puede y no puede hacer. Con los siguientes permisos, puede ejecutar el comando CREATE EXTERNAL FUNCTION.

{ "Action": [ "lambda:InvokeFunction" ], "Resource": "arn:aws:lambda:*:*:function:*redshift*" }

En el siguiente ejemplo, se muestran los permisos de la política administrada AmazonRedshiftAllCommandsFullAccess que permite ciertas acciones para el rol de IAM que se configura como predeterminado para el clúster. El rol de IAM con políticas de permisos adjuntas autoriza lo que un usuario o grupo puede y no puede hacer. Con los siguientes permisos, puede ejecutar los comandos CREATE EXTERNAL SCHEMA y CREATE EXTERNAL TABLE necesarios para Amazon Redshift Spectrum.

{ "Effect": "Allow", "Action": [ "glue:CreateDatabase", "glue:DeleteDatabase", "glue:GetDatabase", "glue:GetDatabases", "glue:UpdateDatabase", "glue:CreateTable", "glue:DeleteTable", "glue:BatchDeleteTable", "glue:UpdateTable", "glue:GetTable", "glue:GetTables", "glue:BatchCreatePartition", "glue:CreatePartition", "glue:DeletePartition", "glue:BatchDeletePartition", "glue:UpdatePartition", "glue:GetPartition", "glue:GetPartitions", "glue:BatchGetPartition" ], "Resource": [ "arn:aws:glue:*:*:table/*redshift*/*", "arn:aws:glue:*:*:catalog", "arn:aws:glue:*:*:database/*redshift*" ] }

En el siguiente ejemplo, se muestran los permisos de la política administrada AmazonRedshiftAllCommandsFullAccess que permite ciertas acciones para el rol de IAM configurado como predeterminado para el clúster. El rol de IAM con políticas de permisos adjuntas autoriza lo que un usuario o grupo puede y no puede hacer. Con los siguientes permisos, puede ejecutar el comando CREATE EXTERNAL SCHEMA mediante consultas federadas.

{ "Effect": "Allow", "Action": [ "secretsmanager:GetResourcePolicy", "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:ListSecretVersionIds" ], "Resource": [ "arn:aws:secretsmanager:*:*:secret:*Redshift*" ] }, { "Effect": "Allow", "Action": [ "secretsmanager:GetRandomPassword", "secretsmanager:ListSecrets" ], "Resource": "*", "Condition": { "StringEquals": { "secretsmanager:ResourceTag/Redshift": "true" } } },

Administración de roles de IAM creados para un clúster mediante la consola

Para crear, modificar y eliminar roles de IAM creados desde la consola de Amazon Redshift, utilice la sección Clusters (Clústeres) de la consola.

Creación de un rol de IAM como predeterminado

En la consola, puede crear el rol de IAM para su clúster que tiene la política administrada AmazonRedshiftAllCommandsFullAccess adjunta de forma automática. El nuevo rol de IAM que cree permite a Amazon Redshift copiar, cargar, consultar y analizar datos de los recursos de Amazon de su cuenta de IAM.

Solo puede haber un rol de IAM configurado como predeterminado para un clúster. Si crea otro rol de IAM como el predeterminado del clúster cuando un rol de IAM existente está asignado actualmente como predeterminado, el nuevo rol de IAM sustituye al otro como predeterminado.

Para crear un nuevo clúster y un rol de IAM establecido como predeterminado para el nuevo clúster
  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon Redshift en https://console.aws.amazon.com/redshiftv2/.

  2. En el menú de navegación, elija Clusters (Clústeres). Se enumeran los clústeres de su cuenta en la Región de AWS actual. Se muestra en la lista un subconjunto de propiedades de cada clúster en columnas.

  3. Seleccione Create cluster (Crear clúster) para crearlo.

  4. Siga las instrucciones en la página de la consola para introducir las propiedades de la Cluster configuration (Configuración del clúster). Para obtener más información acerca de este paso, consulte Creación de un clúster.

  5. (Opcional) Elija Load sample data (Cargar datos de muestra) para cargar los datos de muestra configurados en el clúster de Amazon Redshift para comenzar a utilizar el editor de consultas para consultar datos.

    Si se encuentra detrás de un firewall, el puerto de la base de datos debe ser un puerto abierto que acepta conexiones entrantes.

  6. Siga las instrucciones en la página de la consola para ingresar las propiedades de las Database configurations (Configuraciones de la base de datos).

  7. En Cluster permissions (Permisos de clúster), desde Manage IAM roles (Administrar roles de IAM), elija Create IAM role (Crear rol de IAM).

  8. Especifique un bucket de Amazon S3 para que el rol de IAM tenga acceso, mediante la elección de uno de los siguientes métodos:

    • Elija No additional Amazon S3 bucket (Sin bucket de Amazon S3 adicional), para crear el rol de IAM sin especificar buckets específicos de Amazon S3.

    • Elija Any Amazon S3 bucket (Cualquier bucket de Amazon S3) para permitir a los usuarios que tienen acceso a su clúster de Amazon Redshift acceder también a cualquier bucket de Amazon S3 y a su contenido en su Cuenta de AWS.

    • Elija Specific Amazon S3 buckets (Buckets de Amazon S3 específicos) para especificar uno o varios buckets de Amazon S3 a los que el rol de IAM que se está creando tiene permiso para acceder. A continuación, elija uno o más buckets de Amazon S3 de la tabla.

  9. Elija Create IAM role as default (Crear un rol de IAM como predeterminado). Amazon Redshift crea y configura automáticamente el rol de IAM como predeterminado para su clúster.

  10. Seleccione Create cluster (Crear clúster) para crearlo. El clúster tardará varios minutos antes de estar listo para su uso.

Eliminación de roles de IAM del clúster

Puede eliminar uno o varios roles de IAM del clúster.

Para eliminar roles de IAM del clúster
  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon Redshift en https://console.aws.amazon.com/redshiftv2/.

  2. En el menú de navegación, elija Clusters (Clústeres). Se enumeran los clústeres de su cuenta en la Región de AWS actual. Se muestra en la lista un subconjunto de propiedades de cada clúster en columnas.

  3. Elija el clúster del que desea eliminar el rol de IAM.

  4. En Cluster permissions (Permisos de clúster), elija uno o varios roles de IAM que desea eliminar del clúster.

  5. Desde Manage IAM roles (Administrar roles de IAM), elija Remove IAM roles (Eliminar roles de IAM).

Asociación de roles de IAM al clúster

Puede asociar uno o más roles de IAM al clúster.

Para asociar el rol de IAM al clúster
  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon Redshift en https://console.aws.amazon.com/redshiftv2/.

  2. En el menú de navegación, elija Clusters (Clústeres). Se enumeran los clústeres de su cuenta en la Región de AWS actual. Se muestra en la lista un subconjunto de propiedades de cada clúster en columnas.

  3. Elija el clúster al que desea asociar los roles de IAM.

  4. En Cluster permissions (Permisos de clúster), elija uno o varios roles de IAM que desea asociar con el clúster.

  5. Desde Manage IAM roles (Administrar roles de IAM), elija Remove IAM roles (Asociar roles de IAM).

  6. Elija uno o más roles de IAM para asociarlos al clúster.

  7. Elija Associate IAM roles (Asociar roles de IAM).

Configurar un rol de IAM como predeterminado

Puede configurar un rol de IAM como predeterminado para el clúster.

Para convertir un rol de IAM en el predeterminado del clúster
  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon Redshift en https://console.aws.amazon.com/redshiftv2/.

  2. En el menú de navegación, elija Clusters (Clústeres). Se enumeran los clústeres de su cuenta en la Región de AWS actual. Se muestra en la lista un subconjunto de propiedades de cada clúster en columnas.

  3. Elija el clúster para el que desea configurar un rol de IAM predeterminado.

  4. En Cluster permissions (Permisos de clúster), desde Associated IAM roles (Roles de IAM asociados), elija un rol de IAM que desee convertir en predeterminado para el clúster.

  5. En Set default (Configurar predeterminado), elija Make default (Convertir en predeterminado).

  6. Cuando se le pregunte, elija Set default (Configurar predeterminado) para confirmar el rol de IAM especificado como predeterminado.

Hacer que un rol de IAM ya no sea predeterminado para el clúster

Puede hacer que un rol de IAM ya no sea predeterminado para el clúster.

Para borrar un rol de IAM como el predeterminado del clúster
  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon Redshift en https://console.aws.amazon.com/redshiftv2/.

  2. En el menú de navegación, elija Clusters (Clústeres). Se enumeran los clústeres de su cuenta en la Región de AWS actual. Se muestra en la lista un subconjunto de propiedades de cada clúster en columnas.

  3. Elija el clúster al que desea asociar los roles de IAM.

  4. En Cluster permissions (Permisos de clúster), desde Associated IAM roles (Roles de IAM asociados), elija el rol de IAM predeterminado.

  5. En Set default (Configurar predeterminado), elija Clear default (Borrar predeterminado).

  6. Cuando se le pregunte, elija Clear default (Borrar predeterminado) para confirmar la eliminación del rol de IAM especificado como predeterminado.

Administración de roles de IAM creados en el clúster mediante la AWS CLI

Puede administrar roles de IAM creados en el clúster mediante la AWS CLI.

Para crear un clúster de Amazon Redshift con un rol de IAM configurado como predeterminado

Para crear un clúster de Amazon Redshift con un rol de IAM configurado como predeterminado para el clúster, utilice el comando aws redshift create-cluster de la AWS CLI.

Los siguientes comandos de la AWS CLI crean un clúster de Amazon Redshift y el rol de IAM denominado myrole1. El comando de la AWS CLI también configura myrole1 como predeterminado para el clúster.

aws redshift create-cluster \ --node-type dc2.large \ --number-of-nodes 2 \ --master-username adminuser \ --master-user-password TopSecret1 \ --cluster-identifier mycluster \ --iam-roles 'arn:aws:iam::012345678910:role/myrole1' 'arn:aws:iam::012345678910:role/myrole2' \ --default-iam-role-arn 'arn:aws:iam::012345678910:role/myrole1'

El siguiente fragmento es un ejemplo de la respuesta.

{ "Cluster": { "ClusterIdentifier": "mycluster", "NodeType": "dc2.large", "MasterUsername": "adminuser", "DefaultIamRoleArn": "arn:aws:iam::012345678910:role/myrole1", "IamRoles": [ { "IamRoleArn": "arn:aws:iam::012345678910:role/myrole1", "ApplyStatus": "adding" }, { "IamRoleArn": "arn:aws:iam::012345678910:role/myrole2", "ApplyStatus": "adding" } ] ... } }

Para agregar uno o más roles de IAM a un clúster de Amazon Redshift

Para agregar uno o más roles de IAM asociados al clúster, utilice el comando aws redshift modify-cluster-iam-roles de la AWS CLI.

Los siguientes comandos de la AWS CLI agregan myrole3 y myrole4 al clúster.

aws redshift modify-cluster-iam-roles \ --cluster-identifier mycluster \ --add-iam-roles 'arn:aws:iam::012345678910:role/myrole3' 'arn:aws:iam::012345678910:role/myrole4'

El siguiente fragmento es un ejemplo de la respuesta.

{ "Cluster": { "ClusterIdentifier": "mycluster", "NodeType": "dc2.large", "MasterUsername": "adminuser", "DefaultIamRoleArn": "arn:aws:iam::012345678910:role/myrole1", "IamRoles": [ { "IamRoleArn": "arn:aws:iam::012345678910:role/myrole1", "ApplyStatus": "in-sync" }, { "IamRoleArn": "arn:aws:iam::012345678910:role/myrole2", "ApplyStatus": "in-sync" }, { "IamRoleArn": "arn:aws:iam::012345678910:role/myrole3", "ApplyStatus": "adding" }, { "IamRoleArn": "arn:aws:iam::012345678910:role/myrole4", "ApplyStatus": "adding" } ], ... } }

Para eliminar uno o más roles de IAM desde un clúster de Amazon Redshift

Para eliminar uno o más roles de IAM asociados al clúster, utilice el comando aws redshift modify-cluster-iam-roles de la AWS CLI.

El siguiente comando de la AWS CLI elimina myrole3 y myrole4 del clúster.

aws redshift modify-cluster-iam-roles \ --cluster-identifier mycluster \ --remove-iam-roles 'arn:aws:iam::012345678910:role/myrole3' 'arn:aws:iam::012345678910:role/myrole4'

El siguiente fragmento es un ejemplo de la respuesta.

{ "Cluster": { "ClusterIdentifier": "mycluster", "NodeType": "dc2.large", "MasterUsername": "adminuser", "DefaultIamRoleArn": "arn:aws:iam::012345678910:role/myrole1", "IamRoles": [ { "IamRoleArn": "arn:aws:iam::012345678910:role/myrole1", "ApplyStatus": "in-sync" }, { "IamRoleArn": "arn:aws:iam::012345678910:role/myrole2", "ApplyStatus": "in-sync" }, { "IamRoleArn": "arn:aws:iam::012345678910:role/myrole3", "ApplyStatus": "removing" }, { "IamRoleArn": "arn:aws:iam::012345678910:role/myrole4", "ApplyStatus": "removing" } ], ... } }

Para configurar un rol de IAM asociado como predeterminado para el clúster

Para configurar un rol de IAM asociado como predeterminado para el clúster, utilice el comando aws redshift modify-cluster-iam-roles de la AWS CLI.

El siguiente comando de la AWS CLI configura myrole2 como predeterminado para el clúster.

aws redshift modify-cluster-iam-roles \ --cluster-identifier mycluster \ --default-iam-role-arn 'arn:aws:iam::012345678910:role/myrole2'

El siguiente fragmento es un ejemplo de la respuesta.

{ "Cluster": { "ClusterIdentifier": "mycluster", "NodeType": "dc2.large", "MasterUsername": "adminuser", "DefaultIamRoleArn": "arn:aws:iam::012345678910:role/myrole2", "IamRoles": [ { "IamRoleArn": "arn:aws:iam::012345678910:role/myrole1", "ApplyStatus": "in-sync" }, { "IamRoleArn": "arn:aws:iam::012345678910:role/myrole2", "ApplyStatus": "in-sync" } ], ... } }

Para configurar un rol de IAM no asociado como predeterminado para el clúster

Para configurar un rol de IAM no asociado como predeterminado para el clúster, utilice el comando aws redshift modify-cluster-iam-roles de la AWS CLI.

El siguiente comando de la AWS CLI agrega myrole2 al clúster de Amazon Redshift y lo configura como predeterminado para el clúster.

aws redshift modify-cluster-iam-roles \ --cluster-identifier mycluster \ --add-iam-roles 'arn:aws:iam::012345678910:role/myrole3' \ --default-iam-role-arn 'arn:aws:iam::012345678910:role/myrole3'

El siguiente fragmento es un ejemplo de la respuesta.

{ "Cluster": { "ClusterIdentifier": "mycluster", "NodeType": "dc2.large", "MasterUsername": "adminuser", "DefaultIamRoleArn": "arn:aws:iam::012345678910:role/myrole3", "IamRoles": [ { "IamRoleArn": "arn:aws:iam::012345678910:role/myrole1", "ApplyStatus": "in-sync" }, { "IamRoleArn": "arn:aws:iam::012345678910:role/myrole2", "ApplyStatus": "in-sync" }, { "IamRoleArn": "arn:aws:iam::012345678910:role/myrole3", "ApplyStatus": "adding" } ], ... } }

Para restaurar un clúster a partir de una instantánea y configurar un rol de IAM como predeterminado para este

Cuando restaura el clúster desde una instantánea, puede asociar un rol de IAM existente o crear uno nuevo y configurarlo como predeterminado para el clúster.

Para restaurar un clúster de Amazon Redshift desde una instantánea y configurar un rol de IAM como predeterminado para el clúster, utilice el comando aws redshift restore-from-cluster-snapshot de la AWS CLI.

El siguiente comando de la AWS CLI restaura el clúster desde una instantánea y configura myrole2 como predeterminado para el clúster.

aws redshift restore-from-cluster-snapshot \ --cluster-identifier mycluster-clone \ --snapshot-identifier my-snapshot-id --iam-roles 'arn:aws:iam::012345678910:role/myrole1' 'arn:aws:iam::012345678910:role/myrole2' \ --default-iam-role-arn 'arn:aws:iam::012345678910:role/myrole1'

El siguiente fragmento es un ejemplo de la respuesta.

{ "Cluster": { "ClusterIdentifier": "mycluster-clone", "NodeType": "dc2.large", "MasterUsername": "adminuser", "DefaultIamRoleArn": "arn:aws:iam::012345678910:role/myrole1", "IamRoles": [ { "IamRoleArn": "arn:aws:iam::012345678910:role/myrole1", "ApplyStatus": "adding" }, { "IamRoleArn": "arn:aws:iam::012345678910:role/myrole2", "ApplyStatus": "adding" } ], ... } }