Asociación de roles de IAM a los clústeres
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
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.
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
{ "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 en la Guía del usuario de IAM.
Administración de la asociación de roles de IAM a un clúster
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
Inicie sesión en la AWS Management Console y abra la consola de Amazon Redshift en https://console.aws.amazon.com/redshiftv2/
. -
En el menú de navegación, elija Clusters (Clústeres) y, a continuación, elija el clúster que desea actualizar.
-
En Actions (Acciones), seleccione Administrar roles de IAM para mostrar la lista actual de roles de IAM asociados al clúster.
-
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).
-
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
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.