Información general sobre la administración de los permisos de acceso a los recursos de Amazon Redshift - Amazon Redshift

Información general sobre la administración de los permisos de acceso a los recursos de Amazon Redshift

Cada recurso de AWS pertenece a una cuenta de AWS, y los permisos para crear u obtener acceso a los recursos se rigen por las políticas de permisos. Los administradores de cuentas pueden asociar políticas de permisos a identidades de IAM (es decir, usuarios, grupos y roles). Algunos servicios (como AWS Lambda) también permiten asociar políticas de permisos a recursos.

nota

Un administrador de cuentas (o usuario administrador) es un usuario que tiene privilegios de administrador. Para obtener más información, consulte Prácticas recomendadas de IAM en la Guía del usuario de IAM.

Cuando concede permisos, decide quién debe obtener los permisos, para qué recursos se obtienen permisos y qué acciones específicas desea permitir en esos recursos.

Operaciones y recursos de Amazon Redshift

Amazon Redshift proporciona claves de contexto de condición, acciones y recursos específicos del servicio para su uso en las políticas de permisos de IAM.

Permisos de acceso a Amazon Redshift, Amazon Redshift sin servidor, API de datos de Amazon Redshift y editor de consultas de Amazon Redshift v2

Cuando configura Control de acceso, escribe políticas de permisos que puede adjuntar a una identidad de IAM (políticas basadas en identidad). Para obtener más información detallada de referencia, consulte los siguientes temas en la Referencia de autorizaciones de servicio:

Esta referencia de autorización del servicio contiene información sobre las operaciones de la API que se pueden utilizar en una política de IAM. También incluye el recurso de AWS para el que puede conceder los permisos y las claves de condición que puede incluir para controlar el acceso con mayor precisión. Para obtener más información acerca de las condiciones, consulte Uso de condiciones de las políticas de IAM para control de acceso preciso.

Las acciones se especifican en el campo Action de la política, el valor del recurso en el campo Resource de la política y las condiciones en el campo Condition de la política. Para especificar una acción para Amazon Redshift, use el prefijo redshift: seguido del nombre de operación de la API (por ejemplo, redshift:CreateCluster).

Titularidad de los recursos

El propietario del recurso es la cuenta de AWS que ha creado el recurso. Es decir, el propietario de los recursos es la cuenta de AWS de la entidad principal (cuenta raíz, usuario de IAM o rol de IAM) que autentica la solicitud que crea el recurso. Los siguientes ejemplos ilustran cómo funciona:

  • Si utiliza las credenciales de la cuenta raíz de su cuenta de AWS para crear un clúster de base de datos, su cuenta de AWS será la propietaria del recurso de Amazon Redshift.

  • Si crea un rol de IAM en su cuenta de AWS con permisos para crear recursos de Amazon Redshift, cualquier persona que pueda asumir el rol podrá crear recursos de Amazon Redshift. La cuenta de AWS a la que pertenece el rol será la propietaria de los recursos de Amazon Redshift.

  • Si crea un usuario de IAM en su cuenta de AWS y le concede permisos para crear recursos de Amazon Redshift, ese usuario también podrá crear recursos de Amazon Redshift. No obstante, su cuenta de AWS, a la que pertenece el usuario, será la propietaria de los recursos de Amazon Redshift. En la mayoría de los casos, no se recomienda este método. Recomendamos crear un rol de IAM y adjuntar permisos al rol y, después, asignarlo a un usuario.

Administración del acceso a los recursos de

Una política de permisos describe quién tiene acceso a qué. En la siguiente sección se explican las opciones disponibles para crear políticas de permisos.

nota

En esta sección, también se explica el uso de IAM en el contexto de Amazon Redshift. No se proporciona información detallada sobre el servicio de IAM. Para ver la documentación completa de IAM, consulte What is IAM? (¿Qué es IAM?) en la Guía del usuario de IAM. Para obtener más información acerca de la sintaxis y las descripciones de las políticas del IAM, consulte Referencia de políticas de AWS IAM en la Guía del usuario de IAM.

Las políticas asociadas a una identidad de IAM se denominan políticas basadas en identidad (políticas de IAM) y las políticas asociadas a un recurso se denominan políticas basadas en recursos. Amazon Redshift solo admite políticas basadas en identidad (políticas del IAM).

Políticas basadas en identidades (políticas de IAM)

Puede asignar permisos adjuntando políticas a una función de IAM y, a continuación, asignando esa función a un usuario o grupo. A continuación, se ofrece un ejemplo de una política que contiene permisos para crear, eliminar, modificar y reiniciar clústeres de Amazon Redshift para su cuenta de AWS.

{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowManageClusters", "Effect":"Allow", "Action": [ "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:ModifyCluster", "redshift:RebootCluster" ], "Resource":"*" } ] }

Para obtener más información acerca del uso de políticas basadas en identidades con Amazon Redshift, consulte Uso de políticas basadas en identidad (políticas de IAM) para Amazon Redshift. Para obtener más información acerca de los usuarios, los grupos, los roles y los permisos, consulte Identidades (usuarios, grupos y roles) en la Guía del usuario de IAM.

Políticas basadas en recursos

Otros servicios, como Amazon S3, también admiten políticas de permisos basadas en recursos. Por ejemplo, puede asociar una política a un bucket de S3 para administrar los permisos de acceso a dicho bucket. Amazon Redshift no admite políticas basadas en recursos.

Especificación de elementos de política: acciones, efectos, recursos y entidades principales

En cada recurso de Amazon Redshift (consulte Operaciones y recursos de Amazon Redshift), el servicio define un conjunto de operaciones de la API (consulte Acciones). Para conceder permisos para estas operaciones de la API, Amazon Redshift define un conjunto de acciones que usted puede especificar en una política. Para realizar una operación API pueden ser necesarios permisos para más de una acción.

A continuación, se indican los elementos básicos de la política:

  • Recurso: en una política, se usa un nombre de recurso de Amazon (ARN) para identificar el recurso al que se aplica la política. Para obtener más información, consulte Operaciones y recursos de Amazon Redshift.

  • Acción: utilice palabras clave de acción para identificar las operaciones del recurso que desea permitir o denegar. Por ejemplo, el permiso redshift:DescribeClusters concede a los usuarios permiso para realizar la operación DescribeClusters de Amazon Redshift.

  • Efecto: especifique el efecto que se producirá cuando el usuario solicite la acción específica; puede ser permitir o denegar. Si no concede acceso de forma explícita (permitir) a un recurso, el acceso se deniega implícitamente. También puede denegar explícitamente el acceso a un recurso para asegurarse de que un usuario no pueda obtener acceso a él, aunque otra política le conceda acceso.

  • Entidad principal: en las políticas basadas en identidades (políticas de IAM), el usuario al que se asocia esta política es la entidad principal implícita. Para las políticas basadas en recursos, debe especificar el usuario, la cuenta, el servicio u otra entidad que desee que reciba permisos (se aplica solo a las políticas basadas en recursos). Amazon Redshift no admite políticas basadas en recursos.

Para obtener más información acerca de la sintaxis y las descripciones de las políticas del IAM, consulte Referencia de políticas de AWS IAM en la Guía del usuario de IAM.

Para ver una tabla con todas las acciones de la API de Amazon Redshift y los recursos a los que se aplican, consulte Permisos de acceso a Amazon Redshift, Amazon Redshift sin servidor, API de datos de Amazon Redshift y editor de consultas de Amazon Redshift v2.

Especificación de las condiciones de una política

Al conceder permisos, puede utilizar el lenguaje de la política de acceso para especificar las condiciones en las que se debe aplicar una política. Por ejemplo, es posible que desee que solo se aplique una política después de una fecha específica. Para obtener más información acerca de cómo especificar condiciones en un lenguaje de la política de acceso, consulte Elementos de la política de JSON de IAM: Condición en la Guía del usuario de IAM.

Para identificar las condiciones en las que se aplica una política de permisos, incluya un elemento de Condition en su política de permisos de IAM. Por ejemplo, puede crear una política que le permita a un usuario crear un clúster mediante el uso de la acción redshift:CreateCluster y puede agregar un elemento de Condition para limitar al usuario a que lo haga solamente en una región específica. Para obtener más información, consulte Uso de condiciones de las políticas de IAM para control de acceso preciso. Para ver una lista con todos los valores de clave de condición y las acciones y los recursos de Amazon Redshift a los que se aplican, consulte Permisos de acceso a Amazon Redshift, Amazon Redshift sin servidor, API de datos de Amazon Redshift y editor de consultas de Amazon Redshift v2.

Uso de condiciones de las políticas de IAM para control de acceso preciso

En Amazon Redshift, puede usar claves de condición para restringir el acceso a los recursos en función de las etiquetas para tales recursos. A continuación, se muestran claves de condición de Amazon Redshift comunes.

Clave de condición Descripción

aws:RequestTag

Requiere que los usuarios incluyan una clave de etiqueta (nombre) y un valor cada vez que crean un recurso. Para obtener más información, consulte aws:RequestTag en la Guía del usuario de IAM.

aws:ResourceTag

Restringe el acceso del usuario a los recursos, en función de claves de etiqueta y valores específicos. Para obtener más información, consulte aws:ResourceTag en la Guía del usuario de IAM.

aws:TagKeys

Utilice esta clave para comparar las claves de etiqueta de una solicitud con las claves que especifique en la política. Para obtener más información, consulte aws:TagKeys en la Guía del usuario de IAM.

Para obtener información acerca de etiquetas, consulte Etiquetado de recursos en Amazon Redshift.

Para obtener una lista de las acciones de API compatibles con las claves de condición redshift:RequestTag y redshift:ResourceTag, consulte Permisos de acceso a Amazon Redshift, Amazon Redshift sin servidor, API de datos de Amazon Redshift y editor de consultas de Amazon Redshift v2.

Las siguientes claves de condición se pueden usar con la acción GetClusterCredentials de Amazon Redshift.

Clave de condición Descripción

redshift:DurationSeconds

Limita el número de segundos que se puede especificar para la duración.

redshift:DbName

Restringe los nombres de base de datos que se pueden especificar.

redshift:DbUser

Restringe los nombres de usuarios de base de datos que se pueden especificar.

Ejemplo 1: restricción del acceso mediante el uso de la clave de condición aws:ResourceTag

Use la siguiente política de IAM para permitir que un usuario pueda modificar a un clúster de Amazon Redshift solo de una cuenta de AWS específica en la región us-west-2 con una etiqueta denominada environment con el valor de etiqueta test.

{ "Version": "2012-10-17", "Statement": { "Sid":"AllowModifyTestCluster", "Effect": "Allow", "Action": "redshift:ModifyCluster", "Resource": "arn:aws:redshift:us-west-2:123456789012:cluster:*", "Condition": { "StringEquals": { "aws:ResourceTag/environment": "test" } } } }

Ejemplo 2: restricción del acceso mediante el uso de la clave de condición aws:RequestTag

Use la siguiente política de IAM para permitir que un usuario pueda crear un clúster de Amazon Redshift solo si el comando para crear el clúster contiene una etiqueta denominada usage y el valor de etiqueta production. La condición con aws:TagKeys y el modificador ForAllValues especifica que solo las claves costcenter y usage se pueden especificar en la solicitud.

{ "Version": "2012-10-17", "Statement": { "Sid":"AllowCreateProductionCluster", "Effect": "Allow", "Action": [ "redshift:CreateCluster", "redshift:CreateTags" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/usage": "production" }, "ForAllValues:StringEquals": { "aws:TagKeys": [ "costcenter", "usage" ] } } } }