

 Amazon Redshift ne prendra plus en charge la création de nouveaux Python à UDFs partir du patch 198. UDFs Le Python existant continuera de fonctionner jusqu'au 30 juin 2026. Pour plus d’informations, consultez le [ billet de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Autorisations fédérées Amazon Redshift
<a name="federated-permissions"></a>

Les autorisations fédérées Amazon Redshift simplifient la gestion des autorisations dans plusieurs entrepôts de données Redshift en vous permettant de définir les autorisations de données une seule fois et de les appliquer automatiquement dans tous les entrepôts de votre entreprise. Compte AWS Il n'est donc plus nécessaire de redéfinir, de gérer les autorisations et d'affiner les politiques de contrôle d'accès dans plusieurs entrepôts.

 Lorsque vous enregistrez un entrepôt Redshift namespace/cluster auprès de Redshift AWS Glue Data Catalog, toutes les bases de données de l'entrepôt enregistré namespaces/clusters sont automatiquement montées dans chaque entrepôt, ce qui permet une découverte fluide des données sans configuration manuelle. 

Vous définissez les autorisations sur les objets de base de données à l'aide des commandes SQL Redshift habituelles, en spécifiant les identités globales via Gestion des identités et des accès AWS (IAM) ou. AWS IAM Identity Center Ces autorisations sont stockées avec les données de l'entrepôt et appliquées de manière cohérente quel que soit l'entrepôt qui exécute la requête.

## Concepts clés
<a name="federated-permissions-concepts"></a>
+ **Entrepôt Redshift avec autorisations fédérées** : entrepôt du producteur enregistré auprès de Data Catalog et dans lequel les données et les autorisations Redshift sont stockées.
+ Entrepôt **Redshift consommateur : tout entrepôt** qui interroge des données depuis un entrepôt distant. L'entrepôt de consommation peut éventuellement être activé pour les autorisations fédérées Redshift.
+ **Identité globale** : IAM and IAM Identity Center fournit une identité globale dans tous les entrepôts activés pour les autorisations fédérées Redshift. Les utilisateurs s'authentifient une seule fois par le biais de leur fournisseur d'identité existant et bénéficient d'un accès cohérent basé sur leur identité globale, quel que soit l'entrepôt auquel ils se connectent.
+ **Montage automatique** : tous les entrepôts dotés des autorisations fédérées Redshift sont automatiquement visibles dans tous les entrepôts de votre compte. Cette fonctionnalité de montage automatique permet de découvrir des catalogues et des bases de données pour les analyses entre entrepôts.
+ **Propagation d'identité** : Lorsque vous exécutez une requête entre entrepôts, Redshift propage votre identité globale (rôle IAM ou utilisateur du centre d'identité IAM) vers l'entrepôt distant.
+ **Autorisation entre entrepôts** : les autorisations fédérées Redshift activées pour les entrepôts distants valident vos autorisations pour les requêtes entre entrepôts et sont appliquées dans les entrepôts consommateurs.
+ **Contrôle d'accès détaillé** : politiques de sécurité au niveau des lignes (RLS), politiques au niveau des colonnes (CLP) et masquage dynamique des données (DDM) qui peuvent être appliquées dans tous les entrepôts.

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

**Administration simplifiée**
+ Définissez les autorisations une fois dans l'entrepôt
+ Appliquez automatiquement les mêmes autorisations dans tous les entrepôts consommateurs
+ Éliminez le besoin de redéfinir, de gérer les autorisations et de définir des politiques de contrôle d'accès précises dans plusieurs entrepôts
+ Réduisez les frais administratifs et les risques d'erreurs de configuration

**Sécurité et conformité renforcées**
+ Garantir l'application cohérente des politiques de sécurité dans tous les entrepôts
+ Mettre en œuvre des contrôles d'accès précis au niveau des tables et des colonnes
+ Autorisations d'audit depuis n'importe quel entrepôt
+ Outils de conformité améliorés avec des commandes SHOW supplémentaires

**Expérience utilisateur améliorée**
+ Inscrivez-vous une seule fois et il n'est pas nécessaire de créer manuellement des partages de données
+ Authentification unique dans tous les entrepôts et accès cohérent basé sur une identité globale
+ Découverte fluide des espaces de noms sans configuration manuelle du catalogue
+ Pas besoin de gérer des comptes utilisateurs locaux distincts dans chaque entrepôt

**Scalabilité horizontale**
+ Ajoutez de nouveaux entrepôts sans augmenter la complexité de la gouvernance
+ Les nouveaux entrepôts de consommation appliquent automatiquement les politiques d'autorisation
+ Les analystes voient immédiatement toutes les bases de données des entrepôts enregistrés

## Cas d'utilisation
<a name="federated-permissions-use-cases"></a>

**Isolation des charges de travail grâce à une gouvernance unifiée**

Séparez les ressources de calcul pour les différentes charges de travail (ETL, analyses, rapports) tout en maintenant des politiques de sécurité cohérentes dans tous les entrepôts.

**Accès aux données par plusieurs équipes**

Permettez à plusieurs équipes d'accéder aux données partagées depuis leurs propres entrepôts grâce à des contrôles d'accès appropriés automatiquement appliqués.

**Architecture de maillage de données**

Mettez en œuvre une approche de maillage des données dans laquelle plusieurs ressources informatiques indépendantes opèrent sur des données partagées avec une gouvernance unifiée.

**Optimisation des coûts**

Adaptez les ressources de calcul indépendamment aux différents cas d'utilisation tout en maintenant une gestion centralisée des autorisations.

# Considérations relatives à l'utilisation des autorisations fédérées Amazon Redshift
<a name="federated-permissions-considerations"></a>

Les considérations et limites suivantes concernent le partage de données Amazon Redshift à AWS Glue Data Catalog l'aide d'autorisations fédérées. Pour obtenir des informations générales sur les considérations et les limites du partage de données, consultez la section [Considérations relatives à l'utilisation du partage de données dans Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/datashare-considerations.html).

Cette fonctionnalité n'est prise en charge qu'avec [les versions de cluster 197 et ultérieures](https://docs.aws.amazon.com/redshift/latest/mgmt/cluster-versions.html#cluster-version-197).

**Régions non prises en charge**
+ Afrique (Le Cap)
+ Asie-Pacifique (Hyderabad)
+ Europe (Milan)
+ Europe (Espagne)
+ Moyen-Orient (EAU)

**Exigences relatives à l'environnement**

Les instances Redshift enregistrées et celles destinées aux particuliers doivent répondre aux exigences suivantes :
+ **Type d'instance** : clusters RA3 provisionnés ou groupes de travail sans serveur
+ **Région** : Même Région AWS
+ **Compte** : Identique Compte AWS
+ **Chiffrement** : activé
+ **Niveau d'isolation** : isolation instantanée

**Objets non pris en charge**

Les instances de consommateurs ne peuvent pas accéder aux objets suivants à partir du catalogue d'autorisations fédérées :
+ SQL UDFs, Python et UDFs Lambda UDFs
+ Modèles ML
+ Schéma externe créé sur l'instance enregistrée

**Restrictions de contrôle d'accès grossières**

La subvention est prise en charge uniquement sur les tables, les bases de données, les schémas et les fonctions utilisées avec la notation à 3 points

**Restrictions de contrôle d'accès précises**

Outre les restrictions standard relatives à la sécurité au niveau des lignes (RLS) et au masquage dynamique des données (DDM) dans Amazon Redshift, les instances grand public ne peuvent pas accéder aux objets protégés par RLS ou DDM depuis le catalogue d'autorisations fédérées si les politiques contiennent les fonctions système suivantes :
+ `user_is_member_of`
+ `role_is_member_of`
+ `user_is_member_of_role`

Remarque : Dans la version actuelle de Redshift, les métadonnées des tables associées au FGAC accessibles sur les entrepôts Redshift consommateurs sont temporairement visibles dans le catalogue.

**Découverte des métadonnées**
+ Les commandes SHOW sont prises en charge pour les colonnes, les tables, les procédures stockées, les fonctions et les paramètres.

**Lake Formation**
+ Les autorisations Lake Formation ne sont pas prises en charge sur les objets du catalogue d'autorisations fédérées Amazon Redshift.

**Identité**
+ Seuls les utilisateurs enregistrés auprès d'IAM AWS IAM Identity Center peuvent interroger des objets dans le catalogue d'autorisations fédérées Amazon Redshift.
+ Lorsque votre cluster Amazon Redshift ou votre espace de noms Amazon Redshift Serverless est enregistré avec des autorisations fédérées Amazon Redshift, vous ne pouvez pas gérer la gouvernance des données pour les utilisateurs fédérés IAM à l'aide du ou des groupes fédérés IAM. Cela inclut tous les contrôles d'accès granulaires précédemment configurés sur les objets par le biais de groupes fédérés IAM.
+ Lors de l'enregistrement d'un cluster Amazon Redshift existant ou d'un espace de noms Amazon Redshift sans serveur dans un catalogue d'autorisations fédérées Amazon Redshift AWS IAM Identity Center , tous les utilisateurs fédérés, y compris ceux qui y avaient précédemment accès, doivent se voir explicitement accorder des privilèges CONNECT pour accéder au cluster ou au groupe de travail. Pour plus d'informations sur l'octroi de privilèges CONNECT, consultez[Privilèges Connect](federated-permissions-prereqs.md#federated-permissions-prereqs-connect).
+ AWS Les utilisateurs IAM Federated qui se connectent à des clusters ou à des groupes de travail Amazon Redshift à l'aide de balises principales et d'informations d'identification IAM temporaires ne sont pas reconnus comme des identités globales et ne peuvent pas accéder aux catalogues d'autorisations fédérées Amazon Redshift. Seuls les utilisateurs AWS IAM Identity Center fédérés et les utilisateurs ou rôles fédérés AWS IAM sont autorisés à interroger les catalogues d'autorisations fédérées Amazon Redshift.
+ Lorsque votre cluster Amazon Redshift ou votre espace de noms Amazon Redshift Serverless est enregistré avec des autorisations fédérées Amazon Redshift, les limites de commande GRANT suivantes s'appliquent AWS IAM Identity Center aux utilisateurs ou rôles fédérés et aux utilisateurs ou rôles fédérés IAM : AWS 
  + Vous ne pouvez pas accorder de rôle fédéré à un utilisateur ou à un rôle. Une exception à cette règle est que vous pouvez accorder un rôle de base de données Redshift à un utilisateur fédéré IAM.
  + Vous ne pouvez attribuer aucun rôle à un rôle ou à un utilisateur fédéré. Une exception à cette règle est que vous pouvez accorder un rôle défini par le système à un utilisateur ou à un rôle fédéré.

**Accès au moteur**
+ L'accès depuis des moteurs autres que Redshift n'est pas pris en charge

**Modifier l'identité globale définie par l'utilisateur**
+ Pris en charge uniquement sur « Sélectionner », « Supprimer », « Mettre à jour », « Afficher », « Insérer »
+ Le rôle IAM associé à un utilisateur via ALTER USER SET GLOBAL IDENTITY n'est utilisé que lorsque la requête concerne Redshift Warehouse avec des autorisations fédérées et uniquement lorsque la requête cible une relation, telle que les requêtes SELECT, UDPATE et DELETE.
+ Ce rôle IAM est également utilisé pour les requêtes SHOW DATABASES, SHOW SCHEMAS et SHOW TABLES sur les ressources de Redshift Warehouse avec des autorisations fédérées.
+ Ce rôle IAM n'est pas utilisé dans les requêtes de définition de données telles que CREATE, ALTER et DROP.

**Message d’erreur**
+ Toute opération non prise en charge sur la base de données dans le catalogue Amazon Redshift Federated Permissions affichera l'erreur suivante :

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

# Conditions préalables
<a name="federated-permissions-prereqs"></a>

## Exigences de la politique IAM pour la configuration des autorisations fédérées Amazon Redshift
<a name="federated-permissions-prereqs-iam"></a>

Les autorisations fédérées Amazon Redshift vous permettent de gérer de manière centralisée l'accès aux données pour l'ensemble de vos charges de travail d'analyse, les autorisations étant gérées directement par l'entrepôt Redshift.

Pour activer les autorisations fédérées Amazon Redshift, des autorisations IAM spécifiques sont requises en plus des autorisations standard requises pour créer des clusters provisionnés par Redshift et des espaces de noms sans serveur.

Pour que l'entrepôt provisionné par Redshift active les autorisations fédérées Redshift :
+ `redshift:ModifyLakehouseConfiguration`
+ `redshift:RegisterNamespace`

Pour que Redshift Serverless Warehouse active les autorisations fédérées Redshift :
+ `redshift-serverless:UpdateLakehouseConfiguration`
+ `redshift:RegisterNamespace`

Pour AWS Glue Data Catalog l'intégration afin de créer un catalogue avec les autorisations fédérées Redshift :
+ `glue:CreateCatalog`
+ `glue:GetCatalog`

*Pour l'enregistrement des ressources de Lake Formation sous forme d'enregistrement unique afin d'activer la fédération d'autorisations Redshift depuis un entrepôt distant avec des autorisations fédérées :*
+ `lakeformation:RegisterResource`
+ `lakeformation:RegisterResourceWithPrivilegedAccess`

## Configuration de l'application IAM Identity Center pour l'entrepôt Redshift avec autorisations fédérées
<a name="federated-permissions-prereqs-configuration"></a>

Amazon Redshift prend en charge la propagation des identités des centres d'identité afin de transmettre facilement les identités des utilisateurs entre les instances Redshift et les services. AWS Lake Formation AWS Glue Cette fonctionnalité nécessite la configuration d'applications iDC dédiées.

*Autorisations IAM nécessaires*

Pour créer et gérer l'application du centre d'identité pour la propagation des identités du centre d'identité, assurez-vous que vos autorisations IAM incluent les autorisations suivantes :

*Pour la gestion des applications Amazon Redshift iDC :*
+ `redshift:CreateRedshiftIdcApplication`
+ `redshift:ModifyRedshiftIdcApplication`
+ `redshift:DescribeRedshiftIdcApplications`

*Pour la gestion des applications Lake Formation iDC :*
+ `lakeformation:CreateLakeFormationIdentityCenterConfiguration`
+ `lakeformation:DescribeLakeFormationIdentityCenterConfiguration`
+ `lakeformation:UpdateLakeFormationIdentityCenterConfiguration`

**Création des applications et de la configuration iDC correspondantes**

Pour établir la propagation des identités pour vos charges de travail d'analyse, créez une application Amazon Redshift iDC de type Lakehouse. Il gère les autorisations sans exiger d'assignations d'utilisateurs explicites. Les entrepôts Redshift liés à cette application nécessitent des privilèges CONNECT pour que les utilisateurs d'iDC puissent authentifier les connexions.

Vous ne pouvez créer qu'une seule application Amazon Redshift iDC de type Lakehouse par. Compte AWS Cette application gère la propagation des identités dans tous les entrepôts Redshift intégrés à Lake Formation et AWS Glue aux services. L'application ne peut être utilisée qu'avec les entrepôts Redshift enregistrés auprès du. AWS Glue Data Catalog

**Préparer le rôle IAM assumé par Redshift et utilisé par la propagation des identités iDC**

La création d'une application Redshift Lakehouse iDC nécessite un rôle IAM sur votre compte avec certaines autorisations IAM. Votre rôle IAM utilisé dans vos applications Redshift iDC doit avoir la relation de confiance suivante pour permettre à Redshift de l'assumer et de définir le contexte de propagation de l'identité iDC.

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

Et ci-dessous, les autorisations permettant à votre rôle iAM iDC de prendre en charge la propagation de l'identité iDC.
+  [AmazonRedshiftFederatedAuthorization](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRedshiftFederatedAuthorization.html)— Cette politique permet à Amazon Redshift d'interroger les AWS Glue Data Catalog bases de données via des autorisations fédérées. 
+ AWSIDC Définir une politique contextuelle

  ```
   {
      "Version": "2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "sts:SetContext"
              ],
              "Resource": "*"
          }
      ]
  }
  ```
+ [Configuration de Redshift en tant qu'application AWS gérée](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-idp-connect-console.html#redshift-iam-access-control-idp-connect-admin-tasks) avec. AWS IAM Identity Center
+ AWSIDC politique SSO IAM du centre d'identité :
  + `sso:DescribeApplication` : requise pour créer une entrée de fournisseur d’identité (IdP) dans le catalogue.
  + `sso:DescribeInstance` : sert à créer manuellement des rôles ou des utilisateurs fédérés par le fournisseur d’identité.

    ```
    {
      "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>/*"
      ]
    }
    ```

Créez une nouvelle application Redshift iDC de type Lakehouse

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

Créez votre application Lakehouse iDC en spécifiant le type d'application Lakehouse dans la `create-redshift-idc-application` demande, ce qui élimine le besoin d'assignations d'utilisateurs explicites dans Identity Center tout en activant les `CONNECT` privilèges requis pour l'authentification des utilisateurs 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"
                    }
                }
            ]
        }
    ]'
```

Cette configuration permet une propagation d'identité fiable entre Redshift et Lake Formation, permettant aux utilisateurs d'accéder aux données de différents services à l'aide de leurs informations d'identification Identity Center sans attribution d'autorisations supplémentaires.

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

1. Connectez-vous à la console Amazon Redshift AWS Management Console et ouvrez-la à l'adresse. [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)

1. Accédez à la page de connexions IAM Identity Center et sélectionnez **Créer une application**.

1. Configurez les paramètres généraux de votre application IDC.

1. Sélectionnez **Configurer les autorisations fédérées Amazon Redshift à l'aide de AWS IAM Identity Center (recommandé)** pour définir le type d'application.

1. Les intégrations de propagation d'identité de Lake Formation et Redshift Connect sont activées par défaut.

1. Complétez les paramètres de cluster restants et choisissez **Create application**.

------

Modifier une application Redshift iDC existante

Si vous possédez une application Redshift iDC existante sur laquelle les intégrations de services requises ne sont pas activées, vous pouvez la mettre à jour pour prendre en charge la propagation des identités entre les services et les clusters/espaces de noms.

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

Utilisez la `modify-redshift-idc-application` commande pour activer à la fois `LakeFormation:query` l'autorisation et `Redshift:Connect` l'autorisation. Ces intégrations sont essentielles pour la propagation des identités iDC entre services et entre clusters :

```
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. Connectez-vous à la console Amazon Redshift AWS Management Console et ouvrez-la à l'adresse. [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)

1. Accédez à la page des connexions IAM Identity Center et choisissez une application IDC existante que vous souhaitez modifier.

1. Choisissez Identity Propagation Integrations pour activer et configurer d'autres paramètres, puis sélectionnez **Enregistrer les modifications**.

------

**Créer la configuration du centre d'identité de Lake Formation**

Votre service Lake Formation nécessite une application iDC dédiée si aucune n'a encore été créée. Vous devez également activer `Redshift:Connect` l'autorisation pour que la configuration fonctionne correctement.

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

Utilisez la `create-lake-formation-identity-center-configuration` commande pour activer `Redshift:Connect` l'autorisation. Ces intégrations sont essentielles pour que Lake Formation propage l'identité iDC aux clusters Redshift et aux espaces de noms Redshift Serverless.

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

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

1. Connectez-vous à la AWS Management Console console Lake Formation et ouvrez-la à l'adresse [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/).

1. Dans le volet de navigation de gauche, sélectionnez **Intégration à IAM Identity Center**.

1. Sur la page d'intégration d'IAM Identity Center, vous pouvez activer la propagation d'identité fiable pour Amazon Redshift Connect. Lake Formation propage l'identité vers l'aval en fonction des autorisations effectives, afin que les applications autorisées puissent accéder aux données au nom des utilisateurs.

------

**Mettre à jour la configuration du centre d'identité de Lake Formation**

Si vous avez configuré l'application Lake Formation iDC sur laquelle les intégrations de services requises ne sont pas activées, vous pouvez la mettre à jour pour prendre en charge la propagation des identités entre les services et les clusters/espaces de noms.

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

Utilisez la `update-lake-formation-identity-center-configuration` commande pour activer `Redshift:Connect` l'autorisation. Ces intégrations sont essentielles pour la propagation des identités iDC entre services et entre clusters :

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

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

1. Connectez-vous à la AWS Management Console console Lake Formation et ouvrez-la à l'adresse [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/).

1. Dans le volet de navigation de gauche, sélectionnez **Intégration à IAM Identity Center**.

1. Sur la page d'intégration d'IAM Identity Center, vous pouvez activer la propagation d'identité fiable pour Amazon Redshift Connect. Lake Formation propage l'identité vers l'aval en fonction des autorisations effectives, afin que les applications autorisées puissent accéder aux données au nom des utilisateurs.

------

## Conditions préalables à la formation du lac
<a name="federated-permissions-prereqs-lakeformation"></a>

Le client a besoin `CREATE_CATALOG` des autorisations Lake Formation pour activer AWS Glue Data Catalog les autorisations fédérées Amazon Redshift.

1. Si le compte appartient à un client existant de Lake Formation, l'administrateur de Lake Formation doit explicitement accorder l'autorisation CREATE\$1CATALOG à chaque créateur de cluster. Utilisez l'exemple de commande CLI suivant :

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

1. Si le compte n'a jamais utilisé Lake Formation, vérifiez que Catalog Creators est défini sur IAMAllowed Principaux sur la page Rôles et tâches administratifs de la console Lake Formation. S'il n'est pas configuré, configurez un administrateur de lac de données en suivant la section [Créer un administrateur de lac de données](https://docs.aws.amazon.com/lake-formation/latest/dg/initial-lf-config.html#create-data-lake-admin). Vous pouvez également créer un administrateur de lac de données avec les politiques minimales requises si vous ne l'utilisez qu' AWS Glue Data Catalog avec les autorisations fédérées Amazon Redshift.

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

1. Demandez à l' DataLake administrateur d'autoriser les IAMAllowed directeurs à créer un catalogue. L'accès peut être accordé via le bouton **Accorder** pour les créateurs de catalogues sur la page Rôle et tâches administratifs.

## Privilèges Connect
<a name="federated-permissions-prereqs-connect"></a>

Dans le cadre des autorisations fédérées Amazon Redshift, Amazon Redshift a introduit les privilèges CONNECT pour gérer l' AWS IAM Identity Center accès des utilisateurs fédérés aux groupes de travail ou aux clusters Amazon Redshift. Cette fonctionnalité est disponible lorsque les autorisations fédérées Amazon Redshift sont activées sur le groupe de travail ou le cluster.

Ce privilège permet aux administrateurs de contrôler l'accès des utilisateurs par le biais d'autorisations détaillées dans chaque groupe de travail ou cluster Amazon Redshift où les autorisations fédérées Amazon Redshift sont activées. L'administrateur Amazon Redshift peut spécifier quels utilisateurs ou groupes AWS IAM Identity Center fédérés ont accès pour se connecter directement au groupe de travail ou au cluster Amazon Redshift, ce qui permet de contrôler avec précision l'accès des utilisateurs à chaque groupe de travail ou cluster. AWS IAM Identity Center 

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

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

SE CONNECTER [SUR UN GROUPE DE TRAVAIL]  
Accorde l'autorisation de se connecter à un groupe de travail. L'autorisation CONNECT s'applique uniquement aux AWS IAM Identity Center identités (utilisateurs et rôles).

POUR <prefix>: <username>  
Indique l'utilisateur AWS IAM Identity Center fédéré qui reçoit les autorisations.

AU RÔLE <prefix>: <rolename>  
Indique le groupe AWS IAM Identity Center fédéré qui reçoit les autorisations.

PUBLIC  
Accorde les autorisations CONNECT à tous les utilisateurs AWS IAM Identity Center fédérés, y compris les utilisateurs créés ultérieurement.

# Intégration
<a name="federated-permissions-onboarding"></a>

## Enregistrement du cluster Redshift
<a name="federated-permissions-onboarding-cluster-registration"></a>

Redshift prend en charge la création d'un nouveau cluster ou la restauration d'un cluster à partir d'un instantané avec enregistrement AWS Glue Data Catalog (GDC). Vous pouvez spécifier le nom du catalogue GDC dans le cadre de cet enregistrement. Pour prendre en charge la propagation des identités iDC, vous pouvez spécifier un ARN d'application Redshift iDC de type Lakehouse pour activer la propagation des identités iDC.

**Créez un nouveau cluster avec l'enregistrement du catalogue de données Glue**

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

Pour enregistrer automatiquement votre cluster nouvellement créé dans Data Catalog, indiquez le nom du catalogue qui sera utilisé pour créer et enregistrer votre catalogue de données. Le `redshift-idc-application-arn` paramètre est facultatif. Incluez-le si vous souhaitez lier votre cluster à l'application Redshift iDC de type Lakehouse. Vous pouvez également établir cette association d'applications iDC ultérieurement.

```
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. Connectez-vous à la console Amazon Redshift AWS Management Console et ouvrez-la à l'adresse. [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)

1. Accédez au tableau de bord des clusters provisionnés et sélectionnez **Créer un cluster**.

1. Configurez les paramètres généraux de votre cluster.

1. Dans la AWS Glue Data Catalog section S'inscrire auprès de, sélectionnez **Enregistrer avec les autorisations fédérées Amazon Redshift**.
   + Entrez un identifiant de nom de catalogue.
   + (Recommandé) Sélectionnez les autorisations fédérées Amazon Redshift pour les associer AWS IAM Identity Center à l'application Redshift IDC.

1. Complétez les paramètres de cluster restants et choisissez **Create cluster**.

------

**Restaurer un nouveau cluster avec AWS Glue Data Catalog enregistrement**

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

Pour restaurer un instantané dans un nouveau cluster avec AWS Glue Data Catalog intégration, indiquez le nom du catalogue qui sera utilisé pour créer et enregistrer votre AWS Glue catalogue. Le `redshift-idc-application-arn` paramètre est facultatif. Incluez-le si vous souhaitez lier votre cluster à l'application Redshift iDC de type Lakehouse. Vous pouvez également établir cette association d'applications iDC ultérieurement.

```
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. Connectez-vous à la console Amazon Redshift AWS Management Console et ouvrez-la à l'adresse. [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)

1. Accédez à la page des instantanés provisionnés. Dans le tableau des instantanés, sélectionnez **Restaurer dans le cluster provisionné** dans le menu déroulant **Restaurer le cliché**. 

1. Configurez les paramètres généraux du cluster.

1. Dans la AWS Glue Data Catalog section S'inscrire auprès de, sélectionnez **Enregistrer avec les autorisations fédérées Amazon Redshift**.
   + Entrez un identifiant de nom de catalogue.
   + (Recommandé) Sélectionnez les autorisations fédérées Amazon Redshift pour les associer AWS IAM Identity Center à l'application Redshift IDC.

1. Complétez les paramètres de cluster restants et choisissez **Create cluster**.

------

**Modifier un cluster existant avec AWS Glue Data Catalog enregistrement**

Si votre cluster Redshift est déjà associé à une application Redshift iDC de type autre que lakehouse, les événements suivants se produisent lors de l'enregistrement : AWS Glue Data Catalog 
+ Lorsqu'aucun ARN d'application Redshift iDC n'est fourni, l'application Redshift iDC existante dans votre catalogue sera définie sur le statut désactivé.
+ Lorsqu'une application Redshift iDC de type Lakehouse provenant d'une AWS IAM Identity Center instance différente est spécifiée, le fournisseur iDC actuel est désactivé
+ Lorsqu'une application Redshift iDC de type Lakehouse provenant de la même instance est fournie AWS IAM Identity Center 
  + L'ARN de l'application Redshift iDC de votre catalogue sera remplacé par l'ARN de l'application Redshift iDC de type Lakehouse. Le catalogue mis à jour peut être vérifié en interrogeant le svv\$1identity\$1providers. [Pour plus d'informations sur les fournisseurs svv\$1identity\$1providers, consultez svv\$1identity\$1providers.](https://docs.aws.amazon.com/redshift/latest/dg/r_SVV_IDENTITY_PROVIDERS.html)
  + AWS IAM Identity Center les utilisateurs fédérés qui avaient auparavant accès au cluster Redshift doivent se voir explicitement accorder des privilèges CONNECT par les administrateurs pour accéder au cluster. Pour plus d'informations sur l'octroi de privilèges CONNECT, consultez[Privilèges Connect](federated-permissions-prereqs.md#federated-permissions-prereqs-connect).
  + Après votre inscription AWS Glue Data Catalog, vos identités AWS IAM Identity Center fédérées existantes et les ressources qui leur appartiennent restent inchangées. Les associations d'espaces de noms pour ces identités fédérées sont également préservées.

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

Vous pouvez utiliser `modify-lakehouse-configuration` la commande pour enregistrer votre cluster AWS Glue Data Catalog, qui `catalog-name` est utilisé pour créer et enregistrer votre AWS Glue catalogue. Pour prendre en charge la propagation de l'identité iDC, spécifiez l'ARN de votre type RedshiftIdcApplication de lakehouse. Cela nécessite une application Redshift iDC de type Lakehouse. Reportez-vous à la section Création d'[une nouvelle application Redshift iDC de type Lakehouse : Configuration de l'application Identity Center pour Redshift Warehouse avec autorisations fédérées](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. Connectez-vous à la console Amazon Redshift AWS Management Console et ouvrez-la à l'adresse. [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)

1. Accédez au cluster provisionné que vous souhaitez enregistrer et sélectionnez-le.

1. Sur la page de détails du cluster, sélectionnez **Enregistrer avec** dans le AWS Glue Data Catalog menu déroulant **Actions**.

1. Sélectionnez l'option **Enregistrer avec les autorisations fédérées Amazon Redshift** et
   + Entrez un identifiant de nom de catalogue.
   + **(Recommandé) Sélectionnez les autorisations fédérées Amazon Redshift AWS IAM Identity Center à l'aide de l'outil pour les associer à l'application Redshift IDC et choisissez Register.**

------

## Enregistrement de l'espace de noms Redshift Serverless
<a name="federated-permissions-onboarding-namespace-registration"></a>

Redshift Serverless permet de s'enregistrer auprès des espaces de noms Serverless attachés à un groupe de travail. AWS Glue Data Catalog Notez que votre base de données redémarrera lors de cette mise à jour.

Si votre espace de noms Redshift Serverless est déjà associé à une application Redshift iDC de type autre que lakehouse, les événements suivants se produisent lors de l'enregistrement du Glue Data Catalog :
+ Lorsqu'aucun ARN d'application Redshift iDC n'est fourni, l'application Redshift iDC existante dans votre catalogue sera définie sur le statut désactivé.
+ Lorsqu'une application Redshift iDC de type Lakehouse provenant d'une AWS IAM Identity Center instance différente est spécifiée, le fournisseur iDC actuel est désactivé
+ Lorsqu'une application Redshift iDC de type Lakehouse provenant de la même instance est fournie AWS IAM Identity Center 
  + L'ARN de l'application Redshift iDC de votre catalogue sera remplacé par l'ARN de l'application Redshift iDC de type Lakehouse. Le catalogue mis à jour peut être vérifié en interrogeant le svv\$1identity\$1providers. [Pour plus d'informations sur les fournisseurs svv\$1identity\$1providers, consultez svv\$1identity\$1providers.](https://docs.aws.amazon.com/redshift/latest/dg/r_SVV_IDENTITY_PROVIDERS.html)
  + AWS IAM Identity Center les utilisateurs fédérés qui avaient auparavant accès au cluster Redshift doivent se voir explicitement accorder des privilèges CONNECT par les administrateurs pour accéder au cluster. Pour plus d'informations sur l'octroi de privilèges CONNECT, consultez[Privilèges Connect](federated-permissions-prereqs.md#federated-permissions-prereqs-connect).
  + Après votre inscription AWS Glue Data Catalog, vos identités AWS IAM Identity Center fédérées existantes et les ressources qui leur appartiennent restent inchangées. Les associations d'espaces de noms pour ces identités fédérées sont également préservées.

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

Vous pouvez utiliser `update-lakehouse-configuration` la commande pour enregistrer votre espace de noms Redshift Serverless dans lequel AWS Glue Data Catalog vous pourrez créer et enregistrer votre catalogue de colle. `catalog-name` Pour prendre en charge la propagation de l'identité IdC, spécifiez l'ARN d'une application Redshift Idc de type 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. Connectez-vous à la console Amazon Redshift AWS Management Console et ouvrez-la à l'adresse. [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)

1. Accédez au cluster provisionné que vous souhaitez enregistrer et sélectionnez-le.

1. Sur la page de détails du cluster, sélectionnez **Enregistrer avec** dans le AWS Glue Data Catalog menu déroulant **Actions**.

1. Sélectionnez l'option **Enregistrer avec les autorisations fédérées Amazon Redshift** et
   + Entrez un identifiant de nom de catalogue.
   + **(Recommandé) Sélectionnez les autorisations fédérées Amazon Redshift AWS IAM Identity Center à l'aide de l'outil pour les associer à l'application Redshift IDC et choisissez Register.**

------

## Activer la propagation de AWS IAM Identity Center l'identité
<a name="federated-permissions-onboarding-propagation"></a>

Amazon Redshift prend en charge la propagation des identités par Identity Center (iDC) afin de transmettre de manière fluide les identités des utilisateurs iDC entre les instances Redshift et les services/. AWS Lake FormationAWS Glue 

**Conditions préalables**
+ Vous avez créé une application Amazon Redshift iDC de type Lakehouse. Reportez-vous à la section [AWS IAM Identity Center Configuration de l'application pour l'entrepôt Redshift](https://docs.aws.amazon.com/redshift/latest/dg/federated-permissions-prereqs.html#federated-permissions-prereqs-configuration) avec des autorisations fédérées.
+ Vous avez un cluster Amazon Redshift ou un espace de noms Amazon Redshift Serverless enregistré auprès de. AWS Glue Data Catalog
  + L'espace de noms Redshift Serverless nécessite un groupe de travail attaché pour effectuer les opérations associées.

Si votre cluster Redshift ou votre espace de noms Redshift Serverless est déjà associé à une application Redshift iDC d'un type autre que Lakehouse, les événements suivants se produisent lors de l'enregistrement : AWS Glue Data Catalog 
+ Lorsqu'aucun ARN d'application Redshift iDC n'est fourni, l'application Redshift iDC existante dans votre catalogue sera définie sur le statut désactivé.
+ Lorsqu'une application Redshift iDC de type Lakehouse provenant d'une AWS IAM Identity Center instance différente est spécifiée, le fournisseur iDC actuel est désactivé
+ Lorsqu'une application Redshift iDC de type Lakehouse provenant de la même instance est fournie AWS IAM Identity Center 
  + L'ARN de l'application Redshift iDC de votre catalogue sera remplacé par l'ARN de l'application Redshift iDC de type Lakehouse. Le catalogue mis à jour peut être vérifié en interrogeant le svv\$1identity\$1providers. [Pour plus d'informations sur les fournisseurs svv\$1identity\$1providers, consultez svv\$1identity\$1providers.](https://docs.aws.amazon.com/redshift/latest/dg/r_SVV_IDENTITY_PROVIDERS.html)
  + AWS IAM Identity Center les utilisateurs fédérés qui avaient auparavant accès au cluster Redshift doivent se voir explicitement accorder des privilèges CONNECT par les administrateurs pour accéder au cluster. Pour plus d'informations sur l'octroi de privilèges CONNECT, consultez[Privilèges Connect](federated-permissions-prereqs.md#federated-permissions-prereqs-connect).
  + Après votre inscription AWS Glue Data Catalog, vos identités AWS IAM Identity Center fédérées existantes et les ressources qui leur appartiennent restent inchangées. Les associations d'espaces de noms pour ces identités fédérées sont également préservées.

### Activer la propagation des AWS IAM Identity Center identités pour les clusters provisionnés par Amazon Redshift
<a name="federated-permissions-onboarding-propagation-cluster"></a>

Pour le cluster Amazon Redshift Provisioned qui a enregistré son espace de noms auprès de AWS Glue Data Catalog, il nécessite l'application Lakehouse Amazon Redshift iDC qui n'exige pas AWS IAM Identity Center explicitement l'attribution d'identité à l'application. Les privilèges de connexion des utilisateurs iDC sont gérés par le privilège CONNECT sur l'entrepôt Redshift.

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

Vous pouvez utiliser la `modify-lakehouse-configuration` commande pour activer la propagation de l'identité iDC pour vos clusters avec des autorisations fédérées Redshift. Spécifiez l'ARN de votre type de lakehouse. Cela nécessite une application Redshift Lakehouse RedshiftIdcApplication iDC. Reportez-vous à la section [Création d'une nouvelle application Redshift iDC de type Lakehouse : Configuration de l'application Identity Center pour Redshift Warehouse](https://docs.aws.amazon.com/redshift/latest/dg/federated-permissions-prereqs.html#federated-permissions-prereqs-configuration) avec autorisations fédérées.

```
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. Connectez-vous à la console Amazon Redshift AWS Management Console et ouvrez-la à l'adresse. [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)

1. Accédez au cluster provisionné que vous souhaitez enregistrer et sélectionnez-le.

1. Sur la page de détails du cluster, sélectionnez **Enregistrer avec** dans le AWS Glue Data Catalog menu déroulant **Actions**.

1. **Sélectionnez **Activer** dans la AWS IAM Identity Center liste déroulante des autorisations fédérées Amazon Redshift pour associer l'application IDC et choisissez Enregistrer les modifications.**

------

### Activer la propagation des AWS IAM Identity Center identités pour les espaces de noms Amazon Redshift Serverless
<a name="federated-permissions-onboarding-propagation-namespace"></a>

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

Vous pouvez utiliser la `modify-lakehouse-configuration` commande pour activer la propagation de l'identité iDC pour votre espace de noms avec les autorisations fédérées Redshift. Spécifiez l'ARN de votre type de lakehouse. RedshiftIdcApplication Cela nécessite une application Redshift Lakehouse iDC. Reportez-vous à la section [Créer une nouvelle application Redshift iDC de type Lakehouse : Configuration de l'application Identity Center pour Redshift Warehouse](https://docs.aws.amazon.com/redshift/latest/dg/federated-permissions-prereqs.html#federated-permissions-prereqs-configuration) avec autorisations fédérées.

```
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. Connectez-vous à la console Amazon Redshift AWS Management Console et ouvrez-la à l'adresse. [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)

1. Accédez à l'espace de noms sans serveur pour lequel vous souhaitez modifier l'enregistrement et sélectionnez-le.

1. Sur la page de détails du cluster, sélectionnez **Modifier l' AWS Glue Data Catalog enregistrement** dans le menu déroulant **Actions**.

1. **Sélectionnez **Activer** dans la AWS IAM Identity Center liste déroulante des autorisations fédérées Amazon Redshift pour associer l'application IDC et choisissez Enregistrer les modifications.**

------

## MODIFIER L'IDENTITÉ GLOBALE DÉFINIE PAR L'UTILISATEUR
<a name="federated-permissions-onboarding-alter-set-global-identity"></a>

Outre l'IAM et les AWS IAM Identity Center informations d'identification, l'utilisateur exécutant des requêtes auprès de Redshift Warehouses avec des autorisations fédérées peut s'authentifier à l'aide d'un rôle IAM. Un superutilisateur peut définir un rôle IAM pour qu'un autre utilisateur non fédéré s'associe automatiquement lors de l'établissement de la session, et ce rôle IAM sera assumé lors des requêtes adressées aux entrepôts Redshift dotés d'autorisations fédérées. Cette fonctionnalité est fournie pour permettre aux utilisateurs d' AWS iDC de s'authentifier de manière non interactive.

Cette fonctionnalité est utile dans les cas d'utilisation suivants :
+ Les clients qui ont des configurations importantes et complexes avec un utilisateur d'entrepôt local existant en plus des utilisateurs ayant une identité globale.
+ Les clients qui utilisent iDC, mais qui souhaitent pouvoir se connecter automatiquement sans action interactive du navigateur pour se connecter.

Exigences et limitations :
+ Seul le super utilisateur peut définir le rôle IAM par`ALTER USER`.
+ Le rôle IAM doit être attaché au cluster.
+ Le rôle IAM doit disposer des autorisations nécessaires pour accéder aux ressources nécessaires pour exécuter des requêtes sur les entrepôts Redshift avec des autorisations fédérées. Nous vous recommandons d'utiliser une politique `[AmazonRedshiftFederatedAuthorization](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRedshiftFederatedAuthorization.html)` AWS gérée.
+  Les utilisateurs qui s'authentifient via le rôle GLOBAL IDENTITY IAM peuvent interroger des vues dans Redshift Warehouses avec des autorisations fédérées, mais ne peuvent pas les créer, les modifier, les actualiser ou les supprimer. 

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

La syntaxe suivante décrit la `ALTER USER SET GLOBAL IDENTITY` commande utilisée pour définir le rôle IAM d'un utilisateur de base de données non fédéré afin qu'il exécute des requêtes sur les entrepôts Redshift avec des autorisations fédérées.

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

Désormais, une fois authentifié en tant qu'utilisateur cible (en vous connectant directement en tant qu'*username*utilisateur cible ou en utilisant [SET SESSION AUTHORIZATION](https://docs.aws.amazon.com/redshift/latest/dg/r_SET_SESSION_AUTHORIZATION.html)), vous pouvez vérifier le rôle d'identité global en utilisant

```
SHOW GLOBAL IDENTITY
```

Notez que le rôle d'identité global est associé à l'utilisateur lors de l'établissement de la session. Si vous définissez l'identité globale de l'utilisateur actuellement connecté, celui-ci devra se reconnecter pour que l'identité globale prenne effet.

La commande suivante peut être utilisée pour supprimer le rôle IAM associé.

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

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

nom d’utilisateur  
Nom de l’utilisateur. Il ne peut pas s'agir d'un utilisateur fédéré, comme un utilisateur IAM ou un utilisateur AWS iDC.

<account-id><role-name>IAM\$1ROLE 'arn:aws:iam : ::role/ '  
Utilisez l'Amazon Resource Name (ARN) pour un rôle IAM que votre cluster utilise pour l'authentification et l'autorisation lorsque l'utilisateur *username* exécute des requêtes sur des entrepôts Redshift avec des autorisations fédérées. Ce rôle doit disposer des autorisations requises pour exécuter la requête. Nous vous recommandons d'utiliser `[AmazonRedshiftFederatedAuthorization](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRedshiftFederatedAuthorization.html)` AWS Managed Policy.

# Interrogation de catalogues enregistrés dans le avec des autorisations AWS Glue Data Catalog fédérées Redshift
<a name="federated-permissions-querying"></a>

Lorsque vous enregistrez un entrepôt de données Amazon Redshift à l' AWS Glue Data Catalog aide des autorisations fédérées Amazon Redshift, les bases de données de cet espace de noms sont automatiquement montées dans toutes les instances Amazon Redshift de cet espace de noms et de cette région. Compte AWS Cela permet d'effectuer des requêtes dans des environnements multi-entrepôts tout en préservant la sécurité grâce à des identités globales et à des politiques de contrôle d'accès précises (FGAC).

## Conditions préalables
<a name="federated-permissions-querying-prereqs"></a>

Avant d'interroger des bases de données fédérées, assurez-vous d'avoir :
+ La politique [AmazonRedshiftFederatedAuthorization](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRedshiftFederatedAuthorization.html) AWS gérée associée à votre utilisateur ou rôle IAM. Pour un contrôle d'accès précis, vous pouvez accorder des actions IAM spécifiques à partir de cette politique au lieu de joindre la politique complète.
+ Autorisations appropriées configurées pour les objets du catalogue dans l'entrepôt de données source
+ Accès à l'entrepôt de données Amazon Redshift dans la même région Compte AWS .

## Interrogation de bases de données fédérées
<a name="federated-permissions-querying-federated-db"></a>

Vous pouvez interroger des objets dans les bases de données figurant dans les catalogues enregistrés en utilisant une syntaxe en trois parties pour accéder aux tables :

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

### Exemple de requête
<a name="federated-permissions-querying-sample-query"></a>

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

En outre, vous pouvez accéder à des objets à partir de bases de données fédérées via la [base de données USE](https://docs.aws.amazon.com/redshift/latest/dg/r_USE_command.html).

Les bases de données fédérées sont également disponibles pour une [connexion directe](https://docs.aws.amazon.com/redshift/latest/dg/database-direct-connect.html).

## Sécurité et contrôle d'accès
<a name="federated-permissions-querying-security"></a>

**Identités mondiales et application de la FGAC**

Lorsque vous activez l'entrepôt de données Amazon Redshift avec des autorisations fédérées, les autorisations et les politiques FGAC définies pour ces objets sont automatiquement appliquées dans les entrepôts consommateurs. Cela garantit une sécurité constante dans l'ensemble de votre environnement multi-entrepôts.

**Fonctionnalités de sécurité prises en charge**

Vous pouvez configurer les contrôles de sécurité suivants sur les objets de l'entrepôt de données Amazon Redshift, qui seront appliqués à tous les entrepôts consommateurs
+ **Privilèges au niveau des colonnes (CLP)** : accorder ou restreindre l'accès à des colonnes spécifiques
+ **Sécurité au niveau des lignes (RLS)** : contrôlez l'accès à des lignes spécifiques en fonction des attributs de l'utilisateur
+ **Masquage dynamique des données (DDM)** : masque automatiquement les données sensibles en fonction des autorisations des utilisateurs

# Gestion du contrôle d'accès sur le catalogue d'autorisations fédérées Amazon Redshift
<a name="federated-permissions-managing-access"></a>

Grâce aux autorisations fédérées Amazon Redshift, les utilisateurs peuvent définir des contrôles d'accès grossiers et précis depuis n'importe quel entrepôt Redshift du. Compte AWS Les autorisations générales gèrent l'accès aux tables, aux vues et aux objets de base de données, y compris les autorisations étendues, tandis que les contrôles précis autorisent des privilèges au niveau des colonnes et l'application de politiques de sécurité telles que la sécurité au niveau des lignes (RLS) et le masquage dynamique des données (DDM).

## Accorder/Révoquer
<a name="federated-permissions-managing-access-grant-revoke"></a>

Avec les autorisations fédérées, vous pouvez définir des autorisations sur les accès au niveau des tables, telles que l'accès à la lecture et à l'écriture de données dans des tables et à des vues dans la base de données Redshift Federated Permissions depuis n'importe quel entrepôt 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";
```

Les autorisations fédérées Amazon Redshift prennent en charge les autorisations étendues pour vous permettre d'accorder ou de révoquer des autorisations sur tous les objets d'un type au sein d'une base de données ou d'un schéma.

```
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";
```

Vous pouvez définir les autorisations d'accès accorder/révoquer sur la base de données.

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

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

Pour plus d'informations sur la syntaxe prise en charge par les autorisations fédérées Amazon Redshift pour l'octroi, consultez. [Autorisations que vous pouvez accorder sur le catalogue d'autorisations fédérées Amazon Redshift](#federated-permissions-managing-access-grant-allowed)

## Contrôle précis des accès
<a name="federated-permissions-managing-access-fgac"></a>

Vous pouvez définir un contrôle d'accès précis pour les données sensibles à l'aide du contrôle d'accès au niveau des colonnes, de la sécurité au niveau des lignes (RLS) et du masquage dynamique des données (DDM) dans une base de données avec les autorisations de fédération Amazon Redshift. Le contrôle d'accès au niveau des colonnes permet de définir des privilèges d'accès plus précis au niveau des colonnes sur les tables et les vues. Les superutilisateurs et les utilisateurs ou rôles dotés du `sys:secadmin` rôle dans la base de données peuvent créer des politiques RLS et DDM, associer ces politiques à des relations spécifiques et activer le RLS sur une relation.

### Contrôle d'accès au niveau des colonnes :
<a name="federated-permissions-managing-access-column"></a>

Vous pouvez accorder ou révoquer des privilèges spécifiques sur des colonnes individuelles d'une table ou d'une vue.

```
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";
```

### Sécurité au niveau des lignes (RLS) :
<a name="federated-permissions-managing-access-row"></a>

Vous pouvez activer ou désactiver la sécurité au niveau des lignes pour une relation.

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

Vous pouvez créer, modifier ou supprimer une politique RLS sur la base de données.

```
-- 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;
```

Vous pouvez associer ou détacher une politique RLS à une relation.

```
-- 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";
```

### Masquage dynamique des données (DDM) :
<a name="federated-permissions-managing-access-ddm"></a>

Vous pouvez créer, modifier ou supprimer une politique de masquage dans la base de données.

```
-- 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;
```

Vous pouvez joindre ou détacher une politique de masquage à une relation.

```
-- 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 superutilisateur ou un utilisateur disposant du `sys:secadmin` privilège peut consulter les politiques RLS et DDM, ainsi que leurs pièces jointes dans le cadre d'une relation avec des autorisations fédérées, à l'aide de la commande. [AFFICHER LES POLITIQUES](r_SHOW_POLICIES.md)

**Note**  
Fonctions définies par l'utilisateur (UDF) dans RLS, les définitions de politiques DDM ne sont pas prises en charge par les autorisations fédérées Amazon Redshift.
Les fonctions SQL Redshift user\$1is\$1member\$1of, role\$1is\$1member\$1of, user\$1is\$1member\$1of\$1role ne sont pas prises en charge par les autorisations fédérées Amazon Redshift.

### Autorisations que vous pouvez accorder sur le catalogue d'autorisations fédérées Amazon Redshift
<a name="federated-permissions-managing-access-grant-allowed"></a>

Instructions SQL pour prendre en charge la gestion des autorisations sur la base de données avec les autorisations fédérées Amazon Redshift sur les ressources à différents niveaux de granularité. La syntaxe prend en charge à la fois les références de table locales (lorsqu'elles sont connectées à la base de données contenant la ressource ou lorsque la base de données source est en mode USE) et les références croisées de bases de données complètes.

**Remarque**
+ *username*peut faire référence à un utilisateur IAM, à un rôle IAM ou à un utilisateur iDC ()AWS IAM Identity Center.
+ *role\$1name*peut faire référence à un groupe iDC. Les groupes IAM ne sont pas pris en charge.

#### Autorisations grossières
<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 }
```

#### Privilèges au niveau des colonnes
<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 }
```

### Autorisations délimitées
<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 } [, ...]
```

# Autorisations fédérées Amazon Redshift : exemples end-to-end
<a name="federated-permissions-end-examples"></a>

L' end-to-endexemple suivant montre comment créer et gérer des politiques complètes de gouvernance des données à l'aide des autorisations fédérées Amazon Redshift. Ces politiques incluent la sécurité au niveau des lignes (RLS), le masquage dynamique des données (DDM) et les autorisations au niveau des colonnes (CLP) qui fonctionnent ensemble pour contrôler l'accès aux données en fonction des rôles et des conditions des utilisateurs.

Vous devez être `superuser` ou avoir le rôle [sys:secadmin](https://docs.aws.amazon.com/redshift/latest/dg/r_roles-default.html) pour exécuter cet exemple.

## Conditions préalables
<a name="federated-permissions-end-examples-prereqs"></a>

Les exemples supposent que les rôles « IAMR:Role\$1name » ci-dessous sont déjà présents dans le compte. Si ce n'est pas le cas, créez-les. De plus, l'entrepôt de données Redshift est enregistré sous le nom « catalog\$1name » et possède une base de données « db\$1name ». AWS Glue Data Catalog 

## Sur une instance de catalogue, accordez le rôle sys:secadmin au rôle IAM correspondant
<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";
```

### Le reste sera exécuté sur l'entrepôt de calcul Redshift
<a name="federated-permissions-end-examples-compute"></a>

Si vous utilisez des utilisateurs IAM ou iDC, vous pouvez ignorer les deux étapes suivantes pour créer des utilisateurs de l'entrepôt local et un mappage d'identité global.

#### Étape 1 : Création de l'entrepôt local (utilisateurs nécessaires pour tester les politiques de gouvernance)
<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';
```

#### Étape 2 : Configuration du mappage des rôles IAM d'identité globale
<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;
```

## Configuration de l'environnement
<a name="federated-permissions-end-examples-environment"></a>

Créez d'abord des tableaux et remplissez-les avec des exemples de données clients et des tables de recherche pour les politiques de gouvernance.

```
-- 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;
```

## Configuration des autorisations au niveau des colonnes (CLP)
<a name="federated-permissions-end-examples-clp"></a>

Configurez l'accès au niveau des colonnes pour différents utilisateurs afin de contrôler les colonnes auxquelles les utilisateurs peuvent accéder.

```
-- 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";
```

## Création de politiques de sécurité au niveau des lignes (RLS)
<a name="federated-permissions-end-examples-rls"></a>

Créez des politiques RLS pour contrôler les lignes que les utilisateurs peuvent voir en fonction de leurs autorisations et des conditions de données.

```
-- 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";
```

## Création de politiques de masquage dynamique des données (DDM)
<a name="federated-permissions-end-examples-ddm"></a>

Créez des politiques de masquage pour masquer les données sensibles en fonction des rôles et des conditions des utilisateurs.

```
-- 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;
```

## Available/Applied Politiques d'audit
<a name="federated-permissions-end-examples-audit"></a>

Utilisez les commandes SHOW pour vérifier que vos politiques de gouvernance sont correctement configurées.

```
-- 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;
```

## Tester les modèles d'accès
<a name="federated-permissions-end-examples-testing"></a>

Testez la façon dont les différents utilisateurs voient les données en fonction de leurs rôles et des politiques appliquées.

```
-- 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;
```

## Modification des politiques
<a name="federated-permissions-end-examples-alter"></a>

Modifiez les politiques existantes pour modifier leur comportement sans les recréer.

```
-- 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  
));
```

## Politiques de détachement et de suppression
<a name="federated-permissions-end-examples-detach"></a>

Supprimez les politiques lorsqu'elles ne sont plus nécessaires.

```
-- 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";
```

## Nettoyage : désactivez le RLS et les politiques de suppression
<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;
```

## Réinitialiser l'identité globale
<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;
```

# Configuration utilisateur fédérée
<a name="federated-permissions-user-cofig"></a>

Grâce aux autorisations fédérées Amazon Redshift, les utilisateurs authentifiés à l'aide des informations d'identification IAM ou IAM Identity Center (iDC) peuvent bénéficier d'une expérience cohérente dans tous leurs entrepôts Amazon Redshift.

Lorsqu'un utilisateur se connecte à un cluster Redshift, ses paramètres de configuration, tels que le format de date, le chemin de recherche et les préférences de fuseau horaire, sont automatiquement appliqués à sa session. Cela garantit que la même expérience utilisateur est maintenue dans tous les clusters, sans nécessiter de reconfiguration manuelle, offrant ainsi une expérience fluide et personnalisée.

**Exemple**

Prenons l'exemple d'**Alex**, un analyste de données qui a configuré son format de date et son fuseau horaire préférés dans sa base de données Redshift principale. Lorsqu'Alex y exécute des requêtes, toutes les valeurs de date apparaissent dans le format préféré.

Désormais, lorsqu'Alex se connecte à une base de données **partagée** ou **montée automatiquement** dans un autre entrepôt Redshift, ces mêmes préférences sont systématiquement appliquées. Alex voit les résultats dans le même format de date et le même fuseau horaire, ce qui garantit une expérience cohérente dans tous les environnements.

## Configurations utilisateur cohérentes dans les entrepôts Amazon Redshift
<a name="federated-user-config-settings"></a>

**Les **[configurations](https://docs.aws.amazon.com/redshift/latest/dg/cm_chap_ConfigurationRef.html) de niveau utilisateur** suivantes sont automatiquement synchronisées entre les clusters Redshift pour les utilisateurs authentifiés avec des informations d'identification **IAM ou (iDC**) :AWS IAM Identity Center **
+ [style de date](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)
+ [chemin\$1de recherche](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)
+ [encodage\$1géométrique par défaut](https://docs.aws.amazon.com/redshift/latest/dg/r_default_geometry_encoding.html)
+ [décrivez le nom du champ en majuscules](https://docs.aws.amazon.com/redshift/latest/dg/r_describe_field_name_in_uppercase.html)
+ [identificateur délimité par le bas](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\$1arrounding](https://docs.aws.amazon.com/redshift/latest/dg/r_enable_numeric_rounding.html)
+ [activer le cache\$1des résultats pour la session](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)
+ [navigate\$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)
+ [erreur spectrum\$1query\$1max](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)
+ [analyse\$1seul\$1pourcentage](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)

## Gestion de la connexion et de la configuration
<a name="federated-user-config-management"></a>
+ Lorsque vous vous connectez à Amazon Redshift via **JDBC**, certaines configurations au niveau de la **session peuvent également** être appliquées automatiquement. Pour plus de détails, reportez-vous à la documentation de configuration JDBC au niveau de la session.
+ Les utilisateurs peuvent également définir des **configurations permanentes au niveau utilisateur** à l'aide de l'[ALTER USER](https://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_USER.html).

# Désactivation AWS IAM Identity Center de la propagation
<a name="federated-permissions-offboarding"></a>

Avant de désactiver AWS IAM Identity Center la propagation, vous devez avoir enregistré AWS Glue Data Catalog et associé Amazon Redshift Cluster ou Amazon Redshift Serverless Namespace à une application Lakehouse Redshift iDC. Un espace de noms Amazon Redshift Serverless nécessite un groupe de travail attaché pour effectuer les opérations associées.

## Désactiver la propagation des AWS IAM Identity Center identités pour les clusters provisionnés par Amazon Redshift
<a name="federated-permissions-offboarding-clusters"></a>

Lorsque vous désactivez la propagation AWS IAM Identity Center d'identité pour vos clusters provisionnés Amazon Redshift, l'application Lakehouse Redshift iDC associée sera marquée comme désactivée dans le cluster.

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

Vous pouvez utiliser la `modify-lakehouse-configuration` commande pour désactiver la propagation de l'identité IdC pour vos clusters avec Redshift Federated Permissions. Notez que cela ne supprime pas le fournisseur iDC de votre cluster mais le place en mode désactivé.

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

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

1. Connectez-vous à la console Amazon Redshift AWS Management Console et ouvrez-la à l'adresse. [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)

1. Accédez au cluster provisionné pour lequel vous souhaitez modifier l'enregistrement et sélectionnez-le.

1. Sur la page de détails du cluster, sélectionnez **Modifier l' AWS Glue Data Catalog enregistrement** dans le menu déroulant **Actions**. 

1. **Sélectionnez **Désactiver** dans la AWS IAM Identity Center liste déroulante des autorisations fédérées Amazon Redshift pour dissocier l'application IDC, puis sélectionnez Enregistrer les modifications.**

------

## Désactiver la propagation des AWS IAM Identity Center identités pour les espaces de noms sans serveur Amazon Redshift
<a name="federated-permissions-offboarding-namespace"></a>

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

Vous pouvez utiliser la `modify-lakehouse-configuration` commande pour désactiver la propagation de l'identité iDC pour votre espace de noms avec Redshift Federated Permissions. Notez que cela ne supprime pas le fournisseur iDC de votre cluster mais le place en mode désactivé.

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

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

1. Connectez-vous à la console Amazon Redshift AWS Management Console et ouvrez-la à l'adresse. [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)

1. Accédez à l'espace de noms sans serveur pour lequel vous souhaitez modifier l'enregistrement et sélectionnez-le.

1. Sur la page de détails de l'espace de noms, sélectionnez **Modifier l' AWS Glue Data Catalog enregistrement** dans le menu déroulant **Actions**. 

1. **Sélectionnez **Désactiver** dans la AWS IAM Identity Center liste déroulante des autorisations fédérées Amazon Redshift pour dissocier l'application IDC, puis sélectionnez Enregistrer les modifications.**

------

# Désenregistrez-vous de AWS Glue Data Catalog
<a name="federated-permisisons-offboarding-deregister-catalog"></a>

## Exigences de la politique IAM pour la désinscription des autorisations fédérées Amazon Redshift
<a name="federated-permisisons-offboarding-deregister-catalog-iam-reqs"></a>

 Pour désenregistrer votre cluster ou votre espace de noms sans serveur AWS Glue Data Catalog, les autorisations IAM ci-dessous sont requises. 

Pour les clusters provisionnés par Redshift
+ `redshift:ModifyLakehouseConfiguration`
+ `redshift:DregisterNamespace`

Pour Redshift Serverless
+ `redshift-serverless:UpdateLakehouseConfiguration`
+ `redshift:DregisterNamespace`

Pour AWS Glue Data Catalog l'intégration
+ `glue:DeleteCatalog`
+ `glue:GetCatalog`

Pour l'enregistrement des ressources de Lake Formation
+ `lakeformation:DeregisterResource`

## Désenregistrer Redshift de AWS Glue Data Catalog
<a name="federated-permisisons-offboarding-deregister-catalog-provisioned"></a>

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

Vous pouvez utiliser `modify-lakehouse-configuration` la commande pour désenregistrer votre cluster. Si un fournisseur IdC est associé à votre cluster, cela mettra le fournisseur iDC du cluster en mode désactivé. AWS Glue Data Catalog

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

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

1. Connectez-vous à la console Amazon Redshift AWS Management Console et ouvrez-la à l'adresse. [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)

1. Accédez au cluster provisionné dont vous souhaitez annuler l'enregistrement et sélectionnez-le.

1. **Sur la page de détails du cluster, sélectionnez **Désenregistrer** dans le menu déroulant **Actions**, puis choisissez Désenregistrer. AWS Glue Data Catalog**

------

## Désenregistrer l'espace de noms Redshift Serverless de AWS Glue Data Catalog
<a name="federated-permisisons-offboarding-deregister-catalog-namespace"></a>

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

Vous pouvez utiliser la `update-lakehouse-configuration` commande pour désenregistrer votre espace de noms Redshift Serverless. Si un fournisseur IdC est associé à votre cluster, le fournisseur iDC du cluster passera en mode désactivé. AWS Glue Data Catalog

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

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

1. Connectez-vous à la console Amazon Redshift AWS Management Console et ouvrez-la à l'adresse. [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)

1. Accédez au cluster d'espaces de noms sans serveur que vous souhaitez désenregistrer et sélectionnez-le.

1. **Sur la page de détails du cluster, sélectionnez **Désenregistrer** dans le menu déroulant **Actions**, puis choisissez Désenregistrer. AWS Glue Data Catalog**

------