

 Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del parche 198. Las UDF de Python existentes seguirán funcionando hasta el 30 de junio de 2026. Para obtener más información, consulte la [publicación del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Permisos federados de Amazon Redshift
<a name="federated-permissions"></a>

Los permisos federados de Amazon Redshift simplifican la administración de permisos en varios almacenes de datos de Redshift, ya que se permite definir los permisos de datos una vez y aplicarlos automáticamente en todos los almacenes de la Cuenta de AWS. Esto elimina la necesidad de redefinir y administrar los permisos y las políticas detalladas de control de acceso en varios almacenes.

 Al registrar el espacio de nombres o clúster de almacén de Redshift con AWS Glue Data Catalog, todas las bases de datos de los espacios de nombres o clústeres de almacenes registrados se montan automáticamente en cada almacén, lo que permite una detección de datos perfecta sin necesidad de configuración manual. 

Los permisos en los objetos de la base de datos se definen mediante los comandos de SQL de Redshift conocidos, especificando las identidades globales mediante AWS Identity and Access Management (IAM) o AWS IAM Identity Center. Estos permisos se almacenan junto con los datos del almacén y se aplican de forma coherente, independientemente del almacén que ejecute la consulta.

## Conceptos clave
<a name="federated-permissions-concepts"></a>
+ **Almacén de Redshift con permisos federados**: el almacén del productor que está registrado con catálogo de datos y donde se almacenan los datos y los permisos de Redshift.
+ **Almacén de Redshift de consumo**: cualquier almacén que consulte datos de un almacén remoto. El almacén de consumo se puede habilitar opcionalmente para los permisos federados de Redshift.
+ **Identidad global**: IAM e IAM Identity Center proporcionan una identidad global en todos los almacenes habilitados para los permisos federados de Redshift. Los usuarios se autentican una vez a través de su proveedor de identidades actual y reciben un acceso coherente en función de su identidad global, independientemente del almacén al que se conecten.
+ **Montaje automático**: todos los almacenes habilitados para los permisos federados de Redshift están visibles automáticamente en todos los almacenes de la cuenta. Esta capacidad de montaje automático permite la detección de catálogos y bases de datos para realizar análisis entre almacenes.
+ **Propagación de identidad**: cuando ejecuta una consulta entre almacenes, Redshift propaga la identidad global (rol de IAM o usuario de IAM Identity Center) al almacén remoto.
+ **Autorización entre almacenes**: los permisos federados de Redshift habilitados para el almacén remoto validan los permisos para las consultas entre almacenes y se aplican en los almacenes de consumo.
+ **Control de acceso detallado**: políticas de seguridad a nivel de fila (RLS), políticas por columna (CLP) y enmascaramiento dinámico de datos (DDM) que se pueden aplicar en todos los almacenes.

## Ventajas
<a name="federated-permissions-benefits"></a>

**Administración simplificada**
+ Definición de los permisos una vez en el almacén
+ Aplicación automática de los mismos permisos en todos los almacenes de consumo
+ Eliminación de la necesidad de redefinir, administrar los permisos y las políticas detalladas de control de acceso en varios almacenes
+ Reducción de la sobrecarga administrativa y los posibles errores de configuración

**Seguridad y conformidad mejoradas**
+ Garantía de aplicación coherente de la política de seguridad en todos los almacenes
+ Implementación de controles de acceso detallados por tabla y columna
+ Audición de los permisos de cualquier almacén
+ Herramientas de conformidad mejoradas con comandos SHOW adicionales

**Mejora de la experiencia de usuario**
+ Registro una vez y no hay que crear recursos compartidos de datos manualmente
+ Inicio de sesión único en todos los almacenes y acceso coherente basado en la identidad global
+ Detección perfecto del espacio de nombres sin configuración manual del catálogo
+ Sin necesidad de administrar cuentas de usuario locales independientes en cada almacén

**Escalabilidad horizontal**
+ Adición de nuevos almacenes sin aumentar la complejidad de la gobernanza
+ Los nuevos almacenes de consumo aplican automáticamente las políticas de permisos
+ Los analistas ven inmediatamente todas las bases de datos de los almacenes registrados

## Casos de uso
<a name="federated-permissions-use-cases"></a>

**Aislamiento de la carga de trabajo con una gobernanza unificada**

Separe los recursos informáticos para diferentes cargas de trabajo (ETL, análisis, informes) y, al mismo tiempo, mantenga políticas de seguridad coherentes en todos los almacenes.

**Acceso a los datos entre varios equipos**

Permita que varios equipos accedan a los datos compartidos desde sus propios almacenes mediante la aplicación automática de los controles de acceso adecuados.

**Arquitectura de malla de datos**

Implemente un enfoque de malla de datos en el que varios recursos informáticos independientes funcionen con datos compartidos con una gobernanza unificada.

**Optimización de costos**

Escale los recursos informáticos de forma independiente para diferentes casos de uso y, al mismo tiempo, mantenga una administración de permisos centralizada.

# Consideraciones al usar permisos federados de Amazon Redshift
<a name="federated-permissions-considerations"></a>

A continuación, se indican las consideraciones y las limitaciones para compartir datos de Amazon Redshift con AWS Glue Data Catalog mediante permisos federados. Para obtener información general sobre las consideraciones y limitaciones del uso compartido de datos, consulte [Consideraciones sobre el uso compartido de datos en Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/datashare-considerations.html).

Esta característica solo es compatible con [las versiones de clúster 197 y posteriores](https://docs.aws.amazon.com/redshift/latest/mgmt/cluster-versions.html#cluster-version-197).

**Regiones no admitidas**
+ África (Ciudad del Cabo)
+ Asia-Pacífico (Hyderabad)
+ Europa (Milán)
+ Europa (España)
+ Medio Oriente (EAU)

**Requisitos del entorno**

Las instancias registradas y de Redshift del consumidor deben cumplir estos requisitos:
+ **Tipo de instancia**: clústeres aprovisionados de RA3 o grupos de trabajo sin servidor
+ **Región**: la misma Región de AWS
+ **Cuenta**: la misma Cuenta de AWS
+ **Cifrado**: habilitado
+ **Nivel de aislamiento**: aislamiento instantáneo

**Objetos no admitidos**

Las instancias de consumidor no pueden acceder a los siguientes objetos del catálogo de permisos federados:
+ UDF de SQL, UDF de Python y UDF de Lambda
+ Modelos de ML
+ Esquema externo creado en la instancia registrada

**Restricciones de control de acceso básicas**

La concesión solo se admite en tablas, bases de datos, esquemas y funciones utilizadas con la notación de 3 puntos

**Restricciones de control de acceso específicas**

Además de las restricciones de la política de seguridad a nivel de fila (RLS) y enmascaramiento dinámico de datos (DDM) estándar de Amazon Redshift, las instancias de consumo no pueden acceder a los objetos protegidos por RLS o DDM del catálogo de permisos federados si las políticas contienen estas funciones del sistema:
+ `user_is_member_of`
+ `role_is_member_of`
+ `user_is_member_of_role`

Nota: En la versión actual de Redshift, los metadatos de las tablas relacionadas con FGAC a las que se accede desde los almacenes de Redshift de consumo están visibles temporalmente en el catálogo.

**Detección de metadatos**
+ Los comandos SHOW son compatibles con columnas, tablas, procedimientos almacenados, funciones y parámetros.

**Lake Formation**
+ Los permisos de Lake Formation no se admiten en los objetos del catálogo de permisos federados de Amazon Redshift.

**Identidad**
+ Solo los usuarios registrados con IAM o AWS IAM Identity Center pueden consultar objetos en el catálogo de permisos federados de Amazon Redshift.
+ Si el clúster de Amazon Redshift o espacio de nombres de Amazon Redshift sin servidor está registrado con los permisos federados de Amazon Redshift, no podrá administrar la gobernanza de datos de los usuarios federados de IAM mediante los grupos federados de IAM. Esto incluye cualquier control de acceso granular previamente configurado a los objetos a través de grupos federados de IAM.
+ Al registrar un clúster de Amazon Redshift o un espacio de nombres de Amazon Redshift sin servidor existente en un catálogo de permisos federados de Amazon Redshift, todos los usuarios federados de AWS IAM Identity Center, incluidos aquellos que anteriormente tenían acceso, deben disponer de forma explícita de los privilegios CONNECT concedidos para acceder al clúster o grupo de trabajo. Para obtener más información sobre cómo conceder privilegios CONNECT, consulte [Privilegios de conexión](federated-permissions-prereqs.md#federated-permissions-prereqs-connect).
+ Los usuarios federados de AWS IAM que se conectan a clústeres o grupos de trabajo de Amazon Redshift mediante etiquetas de entidades principales y credenciales de IAM temporales no se reconocen como identidades globales y no pueden acceder a los catálogos de permisos federados de Amazon Redshift. Solo los usuarios federados de AWS IAM Identity Center y los usuarios o roles federados de AWS IAM están autorizados a consultar los catálogos de permisos federados de Amazon Redshift.
+ Cuando el espacio de nombres del clúster de Amazon Redshift o Amazon Redshift sin servidor esté registrado con permisos federados de Amazon Redshift, las siguientes limitaciones del comando GRANT se aplican a los usuarios o roles federados de AWS IAM Identity Center y a los usuarios o roles federados de AWS IAM:
  + No puede conceder un rol federado a ningún usuario o rol. Una excepción a esta regla es que puede conceder un rol de base de datos de Redshift a un usuario federado de IAM.
  + No puede conceder ningún rol a un rol o usuario federado. Una excepción a esta regla es que puede conceder un rol definido por el sistema a un usuario o rol federado.

**Acceso de motor**
+ No se admite el acceso desde motores distintos de Redshift

**Modificación de la identidad global del conjunto de usuarios**
+ Solo se admite en las opciones “Seleccionar”, “Eliminar”, “Actualizar”, “Mostrar” e “Insertar”
+ El rol de IAM asociado a un usuario mediante ALTER USER SET GLOBAL IDENTITY solo se usa cuando la consulta se dirige al almacén de Redshift con permisos federados y solo cuando la consulta se dirige a una relación, como las consultas SELECT, UDPATE y DELETE.
+ Este rol de IAM también se utiliza en las consultas SHOW DATABASES, SHOW SCHEMAS y SHOW TABLES en los recursos del almacén de Redshift con permisos federados.
+ Este rol de IAM no se utiliza en consultas de definición de datos como CREATE, ALTER y DROP.

**Mensaje de error**
+ Cualquier operación no compatible en la base de datos del catálogo de permisos federados de Amazon Redshift mostrará el siguiente error:

  ```
  Operation is not supported through datashares
  ```

# Requisitos previos
<a name="federated-permissions-prereqs"></a>

## Requisitos de la política de IAM para la configuración de los permisos federados de Amazon Redshift
<a name="federated-permissions-prereqs-iam"></a>

Los permisos federados de Amazon Redshift permiten administrar de forma centralizada el acceso a los datos en todas las cargas de trabajo de análisis, con permisos administrados directamente por el almacén de Redshift.

Para habilitar los permisos federados de Amazon Redshift, se requieren permisos de IAM específicos además de los permisos estándar necesarios para crear clústeres aprovisionados y espacios de nombres sin servidor de Redshift.

Para que el almacén aprovisionado de Redshift habilite los permisos federados de Redshift:
+ `redshift:ModifyLakehouseConfiguration`
+ `redshift:RegisterNamespace`

Para que el almacén sin servidor de Redshift habilite los permisos federados de Redshift:
+ `redshift-serverless:UpdateLakehouseConfiguration`
+ `redshift:RegisterNamespace`

Para la integración de AWS Glue Data Catalog para crear un catálogo con permisos federados de Redshift:
+ `glue:CreateCatalog`
+ `glue:GetCatalog`

*Para el registro de recursos de Lake Formation como registro único para permitir la federación de permisos de Redshift desde un almacén remoto con permisos federados:*
+ `lakeformation:RegisterResource`
+ `lakeformation:RegisterResourceWithPrivilegedAccess`

## Configuración de la aplicación de IAM Identity Center para el almacén de Redshift con permisos federados
<a name="federated-permissions-prereqs-configuration"></a>

Amazon Redshift admite la propagación de identidades de los centros de identidades para transmitir sin problemas las identidades de los usuarios entre las instancias de Redshift y los servicios de AWS Lake Formation y AWS Glue. Esta capacidad requiere configurar aplicaciones de IdC dedicadas.

*Permisos de IAM necesarios*

Para crear y administrar la aplicación del centro de identidades para la propagación de la identidad del centro de identidades, asegúrese de que los permisos de IAM incluyan los siguientes permisos:

*Para la administración de aplicaciones de IdC de Amazon Redshift:*
+ `redshift:CreateRedshiftIdcApplication`
+ `redshift:ModifyRedshiftIdcApplication`
+ `redshift:DescribeRedshiftIdcApplications`

*Para la administración de aplicaciones de IdC de Lake Formation:*
+ `lakeformation:CreateLakeFormationIdentityCenterConfiguration`
+ `lakeformation:DescribeLakeFormationIdentityCenterConfiguration`
+ `lakeformation:UpdateLakeFormationIdentityCenterConfiguration`

**Creación de las aplicaciones y la configuración de IdC correspondientes**

Para establecer la propagación de identidades para las cargas de trabajo de análisis, cree una aplicación de IdC de Amazon Redshift del tipo Lakehouse. Administra los permisos sin requerir asignaciones de usuarios explícitas. Los almacenes de Redshift vinculados a esta aplicación requieren privilegios CONNECT para que los usuarios de IdC autentiquen las conexiones.

Solo puede crear una aplicación de IdC de Amazon Redshift del tipo Lakehouse por Cuenta de AWS. Esta aplicación gestiona la propagación de identidades en todos los almacenes de Redshift que están integrados con Lake Formation y servicios de AWS Glue. La aplicación solo se puede utilizar con los almacenes de Redshift que estén registrados en AWS Glue Data Catalog.

**Preparación del rol de IAM asumido por Redshift y utilizado por la propagación de identidades de IdC**

La creación de aplicaciones de IdC de Redshift Lakehouse requiere un rol de IAM en la cuenta con determinados permisos de IAM. El rol de IAM utilizado en las aplicaciones de IdC de Redshift debe tener la siguiente relación de confianza para permitir que Redshift la asuma y establezca el contexto para la propagación de la identidad de IdC.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Statement1",
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "redshift-serverless.amazonaws.com",
                    "redshift.amazonaws.com"
                ]
            },
            "Action": [
                "sts:AssumeRole",
                "sts:SetContext"
            ]
        }
    ]
}
```

Además, los permisos para el rol de IAM de IdC permiten propagar la identidad de IdC.
+  [AmazonRedshiftFederatedAuthorization](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRedshiftFederatedAuthorization.html): esta política permite a Amazon Redshift consultar bases de datos de AWS Glue Data Catalog mediante permisos federados. 
+ Política de contexto de conjunto de AWSIDC

  ```
   {
      "Version": "2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "sts:SetContext"
              ],
              "Resource": "*"
          }
      ]
  }
  ```
+ [Configuración de Redshift como una aplicación administrada de AWS con AWS IAM Identity Center](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-idp-connect-console.html#redshift-iam-access-control-idp-connect-admin-tasks).
+ Política de IAM de SSO del centro de identidades de AWSIDC:
  + `sso:DescribeApplication`: se requiere para crear una entrada de proveedor de identidades (IdP) en el catálogo.
  + `sso:DescribeInstance`: se utiliza para crear manualmente roles o usuarios federados de IdP.

    ```
    {
      "Sid": "VisualEditor1",
      "Effect": "Allow",
      "Action": [
        "sso:DescribeApplication",
        "sso:DescribeInstance"
      ],
      "Resource": [
        "arn:aws:sso:::instance/<IAM Identity Center Instance ID>",
        "arn:aws:sso::<AWS-account-id>:application/<IAM Identity Center Instance ID>/*"
      ]
    }
    ```

Creación de una nueva aplicación de IdC de Redshift de tipo Lakehouse

------
#### [ CLI ]

Cree la aplicación de IdC de Lakehouse especificando el tipo de aplicación de Lakehouse en la solicitud `create-redshift-idc-application`, lo que elimina la necesidad de asignar usuarios explícitos en el centro de identidades y, al mismo tiempo, habilita el requisito de privilegios de `CONNECT` para la autenticación de los usuarios de IdC:

```
aws redshift create-redshift-idc-application \
--idc-instance-arn <your_idc_instance_arn> \
--idc-display-name '<name_of_idc_application_display_on_idc_console>' \
--iam-role-arn <idc_carrier_role_arn> \
--application-type Lakehouse \
--redshift-idc-application-name '<name_of_idc_display_on_redshift_console>' \
--service-integrations '[
        {
            "LakeFormation":[
                {
                    "LakeFormationQuery":{"Authorization": "Enabled"}
                }
            ]
        },
        {
            "Redshift":[
                {
                    "Connect" : {
                        "Authorization": "Enabled"
                    }
                }
            ]
        }
    ]'
```

Esta configuración permite la propagación de identidades fiable entre Redshift y Lake Formation, lo que permite a los usuarios acceder a los datos de todos los servicios con sus credenciales del centro de identidades sin asignaciones de permisos adicionales.

------
#### [ Console ]

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

1. Vaya a la página de conexiones del IAM Identity Center y seleccione **Crear aplicación**.

1. Configure los ajustes generales de la aplicación de IdC.

1. Seleccione **Configurar los permisos federados de Amazon Redshift mediante AWS IAM Identity Center (recomendado)** para configurar el tipo de aplicación.

1. Las integraciones de propagación de identidad de conexión de Lake Formation y Redshift están habilitadas de forma predeterminada.

1. Complete el resto de la configuración del clúster y elija **Crear aplicación**.

------

Modificación de una aplicación de IdC de Redshift existente

Si tiene una aplicación de IdC de Redshift que no tiene habilitadas las integraciones de servicios requeridas, puede actualizarla para que admita la propagación de identidades entre servicios y clústeres/espacios de nombres.

------
#### [ CLI ]

Utilice el comando `modify-redshift-idc-application` para habilitar la autorización de `LakeFormation:query` y la autorización de `Redshift:Connect`. Estas integraciones son esenciales para la propagación de la identidad de IdC entre servicios y clústeres:

```
aws redshift modify-redshift-idc-application \
--redshift-idc-application-arn '<arn_of_the_target_redshift_idc_application>' \
--service-integrations '[
        {
            "LakeFormation":[
                {
                    "LakeFormationQuery":{"Authorization": "Enabled"}
                }
            ]
        },
        {
            "Redshift":[
                {
                    "Connect" : {
                        "Authorization": "Enabled"
                    }
                }
            ]
        }
    ]'
```

------
#### [ Console ]

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

1. Vaya a la página de conexiones del IAM Identity Center y elija una aplicación de IdC existente que desee editar.

1. Elija las integraciones de propagación de identidades para habilitar y configurar otros ajustes y elija **Guardar cambios**.

------

**Creación de la configuración del centro de identidades de Lake Formation**

El servicio de Lake Formation requiere una aplicación de IdC dedicada si aún no se ha creado ninguna. También debe habilitar la autorización de `Redshift:Connect` para que la configuración funcione correctamente.

------
#### [ CLI ]

Use el comando `create-lake-formation-identity-center-configuration` para habilitar la autorización de `Redshift:Connect`. Estas integraciones son esenciales para que Lake Formation propague la identidad de IdC a los clústeres de Redshift y a los espacios de nombres sin servidor de Redshift.

```
aws lakeformation  create-lake-formation-identity-center-configuration \
--instance-arn <your_idc_instance_arn> \
--service-integrations '[{
  "Redshift": [{
    "RedshiftConnect": {
      "Authorization": "ENABLED"
    }
  }]
}]'
```

------
#### [ Console ]

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

1. En el panel de navegación izquierdo, seleccione **Integración de IAM Identity Center**.

1. En la página de integración del IAM Identity Center, puede habilitar la propagación de identidades de confianza para la conexión de Amazon Redshift. Lake Formation propaga identidad a posteriores en función de los permisos efectivos, por lo que las aplicaciones autorizadas pueden acceder a los datos en nombre de los usuarios.

------

**Actualización de la configuración del centro de identidades de Lake Formation**

Si hubiera configurado la aplicación de IdC de Lake Formation que no tiene habilitadas las integraciones de servicios requeridas, puede actualizarla para que admita la propagación de identidades entre servicios y clústeres/espacios de nombres.

------
#### [ CLI ]

Use el comando `update-lake-formation-identity-center-configuration` para habilitar la autorización de `Redshift:Connect`. Estas integraciones son esenciales para la propagación de la identidad de IdC entre servicios y clústeres:

```
aws lakeformation update-lake-formation-identity-center-configuration \
--service-integrations '[{                                                            
  "Redshift": [{
    "RedshiftConnect": {
      "Authorization": "ENABLED"
    }
  }]
}]'
```

------
#### [ Console ]

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

1. En el panel de navegación izquierdo, seleccione **Integración de IAM Identity Center**.

1. En la página de integración del IAM Identity Center, puede habilitar la propagación de identidades de confianza para la conexión de Amazon Redshift. Lake Formation propaga identidad a posteriores en función de los permisos efectivos, por lo que las aplicaciones autorizadas pueden acceder a los datos en nombre de los usuarios.

------

## Requisitos previos de Lake Formation
<a name="federated-permissions-prereqs-lakeformation"></a>

El cliente necesita los permisos `CREATE_CATALOG` de Lake Formation para habilitar AWS Glue Data Catalog con los permisos federados de Amazon Redshift.

1. Si la cuenta pertenece a un cliente existente de Lake Formation, el administrador de Lake Formation debe conceder explícitamente el permiso CREATE\$1CATALOG a cada creador del clúster. Utilice el comando de la CLI de ejemplo siguiente:

   ```
   aws lakeformation grant-permissions \
       --cli-input-json \
       '{
           "Principal": {
               "DataLakePrincipalIdentifier": "<PrincipalArn>"
           },
           "Resource": {
               "Catalog": {}
           },
           "Permissions": [
               "CREATE_CATALOG"
           ]
       }'
   ```

1. Si la cuenta nunca ha utilizado Lake Formation, compruebe que los creadores de catálogos estén configurados como IAMAllowedPrincipals en la página Roles y tareas administrativas de la consola de Lake Formation. Si no está configurado, configure un administrador de lago de datos siguiendo las instrucciones [Crear un administrador de lago de datos](https://docs.aws.amazon.com/lake-formation/latest/dg/initial-lf-config.html#create-data-lake-admin). Como opción alternativa, puede crear un administrador de lago de datos con las políticas mínimas requeridas si solo va a utilizar AWS Glue Data Catalog con los permisos federados de Amazon Redshift.

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "Statement1",
               "Effect": "Allow",
               "Action": [
                   "lakeformation:PutDataLakeSettings",
                   "lakeformation:GrantPermissions",
                   "lakeformation:GetDataLakeSettings",
                   "lakeformation:BatchGrantPermissions",
                   "lakeformation:ListPermissions"
               ],
               "Resource": [
                   "*"
               ]
           }
       ]
   }
   ```

1. Haga que el administrador de DataLake otorgue permisos a las IAMAllowedPrincipals para crear un catálogo. El acceso se puede conceder a los creadores de catálogos mediante el botón **Conceder** en la página de roles y tareas administrativas.

## Privilegios de conexión
<a name="federated-permissions-prereqs-connect"></a>

Como parte de los permisos federados de Amazon Redshift, Amazon Redshift ha ingresado los privilegios CONNECT para administrar el acceso de los usuarios federados de AWS IAM Identity Center a los grupos de trabajo o clústeres de Amazon Redshift. Esta característica está disponible cuando los permisos federados de Amazon Redshift están habilitados en el grupo de trabajo o el clúster.

Este privilegio permite a los administradores controlar el acceso de los usuarios mediante permisos granulares en cada grupo de trabajo o clúster de Amazon Redshift en los que estén habilitados los permisos federados de Amazon Redshift. El administrador de Amazon Redshift puede especificar qué usuarios o grupos de AWS IAM Identity Center federados tienen acceso para conectarse directamente al grupo de trabajo o clúster de Amazon Redshift, lo que proporciona un control detallado del acceso de los usuarios de AWS IAM Identity Center a cada grupo de trabajo o clúster.

### Sintaxis
<a name="federated-permissions-prereqs-connect-syntax"></a>

```
GRANT CONNECT [ON WORKGROUP]
TO [USER] <prefix>:<username> | ROLE <prefix>:<rolename> | PUBLIC;
```

CONNECT [ON WORKGROUP]  
Concede permiso para conectar a un grupo de trabajo. El permiso CONNECT solo se aplica a las identidades de AWS IAM Identity Center (usuarios y roles).

TO <prefix>:<username>  
Indica el usuario federado de AWS IAM Identity Center que recibe los permisos.

TO ROLE <prefix>:<rolename>  
Indica el grupo federado de AWS IAM Identity Center que recibe los permisos.

PUBLIC  
Concede los permisos CONNECT a todos los usuarios federados de AWS IAM Identity Center, incluidos los creados posteriormente.

# Incorporación
<a name="federated-permissions-onboarding"></a>

## Registro de clúster de Redshift
<a name="federated-permissions-onboarding-cluster-registration"></a>

Redshift admite la creación de un clúster nuevo o la restauración de un clúster a partir de una instantánea con registro de AWS Glue Data Catalog (GDC). Puede especificar el nombre del catálogo de GDC como parte de este registro. Para admitir la propagación de la identidad de IdC, puede especificar un ARN de aplicación de IdC de Redshift del tipo Lakehouse para permitir la propagación de la identidad de IdC.

**Creación de un nuevo clúster con el registro del catálogo de datos de Glue**

------
#### [ CLI ]

Para registrar automáticamente el clúster recién creado en el catálogo de datos, proporcione el nombre del catálogo que se utilizará para crear y registrar el catálogo de datos. El parámetro `redshift-idc-application-arn` es opcional; inclúyalo si desea vincular el clúster con la aplicación de IdC de Redshift de tipo Lakehouse. También puede establecer esta asociación de aplicación de IdC más tarde.

```
aws redshift create-cluster \
    --cluster-identifier 'redshift-cluster' \
   --catalog-name 'glue-data-catalog-name' \
   --redshift-idc-application-arn 'arn:aws:redshift:us-east-1:012345678912:redshiftidcapplication:3f966e50-f1b7-495c-8ace-bd0d6c3c3b17' \
   --<other_configurations_as_needed>
```

------
#### [ Console ]

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

1. Navegue hasta el panel de clústeres aprovisionados y seleccione **Crear clúster**.

1. Configure los ajustes generales del clúster.

1. En la sección Registrarse con AWS Glue Data Catalog, seleccione **Registrarse con los permisos federados de Amazon Redshift**.
   + Ingrese un identificador de nombre de catálogo.
   + (Recomendado) Seleccione los permisos federados de Amazon Redshift mediante AWS IAM Identity Center para asociarlos a la aplicación de IDC de Redshift.

1. Complete el resto de la configuración del clúster y elija **Crear clúster**.

------

**Restauración de un clúster nuevo con registro de AWS Glue Data Catalog**

------
#### [ CLI ]

Para restaurar una instantánea en un clúster nuevo con integración de AWS Glue Data Catalog, proporcione el nombre del catálogo que se utilizará para crear y registrar el catálogo de AWS Glue. El parámetro `redshift-idc-application-arn` es opcional; inclúyalo si desea vincular el clúster con la aplicación de IdC de Redshift de tipo Lakehouse. También puede establecer esta asociación de aplicación de IdC más tarde.

```
aws redshift restore-from-cluster-snapshot \
   --cluster-identifier 'redshift-cluster' \
   --catalog-name 'glue-data-catalog-name' \
   --snapshot-identifier 'redshift-cluster-snapshot' \
   --redshift-idc-application-arn 'arn:aws:redshift:us-east-1:012345678912:redshiftidcapplication:3f966e50-f1b7-495c-8ace-bd0d6c3c3b17' \
   --<other_configurations_as_needed>
```

------
#### [ Console ]

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

1. Vaya a la página de instantáneas aprovisionadas. En la tabla de instantáneas, seleccione **Restaurar en el clúster aprovisionado** en el menú desplegable **Restaurar instantáneas**. 

1. Configure los ajustes generales del clúster.

1. En la sección Registrarse con AWS Glue Data Catalog, seleccione **Registrarse con los permisos federados de Amazon Redshift**.
   + Ingrese un identificador de nombre de catálogo.
   + (Recomendado) Seleccione los permisos federados de Amazon Redshift mediante AWS IAM Identity Center para asociarlos a la aplicación de IDC de Redshift.

1. Complete el resto de la configuración del clúster y elija **Crear clúster**.

------

**Modificación de un clúster existente con el registro de AWS Glue Data Catalog**

Si el clúster de Redshift ya está asociado a una aplicación de IdC de Redshift del tipo que no sea Lakehouse, durante el registro de AWS Glue Data Catalog ocurre lo siguiente:
+ Si no se proporciona el ARN de la aplicación de IdC de Redshift, la aplicación de IdC de Redshift existente en el catálogo pasará a estar desactivada.
+ Cuando se especifica una aplicación de IdC de Redshift del tipo Lakehouse de una instancia de AWS IAM Identity Center diferente, el proveedor de IdC actual queda desactivado.
+ Cuando se proporciona una aplicación de IdC de Redshift del tipo Lakehouse de la misma instancia de AWS IAM Identity Center
  + El ARN de la aplicación de IdC de Redshift del catálogo se cambiará por el ARN de la aplicación de IdC de Redshift del tipo Lakehouse. El catálogo actualizado se puede comprobar consultando svv\$1identity\$1providers. Para obtener más información sobre los svv\$1identity\$1providers, consulte [svv\$1identity\$1providers](https://docs.aws.amazon.com/redshift/latest/dg/r_SVV_IDENTITY_PROVIDERS.html).
  + Los administradores deben conceder explícitamente los privilegios CONNECT a los usuarios federados de AWS IAM Identity Center que anteriormente tenían acceso al clúster de Redshift para acceder al clúster. Para obtener más información sobre cómo conceder privilegios CONNECT, consulte [Privilegios de conexión](federated-permissions-prereqs.md#federated-permissions-prereqs-connect).
  + Tras registrarse con AWS Glue Data Catalog, las identidades de AWS IAM Identity Center federadas actuales y sus recursos propios permanecen inalterados. También se conservan las asociaciones de espacios de nombres de estas identidades federadas.

------
#### [ CLI ]

Puede usar el comando `modify-lakehouse-configuration` para registrar el clúster en AWS Glue Data Catalog, `catalog-name` se usa para crear y registrar el catálogo de AWS Glue. Para admitir la propagación de identidades de IdC, especifique el ARN del tipo Lakehouse de RedshiftIdcApplication. Esto requiere una aplicación de IdC de Redshift del tipo Lakehouse. Consulte [Creación de una nueva aplicación de IdC de Redshift del tipo Lakehouse: configuración de la aplicación del centro de identidades para el almacén de Redshift con permisos federados](https://docs.aws.amazon.com/redshift/latest/dg/federated-permissions-prereqs.html#federated-permissions-prereqs-configuration).

```
aws redshift modify-lakehouse-configuration \
    --cluster-identifier 'redshift-cluster' \
    --lakehouse-registration Register \
    --catalog-name 'glue-data-catalog-name' \
    --lakehouse-idc-registration Associate \
    --lakehouse-idc-application-arn 'arn:aws:redshift:us-east-1:012345678912:redshiftidcapplication:3f966e50-f1b7-495c-8ace-bd0d6c3c3b17' \
```

------
#### [ Console ]

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

1. Vaya hasta el clúster aprovisionado que desee registrar y selecciónelo.

1. En la página de detalles del clúster, seleccione **Registrar con AWS Glue Data Catalog** en el menú desplegable **Acciones**.

1. Seleccione la opción **Registrarse con los permisos federados de Amazon Redshift** e
   + ingrese un identificador de nombre de catálogo.
   + (Recomendado) Seleccione los permisos federados de Amazon Redshift mediante AWS IAM Identity Center para asociarlos a la aplicación de IDC de Redshift y elija **Registrar**.

------

## Registro de espacio de nombres sin servidor de Redshift
<a name="federated-permissions-onboarding-namespace-registration"></a>

Redshift sin servidor permite a los espacios de nombres sin servidor conectados a grupos de trabajo registrarse con AWS Glue Data Catalog. Tenga en cuenta que la base de datos se reiniciará durante esta actualización.

Si el espacio de nombres sin servidor de Redshift ya está asociado a una aplicación de IdC de Redshift del tipo que no sea Lakehouse, durante el registro del catálogo de datos de Glue ocurre lo siguiente:
+ Si no se proporciona el ARN de la aplicación de IdC de Redshift, la aplicación de IdC de Redshift existente en el catálogo pasará a estar desactivada.
+ Cuando se especifica una aplicación de IdC de Redshift del tipo Lakehouse de una instancia de AWS IAM Identity Center diferente, el proveedor de IdC actual queda desactivado.
+ Cuando se proporciona una aplicación de IdC de Redshift del tipo Lakehouse de la misma instancia de AWS IAM Identity Center
  + El ARN de la aplicación de IdC de Redshift del catálogo se cambiará por el ARN de la aplicación de IdC de Redshift del tipo Lakehouse. El catálogo actualizado se puede comprobar consultando svv\$1identity\$1providers. Para obtener más información sobre los svv\$1identity\$1providers, consulte [svv\$1identity\$1providers](https://docs.aws.amazon.com/redshift/latest/dg/r_SVV_IDENTITY_PROVIDERS.html).
  + Los administradores deben conceder explícitamente los privilegios CONNECT a los usuarios federados de AWS IAM Identity Center que anteriormente tenían acceso al clúster de Redshift para acceder al clúster. Para obtener más información sobre cómo conceder privilegios CONNECT, consulte [Privilegios de conexión](federated-permissions-prereqs.md#federated-permissions-prereqs-connect).
  + Tras registrarse con AWS Glue Data Catalog, las identidades de AWS IAM Identity Center federadas actuales y sus recursos propios permanecen inalterados. También se conservan las asociaciones de espacios de nombres de estas identidades federadas.

------
#### [ CLI ]

Puede usar el comando `update-lakehouse-configuration` para registrar el espacio de nombres sin servidor de Redshift en AWS Glue Data Catalog, el `catalog-name` se usa para crear y registrar el catálogo de Glue. Para admitir la propagación de la identidad de IdC, especifique el ARN de una aplicación de IdC de Redshift del tipo Lakehouse.

```
aws redshift-serverless update-lakehouse-configuration \
    --namespace-name 'serverless-namespace-name' \
    --lakehouse-registration Register \
    --catalog-name 'glue-data-catalog-name' \
    --lakehouse-idc-registration Associate \
    --lakehouse-idc-application-arn 'arn:aws:redshift:us-east-1:012345678912:redshiftidcapplication:3f966e50-f1b7-495c-8ace-bd0d6c3c3b17'
```

------
#### [ Console ]

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

1. Vaya hasta el clúster aprovisionado que desee registrar y selecciónelo.

1. En la página de detalles del clúster, seleccione **Registrar con AWS Glue Data Catalog** en el menú desplegable **Acciones**.

1. Seleccione la opción **Registrarse con los permisos federados de Amazon Redshift** e
   + ingrese un identificador de nombre de catálogo.
   + (Recomendado) Seleccione los permisos federados de Amazon Redshift mediante AWS IAM Identity Center para asociarlos a la aplicación de IDC de Redshift y elija **Registrar**.

------

## Habilitación de la propagación de identidades de AWS IAM Identity Center
<a name="federated-permissions-onboarding-propagation"></a>

Amazon Redshift admite la propagación de identidades de los centros de identidades (IdC) para transmitir sin problemas las identidades de los usuarios de IdC entre las instancias de Redshift y los servicios de AWS Lake Formation o AWS Glue.

**Requisitos previos**
+ Ha creado una aplicación de IdC de Amazon Redshift del tipo Lakehouse; consulte la [configuración de la aplicación de AWS IAM Identity Center para el almacén de Redshift con permisos federados](https://docs.aws.amazon.com/redshift/latest/dg/federated-permissions-prereqs.html#federated-permissions-prereqs-configuration).
+ Tiene registrado un clúster de Amazon Redshift o un espacio de nombres de Amazon Redshift sin servidor con AWS Glue Data Catalog.
  + El espacio de nombres sin servidor de Redshift requiere un grupo de trabajo adjunto para realizar las operaciones relacionadas.

Si el clúster de Redshift o el espacio de nombres sin servidor de Redshift ya están asociados a una aplicación de IdC de Redshift del tipo que no sea Lakehouse, durante el registro de AWS Glue Data Catalog ocurre lo siguiente:
+ Si no se proporciona el ARN de la aplicación de IdC de Redshift, la aplicación de IdC de Redshift existente en el catálogo pasará a estar desactivada.
+ Cuando se especifica una aplicación de IdC de Redshift del tipo Lakehouse de una instancia de AWS IAM Identity Center diferente, el proveedor de IdC actual queda desactivado.
+ Cuando se proporciona una aplicación de IdC de Redshift del tipo Lakehouse de la misma instancia de AWS IAM Identity Center
  + El ARN de la aplicación de IdC de Redshift del catálogo se cambiará por el ARN de la aplicación de IdC de Redshift del tipo Lakehouse. El catálogo actualizado se puede comprobar consultando svv\$1identity\$1providers. Para obtener más información sobre los svv\$1identity\$1providers, consulte [svv\$1identity\$1providers](https://docs.aws.amazon.com/redshift/latest/dg/r_SVV_IDENTITY_PROVIDERS.html).
  + Los administradores deben conceder explícitamente los privilegios CONNECT a los usuarios federados de AWS IAM Identity Center que anteriormente tenían acceso al clúster de Redshift para acceder al clúster. Para obtener más información sobre cómo conceder privilegios CONNECT, consulte [Privilegios de conexión](federated-permissions-prereqs.md#federated-permissions-prereqs-connect).
  + Tras registrarse con AWS Glue Data Catalog, las identidades de AWS IAM Identity Center federadas actuales y sus recursos propios permanecen inalterados. También se conservan las asociaciones de espacios de nombres de estas identidades federadas.

### Habilitación de la propagación de identidades de AWS IAM Identity Center para clústeres aprovisionados de Amazon Redshift
<a name="federated-permissions-onboarding-propagation-cluster"></a>

Para el clúster aprovisionado de Amazon Redshift que registró su espacio de nombres en AWS Glue Data Catalog, se requiere la aplicación de IdC de Amazon Redshift de tipo Lakehouse, que no requiere la asignación explícita de usuarios de identidad de AWS IAM Identity Center a la aplicación. El privilegio de inicio de sesión de los usuarios de IdC se administra mediante el privilegio CONNECT en el almacén de Redshift.

------
#### [ CLI ]

Puede usar el comando `modify-lakehouse-configuration` para permitir la propagación de identidades de IdC para los clústeres con permisos federados de Redshift, especifique el ARN del tipo Lakehouse de RedshiftIdcApplication. Esto requiere una aplicación de IdC de Redshift del tipo Lakehouse. Consulte [Creación de una nueva aplicación de IdC de Redshift del tipo Lakehouse: configuración de la aplicación del centro de identidades para el almacén de Redshift con permisos federados](https://docs.aws.amazon.com/redshift/latest/dg/federated-permissions-prereqs.html#federated-permissions-prereqs-configuration).

```
aws redshift modify-lakehouse-configuration \
    --cluster-identifier 'redshift-cluster' \
    --lakehouse-idc-registration Associate \
    --lakehouse-idc-application-arn 'arn:aws:redshift:us-east-1:012345678912:redshiftidcapplication:3f966e50-f1b7-495c-8ace-bd0d6c3c3b17' \
```

------
#### [ Console ]

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

1. Vaya hasta el clúster aprovisionado que desee registrar y selecciónelo.

1. En la página de detalles del clúster, seleccione **Registrar con AWS Glue Data Catalog** en el menú desplegable **Acciones**.

1. Seleccione **Habilitar** en permisos federados de Amazon Redshift mediante el menú desplegable de AWS IAM Identity Center para asociar la aplicación de IdC y elija **Guardar cambios**.

------

### Habilitación de la propagación de identidades de AWS IAM Identity Center para los espacios de nombres de Amazon Redshift sin servidor
<a name="federated-permissions-onboarding-propagation-namespace"></a>

------
#### [ CLI ]

Puede usar el comando `modify-lakehouse-configuration` para permitir la propagación de identidades de IdC para el espacio de nombres con permisos federados de Redshift, especifique el ARN del tipo Lakehouse de RedshiftIdcApplication. Esto requiere una aplicación de IdC de Redshift del tipo Lakehouse. Consulte [Creación de una nueva aplicación de IdC de Redshift del tipo Lakehouse: configuración de la aplicación del centro de identidades para el almacén de Redshift con permisos federados](https://docs.aws.amazon.com/redshift/latest/dg/federated-permissions-prereqs.html#federated-permissions-prereqs-configuration).

```
aws redshift modify-lakehouse-configuration \
    --cluster-identifier 'redshift-cluster' \
    --lakehouse-idc-registration Associate \
    --lakehouse-idc-application-arn 'arn:aws:redshift:us-east-1:012345678912:redshiftidcapplication:3f966e50-f1b7-495c-8ace-bd0d6c3c3b17' \
```

------
#### [ Console ]

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

1. Vaya hasta el espacio de nombres sin servidor para el que desee editar el registro y selecciónelo.

1. En la página de detalles del clúster, seleccione **Editar registro de AWS Glue Data Catalog** en el menú desplegable **Acciones**.

1. Seleccione **Habilitar** en permisos federados de Amazon Redshift mediante el menú desplegable de AWS IAM Identity Center para asociar la aplicación de IdC y elija **Guardar cambios**.

------

## ALTER USER SET GLOBAL IDENTITY
<a name="federated-permissions-onboarding-alter-set-global-identity"></a>

Además de las credenciales de IAM y AWS IAM Identity Center, el usuario que ejecuta consultas en almacenes de Redshift con permisos federados puede autenticarse mediante un rol de IAM. Un superusuario puede configurar un rol de IAM para que otro usuario no federado lo asocie automáticamente al establecer la sesión, y este rol de IAM se asumirá al realizar consultas en almacenes de Redshift con permisos federados. Esta funcionalidad se proporciona para permitir a los usuarios de IdC de AWS autenticarse de forma no interactiva.

Esta característica resulta útil para los siguientes casos de uso:
+ Clientes que tienen configuraciones grandes y complejas con un usuario de almacén local existente, además de usuarios con identidad global.
+ Clientes que utilizan IdC, pero que desean iniciar sesión automáticamente sin que el navegador interactúe para iniciar sesión.

Requisitos y limitaciones:
+ Solo el superusuario puede establecer el rol de IAM mediante `ALTER USER`.
+ Debe adjuntarse el rol de IAM al clúster.
+ El rol de IAM debe tener permisos para acceder a los recursos necesarios para ejecutar consultas en los almacenes de Redshift con permisos federados. Se recomienda utilizar la política administrada de AWS, `[AmazonRedshiftFederatedAuthorization](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRedshiftFederatedAuthorization.html)`.
+  Los usuarios que se autentican mediante el rol de IAM de GLOBAL IDENTITY pueden consultar vistas en almacenes de Redshift con permisos federados, pero no las pueden CREATE, ALTER, REFRESH o DROP. 

### Sintaxis
<a name="federated-permissions-onboarding-alter-set-global-identity-syntax"></a>

La siguiente sintaxis describe el comando `ALTER USER SET GLOBAL IDENTITY` utilizado para establecer el rol de IAM para que un usuario de una base de datos no federada ejecute consultas en almacenes de Redshift con permisos federados.

```
ALTER USER username SET
GLOBAL IDENTITY IAM_ROLE 'arn:aws:iam::<AWS-account-id>:role/<role-name>'
```

Ahora, al autenticarse como usuario de destino (conectándose directamente como *nombre de usuario* o mediante [SET SESSION AUTHORIZATION](https://docs.aws.amazon.com/redshift/latest/dg/r_SET_SESSION_AUTHORIZATION.html)), puede comprobar el rol de identidad global mediante

```
SHOW GLOBAL IDENTITY
```

Tenga en cuenta que el rol de identidad global se asocia al usuario al establecer la sesión. Si establece la identidad global del usuario que ha iniciado sesión actualmente, dicho usuario tendrá que volver a conectarse para que la identidad global surta efecto.

El siguiente comando se puede utilizar para eliminar el rol de IAM asociado.

```
ALTER USER username RESET GLOBAL IDENTITY
```

### Parameters
<a name="federated-permissions-onboarding-alter-set-global-identity-parameters"></a>

username  
Nombre del usuario. No puede ser un usuario federado, como un usuario de IAM o un usuario de IdC de AWS.

IAM\$1ROLE “arn:aws:iam::<account-id>:role/<role-name>”  
Utilice el nombre de recurso de Amazon (ARN) para un rol de IAM que el clúster utiliza para la autenticación y la autorización cuando el *nombre de usuario* del usuario ejecuta consultas en almacenes de Redshift con permisos federados. Este rol debe tener los permisos requeridos para ejecutar la consulta. Se recomienda utilizar la política administrada de AWS, `[AmazonRedshiftFederatedAuthorization](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRedshiftFederatedAuthorization.html)`.

# Consulta de catálogos registrados en AWS Glue Data Catalog con permisos federados de Redshift.
<a name="federated-permissions-querying"></a>

Al registrar un almacén de datos de Amazon Redshift en AWS Glue Data Catalog mediante permisos federados de Amazon Redshift, las bases de datos en ese espacio de nombres se montan automáticamente en todas las instancias de Amazon Redshift en esa Cuenta de AWS y región. Esto permite realizar consultas en entornos de varios almacenes y, al mismo tiempo, mantener la seguridad mediante identidades globales y políticas detalladas de control de acceso (FGAC).

## Requisitos previos
<a name="federated-permissions-querying-prereqs"></a>

Antes de consultar bases de datos federadas, asegúrese de lo siguiente:
+ Asocie la política administrada [AmazonRedshiftFederatedAuthorization](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRedshiftFederatedAuthorization.html) de AWS a su rol o usuario de IAM. Para un control de acceso detallado, puede conceder acciones específicas de IAM desde esta política en lugar de adjuntar la política completa.
+ Se han configurado los permisos adecuados para los objetos del catálogo en el almacén de datos de origen
+ Acceda al almacén de datos de Amazon Redshift en la misma Cuenta de AWS y región.

## Consulta de bases de datos federadas
<a name="federated-permissions-querying-federated-db"></a>

Puede consultar objetos en las bases de datos en los catálogos registrados mediante la sintaxis de tres partes para acceder a las tablas:

```
database@namespace_catalog.schema.table
```

### Consulta de ejemplo
<a name="federated-permissions-querying-sample-query"></a>

```
SELECT * FROM my_database@my_namespace.sales.transactions  
WHERE transaction_date >= '2024-01-01';
```

Además, puede acceder a los objetos de las bases de datos federadas a través de la [base de datos USE](https://docs.aws.amazon.com/redshift/latest/dg/r_USE_command.html).

Las bases de datos federadas también están disponibles para una [conexión directa](https://docs.aws.amazon.com/redshift/latest/dg/database-direct-connect.html).

## Seguridad y control de acceso
<a name="federated-permissions-querying-security"></a>

**Identidades globales y aplicación de FGAC**

Al habilitar el almacén de datos de Amazon Redshift con permisos federados, las concesiones y las políticas de FGAC definidas en estos objetos se aplican automáticamente en los almacenes de consumo. Esto garantiza una seguridad coherente en todo el entorno de varios almacenes.

**Características de seguridad compatibles**

Puede configurar los siguientes controles de seguridad en los objetos del almacén de datos de Amazon Redshift, que se aplicarán en todos los almacenes de consumo
+ **Privilegios por columna (CLP)**: conceda o restrinja el acceso a columnas específicas
+ **Seguridad a nivel de fila (RLS)**: controle el acceso a filas específicas en función de los atributos del usuario
+ **Enmascaramiento dinámico de datos (DDM)**: enmascare automáticamente la información confidencial en función de los permisos del usuario

# Administración del control de acceso en el catálogo de permisos federados de Amazon Redshift
<a name="federated-permissions-managing-access"></a>

Con los permisos federados de Amazon Redshift, los usuarios pueden definir controles de acceso básicos y detallados desde cualquier almacén de Redshift de la Cuenta de AWS. Los permisos básicos administran el acceso a las tablas, las vistas y los objetos de la base de datos, incluidos los permisos limitados, mientras que los controles más detallados permiten los privilegios por columna y la aplicación de políticas de seguridad, como la seguridad a nivel de fila (RLS) y el enmascaramiento dinámico de datos (DDM).

## Concesión / Revocación
<a name="federated-permissions-managing-access-grant-revoke"></a>

Con los permisos federados, puede definir permisos en los accesos por tabla, como el acceso para leer y escribir datos en tablas y vistas en la base de datos de permisos federados de Redshift desde cualquier almacén de Redshift.

```
GRANT SELECT ON "sales_db@finance-catalog".sales_schema.sales_table TO "IAMR:sales_analyst";  

GRANT INSERT ON "sales_db@finance-catalog".sales_schema.sales_view TO "IAMR:sales_data_engineer";  

REVOKE UPDATE ON "sales_db@finance-catalog".sales_schema.us_sales_view FROM "IAMR:us_sales_analyst";  

REVOKE DELETE ON "sales_db@finance-catalog".sales_schema.us_sales_view FROM "IAMR:us_sales_analyst";
```

Los permisos federados de Amazon Redshift admiten permisos acotados que permiten conceder o revocar permisos en todos los objetos de un tipo dentro de una base de datos o esquema.

```
GRANT SELECT FOR TABLES IN SCHEMA "sales_db@finance-catalog".sales_schema TO "IAMR:sales_manager";  

REVOKE UPDATE FOR TABLES IN SCHEMA sales_schmea DATABASE "sales_db@finance-catalog" FROM "IAMR:sales_analyst";
```

Puede definir la concesión o revocación de los permisos de acceso en la base de datos.

```
GRANT CREATE ON DATABASE "sales_db@finance-catalog" TO "IAMR:sales_admin";  

REVOKE TEMP ON DATABASE "sales_db@finance-catalog" FROM "IAMR:sales_analyst";
```

Para obtener más información sobre los permisos federados de Amazon Redshift compatibles con la sintaxis para la concesión, consulte [Permisos que puede conceder en el catálogo de permisos federados de Amazon Redshift](#federated-permissions-managing-access-grant-allowed).

## Control de acceso detallado
<a name="federated-permissions-managing-access-fgac"></a>

Puede definir el control de acceso detallado sobre la información confidencial mediante el control de acceso por columna, la seguridad a nivel de fila (RLS) y el enmascaramiento dinámico de datos (DDM) en una base de datos con permisos de federación de Amazon Redshift. El control de acceso por columna permite definir con mayor precisión los privilegios de acceso por columna en tablas y vistas. Los superusuarios y los usuarios o roles con el rol `sys:secadmin` en la base de datos pueden crear políticas de RLS y DDM, adjuntar estas políticas a relaciones específicas y habilitar el RLS en una relación.

### Control de acceso por columna:
<a name="federated-permissions-managing-access-column"></a>

Puede conceder o revocar privilegios específicos en columnas individuales de una tabla o vista.

```
GRANT SELECT ON "sales_db@finance-catalog".sales_schema.sales_table(order_number, sales_date, purchase_amount, sale_amount) TO "IAMR:sales_revenue_analyst";  

REVOKE UPDATE ON "sales_db@finance-catalog".sales_schema.us_sales_view(order_number, sales_date, purchase_amount, sale_amount) FROM "IAMR:sales_revenue_analyst";
```

### Seguridad a nivel de fila (RLS):
<a name="federated-permissions-managing-access-row"></a>

Puede activar o desactivar la seguridad a nivel de fila para una relación.

```
ALTER TABLE "sales_db@finance-catalog".sales_schema.sales_table ROW LEVEL SECURITY ON;
```

Puede crear, modificar o eliminar la política de RLS en la base de datos.

```
-- Create an RLS policy  
CREATE RLS POLICY "sales_db@finance-catalog".policy_america  
WITH (region VARCHAR(10))   
USING (region = 'USA');  

-- Alter an RLS policy  
ALTER RLS POLICY "sales_db@finance-catalog".policy_america  
USING (region IN ('USA', 'CANADA', 'Mexico'));  

-- Drop an RLS policy  
DROP RLS POLICY "sales_db@finance-catalog".policy_america;
```

Puede adjuntar o separar una política de RLS en una relación.

```
-- Attach an RLS policy  
ATTACH RLS POLICY "sales_db@finance-catalog".policy_america  
ON "sales_db@finance-catalog".sales_schema.sales_table  
TO "IAMR:america_sales_analyst";  

-- Detach an RLS policy  
DETACH RLS POLICY "sales_db@finance-catalog".policy_america  
ON "sales_db@finance-catalog".sales_schema.sales_view_america  
FROM "IAMR:global_sales_analyst";
```

### Enmascaramiento dinámico de datos (DDM):
<a name="federated-permissions-managing-access-ddm"></a>

Puede crear, modificar o eliminar la política de enmascaramiento en la base de datos.

```
-- Create a masking policy  
CREATE MASKING POLICY "sales_db@finance-catalog".hash_credit  
WITH (credit_card varchar(256))  
USING (sha2(credit_card + 'testSalt', 256));  

-- Alter an masking policy  
ALTER MASKING POLICY "sales_db@finance-catalog".hash_credit  
USING (sha2(credit_card + 'otherTestSalt', 256));  

-- Drop an masking policy  
DROP MASKING POLICY "sales_db@finance-catalog".hash_credit;
```

Puede adjuntar o separar una política de enmascaramiento en una relación.

```
-- Attach a masking policy  
 ATTACH MASKING POLICY hash_credit  
ON "sales_db@finance-catalog".sales_schema.transaction_table (credit_card)  
TO "IAMR:sales_analyst" PRIORITY 30;   

-- Detach a masking policy  
DETACH MASKING POLICY hash_credit  
ON "sales_db@finance-catalog".sales_schema.transaction_view (credit_card)  
FROM "IAMR:transaction_analyst";
```

Un superusuario o un usuario con el privilegio `sys:secadmin` puede ver las políticas de RLS y DDM, así como sus archivos adjuntos en una relación con permisos federados, mediante el comando [SHOW POLICIES](r_SHOW_POLICIES.md).

**nota**  
Las funciones definidas por el usuario (UDF) en RLS y las definiciones de políticas de DDM no son compatibles con los permisos federados de Amazon Redshift.
Las funciones SQL de Redshift user\$1is\$1member\$1of, role\$1is\$1member\$1of, user\$1is\$1member\$1of\$1role no son compatibles con los permisos federados de Amazon Redshift.

### Permisos que puede conceder en el catálogo de permisos federados de Amazon Redshift
<a name="federated-permissions-managing-access-grant-allowed"></a>

Instrucciones SQL para respaldar la administración de permisos en bases de datos con permisos federados de Amazon Redshift sobre recursos con distintos niveles de detalle. La sintaxis admite referencias de tablas locales (cuando se conecta a la base de datos que contiene el recurso o cuando la base de datos de origen está en USO) y referencias cruzadas totalmente cualificadas entre bases de datos.

**Nota**
+ *username* puede hacer referencia a un usuario de IAM, rol de IAM o usuario de IdC (AWS IAM Identity Center).
+ *role\$1name* puede hacer referencia a un grupo de IdC. No se admiten grupos de IAM.

#### Permisos básicos
<a name="federated-permissions-managing-access-grant-allowed-coarse"></a>

```
GRANT { SELECT | INSERT | UPDATE | DELETE | TRUNCATE} ON   
[ TABLE ] { table_name | database@catalog.schema_name.table_name }  
TO { username | ROLE role_name | PUBLIC }  

REVOKE { SELECT | INSERT | UPDATE | DELETE | TRUNCATE } ON  
[ TABLE ] { table_name | database@catalog.schema_name.table_name }   
FROM { username | ROLE role_name | PUBLIC }
```

#### Privilegios por columnas
<a name="federated-permissions-managing-access-grant-allowed-column"></a>

```
GRANT { { SELECT | UPDATE | DELETE }   
( column_name [, ...] ) [, ...] | ALL [ PRIVILEGES ] ( column_name [,...] ) }  
ON { table_name | database@catalog.schema_name.table_name }  
TO { username | ROLE role_name | PUBLIC }  

REVOKE { { SELECT | UPDATE | DELETE }   
( column_name [, ...] ) [, ...] | ALL [ PRIVILEGES ] ( column_name [,...] ) }  
ON { table_name | database@catalog.schema_name.table_name }  
FROM { username | ROLE role_name | PUBLIC }
```

### Permisos acotados
<a name="federated-permissions-managing-access-scoped"></a>

```
GRANT { CREATE | USAGE | ALTER | DROP } [,...] | ALL [ PRIVILEGES ] }  
FOR SCHEMAS IN  
DATABASE database@catalog   
TO { username [ WITH GRANT OPTION ] | ROLE role_name } [, ...]  

GRANT   
{ { SELECT | INSERT | UPDATE | DELETE | DROP | ALTER | TRUNCATE | REFERENCES } [, ...] } | ALL [ PRIVILEGES ] } }  
FOR TABLES IN  
{ SCHEMA schema_name [DATABASE database@catalog ] | DATABASE database@catalog }  
TO { username [ WITH GRANT OPTION ] | ROLE role_name } [, ...]  

REVOKE [ GRANT OPTION ] { CREATE | USAGE | ALTER | DROP } [,...] | ALL [ PRIVILEGES ] }   
FOR SCHEMAS IN   
DATABASE database@catalog   
FROM { username | ROLE role_name } [, ...]   

REVOKE [ GRANT OPTION ] { { SELECT | INSERT | UPDATE | DELETE | DROP | ALTER | TRUNCATE | REFERENCES } [, ...] } | ALL [ PRIVILEGES ] } }   
FOR TABLES IN   
{ SCHEMA schema_name [ DATABASE database@catalog ] | DATABASE database@catalog }   
FROM { username | ROLE role_name } [, ...]
```

# Permisos federados de Amazon Redshift: ejemplos de extremo a extremo
<a name="federated-permissions-end-examples"></a>

A continuación, se presenta un ejemplo de extremo a extremo en el que se muestra cómo puede crear y administrar políticas de gobernanza de datos completas mediante permisos federados de Amazon Redshift. Estas políticas incluyen seguridad a nivel de fila (RLS), enmascaramiento dinámico de datos (DDM) y permisos por columna (CLP), que funcionan en conjunto para controlar el acceso a los datos en función de los roles y condiciones de los usuarios.

Debe ser un `superuser` o tener el rol [sys:secadmin](https://docs.aws.amazon.com/redshift/latest/dg/r_roles-default.html) para ejecutar este ejemplo.

## Requisitos previos
<a name="federated-permissions-end-examples-prereqs"></a>

En los ejemplos, se supone que los roles “IAMR:role\$1name” siguientes ya están presentes en la cuenta; de lo contrario, créelos. Además, el almacén de datos de Redshift está registrado con AWS Glue Data Catalog con el nombre “catalog\$1name” y tiene una base de datos de “db\$1name”.

## En la instancia de catálogo, se asigna el rol sys:secadmin al rol de IAM correspondiente
<a name="federated-permissions-end-examples-catalog-grant"></a>

```
-- Grant sys:secadmin role to relevant user (must be run on Redshift catalog instance)   
        GRANT ROLE sys:secadmin TO "IAMR:AccountSecurityAdminrole_name";
```

### El resto se ejecutará en el almacén informático de Redshift
<a name="federated-permissions-end-examples-compute"></a>

Si utiliza usuarios de IAM o IdC, puede omitir los dos pasos siguientes para crear usuarios del almacén local y asignación de identidad global.

#### Paso 1: creación de los usuarios necesarios del almacén local para probar las políticas de gobernanza
<a name="federated-permissions-end-examples-users"></a>

```
-- Create test users.  
CREATE USER alice WITH PASSWORD 'Alice_pass_1';  
CREATE USER oscar WITH PASSWORD 'Oscar_pass_1';  
CREATE USER sierra WITH PASSWORD 'Sierra_pass_1';
```

#### Paso 2: configuración de la asignación de roles de IAM de identidad global
<a name="federated-permissions-end-examples-mapping"></a>

```
-- Map local users to IAM roles (executed by superuser).  
        
-- Make user sierra a sys:secadmin by setting the global identity  
-- to `IAMR:AccountSecurityAdmin`.  
-- This role has been granted secadmin privilege on Redshift catalog instance.  

ALTER USER sierra SET GLOBAL IDENTITY  
IAM_ROLE 'arn:aws:iam::123456789012:role/AccountSecurityAdmin';  

ALTER USER alice SET GLOBAL IDENTITY  
IAM_ROLE 'arn:aws:iam::123456789012:role/Analyst';  

ALTER USER oscar SET GLOBAL IDENTITY  
IAM_ROLE 'arn:aws:iam::123456789012:role/Operator';  

-- Verify global identity settings.  
SET SESSION AUTHORIZATION sierra;  
SHOW GLOBAL IDENTITY;  

SET SESSION AUTHORIZATION alice;  
SHOW GLOBAL IDENTITY;  

SET SESSION AUTHORIZATION oscar;  
SHOW GLOBAL IDENTITY;  

-- Reset to default session.  
RESET SESSION AUTHORIZATION;
```

## Configuración del entorno
<a name="federated-permissions-end-examples-environment"></a>

En primer lugar, cree tablas y llénelas con ejemplos de datos de clientes y tablas de consulta para las políticas de gobernanza.

```
-- Create the main customer table.  
CREATE TABLE db_name@catalog_name.public.customers (  
    id INTEGER,  
    name VARCHAR(50),  
    email VARCHAR(100),  
    region VARCHAR(20),  
    revenue DECIMAL(10,2)  
);  

-- Populate with sample customer data.  
INSERT INTO db_name@catalog_name.public.customers VALUES  
(1, 'John Smith', 'john@email.com', 'US', 1000.00),  
(2, 'Jane Doe', 'jane@email.com', 'EU', 500.00),  
(3, 'Mike Johnson', 'mike@email.com', 'US', 2000.00);  

-- Grant basic table access.  
GRANT ALL ON db_name@catalog_name.public.customers TO PUBLIC;  

-- Create lookup table for region-based policies.  
CREATE TABLE db_name@catalog_name.public.lookup_regions (  
    region_code VARCHAR(20),  
    allowed BOOLEAN  
);  

INSERT INTO db_name@catalog_name.public.lookup_regions VALUES   
('US', TRUE),   
('EU', FALSE),   
('APAC', TRUE);  

GRANT ALL ON db_name@catalog_name.public.lookup_regions TO PUBLIC;  

-- Create lookup table for revenue-based masking.  
CREATE TABLE db_name@catalog_name.public.lookup_revenue_tiers (base_revenue INTEGER);  

INSERT INTO db_name@catalog_name.public.lookup_revenue_tiers VALUES (1000), (2000);  
GRANT ALL ON db_name@catalog_name.public.lookup_revenue_tiers TO PUBLIC;
```

## Configuración de permisos por columna (CLP)
<a name="federated-permissions-end-examples-clp"></a>

Configure el acceso por columna para diferentes usuarios a fin de controlar a qué columnas pueden acceder los usuarios.

```
-- Grant specific column access to Analyst i.e. `alice`.  
GRANT SELECT (id, region) ON db_name@catalog_name.public.customers  
    TO "IAMR:Analyst";  

-- Grant different column access to Operator i.e. `oscar`.  
GRANT SELECT (id, name, revenue) ON db_name@catalog_name.public.customers  
    TO "IAMR:operator";
```

## Creación de políticas de seguridad a nivel de fila (RLS)
<a name="federated-permissions-end-examples-rls"></a>

Cree políticas de RLS para controlar qué filas pueden ver los usuarios en función de sus concesiones y condiciones de datos.

```
-- Switch to admin user to create policies.  
SET SESSION AUTHORIZATION sierra;  

-- Create simple RLS policy: Analysts see only US customers.  
CREATE RLS POLICY db_name@catalog_name.us_only   
WITH (region VARCHAR(20))   
USING (region = 'US');  

-- Attach the policy to the Analyst i.e. `alice`.  
ATTACH RLS POLICY db_name@catalog_name.us_only   
ON db_name@catalog_name.public.customers   
TO "IAMR:Analyst";  

-- Enable row level security on the table.  
ALTER TABLE db_name@catalog_name.public.customers ROW LEVEL SECURITY ON;  

-- Create advanced RLS policy using lookup table.  
CREATE RLS POLICY db_name@catalog_name.region_lookup_policy  
WITH (region VARCHAR(20)) AS r  
USING (r.region IN (  
    SELECT region_code   
    FROM public.lookup_regions   
    WHERE allowed = TRUE  
));  

-- Attach the lookup-based policy to Operator i.e. `oscar`.  
ATTACH RLS POLICY db_name@catalog_name.region_lookup_policy   
ON db_name@catalog_name.public.customers   
TO "IAMR:Operator";
```

## Creación de políticas de enmascaramiento dinámico de datos (DDM)
<a name="federated-permissions-end-examples-ddm"></a>

Cree políticas de enmascaramiento para ocultar la información confidencial en función de los roles y las condiciones de los usuarios.

```
-- Create masking policy for PII data (names and emails).  
CREATE MASKING POLICY db_name@catalog_name.mask_pii   
WITH (DATA VARCHAR(100))  
USING (SHA2(DATA + 'secret', 256)::TEXT);  

-- Attach masking to name and email columns for all users.  
ATTACH MASKING POLICY db_name@catalog_name.mask_pii   
ON db_name@catalog_name.public.customers (name)   
TO PUBLIC;  

ATTACH MASKING POLICY db_name@catalog_name.mask_pii   
ON db_name@catalog_name.public.customers (email)   
TO PUBLIC;  

-- Create conditional masking policy for revenue data.  
CREATE MASKING POLICY db_name@catalog_name.conditional_mask  
WITH (revenue DECIMAL(10,2))  
USING (CASE WHEN revenue IN (SELECT base_revenue  
                                    FROM public.lookup_revenue_tiers)  
            THEN revenue ELSE 0.00 END);  

-- Attach conditional masking to Analyst i.e. `alice` with priority.  
ATTACH MASKING POLICY db_name@catalog_name.conditional_mask   
ON db_name@catalog_name.public.customers (revenue)   
TO "IAMR:Analyst"   
PRIORITY 20;
```

## Auditoría de políticas aplicadas/disponibles
<a name="federated-permissions-end-examples-audit"></a>

Utilice los comandos SHOW para confirmar que las políticas de gobernanza están configuradas correctamente.

```
-- Show all RLS policies in the database.  
SHOW RLS POLICIES FROM DATABASE db_name@catalog_name LIMIT 10;  

-- Show RLS policies for specific users and tables.  
SHOW RLS POLICIES ON db_name@catalog_name.public.customers FOR "IAMR:Analyst" LIMIT 10;  
SHOW RLS POLICIES ON db_name@catalog_name.public.customers FOR "IAMR:Operator" LIMIT 10;  
SHOW RLS POLICIES ON db_name@catalog_name.public.customers FOR PUBLIC LIMIT 10;  

-- Show all masking policies in the database.  
SHOW MASKING POLICIES FROM DATABASE db_name@catalog_name LIMIT 10;  

-- Show Masking policies for specific users and tables.  
SHOW MASKING POLICIES ON db_name@catalog_name.public.customers FOR "IAMR:Analyst" LIMIT 10;  
SHOW MASKING POLICIES ON db_name@catalog_name.public.customers FOR "IAMR:Operator" LIMIT 10;  
SHOW MASKING POLICIES ON db_name@catalog_name.public.customers FOR PUBLIC LIMIT 10;
```

## Prueba de patrones de acceso
<a name="federated-permissions-end-examples-testing"></a>

Pruebe cómo ven los datos los diferentes usuarios en función de sus roles y políticas aplicadas.

```
-- Test as analyst: Only US customers, only id/region columns,  
-- conditional revenue masking.  
SET SESSION AUTHORIZATION alice;  
SELECT id, region FROM db_name@catalog_name.public.customers ORDER BY id;  
SELECT id, region, revenue FROM db_name@catalog_name.public.customers ORDER BY id;  

-- Test as operator: Allowed regions only, masked names, specific columns.  
SET SESSION AUTHORIZATION oscar;  
SELECT id, name, revenue FROM db_name@catalog_name.public.customers ORDER BY id;  
SELECT id, name, region FROM db_name@catalog_name.public.customers ORDER BY id;  

-- Test as admin: Full access to all data.  
SET SESSION AUTHORIZATION sierra;  
SELECT * FROM db_name@catalog_name.public.customers ORDER BY id;
```

## Modificación de políticas
<a name="federated-permissions-end-examples-alter"></a>

Modifique las políticas existentes para cambiar su comportamiento sin volver a crearlas.

```
-- Switch back to admin user.  
SET SESSION AUTHORIZATION sierra;  

-- Alter the PII masking policy to use simple string replacement.  
ALTER MASKING POLICY db_name@catalog_name.mask_pii  
USING ('***MASKED***'::TEXT);  

-- Alter the conditional masking policy to use different threshold.  
ALTER MASKING POLICY db_name@catalog_name.conditional_mask  
USING (CASE WHEN revenue >= 500.00 THEN revenue ELSE -1.00 END);  

-- Alter the RLS policy to show only disallowed regions.  
ALTER RLS POLICY db_name@catalog_name.region_lookup_policy  
USING (r.region IN (  
    SELECT region_code   
    FROM db_name@catalog_name.public.lookup_regions   
    WHERE allowed = FALSE  
));
```

## Separación y eliminación de políticas
<a name="federated-permissions-end-examples-detach"></a>

Elimine las políticas cuando ya no sean necesarias.

```
-- Detach RLS policies from users.  
DETACH RLS POLICY db_name@catalog_name.us_only   
ON db_name@catalog_name.public.customers   
FROM "IAMR:Analyst";  

DETACH RLS POLICY db_name@catalog_name.region_lookup_policy   
ON db_name@catalog_name.public.customers   
FROM "IAMR:Operator";  

-- Detach masking policies.  
DETACH MASKING POLICY db_name@catalog_name.mask_pii   
ON db_name@catalog_name.public.customers (name)   
FROM PUBLIC;  

DETACH MASKING POLICY db_name@catalog_name.mask_pii   
ON db_name@catalog_name.public.customers (email)   
FROM PUBLIC;  

DETACH MASKING POLICY db_name@catalog_name.conditional_mask   
ON db_name@catalog_name.public.customers (revenue)   
FROM "IAMR:Analyst";
```

## Limpieza: desactive la RLS y elimine las políticas
<a name="federated-permissions-end-examples-cleanup"></a>

```
-- Turn off Row-level security.  
ALTER TABLE db_name@catalog_name.public.customers ROW LEVEL SECURITY OFF;  

-- Drop policies.  
DROP RLS POLICY db_name@catalog_name.us_only CASCADE;  
DROP RLS POLICY db_name@catalog_name.region_lookup_policy CASCADE;  
DROP MASKING POLICY db_name@catalog_name.mask_pii CASCADE;  
DROP MASKING POLICY db_name@catalog_name.conditional_mask CASCADE;  

-- Drop tables.  
DROP TABLE db_name@catalog_name.public.customers;  
DROP TABLE db_name@catalog_name.public.lookup_regions;  
DROP TABLE db_name@catalog_name.public.lookup_revenue_tiers;
```

## Restablecimiento de la identidad global
<a name="federated-permissions-end-examples-global"></a>

```
-- TO rest the global identity.  
ALTER USER alice RESET GLOBAL IDENTITY;  
ALTER USER oscar RESET GLOBAL IDENTITY;  
ALTER USER sierra RESET GLOBAL IDENTITY;
```

# Configuración de usuario federado
<a name="federated-permissions-user-cofig"></a>

Con los permisos federados de Amazon Redshift, los usuarios autenticados con credenciales de IAM o IAM Identity Center (IdC) pueden disfrutar de una experiencia coherente en todos los almacenes de Amazon Redshift.

Cuando un usuario se conecta a cualquier clúster de Redshift, los parámetros de configuración, como el formato de fecha, la ruta de búsqueda y las preferencias de zona horaria, se aplican automáticamente a la sesión. Esto garantiza que se mantenga la misma experiencia de usuario en todos los clústeres, sin necesidad de una reconfiguración manual, lo que proporciona una experiencia fluida y personalizada.

**Ejemplo**

Pensemos en **Alex**, un analista de datos que ha configurado su formato de fecha y zona horaria preferidos en la base de datos de Redshift principal. Cuando Alex ejecuta consultas allí, todos los valores de fecha aparecen en el formato preferido.

Ahora, cuando Alex se conecta a una base de datos **compartida** o **montada automáticamente** en otro almacén de Redshift, esas mismas preferencias se aplican de forma coherente. Alex ve los resultados en el mismo formato de fecha y zona horaria, lo que garantiza una experiencia coherente en todos los entornos.

## Configuraciones de usuario coherentes en todos los almacenes de Amazon Redshift
<a name="federated-user-config-settings"></a>

Las siguientes **[configuraciones](https://docs.aws.amazon.com/redshift/latest/dg/cm_chap_ConfigurationRef.html) por usuario** se sincronizan automáticamente en los clústeres de Redshift para los usuarios autenticados con credenciales de **IAM** o **AWS IAM Identity Center (IdC)**:
+ [datestyle](https://docs.aws.amazon.com/redshift/latest/dg/r_datestyle.html)
+ [enable\$1case\$1sensitive\$1identifier](https://docs.aws.amazon.com/redshift/latest/dg/r_enable_case_sensitive_identifier.html)
+ [extra\$1float\$1digits](https://docs.aws.amazon.com/redshift/latest/dg/r_extra_float_digits.html)
+ [search\$1path](https://docs.aws.amazon.com/redshift/latest/dg/r_search_path.html)
+ [cast\$1super\$1null\$1on\$1error](https://docs.aws.amazon.com/redshift/latest/dg/r_cast_super_null_on_error.html)
+ [default\$1geometry\$1encoding](https://docs.aws.amazon.com/redshift/latest/dg/r_default_geometry_encoding.html)
+ [describe\$1field\$1name\$1in\$1uppercase](https://docs.aws.amazon.com/redshift/latest/dg/r_describe_field_name_in_uppercase.html)
+ [downcase\$1delimited\$1identifier](https://docs.aws.amazon.com/redshift/latest/dg/r_downcase_delimited_identifier.html)
+ [enable\$1case\$1sensitive\$1super\$1attribute](https://docs.aws.amazon.com/redshift/latest/dg/r_enable_case_sensitive_super_attribute.html)
+ [enable\$1numeric\$1rounding](https://docs.aws.amazon.com/redshift/latest/dg/r_enable_numeric_rounding.html)
+ [enable\$1result\$1cache\$1for\$1session](https://docs.aws.amazon.com/redshift/latest/dg/r_enable_result_cache_for_session.html)
+ [error\$1on\$1nondeterministic\$1update](https://docs.aws.amazon.com/redshift/latest/dg/r_error_on_nondeterministic_update.html)
+ [interval\$1forbid\$1composite\$1literals](https://docs.aws.amazon.com/redshift/latest/dg/r_interval_forbid_composite_literals.html)
+ [json\$1serialization\$1enable](https://docs.aws.amazon.com/redshift/latest/dg/r_json_serialization_enable.html)
+ [json\$1serialization\$1parse\$1nested\$1strings](https://docs.aws.amazon.com/redshift/latest/dg/r_json_serialization_parse_nested_strings.html)
+ [mv\$1enable\$1aqmv\$1for\$1session](https://docs.aws.amazon.com/redshift/latest/dg/r_mv_enable_aqmv_for_session.html)
+ [navegate\$1super\$1null\$1on\$1error](https://docs.aws.amazon.com/redshift/latest/dg/r_navigate_super_null_on_error.html)
+ [parse\$1super\$1null\$1on\$1error](https://docs.aws.amazon.com/redshift/latest/dg/r_parse_super_null_on_error.html)
+ [spectrum\$1enable\$1pseudo\$1columns](https://docs.aws.amazon.com/redshift/latest/dg/r_spectrum_enable_pseudo_columns.html)
+ [enable\$1spectrum\$1oid](https://docs.aws.amazon.com/redshift/latest/dg/r_spectrum_enable_spectrum_oid.html)
+ [spectrum\$1query\$1maxerror](https://docs.aws.amazon.com/redshift/latest/dg/r_spectrum_query_maxerror.html)
+ [stored\$1proc\$1log\$1min\$1messages](https://docs.aws.amazon.com/redshift/latest/dg/r_stored_proc_log_min_messages.html)
+ [analyze\$1threshold\$1percent](https://docs.aws.amazon.com/redshift/latest/dg/r_analyze_threshold_percent.html)
+ [enable\$1vacuum\$1boost](https://docs.aws.amazon.com/redshift/latest/dg/r_enable_vacuum_boost.html)
+ [pg\$1federation\$1repeatable\$1read](https://docs.aws.amazon.com/redshift/latest/dg/r_pg_federation_repeatable_read.html)

## Administración de conexiones y configuraciones
<a name="federated-user-config-management"></a>
+ Al conectarse a Amazon Redshift mediante **JDBC**, es posible que algunas **configuraciones por sesión** también se apliquen automáticamente. Para obtener más información, consulte la documentación de configuración por sesión de JDBC.
+ Los usuarios también pueden definir **configuraciones persistentes por usuario** mediante [ALTER USER](https://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_USER.html).

# Desactivación de la propagación de AWS IAM Identity Center
<a name="federated-permissions-offboarding"></a>

Para poder desactivar la propagación de AWS IAM Identity Center, debe tener el clúster de Amazon Redshift o el espacio de nombres de Amazon Redshift sin servidor registrado con AWS Glue Data Catalog y asociado a una aplicación de IdC de Lakehouse de Redshift. Un espacio de nombres de Amazon Redshift sin servidor requiere un grupo de trabajo adjunto para realizar las operaciones relacionadas.

## Desactivación de la propagación de identidades de AWS IAM Identity Center para clústeres aprovisionados de Amazon Redshift
<a name="federated-permissions-offboarding-clusters"></a>

Al desactivar la propagación de identidades de AWS IAM Identity Center para los clústeres aprovisionados de Amazon Redshift, la aplicación de IdC de Redshift de Lakehouse adjunta se marcará como desactivada en el clúster.

------
#### [ CLI ]

Puede usar el comando `modify-lakehouse-configuration` para desactivar la propagación de la identidad de IdC para los clústeres con los permisos federados de Redshift. Tenga en cuenta que no elimina al proveedor de IdC del clúster, sino que lo pone en modo desactivado.

```
aws redshift modify-lakehouse-configuration \
    --cluster-identifier 'redshift-cluster' \
    --lakehouse-idc-registration Disassociate \
```

------
#### [ Console ]

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

1. Vaya hasta el clúster aprovisionado para el que desea editar el registro y selecciónelo.

1. En la página de detalles del clúster, seleccione **Editar registro de AWS Glue Data Catalog** en el menú desplegable **Acciones**. 

1. Seleccione **Desactivar** en permisos federados de Amazon Redshift mediante el menú desplegable de AWS IAM Identity Center para desasociar la aplicación de IdC y elija **Guardar cambios**.

------

## Desactivación de la propagación de identidades de AWS IAM Identity Center para los espacios de nombres de Amazon Redshift sin servidor
<a name="federated-permissions-offboarding-namespace"></a>

------
#### [ CLI ]

Puede usar el comando `modify-lakehouse-configuration` para desactivar la propagación de la identidad de IdC para el espacio de nombres con los permisos federados de Redshift. Tenga en cuenta que no elimina al proveedor de IdC del clúster, sino que lo pone en modo desactivado.

```
aws redshift-serverless update-lakehouse-configuration \
--namespace-name 'serverless-namespace-name' \
--lakehouse-idc-registration Disassociate \
```

------
#### [ Console ]

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

1. Vaya hasta el espacio de nombres sin servidor para el que desee editar el registro y selecciónelo.

1. En la página de detalles del espacio de nombres, seleccione **Editar registro de AWS Glue Data Catalog** en el menú desplegable **Acciones**. 

1. Seleccione **Desactivar** en permisos federados de Amazon Redshift mediante el menú desplegable de AWS IAM Identity Center para desasociar la aplicación de IdC y elija **Guardar cambios**.

------

# Anulación del registro de AWS Glue Data Catalog
<a name="federated-permisisons-offboarding-deregister-catalog"></a>

## Requisitos de la política de IAM para la anulación del registro de permisos federados de Amazon Redshift
<a name="federated-permisisons-offboarding-deregister-catalog-iam-reqs"></a>

 Para anular el registro de un clúster o un espacio de nombres sin servidor de AWS Glue Data Catalog, se requieren los permisos de IAM siguientes. 

Para clústeres aprovisionados de Redshift
+ `redshift:ModifyLakehouseConfiguration`
+ `redshift:DregisterNamespace`

Para Redshift sin servidor
+ `redshift-serverless:UpdateLakehouseConfiguration`
+ `redshift:DregisterNamespace`

Para la integración de AWS Glue Data Catalog
+ `glue:DeleteCatalog`
+ `glue:GetCatalog`

Para el registro de recursos de Lake Formation
+ `lakeformation:DeregisterResource`

## Anulación del registro de Redshift desde AWS Glue Data Catalog
<a name="federated-permisisons-offboarding-deregister-catalog-provisioned"></a>

------
#### [ CLI ]

Puede usar el comando `modify-lakehouse-configuration` para anular el registro del clúster de AWS Glue Data Catalog. Si tiene un proveedor de IdC asociado al clúster, el proveedor de IdC del clúster pasará al modo desactivado.

```
aws redshift modify-lakehouse-configuration \
--cluster-identifier 'redshift-cluster' \
--lakehouse-registration Deregister
```

------
#### [ Console ]

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

1. Vaya hasta el clúster aprovisionado que desee anular el registro y selecciónelo.

1. En la página de detalles del clúster, seleccione **Anule el registro de AWS Glue Data Catalog** del menú desplegable de **Acciones** y elija **Anular registro**.

------

## Anulación del registro del espacio de nombres de Redshift sin servidor desde AWS Glue Data Catalog
<a name="federated-permisisons-offboarding-deregister-catalog-namespace"></a>

------
#### [ CLI ]

Puede usar el comando `update-lakehouse-configuration` para anular el registro del espacio de nombres de Redshift sin servidor de AWS Glue Data Catalog. Si tiene un proveedor de IdC asociado al clúster, el proveedor de IdC del clúster pasará al modo desactivado.

```
aws redshift modify-lakehouse-configuration \
--cluster-identifier 'redshift-cluster' \
--lakehouse-registration Deregister
```

------
#### [ Console ]

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

1. Vaya hasta el clúster de espacio de nombres sin servidor que desee anular el registro y selecciónelo.

1. En la página de detalles del clúster, seleccione **Anule el registro de AWS Glue Data Catalog** del menú desplegable de **Acciones** y elija **Anular registro**.

------