Amazon Redshift ne prendra plus en charge l'utilisation des UDF Python après le 30 juin 2026. Nous allons commencer à l'appliquer par étapes. Pour plus d'informations sur les détails de la fin de vie de Python et des options de migration, consultez le billet de
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.
Utilisation de l’API de données avec la propagation d’identité de confiance
En tant qu'administrateur de compte Amazon Redshift, vous pouvez intégrer votre cluster ou groupe de travail Amazon Redshift à AWS IAM Identity Center, ce qui permet de gérer l'accès de votre personnel à Amazon Redshift grâce à l'authentification unique. Pour de plus amples informations, veuillez consulter Configuration AWS Intégration d'IAM Identity Center à Amazon Redshift. L'API Amazon Redshift Data permet de propager les identités des utilisateurs d'IAM Identity Center vers un cluster ou un groupe de travail Amazon Redshift et vers d'autres services, tels que, AWS Lake Formation en aval de la chaîne. Vous pouvez configurer et effectuer des requêtes à l'aide de l'API Data en suivant les étapes décrites dans Access AWS services par programmation à l'aide d'une propagation d'identité sécurisée.
Lorsque vous appelez l’API de données à l’aide d’une identité d’utilisateur IAM Identity Center à partir d’une session de rôle IAM à identité améliorée, vous ne pouvez accéder à l’instruction et au résultat de l’instruction qui en résultent qu’en utilisant le même utilisateur IAM Identity Center. Par exemple, la AWS CLI commande suivante appelle l'execute-statementopération pour exécuter une commande SQL avec une propagation d'identité sécurisée.
aws redshift-data execute-statement --sql "select current_user;" --cluster-idmycluster--databasedev
La AWS CLI commande suivante appelle l'batch-execute-statementopération pour exécuter deux commandes SQL.
aws redshift-data batch-execute-statement --sqls "select current_user;" "select current_date;" --cluster-idmycluster--databasedev
Pour accéder aux instructions avec cancel-statement, describe-statement, get-statement-result et get-statement-result-v2 soumises par le biais de sessions de rôle IAM à identité améliorée, l’utilisateur IAM Identity Center et le rôle IAM doivent correspondre aux informations d’identification utilisées pour exécuter execute-statement ou batch-execute-statement. Par exemple, la AWS CLI commande suivante permet d'obtenir les résultats d'une instruction SQL.
aws redshift-data get-statement-result --ida1b2c3d4-5678-90ab-cdef-EXAMPLE11111
Pour répertorier les instructions, un paramètre cluster-identifier ou workgroup-name doit être fourni pour garantir que l’utilisateur de l’IAM Identity Center n’a accès qu’aux applications Amazon Redshift IAM Identity Center auxquelles il est affecté. Par exemple, la AWS CLI commande suivante répertorie les instructions relatives à un cluster spécifique.
aws redshift-data list-statements --cluster-identifiermycluster
Vous pouvez également appeler les opérations de l’API de données qui accèdent aux objets de base de données d’un cluster ou d’un groupe de travail à l’aide d’une propagation d’identité fiable. Cela inclut les opérations list-databases, list-schemas, list-tables et describe-table.
Les appels d’API effectués par l’utilisateur de l’IAM Identity Center peuvent être suivis dans AWS CloudTrail. Une onBehalfOf section de l' CloudTrail événement présente l'identifiant utilisateur IAM Identity Center et l'ARN de la banque d'identités. L'exemple suivant montre un extrait d'un CloudTrail événement montrant la onBehalfOf section avec l'ID utilisateur IAM Identity Center de a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 et l'ARN d'Identity Store de. arn:aws:identitystore::123456789012:identitystore/d-9067bc44d2
{ "eventVersion":"1.10", "userIdentity":{ "type":"AssumedRole", ... }, "onBehalfOf":{ "userId":"a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "identityStoreArn":"arn:aws:identitystore::123456789012:identitystore/d-9067bc44d2" } }, "eventTime":"2025-01-13T04:46:27Z", "eventSource":"redshift-data.amazonaws.com", "eventName":"ExecuteStatement", "awsRegion":"us-east-1" }
Vous pouvez exécuter la commande SQL suivante pour vérifier la requête soumise par l’utilisateur IAM Identity Center. Dans cet exemple, l’e-mail enregistré dans Identity Center est username@example.com.
SELECT h.query_id, h.database_name, h.status, h.query_text, u.usename, h.start_time, h.end_time FROM sys_query_history h LEFT JOIN pg_user u ON h.user_id = u.usesysid where u.usename='awsidc:username@example.com' ORDER BY h.start_time DESC;