Génération d'informations d'identification de base de données pour une identité IAM à l'aide de la CLI ou de l'API Amazon Redshift - Amazon Redshift

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.

Génération d'informations d'identification de base de données pour une identité IAM à l'aide de la CLI ou de l'API Amazon Redshift

Pour générer par programmation des informations d'identification utilisateur temporaires de base de données, Amazon Redshift fournit get-cluster-credentialsla commande pour le AWS CLI() et AWS Command Line Interface GetClusterCredentialsl'opération API. Ou vous pouvez configurer votre client SQL avec les pilotes Amazon Redshift JDBC ou ODBC qui gèrent le processus d'appel de l'opération GetClusterCredentials, la récupération des informations d'identification de l'utilisateur de la base de données et l'établissement d'une connexion entre votre client SQL et votre base de données Amazon Redshift. Pour plus d'informations, consultez Options JDBC et ODBC pour la création d'informations d'identification de l'utilisateur de base de données.

Note

Nous vous recommandons d'utiliser les pilotes JDBC ou ODBC d'Amazon Redshift pour générer les informations d'identification des utilisateurs de la base de données.

Dans cette section, vous trouverez les étapes permettant d'appeler l'GetClusterCredentialsopération ou la get-cluster-credentials commande par programme, de récupérer les informations d'identification de l'utilisateur de la base de données et de se connecter à la base de données.

Pour générer et utiliser des informations d'identification temporaires de base de données
  1. Créez ou modifiez un utilisateur ou un rôle avec les autorisations requises. Pour plus d'informations sur les autorisations IAM, consultez Création d'un rôle IAM avec des autorisations d'appel GetClusterCredentials.

  2. En tant qu'utilisateur ou rôle que vous avez autorisé à l'étape précédente, exécutez la commande get-cluster-credentials CLI ou appelez l'opération GetClusterCredentials API et fournissez les valeurs suivantes :

    • Identifiant du cluster – Le nom du cluster qui contient la base de données.

    • Nom d'utilisateur de la base de données – Le nom d'un utilisateur de base de données, existant ou nouveau.

      • Si l'utilisateur n'existe pas dans la base de données et AutoCreate qu'il est vrai, un nouvel utilisateur est créé avec le MOT DE PASSE désactivé.

      • Si l'utilisateur n'existe pas et qu' AutoCreate il est faux, la demande échoue.

      • Pour cet exemple, le nom de l'utilisateur de la base de données est temp_creds_user.

    • Autocreate – (Facultatif) Créez un utilisateur si le nom de l'utilisateur de la base de données n'existe pas.

    • Nom de base de données – (Facultatif) Le nom de la base de données à laquelle l'utilisateur est autorisé à se connecter. Si aucun nom de base de données n'est spécifié, l'utilisateur peut se connecter à n'importe quelle base de données de cluster.

    • Groupes de bases de données – (Facultatif) Une liste des groupes d'utilisateurs de bases de données existants. Lorsque la connexion réussit, l'utilisateur de base de données est ajouté aux groupes d'utilisateurs spécifiés. Si aucun groupe n'est spécifié, l'utilisateur dispose uniquement des autorisations PUBLIC. Les noms de groupe d'utilisateurs doivent correspondre aux ARN de ressources dbgroup spécifiés dans la politique IAM attachée à l'utilisateur ou au rôle.

    • Durée d'expiration – (Facultatif) La durée, en secondes, après laquelle les informations d'identification temporaires expirent. Vous pouvez spécifier une valeur comprise entre 900 secondes (15 minutes) et 3 600 secondes (60 minutes). Le durée par défaut est 900 secondes.

  3. Amazon Redshift vérifie que l'utilisateur dispose de l'autorisation pour appeler l'opération GetClusterCredentials avec les ressources spécifiées.

  4. Amazon Redshift renvoie un mot de passe temporaire et le nom de l'utilisateur de la base de données.

    L'exemple suivant utilise Amazon Redshift CLI pour générer des informations d'identification temporaires de base de données pour un utilisateur existant nommé temp_creds_user.

    aws redshift get-cluster-credentials --cluster-identifier examplecluster --db-user temp_creds_user --db-name exampledb --duration-seconds 3600

    Le résultat est le suivant.

    {
      "DbUser": "IAM:temp_creds_user", 
      "Expiration": "2016-12-08T21:12:53Z", 
      "DbPassword": "EXAMPLEjArE3hcnQj8zt4XQj9Xtma8oxYEM8OyxpDHwXVPyJYBDm/gqX2Eeaq6P3DgTzgPg=="
    }

    L'exemple suivant utilise Amazon Redshift CLI avec autocreate pour générer des informations d'identification temporaires de base de données pour un nouvel utilisateur et l'ajouter au groupe example_group.

    aws redshift get-cluster-credentials --cluster-identifier examplecluster --db-user temp_creds_user --auto-create --db-name exampledb --db-groups example_group --duration-seconds 3600

    Le résultat est le suivant.

    {
      "DbUser": "IAMA:temp_creds_user:example_group", 
      "Expiration": "2016-12-08T21:12:53Z", 
      "DbPassword": "EXAMPLEjArE3hcnQj8zt4XQj9Xtma8oxYEM8OyxpDHwXVPyJYBDm/gqX2Eeaq6P3DgTzgPg=="
    }
  5. Établissez une connexion avec authentification SSL (Secure Socket Layer) avec le cluster Amazon Redshift et envoyez une demande de connexion avec le nom d'utilisateur et le mot de passe fournis par la réponse GetClusterCredentials. Incluez le préfixe IAM: ou IAMA: avec le nom d'utilisateur, par exemple, IAM:temp_creds_user ou IAMA:temp_creds_user.

    Important

    Configurez votre client SQL pour exiger SSL. Sinon, si votre client SQL tente automatiquement de se connecter avec SSL, il peut utiliser à nouveau une connexion non-SSL en cas d'échec. Dans ce cas, la première tentative de connexion peut échouer parce que les informations d'identification ont expiré ou ne sont pas valides, et une seconde tentative de connexion peut échouer parce que la connexion n'est pas de type SSL. Si cela se produit, le premier message d'erreur peut être manqué. Pour plus d'informations sur la connexion à votre cluster à l'aide de SSL, consultez Configuration des options de sécurité des connexions.

  6. Si la connexion n'utilise pas SSL, la tentative de connexion échoue.

  7. Le cluster envoie une demande authentication au client SQL.

  8. Le client SQL envoie le mot de passe temporaire au cluster.

  9. Si le mot de passe est valide et n'a pas expiré, le cluster établit la connexion.