Configuration des IAM autorisations - 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.

Configuration des IAM autorisations

Amazon Redshift fournit la politique gérée par AmazonRedshiftDataFullAccess. Cette politique fournit un accès complet aux opérations d'Amazon Redshift DataAPI. Cette politique permet également un accès limité à un Amazon Redshift spécifique AWS Secrets Manager, IAM API ainsi que les opérations nécessaires pour authentifier et accéder à un cluster Amazon Redshift ou à un groupe de travail Redshift Serverless.

Vous pouvez également créer votre propre IAM politique qui autorise l'accès à des ressources spécifiques. Pour créer votre politique, utilisez la politique AmazonRedshiftDataFullAccess comme modèle de départ. Après avoir créé votre politique, ajoutez-la à chaque utilisateur qui a besoin d'accéder aux donnéesAPI.

Tenez compte des exigences suivantes de la IAM politique associée à l'utilisateur :

  • Si vous utilisez cette AWS Secrets Manager option pour vous authentifier, vérifiez que la politique autorise l'utilisation de l'secretsmanager:GetSecretValueaction pour récupérer le secret associé à la cléRedshiftDataFullAccess.

  • Si vous utilisez des informations d’identification temporaires pour vous authentifier auprès d’un cluster, confirmez que la politique autorise l’utilisation de l’action redshift:GetClusterCredentials pour le nom d’utilisateur de la base de données redshift_data_api_user pour toute base de données du cluster. Ce nom d’utilisateur doit déjà avoir été créé dans votre base de données.

  • Si vous utilisez des informations d’identification temporaires pour vous authentifier auprès d’un groupe de travail sans serveur, confirmez que la politique autorise l’utilisation de l’action redshift-serverless:GetCredentials pour récupérer le groupe de travail identifié avec la clé RedshiftDataFullAccess. L'utilisateur de la base de données est mappé 1:1 à l'identité source AWS Identity and Access Management (IAM). Par exemple, l'utilisateur sample_user est mappé à l'utilisateur de base de données et le IAM rôle sample_role est mappé à celui-ci. IAM:sample_user IAMR:sample_role Pour plus d'informations sur les IAM identités, consultez la section IAMIdentités (utilisateurs, groupes d'utilisateurs et rôles) dans le guide de IAM l'utilisateur.

Les liens suivants fournissent de plus amples informations sur AWS Identity and Access Management le Guide de IAM l'utilisateur.

Exécuter une requête sur un cluster appartenant à un autre compte

Pour exécuter une requête sur un cluster appartenant à un autre compte, le compte propriétaire doit fournir un IAM rôle que les données API peuvent assumer dans le compte appelant. Par exemple, supposons que le compte B possède un cluster auquel le compte A doit accéder. Le compte B peut associer la politique AWS gérée AmazonRedshiftDataFullAccess au IAM rôle du compte B. Ensuite, le compte B approuve le compte A à l’aide d’une politique de confiance telle que la suivante :

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::accountID-of-account-A:role/someRoleA" ] }, "Action": "sts:AssumeRole" } ] }

Enfin, le IAM rôle de compte A doit pouvoir assumer le IAM rôle de compte B.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::accountID-of-account-B:role/someRoleB" } }

Spécifiez un IAM rôle qui limite les ressources aux groupes de travail Redshift Serverless et aux clusters Amazon Redshift dans un Compte AWS

Vous pouvez spécifier une ressource ARNs dans votre politique basée sur l'identité pour contrôler l'accès aux groupes de travail Redshift Serverless et aux clusters Amazon Redshift dans un. Compte AWS Cet exemple montre comment vous pouvez créer une politique qui autorise l'accès API aux données uniquement au groupe de travail et aux clusters spécifiés Compte AWS.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "redshift-data:CancelStatement", "redshift-data:DescribeStatement", "redshift-data:GetStatementResult", "redshift-data:ListStatements" ], "Resource": "*" }, { "Effect": "Allow", "Action": "redshift-data:*", "Resource": [ "arn:arn-partition:redshift-serverless:*:Compte AWS:workgroup/*", "arn:arn-partition:redshift:*:Compte AWS:cluster:*" ] } ] }

Configurer une IAM politique qui restreint l'accès aux informations du SQL relevé au seul propriétaire du relevé

Par défaut, Amazon Redshift Data API considère le IAM rôle utilisé lors de l'appel ExecuteStatemet et BatchExecuteStatement comme le propriétaire de la SQL déclaration. Toute personne autorisée à assumer ce rôle peut accéder aux informations relatives à la SQL déclaration, y compris à ses résultats. Pour restreindre l'accès aux informations des SQL relevés à une session de IAM rôle avec un propriétaire en particulier, ajoutez une conditionredshift-data:statement-owner-iam-userid: "${aws:userid}". La IAM politique suivante restreint l'accès.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "redshift-data:CancelStatement", "redshift-data:DescribeStatement", "redshift-data:GetStatementResult", "redshift-data:ListStatements" ], "Resource": "*", "Condition": { "StringEquals": { "redshift-data:statement-owner-iam-userid": "${aws:userid}" } } } ] }

Vous pouvez utiliser la condition statement-owner-iam-userid avec CancelStatementDescribeStatement,GetStatementResult, etListStatements. Pour plus d'informations, consultez la section Actions définies par Amazon Redshift Data. API

Configurer une IAM politique qui restreint l'accès aux SQL résultats uniquement au propriétaire de la session

Par défaut, Amazon Redshift Data API considère le IAM rôle utilisé lors de l'appel ExecuteStatement et BatchExecuteStatement comme le propriétaire de la session de base de données qui exécute l'SQLinstruction. Toute personne autorisée à assumer ce rôle peut soumettre des requêtes à la session de base de données. Pour restreindre l'accès à une session de IAM rôle avec un propriétaire particulier, ajoutez une condition redshift-data:session-owner-iam-userid: "${aws:userid}". La IAM politique suivante restreint l'accès.

La IAM politique suivante permet uniquement au propriétaire de la session d'obtenir les résultats des instructions. La condition session-owner-iam-userid est utilisée pour limiter l'accès aux ressources aux valeurs spécifiéesuserid.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "redshift-data:ExecuteStatement", "redshift-data:BatchExecuteStatement" ], "Resource": "*", "Condition": { "StringEquals": { "redshift-data:session-owner-iam-userid": "${aws:userid}" } } } ] }

Vous pouvez utiliser la condition session-owner-iam-userid avec ExecuteStatement etBatchExecuteStatement. Pour plus d'informations, consultez la section Actions définies par Amazon Redshift Data. API