Uso de políticas basadas en identidad (políticas de IAM) para Amazon Redshift
Este tema contiene ejemplos de políticas basadas en identidades, donde los administradores de cuentas pueden asociar políticas de permisos a identidades de IAM (es decir, a usuarios, grupos y funciones).
importante
Le recomendamos que consulte primero los temas de introducción en los que se explican los conceptos básicos y las opciones disponibles para administrar el acceso a sus recursos de Amazon Redshift. Para obtener más información, consulte Información general sobre la administración de los permisos de acceso a los recursos de Amazon Redshift.
A continuación se muestra un ejemplo de una política de permisos. La política le permite a un usuario crear, eliminar, modificar y reiniciar todos los clústeres y, luego, le deniega permiso para eliminar o modificar todo clúster cuyo identificador comience con production
en Región de AWS us-west-2
y Cuenta de AWS 123456789012
.
{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowClusterManagement", "Action": [ "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:ModifyCluster", "redshift:RebootCluster" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid":"DenyDeleteModifyProtected", "Action": [ "redshift:DeleteCluster", "redshift:ModifyCluster" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:cluster:production*" ], "Effect": "Deny" } ] }
La política tiene dos instrucciones:
-
La primera instrucción concede permisos para que un usuario cree, elimine, modifique y reinicie clústeres. La instrucción especifica un carácter comodín (*) como el valor de
Resource
, por lo que la política se aplica a todos los recursos de Amazon Redshift que son propiedad de la cuenta raíz de AWS. -
La segunda instrucción deniega el permiso para eliminar o modificar un clúster. La instrucción especifica un Amazon Resource Name (ARN, Nombre de recurso de Amazon) de clúster para el valor de
Resource
que incluye un carácter comodín (*). Como resultado, la instrucción se aplica a todos los clústeres de Amazon Redshift que son propiedad de la cuenta raíz de AWS en la que el identificador del clúster comienza porproduction
.
Políticas administradas por AWS para Amazon Redshift
AWS aborda muchos casos de uso comunes dando políticas de IAM independientes creadas y administradas por AWS. Las políticas administradas conceden los permisos necesarios para casos de uso comunes, lo que le evita tener que investigar los permisos que se necesitan. Para obtener más información, consulte Políticas administradas por AWS en la Guía del usuario de IAM.
También puede crear sus propias políticas de IAM personalizadas para permitir las operaciones y los recursos de la API de Amazon Redshift. Puede asociar estas políticas personalizadas a los roles o grupos de IAM que requieran esos permisos.
En las siguientes secciones, se describen políticas administradas por AWS, que se pueden adjuntar a los usuarios de la cuenta y son específicas de Amazon Redshift.
AmazonRedshiftReadOnlyAccess
Concede acceso de solo lectura a todos los recursos de Amazon Redshift a una cuenta de AWS.
Puede encontrar la política AmazonRedShiftReadOnlyAccess
AmazonRedshiftFullAccess
Concede acceso completo a todos los recursos de Amazon Redshift a una cuenta de AWS. Además, esta política concede acceso total a todos los recursos de Amazon Redshift Serverless.
Puede encontrar la política AmazonRedshiftFullAccess
AmazonRedshiftQueryEditor
Concede acceso completo al editor de consultas en la consola de Amazon Redshift.
Puede encontrar la política AmazonRedshiftQueryEditor
AmazonRedshiftDataFullAccess
Concede acceso completo a todos los recursos y las operaciones de la API de datos de Amazon Redshift a una cuenta de AWS.
Puede encontrar la política AmazonRedshiftDataFullAccess
AmazonRedshiftQueryEditorV2FullAccess
Concede acceso completo a todos los recursos y las operaciones del editor de consultas v2 de Amazon Redshift. Esta política también concede acceso a otros servicios requeridos.
Puede encontrar la política AmazonRedshiftQueryEditorV2FullAccess
AmazonRedshiftQueryEditorV2NoSharing
Permite trabajar con el editor de consultas v2 de Amazon Redshift sin compartir recursos. Esta política también concede acceso a otros servicios requeridos. La entidad principal que utiliza esta política no puede etiquetar sus recursos (como consultas) para compartirlos con otras entidades principales en la misma Cuenta de AWS.
Puede encontrar la política AmazonRedshiftQueryEditorV2NoSharing
AmazonRedshiftQueryEditorV2ReadSharing
Permite trabajar con el editor de consultas v2 de Amazon Redshift con uso compartido limitado de los recursos. Esta política también concede acceso a otros servicios requeridos. La entidad principal que utiliza esta política puede etiquetar sus recursos (como consultas) para compartirlos con otras entidades principales en la misma Cuenta de AWS. La entidad principal concedida puede leer los recursos compartidos con su equipo, pero no puede actualizarlos.
Puede encontrar la política AmazonRedshiftQueryEditorV2ReadSharing
AmazonRedshiftQueryEditorV2ReadWriteSharing
Permite trabajar con el editor de consultas v2 de Amazon Redshift y compartir recursos. Esta política también concede acceso a otros servicios requeridos. La entidad principal que utiliza esta política puede etiquetar sus recursos (como consultas) para compartirlos con otras entidades principales en la misma Cuenta de AWS. La entidad principal concedida puede leer y actualizar los recursos compartidos con su equipo.
Puede encontrar la política AmazonRedshiftQueryEditorV2ReadWriteSharing
AmazonRedshiftServiceLinkedRolePolicy
No puede adjuntar AmazonRedshiftServiceLinkedRolePolicy a las entidades de IAM. Esta política se adjunta a un rol vinculado a servicio que permite a Amazon Redshift acceder a los recursos de la cuenta. Para obtener más información, consulte Uso de roles vinculados a servicios para Amazon Redshift.
Puede encontrar la política AmazonRedshiftServiceLinkedRolePolicy
AmazonRedshiftAllCommandsFullAccess
Permite utilizar el rol de IAM creado desde la consola de Amazon Redshift y configurarlo como predeterminado para que el clúster ejecute los comandos COPY desde Amazon S3, UNLOAD, CREATE EXTERNAL SCHEMA, CREATE EXTERNAL FUNCTION y CREATE MODEL. La política también concede permisos para ejecutar instrucciones SELECT para servicios relacionados, como Amazon S3, CloudWatch Logs, Amazon SageMaker o AWS Glue.
Puede encontrar la política AmazonRedshiftAllCommandsFullAccess
También puede crear sus propias políticas de IAM personalizadas para permitir las operaciones y los recursos de la API de Amazon Redshift. Puede asociar estas políticas personalizadas a los roles o grupos de IAM que requieran esos permisos.
Actualizaciones de Amazon Redshift en las políticas administradas por AWS
Es posible consultar los detalles sobre las actualizaciones de las políticas administradas por AWS para Amazon Redshift debido a que este servicio comenzó a realizar un seguimiento de estos cambios. Para obtener alertas automáticas sobre cambios en esta página, suscríbase a la fuente RSS en la página de historial de documentos de Amazon Redshift.
Cambio | Descripción | Fecha |
---|---|---|
AmazonRedshiftServiceLinkedRolePolicy: actualización de una política actual |
Se agregó permiso para la acción |
8 de marzo de 2024 |
AmazonRedshiftQueryEditorV2FullAccess: actualización de una política actual |
Se agregó permiso para las acciones |
21 de febrero de 2024 |
AmazonRedshiftQueryEditorV2NoSharing: actualización de una política actual |
Se agregó permiso para las acciones |
21 de febrero de 2024 |
AmazonRedshiftQueryEditorV2ReadSharing: actualización de una política actual |
Se agregó permiso para las acciones |
21 de febrero de 2024 |
AmazonRedshiftQueryEditorV2ReadWriteSharing: actualización de una política actual |
Se agregó permiso para las acciones |
21 de febrero de 2024 |
AmazonRedshiftReadOnlyAccess: actualización de una política actual |
Se agregó permiso para la acción |
7 de febrero de 2024 |
AmazonRedshiftServiceLinkedRolePolicy: actualización de una política actual |
Se agregó permiso para las acciones |
31 de octubre de 2023 |
AmazonRedshiftQueryEditorV2NoSharing: actualización de una política actual |
Se agregó permiso para las acciones |
16 de agosto de 2023 |
AmazonRedshiftQueryEditorV2ReadSharing: actualización de una política actual |
Se agregó permiso para las acciones |
16 de agosto de 2023 |
AmazonRedshiftQueryEditorV2ReadWriteSharing: actualización de una política actual |
Se agregó permiso para las acciones |
16 de agosto de 2023 |
AmazonRedshiftServiceLinkedRolePolicy: actualización de una política actual |
Los permisos para las acciones en AWS Secrets Manager para crear y administrar secretos se agregan a la política administrada. Los permisos añadidos son los siguientes:
|
14 de agosto de 2023 |
AmazonRedshiftServiceLinkedRolePolicy: actualización de una política actual |
Los permisos para las acciones de Amazon EC2 para crear y administrar grupos de seguridad y reglas de enrutamiento se eliminan de la política administrada. Estos permisos se referían a la creación de subredes y VPC. Los permisos eliminados son los siguientes:
|
8 de mayo de 2023 |
AmazonRedshiftDataFullAccess: actualización de una política actual |
Se agregó permiso para la acción |
7 de abril de 2023 |
AmazonRedshiftServiceLinkedRolePolicy: actualización de una política actual |
Los permisos para las acciones de Amazon EC2 para la creación y la administración de reglas de grupos de seguridad se agregan a la política administrada. Estos grupos y reglas de seguridad están asociados específicamente a la etiqueta de recursos |
6 de abril de 2023 |
AmazonRedshiftQueryEditorV2NoSharing: actualización de una política actual |
Se agregó permiso para la acción |
21 de marzo de 2023 |
AmazonRedshiftQueryEditorV2ReadSharing: actualización de una política actual |
Se agregó permiso para la acción |
21 de marzo de 2023 |
AmazonRedshiftQueryEditorV2ReadWriteSharing: actualización de una política actual |
Se agregó permiso para la acción |
21 de marzo de 2023 |
AmazonRedshiftQueryEditorV2NoSharing: actualización de una política actual |
Se agregó permiso para la acción |
2 de febrero de 2023 |
AmazonRedshiftQueryEditorV2ReadSharing: actualización de una política actual |
Se agregó permiso para la acción |
2 de febrero de 2023 |
AmazonRedshiftQueryEditorV2ReadWriteSharing: actualización de una política actual |
Se agregó permiso para la acción |
2 de febrero de 2023 |
AmazonRedshiftQueryEditorV2NoSharing: actualización de una política actual |
A fin de conceder permiso para utilizar cuadernos, Amazon Redshift agregó permiso para las siguientes acciones:
|
17 de octubre de 2022 |
AmazonRedshiftQueryEditorV2ReadSharing: actualización de una política actual |
A fin de conceder permiso para utilizar cuadernos, Amazon Redshift agregó permiso para las siguientes acciones:
|
17 de octubre de 2022 |
AmazonRedshiftQueryEditorV2ReadWriteSharing: actualización de una política actual |
A fin de conceder permiso para utilizar cuadernos, Amazon Redshift agregó permiso para las siguientes acciones:
|
17 de octubre de 2022 |
AmazonRedshiftServiceLinkedRolePolicy: actualización de una política actual |
Amazon Redshift agregó el espacio de nombres |
7 de septiembre de 2022 |
AmazonRedshiftQueryEditorV2NoSharing: actualización de una política actual |
Permiso de Amazon Redshift agregado a las acciones |
30 de agosto de 2022 |
AmazonRedshiftQueryEditorV2ReadSharing: actualización de una política actual |
Permiso de Amazon Redshift agregado a las acciones |
30 de agosto de 2022 |
AmazonRedshiftQueryEditorV2ReadWriteSharing: actualización de una política actual |
Permiso de Amazon Redshift agregado a las acciones |
30 de agosto de 2022 |
AmazonRedshiftFullAccess: actualización de una política actual |
Los permisos para Amazon Redshift Serverless se agregan a la política administrada AmazonRedshiftFullAccess existente. |
22 de julio de 2022 |
AmazonRedshiftDataFullAccess: actualización de una política actual |
Amazon Redshift actualizó la condición de alcance predeterminada redshift-serverless:GetCredentials del permiso de etiqueta aws:ResourceTag/RedshiftDataFullAccess de StringEquals a StringLike para conceder acceso a recursos etiquetados con la clave de etiqueta RedshiftDataFullAccess y cualquier valor de etiqueta. |
11 de julio de 2022 |
AmazonRedshiftDataFullAccess: actualización de una política actual |
Amazon Redshift agregó permisos nuevos para permitir a redshift-serverless:GetCredentials obtener credenciales temporales de Amazon Redshift Serverless. |
8 de julio de 2022 |
AmazonRedshiftQueryEditorV2NoSharing: actualización de una política actual |
Permiso de Amazon Redshift agregado a la acción |
15 de junio de 2022 |
AmazonRedshiftQueryEditorV2ReadSharing: actualización de una política actual |
Permiso de Amazon Redshift agregado a la acción |
15 de junio de 2022 |
AmazonRedshiftQueryEditorV2ReadWriteSharing: actualización de una política actual |
Permiso de Amazon Redshift agregado a la acción |
15 de junio de 2022 |
AmazonRedshiftServiceLinkedRolePolicy: actualización de una política actual |
Para habilitar el acceso público a los nuevos puntos de conexión de Amazon Redshift Serverless, Amazon Redshift asigna y asocia direcciones IP elásticas a la interfaz de red elástica del punto de conexión de la VPC en la cuenta del cliente. Esto lo hace mediante los permisos proporcionados a través del rol vinculado al servicio. Para habilitar este caso de uso, se agregan acciones para asignar y liberar una dirección IP elástica al rol vinculado al servicio de Amazon Redshift Serverless. |
26 de mayo de 2022 |
AmazonRedshiftQueryEditorV2FullAccess: actualización de una política actual |
Permisos para la acción |
22 de febrero de 2022 |
AmazonRedshiftQueryEditorV2NoSharing: actualización de una política actual |
Permisos para la acción |
22 de febrero de 2022 |
AmazonRedshiftQueryEditorV2ReadSharing: actualización de una política actual |
Permisos para la acción |
22 de febrero de 2022 |
AmazonRedshiftQueryEditorV2ReadWriteSharing: actualización de una política actual |
Permisos para la acción |
22 de febrero de 2022 |
AmazonRedshiftQueryEditorV2ReadSharing: actualización de una política actual |
Se agregó permiso para la acción |
22 de febrero de 2022 |
AmazonRedshiftServiceLinkedRolePolicy: actualización de una política actual |
Amazon Redshift agregó permisos para nuevas acciones para permitir la administración de los recursos de red y VPC de Amazon Redshift. |
22 de noviembre de 2021 |
AmazonRedshiftAllCommandsFullAccess: política nueva |
Amazon Redshift agregó una nueva política para permitir el uso del rol de IAM creado desde la consola de Amazon Redshift y configurarlo como predeterminado para que el clúster ejecute los comandos COPY desde Amazon S3, UNLOAD, CREATE EXTERNAL SCHEMA, CREATE EXTERNAL FUNCTION, CREATE MODEL o CREATE LIBRARY. |
18 de noviembre de 2021 |
AmazonRedshiftServiceLinkedRolePolicy: actualización de una política actual |
Amazon Redshift agregó permisos para nuevas acciones para permitir la administración de grupos de registros de CloudWatch y flujos de registros de Amazon Redshift, incluida la exportación de registros de auditoría. |
15 de noviembre de 2021 |
AmazonRedshiftFullAccess: actualización de una política actual |
Amazon Redshift agregó nuevos permisos para permitir la explicabilidad del modelo, DynamoDB, Redshift Spectrum y federación de Amazon RDS. | 07 de octubre de 2021 |
AmazonRedshiftQueryEditorV2FullAccess: política nueva |
Amazon Redshift agregó una nueva política para permitir el acceso completo al editor de consultas v2 de Amazon Redshift. |
24 de septiembre de 2021 |
AmazonRedshiftQueryEditorV2NoSharing: política nueva |
Amazon Redshift agregó una nueva política para permitir el uso del editor de consultas v2 de Amazon Redshift sin compartir recursos. |
24 de septiembre de 2021 |
AmazonRedshiftQueryEditorV2ReadSharing: política nueva |
Amazon Redshift agregó una nueva política para permitir el uso compartido de lectura dentro del editor de consultas v2 de Amazon Redshift. |
24 de septiembre de 2021 |
AmazonRedshiftQueryEditorV2ReadWriteSharing: política nueva |
Amazon Redshift agregó una nueva política para permitir el uso compartido de lectura y actualización dentro del editor de consultas v2 de Amazon Redshift. |
24 de septiembre de 2021 |
AmazonRedshiftFullAccess: actualización de una política actual |
Amazon Redshift agregó permisos nuevos para permitir |
18 de agosto de 2021 |
AmazonRedshiftDataFullAccess: actualización de una política actual |
Amazon Redshift agregó permisos nuevos para permitir |
12 de agosto de 2021 |
AmazonRedshiftDataFullAccess: actualización de una política actual |
Amazon Redshift agregó permisos nuevos para permitir |
27 de julio de 2021 |
Amazon Redshift comenzó a realizar un seguimiento de los cambios |
Amazon Redshift comenzó a realizar un seguimiento de los cambios de las políticas administradas por AWS. |
27 de julio de 2021 |
Permisos necesarios para usar Redshift Spectrum
Amazon Redshift Spectrum requiere permisos para que otros servicios de AWS tengan acceso a los recursos. Para obtener más información acerca de los permisos en las políticas de IAM para Redshift Spectrum, consulte Políticas de IAM para Amazon Redshift Spectrum en la Guía para desarrolladores de bases de datos de Amazon Redshift.
Permisos necesarios para usar la consola de Amazon Redshift
Para que un usuario pueda trabajar con la consola de Amazon Redshift, ese usuario debe tener un conjunto mínimo de permisos que le permitan describir los recursos de Amazon Redshift para su cuenta de AWS. Estos permisos también deben permitir al usuario describir otra información relacionada, incluida información de red, Amazon CloudWatch, Amazon SNS, y seguridad de Amazon EC2.
Si crea una política de IAM que sea más restrictiva que el mínimo de permisos necesarios, la consola no funciona del modo esperado para los usuarios con esa política de IAM. Para asegurarse de que esos usuarios puedan seguir usando la consola de Amazon Redshift, adjunte también la política administrada AmazonRedshiftReadOnlyAccess
al usuario. En Políticas administradas por AWS para Amazon Redshift, se muestra cómo hacer esto.
Para obtener información acerca de cómo conceder a un usuario acceso al editor de consultas en la consola de Amazon Redshift, consulte Permisos necesarios para usar el editor de consultas de la consola de Amazon Redshift.
No es necesario que conceda permisos mínimos para la consola a los usuarios que solo realizan llamadas a la AWS CLI o a la API de Amazon Redshift.
Permisos necesarios para usar el editor de consultas de la consola de Amazon Redshift
Para que un usuario pueda trabajar con el editor de consultas de Amazon Redshift, ese usuario debe tener un conjunto mínimo de permisos para las operaciones de la API de datos de Amazon Redshift y Amazon Redshift. Para conectarse a una base de datos con un secreto, también debe tener permisos de Secrets Manager.
Para conceder a un usuario acceso al editor de consultas en la consola de Amazon Redshift, adjunte las políticas AmazonRedshiftQueryEditor
y AmazonRedshiftReadOnlyAccess
administradas por AWS. La política AmazonRedshiftQueryEditor
otorga al usuario permiso para recuperar solo los resultados de sus propias instrucciones SQL. Es decir, las instrucciones enviadas por el mismo aws:userid
, como se muestra en esta sección de la política AmazonRedshiftQueryEditor
administrada por AWS.
{ "Sid":"DataAPIIAMStatementPermissionsRestriction", "Action": [ "redshift-data:GetStatementResult", "redshift-data:CancelStatement", "redshift-data:DescribeStatement", "redshift-data:ListStatements" ], "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "redshift-data:statement-owner-iam-userid": "${aws:userid}" } } }
Para permitir que un usuario recupere los resultados de las instrucciones SQL de otras personas en el mismo rol de IAM, cree su propia política sin la condición de limitar el acceso al usuario actual. Limite también el acceso para cambiar una política a un administrador.
Permisos necesarios para usar del editor de consultas v2
Para que un usuario pueda trabajar con el editor de consultas v2 de Amazon Redshift, debe tener un conjunto mínimo de permisos para las operaciones del editor de consultas v2 de Amazon Redshift y otros servicios de AWS, tales como AWS Key Management Service, AWS Secrets Manager y servicio de etiquetado.
Para conceder a un usuario acceso completo al editor de consultas v2, adjunte la política AmazonRedshiftQueryEditorV2FullAccess
administrada por AWS. La política AmazonRedshiftQueryEditorV2FullAccess
permite al usuario compartir recursos del editor de consultas v2, como consultas con otros miembros del mismo equipo. Para obtener más información sobre cómo se controla el acceso a los recursos del editor de consultas v2, consulte la definición de la política administrada específica para el editor de consultas v2 en la consola de IAM.
Algunas políticas administradas por AWS del Editor de consultas de Amazon Redshift v2 usan etiquetas de AWS en las condiciones para delimitar el acceso a los recursos. En el editor de consultas v2, el uso compartido de consultas se basa en la clave de etiqueta y el valor "aws:ResourceTag/sqlworkbench-team": "${aws:PrincipalTag/sqlworkbench-team}"
en la política de IAM adjuntada a la entidad principal (el rol de IAM). Las entidades principales en la misma Cuenta de AWS con el mismo valor de etiqueta (por ejemplo, accounting-team
), están en el mismo equipo en el editor de consultas v2. Solo se puede asociar a un equipo a la vez. Un usuario con permisos administrativos puede configurar equipos en la consola de IAM dando a todos los miembros del equipo el mismo valor para la etiqueta sqlworkbench-team
. Si el valor de etiqueta de sqlworkbench-team
se cambia para un usuario de IAM o un rol de IAM, puede haber un retraso hasta que el cambio se refleje en los recursos compartidos. Si se cambia el valor de etiqueta de un recurso (como una consulta), de nuevo podría haber un retraso hasta que se refleje el cambio. Los miembros del equipo también deben tener el permiso tag:GetResources
para compartir recursos.
Ejemplo: Para agregar la etiqueta accounting-team
de un rol de IAM
Inicie sesión en AWS Management Console Management Console y abra la consola IAM en https://console.aws.amazon.com/iam/
. -
En el panel de navegación de la consola, elija Roles (Roles) y, a continuación, elija el nombre de la entidad que desea editar.
-
Elija la pestaña Tags (Etiquetas) y, a continuación, elija Add Tags (Agregar etiquetas).
-
Agregar la clave de etiqueta sqlworkbench-team y el valor
accounting-team
. -
Elija Save changes (Guardar cambios).
Ahora, cuando una entidad principal de IAM (con este rol de IAM adjunto) comparte una consulta con el equipo, otras entidades principales con el mismo valor de etiqueta
accounting-team
puede ver la consulta.
Para obtener más información sobre cómo adjuntar una etiqueta a una entidad principal, incluidos los roles de IAM y los usuarios de IAM, consulte Etiquetado de recursos de IAM en la Guía del usuario de IAM.
También puede configurar equipos en el nivel de la sesión mediante un proveedor de identidad (IdP). Esto permite que varios usuarios que utilizan el mismo rol de IAM tengan un equipo diferente. La política de confianza del rol de IAM debe permitir la operación sts:TagSession
. Para obtener más información, consulte Permisos necesarios para agregar etiquetas de sesión en la Guía del usuario de IAM. Agregue el atributo de etiqueta de la entidad principal a la aserción SAML proporcionada por su IdP.
<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:sqlworkbench-team"> <AttributeValue>accounting-team</AttributeValue> </Attribute>
Siga las instrucciones de su proveedor de identidad (IdP) para rellenar el atributo SAML con el contenido procedente de su directorio. Para obtener más información sobre los proveedores de identidad (IdP) y Amazon Redshift, consulte Uso de la autenticación de IAM para generar credenciales de usuario de base de datos y Proveedores de identidad y federación en la Guía del usuario de IAM.
sqlworkbench:CreateNotebookVersion
concede permiso para obtener el contenido actual de las celdas de cuaderno y crear una versión de cuaderno en su cuenta. Es decir, en el momento de la creación de la versión, el contenido actual del cuaderno es el mismo que el de la versión. Más adelante, el contenido de las celdas de la versión se mantiene mientras se actualiza el cuaderno actual. sqlworkbench:GetNotebookVersion
concede permiso para obtener una versión del cuaderno. Un usuario que no tiene el permiso sqlworkbench:BatchGetNotebookCell
pero tiene los permisos sqlworkbench:CreateNotebookVersion
y sqlworkbench:GetNotebookVersion
en un cuaderno tiene acceso a las celdas del cuaderno en la versión. Este usuario sin el permiso sqlworkbench:BatchGetNotebookCell
sigue pudiendo recuperar el contenido de las celdas de un cuaderno mediante la creación primero de una versión y, a continuación, con la obtención de esta versión creada.
Permisos necesarios para usar el programador de Amazon Redshift
Cuando utiliza el programador de Amazon Redshift, configura un rol de IAM con una relación de confianza con el programador de Amazon Redshift (scheduler.redshift.amazonaws.com
) para permitir que programador asuma los permisos en su nombre. También adjunta una política (permisos) al rol para las operaciones de la API de Amazon Redshift que quiere programar.
En el siguiente ejemplo, se muestra el documento de la política en formato JSON para establecer una relación de confianza entre el programador de Amazon Redshift y Amazon Redshift.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "scheduler.redshift.amazonaws.com", "redshift.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
Para obtener más información acerca de las entidades de confianza, consulte Creación de un rol para delegar permisos a un servicio de AWS en la Guía del usuario de IAM.
También debe agregar permisos para las operaciones de Amazon Redshift que desee programar.
Para que el programador utilice la operación ResizeCluster
, agregue un permiso similar al siguiente a su política de IAM. En función de su entorno, es posible que quiera crear una política más restrictiva.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "redshift:ResizeCluster", "Resource": "*" } ] }
Para consultar los pasos necesarios para crear un rol para el programador de Amazon Redshift, consulte Creación de un rol para un servicio de AWS (consola) en la Guía del usuario de IAM. Realice estas elecciones cuando cree un rol en la consola de IAM:
-
En Choose the service that will use this role (Elegir el servicio que utilizará este rol): elija Redshift.
-
En Select your use case (Seleccione su caso de uso): seleccione Redshift - Scheduler (Redshift - Programador).
-
Cree una política o adjúntela al rol que permita programar una operación de Amazon Redshift. Seleccione Create policy (Crear política) o modifique el rol para agregar una política. Introduzca la política JSON para la operación que se va a programar.
-
Después de crear el rol, edite la Trust relationship (Relación de confianza) del rol de IAM para incluir el servicio
redshift.amazonaws.com
.
El rol IAM que cree tiene entidades de confianza de scheduler.redshift.amazonaws.com
y redshift.amazonaws.com
. También tiene una política adjunta que permite una acción de la API de Amazon Redshift compatible; por ejemplo, "redshift:ResizeCluster"
.
Permisos necesarios para usar el programador de Amazon EventBridge
Cuando utiliza el programador de Amazon EventBridge, configura un rol de IAM con una relación de confianza con el programador de EventBridge (events.amazonaws.com
) para permitir que el programador asuma los permisos en su nombre. También adjunta una política (permisos) al rol para las operaciones de la API de datos de Amazon Redshift que quiere programar y una política para las operaciones de Amazon EventBridge.
Utilice el programador de EventBridge cuando cree consultas programadas con el editor de consultas de Amazon Redshift en la consola.
Puede crear un rol de IAM para ejecutar consultas programadas en la consola de IAM. En este rol de IAM, adjunte AmazonEventBridgeFullAccess
y AmazonRedshiftDataFullAccess
.
En el siguiente ejemplo, se muestra el documento de la política en formato JSON para establecer una relación de confianza con el programador de EventBridge.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "events.amazonaws.com", ] }, "Action": "sts:AssumeRole" } ] }
Para obtener más información acerca de las entidades de confianza, consulte Creación de un rol para delegar permisos a un servicio de AWS en la Guía del usuario de IAM.
Para consultar los pasos necesarios para crear un rol para el programador de EventBridge, consulte Creación de un rol para un servicio de AWS (consola) en la Guía del usuario de IAM. Realice estas elecciones cuando cree un rol en la consola de IAM:
-
En Choose the service that will use this role (Seleccionar el servicio que utilizará este rol), elija CloudWatch Events.
-
En Select your use case (Seleccione su caso de uso), elija CloudWatch Events.
-
Adjunte las siguientes políticas de permisos:
AmazonEventBridgeFullAccess
yAmazonRedshiftDataFullAccess
.
El rol de IAM que crea tiene una entidad de confianza de events.amazonaws.com
. También tiene una política adjunta que permite acciones de la API de datos de Amazon Redshift compatibles; por ejemplo, "redshift-data:*"
.
Permisos necesarios para usar machine learning (ML) de Amazon Redshift
A continuación, puede encontrar una descripción de los permisos necesarios para usar el machine learning (ML) de Amazon Redshift para diferentes casos de uso.
Para que los usuarios utilicen Amazon Redshift ML con Amazon SageMaker, cree un rol de IAM con una política más restrictiva que la predeterminada. Puede utilizar la siguiente política. Asimismo, puede modificarla para que se adapte a sus necesidades.
La siguiente política muestra los permisos necesarios para ejecutar SageMaker Autopilot con la explicabilidad del modelo de Amazon Redshift.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateAutoMLJob", "sagemaker:CreateCompilationJob", "sagemaker:CreateEndpoint", "sagemaker:DescribeAutoMLJob", "sagemaker:DescribeTrainingJob", "sagemaker:DescribeCompilationJob", "sagemaker:DescribeProcessingJob", "sagemaker:DescribeTransformJob", "sagemaker:ListCandidatesForAutoMLJob", "sagemaker:StopAutoMLJob", "sagemaker:StopCompilationJob", "sagemaker:StopTrainingJob", "sagemaker:DescribeEndpoint", "sagemaker:InvokeEndpoint", "sagemaker:StopProcessingJob", "sagemaker:CreateModel", "sagemaker:CreateProcessingJob" ], "Resource": [ "arn:aws:sagemaker:*:*:model/*redshift*", "arn:aws:sagemaker:*:*:training-job/*redshift*", "arn:aws:sagemaker:*:*:automl-job/*redshift*", "arn:aws:sagemaker:*:*:compilation-job/*redshift*", "arn:aws:sagemaker:*:*:processing-job/*redshift*", "arn:aws:sagemaker:*:*:transform-job/*redshift*", "arn:aws:sagemaker:*:*:endpoint/*redshift*" ] }, { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:*:*:log-group:/aws/sagemaker/Endpoints/*redshift*", "arn:aws:logs:*:*:log-group:/aws/sagemaker/ProcessingJobs/*redshift*", "arn:aws:logs:*:*:log-group:/aws/sagemaker/TrainingJobs/*redshift*", "arn:aws:logs:*:*:log-group:/aws/sagemaker/TransformJobs/*redshift*" ] }, { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData" ], "Resource": "*", "Condition": { "StringEquals": { "cloudwatch:namespace": [ "SageMaker", "/aws/sagemaker/Endpoints", "/aws/sagemaker/ProcessingJobs", "/aws/sagemaker/TrainingJobs", "/aws/sagemaker/TransformJobs" ] } } }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetAuthorizationToken", "ecr:GetDownloadUrlForLayer" ], "Resource": "*" }, { "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*/*" ] }, { "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": "*", "Condition": { "StringEqualsIgnoreCase": { "s3:ExistingObjectTag/Redshift": "true" } } }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::*:role/*", "Condition": { "StringEquals": { "iam:PassedToService": [ "redshift.amazonaws.com", "sagemaker.amazonaws.com" ] } } } ] }
La siguiente política muestra los permisos mínimos completos para permitir el acceso a la federación de Amazon DynamoDB, Redshift Spectrum y Amazon RDS.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateAutoMLJob", "sagemaker:CreateCompilationJob", "sagemaker:CreateEndpoint", "sagemaker:DescribeAutoMLJob", "sagemaker:DescribeTrainingJob", "sagemaker:DescribeCompilationJob", "sagemaker:DescribeProcessingJob", "sagemaker:DescribeTransformJob", "sagemaker:ListCandidatesForAutoMLJob", "sagemaker:StopAutoMLJob", "sagemaker:StopCompilationJob", "sagemaker:StopTrainingJob", "sagemaker:DescribeEndpoint", "sagemaker:InvokeEndpoint", "sagemaker:StopProcessingJob", "sagemaker:CreateModel", "sagemaker:CreateProcessingJob" ], "Resource": [ "arn:aws:sagemaker:*:*:model/*redshift*", "arn:aws:sagemaker:*:*:training-job/*redshift*", "arn:aws:sagemaker:*:*:automl-job/*redshift*", "arn:aws:sagemaker:*:*:compilation-job/*redshift*", "arn:aws:sagemaker:*:*:processing-job/*redshift*", "arn:aws:sagemaker:*:*:transform-job/*redshift*", "arn:aws:sagemaker:*:*:endpoint/*redshift*" ] }, { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:*:*:log-group:/aws/sagemaker/Endpoints/*redshift*", "arn:aws:logs:*:*:log-group:/aws/sagemaker/ProcessingJobs/*redshift*", "arn:aws:logs:*:*:log-group:/aws/sagemaker/TrainingJobs/*redshift*", "arn:aws:logs:*:*:log-group:/aws/sagemaker/TransformJobs/*redshift*" ] }, { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData" ], "Resource": "*", "Condition": { "StringEquals": { "cloudwatch:namespace": [ "SageMaker", "/aws/sagemaker/Endpoints", "/aws/sagemaker/ProcessingJobs", "/aws/sagemaker/TrainingJobs", "/aws/sagemaker/TransformJobs" ] } } }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetAuthorizationToken", "ecr:GetDownloadUrlForLayer" ], "Resource": "*" }, { "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*/*" ] }, { "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": "*", "Condition": { "StringEqualsIgnoreCase": { "s3:ExistingObjectTag/Redshift": "true" } } }, { "Effect": "Allow", "Action": [ "dynamodb:Scan", "dynamodb:DescribeTable", "dynamodb:Getitem" ], "Resource": [ "arn:aws:dynamodb:*:*:table/*redshift*", "arn:aws:dynamodb:*:*:table/*redshift*/index/*" ] }, { "Effect": "Allow", "Action": [ "elasticmapreduce:ListInstances" ], "Resource": [ "arn:aws:elasticmapreduce:*:*:cluster/*redshift*" ] }, { "Effect": "Allow", "Action": [ "elasticmapreduce:ListInstances" ], "Resource": "*", "Condition": { "StringEqualsIgnoreCase": { "elasticmapreduce:ResourceTag/Redshift": "true" } } }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": "arn:aws:lambda:*:*:function:*redshift*" }, { "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*" ] }, { "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" } } }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::*:role/*", "Condition": { "StringEquals": { "iam:PassedToService": [ "redshift.amazonaws.com", "glue.amazonaws.com", "sagemaker.amazonaws.com", "athena.amazonaws.com" ] } } } ] }
De forma opcional, para utilizar una clave AWS KMS de cifrado, agregue los siguientes permisos a la política.
{ "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:GenerateDataKey*" ], "Resource": [ "arn:aws:kms:<your-region>:<your-account-id>:key/<your-kms-key>" ] }
Para permitir que Amazon Redshift y SageMaker asuman el rol de IAM anterior para interactuar con otros servicios, agregue la siguiente política de confianza al rol.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "redshift.amazonaws.com", "sagemaker.amazonaws.com", "forecast.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
El bucket redshift-downloads/redshift-ml/
de Amazon S3 anterior es el lugar donde se almacenan los datos de muestra utilizados en otros pasos y ejemplos. Puede quitar este bucket si no necesita cargar datos de Amazon S3. O bien, puede reemplazarlo con otros buckets de Amazon S3 que utilice para cargar datos en Amazon Redshift.
Los valores your-account-id
, your-role
y your-s3-bucket
son el ID de cuenta, el rol y el bucket que especifique en el comando CREATE MODEL.
De forma opcional, puede utilizar la sección de claves AWS KMS de la política de muestra si especifica una clave AWS KMS para utilizarla con Amazon Redshift ML. El valor your-kms-key
es la clave que se utiliza como parte del comando CREATE MODEL.
Si especifica una nube virtual privada (VPC) para el trabajo de ajuste de hiperparámetros, agregue los siguientes permisos.
{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }
Para trabajar con la explicación del modelo, asegúrese de tener los permisos para llamar a las operaciones de la API de SageMaker. Recomendamos utilizar la política administrada AmazonSageMakerFullAccess
. Si desea crear un rol de IAM que tenga una política más restrictiva, utilice la siguiente política.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker::CreateEndpoint", "sagemaker::CreateEndpointConfig", "sagemaker::DeleteEndpoint", "sagemaker::DeleteEndpointConfig", "sagemaker::DescribeEndpoint", "sagemaker::DescribeEndpointConfig", "sagemaker::DescribeModel", "sagemaker::InvokeEndpoint", "sagemaker::ListTags" ], "Resource": "*" } ] }
Para obtener más información sobre la política administrada AmazonSageMakerFullAccess
, consulte AmazonSageMakerFullAccess en la Guía para desarrolladores de Amazon SageMaker.
Si desea crear modelos de previsión, le recomendamos que utilice la política administrada AmazonForecastFullAccess
. Si desea usar una política más restrictiva, utilice la siguiente política en el rol de IAM.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "forecast:CreateAutoPredictor", "forecast:CreateDataset", "forecast:CreateDatasetGroup", "forecast:CreateDatasetImportJob", "forecast:CreateForecast", "forecast:CreateForecastExportJob", "forecast:DeleteResourceTree", "forecast:DescribeAutoPredictor", "forecast:DescribeDataset", "forecast:DescribeDatasetGroup", "forecast:DescribeDatasetImportJob", "forecast:DescribeForecast", "forecast:DescribeForecastExportJob", "forecast:StopResource", "forecast:TagResource", "forecast:UpdateDatasetGroup" ], "Resource": "*" } ] }
Si desea crear modelos de Amazon Bedrock, le recomendamos que utilice la política administrada AmazonBedrockFullAccess
. Si desea usar una política más restrictiva, utilice la siguiente política en el rol de IAM.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "bedrock:InvokeModel", "Resource": [ "*", "arn:aws:bedrock:
>region<
::foundation-model/*" ] } ] }
Para obtener más información acerca de Amazon Redshift ML, consulte Uso de machine learning en Amazon Redshift o CREATE MODEL o CREATE EXTERNAL MODEL.
Permisos para la ingesta de streaming
La ingesta de streaming funciona con dos servicios. Se trata de Kinesis Data Streams y Amazon MSK.
Se requieren permisos para usar la ingesta de streaming con Kinesis Data Streams
Encontrará un procedimiento con un ejemplo de política administrada en Introducción a la ingesta de streaming desde Amazon Kinesis Data Streams.
Se requieren permisos para usar la ingesta de streaming con Amazon MSK
Encontrará un procedimiento con un ejemplo de política administrada en Introducción a la ingesta de streaming desde Amazon Managed Streaming para Apache Kafka.
Permisos necesarios para utilizar las operaciones de la API de uso compartido de datos
Para controlar el acceso a las operaciones de la API de uso compartido de datos, utilice políticas basadas en acciones de IAM. Para obtener información sobre cómo administrar las políticas de IAM, consulte Administración de las políticas de IAM en la Guía del usuario de IAM.
En particular, supongamos que el administrador de un clúster productor necesita usar la llamada a AuthorizeDataShare
para autorizar la salida de un recurso compartido de datos desde una Cuenta de AWS. En este caso, debe configurar una política de IAM basada en acciones para otorgar ese permiso. Use la llamada DeauthorizeDataShare
para revocar la salida.
Cuando se usan políticas de IAM basadas en acciones, también se puede especificar un recurso de IAM en la política; por ejemplo, DataShareARN
. A continuación, se muestra el formato y un ejemplo de DataShareARN
.
arn:aws:redshift:region:account-id:datashare:namespace-guid/datashare-name arn:aws:redshift:us-east-1:555555555555:datashare:86b5169f-01dc-4a6f-9fbb-e2e24359e9a8/SalesShare
Puede restringir el acceso AuthorizeDataShare
a un datashare específico indicando el nombre del datashare en la política de IAM.
{ "Statement": [ { "Action": [ "redshift:AuthorizeDataShare", ], "Resource": [ "arn:aws:redshift:us-east-1:555555555555:datashare:86b5169f-01dc-4a6f-9fbb-e2e24359e9a8/SalesShare" ], "Effect": "Deny" } ] }
También puede restringir la política de IAM a todos los datashares que pertenezcan a un clúster productor específico. Para ello, reemplace el valor datashare-name
en la política con un comodín o un asterisco. Mantenga el valor namespace-guid
del clúster.
arn:aws:redshift:us-east-1:555555555555:datashare:86b5169f-01dc-4a6f-9fbb-e2e24359e9a8/*
A continuación, se presenta la política de IAM que impide que una entidad llame a AuthorizeDataShare
en los recursos compartidos de datos que sean propiedad de un clúster productor específico.
{ "Statement": [ { "Action": [ "redshift:AuthorizeDataShare", ], "Resource": [ "arn:aws:redshift:us-east-1:555555555555:datashare:86b5169f-01dc-4a6f-9fbb-e2e24359e9a8/*" ], "Effect": "Deny" } ] }
DataShareARN
restringe el acceso en función del nombre del recurso compartido de datos y el ID único global (GUID) del espacio de nombres del clúster propietario. Lo hace especificando el nombre como un asterisco.
Políticas de recursos de GetClusterCredentials
Para conectarse a la base de datos de un clúster mediante una conexión JDBC u ODBC con credenciales de base de datos de IAM o para llamar mediante programación a la acción GetClusterCredentials
, necesita, un conjunto mínimo de permisos. Como mínimo, necesita permiso para llamar a la acción redshift:GetClusterCredentials
con acceso a un recurso dbuser
.
Si usa una conexión JDBC o ODBC en lugar de server
y port
, puede especificar cluster_id
y region
, pero para ello la política debe permitir la acción redshift:DescribeClusters
con acceso al recurso cluster
.
Si llama a la acción GetClusterCredentials
con los parámetros opcionales Autocreate
, DbGroups
y DbName
, asegúrese de permitir también las acciones y el acceso a los recursos indicados en la tabla siguiente.
Parámetro GetClusterCredentials |
Acción |
Recurso |
---|---|---|
|
redshift:CreateClusterUser |
|
|
redshift:JoinGroup |
|
|
N/D | dbname |
Para obtener más información acerca de recursos, consulte Operaciones y recursos de Amazon Redshift.
También puede incluir las siguientes condiciones en la política:
-
redshift:DurationSeconds
-
redshift:DbName
-
redshift:DbUser
Para obtener más información acerca de las condiciones, consulte Especificación de las condiciones de una política.
Ejemplos de políticas administradas por el cliente
En esta sección, encontrará ejemplos de políticas de usuario que conceden permisos para diversas acciones de Amazon Redshift. Estas políticas funcionan cuando se utiliza la API de Amazon Redshift, los AWS SDK o la AWS CLI.
nota
Todos los ejemplos utilizan la región Oeste de EE. UU. (Oregón) (us-west-2
) y contienen identificadores de cuenta ficticios.
Ejemplo 1: Permitir al usuario obtener acceso completo a todos los recursos y las acciones de Amazon Redshift
La siguiente política permite obtener acceso a todas las acciones de Amazon Redshift en todos los recursos.
{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowRedshift", "Action": [ "redshift:*" ], "Effect": "Allow", "Resource": "*" } ] }
El valor redshift:*
del elemento Action
indica todas las acciones de Amazon Redshift.
Ejemplo 2: Denegar a un usuario el acceso a un conjunto de acciones de Amazon Redshift
De manera predeterminada, se deniegan todos los permisos. No obstante, en ocasiones se necesita denegar explícitamente el acceso a una acción o un conjunto de acciones específicas. La siguiente política permite obtener acceso a todas las acciones de Amazon Redshift y deniega explícitamente el acceso a toda acción de Amazon Redshift cuyo nombre empiece por Delete
. Esta política se aplica a todos los recursos de Amazon Redshift de la región us-west-2
.
{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowUSWest2Region", "Action": [ "redshift:*" ], "Effect": "Allow", "Resource": "arn:aws:redshift:us-west-2:*" }, { "Sid":"DenyDeleteUSWest2Region", "Action": [ "redshift:Delete*" ], "Effect": "Deny", "Resource": "arn:aws:redshift:us-west-2:*" } ] }
Ejemplo 3: Permitirle a un usuario administrar clústeres
La siguiente política le permite a un usuario crear, eliminar, modificar y reiniciar todos los clústeres y, luego, le deniega permiso para eliminar o modificar todo clúster cuyo nombre comience con protected
.
{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowClusterManagement", "Action": [ "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:ModifyCluster", "redshift:RebootCluster" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid":"DenyDeleteProtected", "Action": [ "redshift:DeleteCluster" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:cluster:protected*" ], "Effect": "Deny" } ] }
Ejemplo 4: Permitirle a un usuario que autorice y revoque la obtención de acceso a instantáneas
La siguiente política le permite a un usuario, por ejemplo el usuario A, hacer lo siguiente:
-
Autorizar la obtención de acceso a toda snapshot creada a partir de un clúster denominado
shared
. -
Revocar la obtención de acceso a snapshots para toda snapshot creada a partir del clúster
shared
en el que el nombre de la snapshot comience conrevokable
.
{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowSharedSnapshots", "Action": [ "redshift:AuthorizeSnapshotAccess" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:shared/*" ], "Effect": "Allow" }, { "Sid":"AllowRevokableSnapshot", "Action": [ "redshift:RevokeSnapshotAccess" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:snapshot:*/revokable*" ], "Effect": "Allow" } ] }
Si el usuario A le ha otorgado al usuario B acceso a la snapshot, el usuario B debe tener una política como la siguiente que le permita restaurar un clúster a partir de la snapshot. La siguiente política le permite al usuario B describir y restaurar a partir de snapshots, y crear clústeres. El nombre de estos clústeres debe comenzar con from-other-account
.
{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowDescribeSnapshots", "Action": [ "redshift:DescribeClusterSnapshots" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid":"AllowUserRestoreFromSnapshot", "Action": [ "redshift:RestoreFromClusterSnapshot" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:snapshot:*/*", "arn:aws:redshift:us-west-2:444455556666:cluster:from-other-account*" ], "Effect": "Allow" } ] }
Ejemplo 5: Permitirle a un usuario copiar una instantánea de un clúster y restaurar un clúster a partir de una instantánea
La siguiente política le permite a un usuario copiar cualquier snapshot creada a partir del clúster denominado big-cluster-1
y restaurar cualquier snapshot cuando el nombre de ella comience con snapshot-for-restore
.
{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowCopyClusterSnapshot", "Action": [ "redshift:CopyClusterSnapshot" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:snapshot:big-cluster-1/*" ], "Effect": "Allow" }, { "Sid":"AllowRestoreFromClusterSnapshot", "Action": [ "redshift:RestoreFromClusterSnapshot" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:snapshot:*/snapshot-for-restore*", "arn:aws:redshift:us-west-2:123456789012:cluster:*" ], "Effect": "Allow" } ] }
Ejemplo 6: Permitir a un usuario obtener acceso a Amazon Redshift y a recursos y acciones comunes de servicios de AWS relacionados
La siguiente política de ejemplo permite acceder a todas las acciones y los recursos de Amazon Redshift, Amazon Simple Notification Service (Amazon SNS) y Amazon CloudWatch. También permite acciones especificadas en todos los recursos de Amazon EC2 relacionados en la cuenta.
nota
Para las acciones de Amazon EC2 que se especifican en esta política de ejemplo, no se admiten los permisos en el nivel del recurso.
{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowRedshift", "Effect": "Allow", "Action": [ "redshift:*" ], "Resource": [ "*" ] }, { "Sid":"AllowSNS", "Effect": "Allow", "Action": [ "sns:*" ], "Resource": [ "*" ] }, { "Sid":"AllowCloudWatch", "Effect": "Allow", "Action": [ "cloudwatch:*" ], "Resource": [ "*" ] }, { "Sid":"AllowEC2Actions", "Effect": "Allow", "Action": [ "ec2:AllocateAddress", "ec2:AssociateAddress", "ec2:AttachNetworkInterface", "ec2:DescribeAccountAttributes", "ec2:DescribeAddresses", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs" ], "Resource": [ "*" ] } ] }
Ejemplo 7: Permitir a un usuario etiquetar recursos con la consola de Amazon Redshift
La siguiente política de ejemplo permite a un usuario etiquetar recursos con la consola de Amazon Redshift mediante la AWS Resource Groups. Esta política puede adjuntarse a un rol de usuario que invoca la consola de Amazon Redshift nueva u original. Para obtener más información acerca del etiquetado, consulte Etiquetado de recursos en Amazon Redshift.
{ "Version": "2012-10-17", "Statement": [ { "Sid":"Tagging permissions", "Effect": "Allow", "Action": [ "redshift:DeleteTags", "redshift:CreateTags", "redshift:DescribeTags", "tag:UntagResources", "tag:TagResources" ], "Resource": "*" } ] }
Política de ejemplo para usar GetClusterCredentials
La política siguiente utiliza estos valores de parámetros de ejemplo:
-
Región:
us-west-2
-
Cuenta de AWS:
123456789012
-
Nombre del clúster:
examplecluster
La política siguiente habilita las acciones GetCredentials
, CreateClusterUser
y JoinGroup
. La política usa claves de condición para permitir las acciones GetClusterCredentials
y CreateClusterUser
solo cuando el ID de usuario de AWS concuerde con "AIDIODR4TAW7CSEXAMPLE:${redshift:DbUser}@yourdomain.com"
. El acceso de IAM solo se solicita para la base de datos "testdb"
. La política también permite a los usuarios unirse a un grupo denominado "common_group"
.
{ "Version": "2012-10-17", "Statement": [ { "Sid":"GetClusterCredsStatement", "Effect": "Allow", "Action": [ "redshift:GetClusterCredentials" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:dbuser:examplecluster/${redshift:DbUser}", "arn:aws:redshift:us-west-2:123456789012:dbname:examplecluster/testdb", "arn:aws:redshift:us-west-2:123456789012:dbgroup:examplecluster/common_group" ], "Condition": { "StringEquals": { "aws:userid":"AIDIODR4TAW7CSEXAMPLE:${redshift:DbUser}@yourdomain.com" } } }, { "Sid":"CreateClusterUserStatement", "Effect": "Allow", "Action": [ "redshift:CreateClusterUser" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:dbuser:examplecluster/${redshift:DbUser}" ], "Condition": { "StringEquals": { "aws:userid":"AIDIODR4TAW7CSEXAMPLE:${redshift:DbUser}@yourdomain.com" } } }, { "Sid":"RedshiftJoinGroupStatement", "Effect": "Allow", "Action": [ "redshift:JoinGroup" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:dbgroup:examplecluster/common_group" ] } ] }