Utilisation des rôles liés à un service pour Amazon Redshift - Amazon Redshift

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 des rôles liés à un service pour Amazon Redshift

Amazon Redshift utilise les rôles liés à un service AWS Identity and Access Management (IAM). Un rôle lié à un service est un type unique de rôle IAM qui est lié directement à Amazon Redshift. Les rôles liés aux services sont prédéfinis par Amazon Redshift et comprennent toutes les autorisations dont le service a besoin pour appeler les services AWS au nom de votre cluster Amazon Redshift.

Un rôle lié à un service facilite la configuration d’Amazon Redshift, car vous n’avez pas à ajouter manuellement les autorisations nécessaires. Le rôle est lié aux cas d’utilisation d’Amazon Redshift et dispose de permissions prédéfinies. Seul Amazon Redshift peut endosser le rôle, et seul le rôle lié au service peut utiliser la stratégie d’autorisations prédéfinie. Amazon Redshift crée un rôle lié à un service dans votre compte la première fois que vous créez un cluster ou un point de terminaison d’un VPC géré par Redshift. Vous pouvez supprimer le rôle lié au service uniquement après avoir supprimé tous les clusters Amazon Redshift ou points de terminaison d’un VPC géré par Redshift de votre compte. Vos ressources Amazon Redshift sont ainsi protégées, car vous ne pouvez pas involontairement supprimer les autorisations nécessaires pour y accéder.

Amazon Redshift prend en charge l’utilisation de rôles liés à un service dans toutes les régions où le service est disponible. Pour plus d’informations, consultez Régions et points de terminaison AWS.

Pour plus d’informations sur les autres services qui prennent en charge les rôles liés à un service, Services AWS fonctionnant avec IAM et recherchez les services avec un Oui dans la colonne Rôle lié à un service. Choisissez un Yes (oui) ayant un lien permettant de consulter les détails du rôle pour ce service.

Autorisations du rôle lié à un service pour Amazon Redshift

Amazon Redshift utilise le rôle lié au service nommé AWSServiceRoleForRedshift, ce qui permet à Amazon Redshift d’appeler des services AWS en votre nom. Ce rôle lié à un service est attaché à la politique gérée suivante : AmazonRedshiftServiceLinkedRolePolicy. Pour obtenir des mises à jour de cette stratégie, consultez Stratégies (prédéfinies) gérées par AWS pour Amazon Redshift.

Le rôle lié au service AWSServiceRoleForRedshift ne fait confiance qu’à redshift.amazonaws.com pour assumer ce rôle.

La stratégie d’autorisation des rôles liés au service AWSServiceRoleForRedshift permet à Amazon Redshift d’effectuer ce qui suit sur toutes les ressources liées :

  • ec2:DescribeVpcs

  • ec2:DescribeSubnets

  • ec2:DescribeNetworkInterfaces

  • ec2:DescribeAddress

  • ec2:AssociateAddress

  • ec2:DisassociateAddress

  • ec2:CreateNetworkInterface

  • ec2:DeleteNetworkInterface

  • ec2:ModifyNetworkInterfaceAttribute

  • ec2:CreateVpcEndpoint

  • ec2:DeleteVpcEndpoints

  • ec2:DescribeVpcEndpoints

  • ec2:ModifyVpcEndpoint

  • ec2:DescribeVpcAttribute

  • ec2:DescribeSecurityGroups

  • ec2:DescribeInternetGateways

  • ec2:DescribeSecurityGroupRules

  • ec2:DescribeAvailabilityZones

  • ec2:DescribeNetworkAcls

  • ec2:DescribeRouteTables

  • ec2:AssignIpv6Addresses

  • ec2:UnassignIpv6Addresses

Autorisations pour les ressources réseau

Les autorisations suivantes permettent d’effectuer des actions de création et de gestion de règles de groupe de sécurité dans Amazon EC2. Ces groupes et règles de sécurité sont spécifiquement associés à la balise de ressource Amazon Redshift aws:RequestTag/Redshift. Cela permet de limiter l’étendue des autorisations à des ressources Amazon Redshift spécifiques.

  • ec2:CreateSecurityGroup

  • ec2:AuthorizeSecurityGroupEgress

  • ec2:AuthorizeSecurityGroupIngress

  • ec2:RevokeSecurityGroupEgress

  • ec2:RevokeSecurityGroupIngress

  • ec2:ModifySecurityGroupRules

  • ec2:DeleteSecurityGroup

Autorisations pour les quotas de service

Les autorisations suivantes permettent à l’appelant d’obtenir des quotas de service.

servicequotas:GetServiceQuota

Le fragment JSON suivant montre l’action et l’étendue des ressources pour les quotas de service.

{ "Sid": "ServiceQuotasToCheckCustomerLimits", "Effect": "Allow", "Action": [ "servicequotas:GetServiceQuota" ], "Resource": [ "arn:aws:servicequotas:*:*:ec2/L-0263D0A3", "arn:aws:servicequotas:*:*:vpc/L-29B6F2EB" ] }

Les codes de quota sont les suivants :

  • L-0263D0A3 : le code de quota pour les adresses IP Elastic EC2-VPC.

  • L-29B6F2EB : le code de quota pour les points de terminaison d’un VPC d’interface par VPC.

Pour plus d’informations, consultez Quotas de service AWS.

Actions pour la journalisation des audits

Les actions répertoriées avec le préfixe logs concernent la journalisation des audits et les fonctions associées. Plus précisément, la création et la gestion de groupes de journaux et de flux de journaux.

  • logs:CreateLogGroup

  • logs:PutRetentionPolicy

  • logs:CreateLogStream

  • logs:PutLogEvents

  • logs:DescribeLogStreams

  • logs:GetLogEvents

Le fichier JSON suivant affiche la portée des actions et des ressources, à Amazon Redshift, pour la journalisation des audits.

[ { "Sid": "EnableCreationAndManagementOfRedshiftCloudwatchLogGroups", "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:PutRetentionPolicy" ], "Resource": [ "arn:aws:logs:*:*:log-group:/aws/redshift/*" ] }, { "Sid": "EnableCreationAndManagementOfRedshiftCloudwatchLogStreams", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams", "logs:GetLogEvents" ], "Resource": [ "arn:aws:logs:*:*:log-group:/aws/redshift/*:log-stream:*" ] } ]

Pour plus d’informations sur les rôles liés à un service et leur objectif dans AWS, consultez Utilisation des rôles liés à un service. Pour plus d’informations sur des actions spécifiques et d’autres ressources IAM pour Amazon Redshift, consultez Actions, ressources et clés de condition pour Amazon Redshift.

Actions de gestion des informations d’identification d’administrateur avec AWS Secrets Manager

Les actions répertoriées avec le préfixe secretsmanager concernent l’utilisation d’Amazon Redshift pour gérer vos informations d’identification d’administrateur. Ces actions permettent à Amazon Redshift d’utiliser AWS Secrets Manager pour créer et gérer vos secrets d’informations d’identification d’administrateur.

Le code JSON suivant montre les actions et l’étendue des ressources, à Amazon Redshift, pour la gestion des informations d’identification d’administrateur avec AWS Secrets Manager.

[ { "Effect": "Allow", "Action": [ "secretsmanager:DescribeSecret", "secretsmanager:DeleteSecret", "secretsmanager:PutSecretValue", "secretsmanager:UpdateSecret", "secretsmanager:UpdateSecretVersionStage", "secretsmanager:RotateSecret" ], "Resource": [ "arn:aws:secretsmanager:*:*:secret:redshift!*" ], "Condition": { "StringEquals": { "secretsmanager:ResourceTag/aws:secretsmanager:owningService": "redshift" } } }, { "Effect": "Allow", "Action": [ "secretsmanager:GetRandomPassword" ], "Resource": "*" } ]

Actions pour enregistrer des clusters et des espaces de noms sans serveur dans le AWS Glue Data Catalog

Les actions répertoriées avec le préfixe glue concernent l’accès aux catalogues dans le AWS Glue Data Catalog créés à partir de l’enregistrement de clusters alloués ou d’espaces de noms sans serveur. Pour plus d’informations, consultez Compatibilité d’Apache Iceberg pour Amazon Redshift dans le Guide du développeur de base de données Amazon Redshift.

Le fichier JSON suivant affiche la portée des actions et des ressources, à Amazon Redshift, pour accéder aux catalogues dans le AWS Glue Data Catalog :

[ { "Sid": "DiscoverRedshiftCatalogs", "Effect": "Allow", "Action": [ "glue:GetCatalogs", "glue:GetCatalog" ], "Resource": [ "arn:aws:glue:*:*:catalog", "arn:aws:glue:*:*:catalog/*" ], "Condition": { "Bool": { "glue:EnabledForRedshiftAutoDiscovery": "true" }, "StringEquals": { "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }, { "Sid": "LakeFormationGetMetadataAccessForFederatedCatalogs", "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess" ], "Resource": [ "*" ], "Condition": { "Bool": { "lakeformation:EnabledOnlyForMetaDataAccess":"true" }, "StringEquals": { "aws:ResourceAccount": "${aws:PrincipalAccount}" }, "ForAnyValue:StringEquals": { "aws:CalledVia": "glue.amazonaws.com" } } } } ]

Les autorisations glue:GetCatalog et glue:GetCatalogs sont soumises à une condition glue:EnabledForRedshiftAutoDiscovery:true, ce qui signifie qu’Amazon Redshift accorde l’accès à IAM pour la découverte automatique des catalogues. Pour vous désinscrire, ajoutez une politique de ressources AWS Glue au niveau du compte afin de refuser de manière sélective l’accès aux catalogues aux rôles liés au service. Étant donné que le rôle lié au service comporte déjà une action d’autorisation explicite dans la politique, la politique de désinscription doit explicitement refuser cette action. Prenez l’exemple suivant, où une politique supplémentaire refuse la découverte automatique pour Amazon Redshift :

JSON
{ "Version":"2012-10-17", "Statement" : { "Effect": "Deny", "Action": [ "glue:GetCatalog", "glue:GetCatalogs" ], "Principal" : { "AWS" : "arn:aws:iam::111122223333:role/aws-service-role/redshift.amazonaws.com/AWSServiceRoleForRedshift" }, "Resource": [ "arn:aws:glue:*:*:catalog/<s3_table_catalog_name>", "arn:aws:glue:*:*:catalog/<s3_table_catalog_name>/*" ] } }

Permettre à une entité IAM de créer des rôles liés au service AWSServiceRoleForRedshift

{ "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole" ], "Resource": "arn:aws:iam::<AWS-account-ID>:role/aws-service-role/redshift.amazonaws.com/AWSServiceRoleForRedshift", "Condition": {"StringLike": {"iam:AWSServiceName": "redshift.amazonaws.com"}} }

Permettre à une entité IAM de supprimer les rôles liés au service AWSServiceRoleForRedshift

Ajoutez la déclaration de stratégie suivante aux autorisations de cette entité IAM :

{ "Effect": "Allow", "Action": [ "iam:DeleteServiceLinkedRole", "iam:GetServiceLinkedRoleDeletionStatus" ], "Resource": "arn:aws:iam::<AWS-account-ID>:role/aws-service-role/redshift.amazonaws.com/AWSServiceRoleForRedshift", "Condition": {"StringLike": {"iam:AWSServiceName": "redshift.amazonaws.com"}} }

Vous pouvez également utiliser une stratégie gérée par AWS pour fournir un accès complet à Amazon Redshift.

Création d’un rôle lié à un service pour Amazon Redshift

Vous n’avez pas besoin de créer manuellement un rôle lié au service AWSServiceRoleForRedshift. Amazon Redshift crée automatiquement le rôle lié au service. Si le rôle lié au service AWSServiceRoleForRedshift a été supprimé de votre compte, Amazon Redshift crée le rôle lorsque vous lancez un nouveau cluster Amazon Redshift.

Important

Si vous utilisiez le service Amazon Redshift avant le 18 septembre 2017, date à laquelle il a commencé à prendre en charge les rôles liés au service, alors Amazon Redshift a créé le rôle AWSServiceRoleForRedshift dans votre compte. Pour en savoir plus, consultez Un nouveau rôle est apparu dans mon compte IAM.

Modification d’un rôle lié à un service pour Amazon Redshift

Amazon Redshift ne vous permet pas de modifier le rôle lié au service AWSServiceRoleForRedshift. Une fois que vous avez créé un rôle lié à un service, vous ne pouvez pas changer le nom du rôle, car plusieurs entités peuvent faire référence au rôle. Cependant, vous pouvez modifier la description du rôle à l’aide de la console IAM, de l’AWS Command Line Interface (AWS CLI) ou de l’API IAM. Pour plus d’informations, consultez Modification d’un rôle dans le Guide de l’utilisateur IAM.

Suppression d’un rôle lié à un service pour Amazon Redshift

Si vous n’avez plus besoin d’utiliser une fonction ou un service qui nécessite un rôle lié à un service, nous vous recommandons de supprimer ce rôle. De cette façon, vous n’avez aucune entité inutilisée qui n’est pas surveillée ou gérée activement.

Avant de pouvoir supprimer un rôle lié à un service pour un compte, vous devez arrêter et supprimer tous les clusters du compte. Pour plus d'informations, consultez Arrêt et suppression d’un cluster.

Vous pouvez utiliser la console IAM, l’AWS CLI ou l’API IAM pour supprimer un rôle lié à un service. Pour plus d’informations, consultez Suppression d’un rôle lié à un service dans le Guide de l’utilisateur IAM.