Amazon Redshift ne prendra plus en charge la création de nouvelles fonctions Python définies par l’utilisateur à compter du 1er novembre 2025. Si vous souhaitez utiliser des fonctions Python définies par l’utilisateur, créez-les avant cette date. Les fonctions Python définies par l’utilisateur existantes continueront de fonctionner normalement. Pour plus d’informations, consultez le billet de blog
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 plus d’informations, consultez Configuration de l’intégration d’AWS IAM Identity Center à Amazon Redshift. L’API de données Amazon Redshift permet de propager les identités des utilisateurs d’IAM Identity Center à un cluster ou à un groupe de travail Amazon Redshift, ainsi qu’à d’autres services, tels que AWS Lake Formation, vers le bas de la chaîne. Vous pouvez configurer et effectuer des requêtes à l’aide de l’API de données en suivant les étapes décrites dans Accès aux services AWS par programmation à l’aide d’une propagation d’identité fiable
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 commande AWS CLI suivante appelle l’opération execute-statement pour exécuter une commande SQL avec une propagation d’identité fiable.
aws redshift-data execute-statement --sql "select current_user;" --cluster-idmycluster--databasedev
La commande AWS CLI suivante appelle l’opération batch-execute-statement 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-statment ou batch-execute-statement. Par exemple, la commande AWS CLI 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 commande AWS CLI suivante répertorie les instructions pour 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 section onBehalfOf de l’événement CloudTrail indique l’identifiant de l’utilisateur IAM Identity Center et l’ARN du magasin d’identités. L’exemple suivant montre un extrait d’un événement CloudTrail indiquant la section onBehalfOf contenant l’identifiant de l’utilisateur IAM Identity Center de a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 et l’ARN du magasin d’identités 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;