Utilizzo di ruoli collegati ai servizi per Amazon Redshift - Amazon Redshift

Amazon Redshift non supporterà più la creazione di nuove UDF Python a partire dal 1º novembre 2025. Se desideri utilizzare le UDF Python, creale prima di tale data. Le UDF Python esistenti continueranno a funzionare normalmente. Per ulteriori informazioni, consulta il post del blog.

Utilizzo di ruoli collegati ai servizi per Amazon Redshift

Amazon Redshift utilizza ruoli collegati ai servizi di AWS Identity and Access Management (IAM). Un ruolo collegato ai servizi è un tipo di ruolo IAM univoco collegato direttamente ad Amazon Redshift. I ruoli collegati ai servizi sono definiti automaticamente da Amazon Redshift e includono tutte le autorizzazioni richieste dal servizio per eseguire chiamate ai servizi AWS per conto del cluster Amazon Redshift.

Un ruolo legato a un servizio rende la configurazione di Amazon Redshift più facile perché non è necessario aggiungere manualmente i permessi necessari. Il ruolo è collegato a casi d'uso di Amazon Redshift e ha autorizzazioni predefinite. Solo Amazon Redshift può assumere il ruolo e solo questo ruolo collegato ai servizi può utilizzare la policy di autorizzazione predefinita. Amazon Redshift crea un ruolo collegato ai servizi nell’account la prima volta che crei un cluster o un endpoint VPC gestito da Redshift. Puoi eliminare il ruolo collegato al servizio solo dopo avere eliminato tutti i cluster Amazon Redshift o gli endpoint VPC gestiti da Redshift nell’account. Così facendo, le risorse Amazon Redshift restano protette, perché non puoi rimuovere inavvertitamente le autorizzazioni necessarie per l'accesso alle risorse.

Amazon Redshift supporta l'utilizzo di ruoli collegati ai servizi in tutte le regioni in cui il servizio è disponibile. Per ulteriori informazioni, consultare Regioni ed endpoint di AWS.

Per informazioni sugli altri servizi che supportano i ruoli collegati ai servizi, consulta Servizi AWS che funzionano con IAM e cerca i servizi che riportano nella colonna Ruolo associato ai servizi. Scegli in corrispondenza di un link per visualizzare la documentazione relativa al ruolo collegato ai servizi per tale servizio.

Autorizzazioni del ruolo collegato ai servizi per Amazon Redshift

Amazon Redshift usa il ruolo collegato ai servizi denominato AWSServiceRoleForRedshift che consente ad Amazon Redshift di chiamare i servizi AWSper tuo conto. Questo ruolo collegato ai servizi è collegato alle seguenti policy gestite: AmazonRedshiftServiceLinkedRolePolicy. Per gli aggiornamenti di questa policy, consultare Policy gestite da AWS(predefinite) per Amazon Redshift.

Il ruolo collegato al servizio AWSServiceRoleForRedshift considera attendibile il servizio redshift.amazonaws.com per assumere il ruolo.

La policy delle autorizzazioni del ruolo collegato ai servizi AWSServiceRoleForRedshift permette ad Amazon Redshift di completare le operazioni seguenti su tutte le risorse correlate:

  • 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

Autorizzazioni per risorse di rete

Le seguenti autorizzazioni consentono operazioni su Amazon EC2 per la creazione e la gestione di regole dei gruppi di sicurezza. Queste regole e gruppi di sicurezza sono specificamente associati al tag delle risorse aws:RequestTag/Redshift di Amazon Redshift. Ciò limita l'ambito delle autorizzazioni a risorse specifiche di Amazon Redshift.

  • ec2:CreateSecurityGroup

  • ec2:AuthorizeSecurityGroupEgress

  • ec2:AuthorizeSecurityGroupIngress

  • ec2:RevokeSecurityGroupEgress

  • ec2:RevokeSecurityGroupIngress

  • ec2:ModifySecurityGroupRules

  • ec2:DeleteSecurityGroup

Autorizzazioni per le quote di servizio

Le seguenti autorizzazioni consentono al chiamante di ottenere le quote di servizio.

servicequotas:GetServiceQuota

Il seguente frammento JSON mostra l’ambito delle azioni e delle risorse per le quote di servizio.

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

I codici di quota sono i seguenti:

  • L-0263D0A3: il codice di quota per gli IP elastici EC2-VPC.

  • L-29B6F2EB: il codice di quota per gli endpoint VPC dell’interfaccia per VPC.

Per ulteriori informazioni, consulta Service Quotas di AWS.

Operazioni per il logging di verifica

Le azioni elencate con il prefisso logs riguardano il logging di verifica e le funzionalità correlate. Nello specifico, creazione e gestione di gruppi di log e flussi di log.

  • logs:CreateLogGroup

  • logs:PutRetentionPolicy

  • logs:CreateLogStream

  • logs:PutLogEvents

  • logs:DescribeLogStreams

  • logs:GetLogEvents

Il seguente JSON mostra le operazioni e l'ambito delle risorse, ad Amazon Redshift, per il logging di verifica.

[ { "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:*" ] } ]

Per ulteriori informazioni sui ruoli collegati ai servizi e i loro scopi in AWS, consultare Utilizzo di ruoli collegati ai servizi. Per ulteriori informazioni su operazioni specifiche e altre risorse IAM per Amazon Redshift, consultare Operazioni, risorse e chiavi di condizione per Amazon Redshift.

Azioni per la gestione delle credenziali di amministratore con Gestione dei segreti AWS

Le azioni elencate con il prefisso secretsmanager riguardano l'utilizzo di Amazon Redshift per gestire le credenziali di amministratore. Queste azioni consentono ad Amazon Redshift di usare Gestione dei segreti AWS per creare e gestire i segreti delle credenziali di amministratore.

Il seguente JSON mostra le azioni e l'ambito delle risorse ad Amazon Redshift per gestire le credenziali di amministratore con Gestione dei segreti AWS.

[ { "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": "*" } ]

Azioni per la registrazione di cluster e namespace serverless nel AWS Glue Data Catalog

Le azioni elencate con il prefisso glue riguardano l’accesso ai cataloghi creati nel AWS Glue Data Catalog dalla registrazione di cluster con provisioning o namespace serverless. Per ulteriori informazioni, consulta Compatibilità con Apache Iceberg per Amazon Redshift nella Guida per sviluppatori di database di Amazon Redshift.

Il seguente JSON mostra le azioni e l’ambito delle risorse, in Amazon Redshift, per l’accesso ai cataloghi nel 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" } } } } ]

Le autorizzazioni glue:GetCatalog e glue:GetCatalogs hanno la condizione glue:EnabledForRedshiftAutoDiscovery:true, il che significa che Amazon Redshift concede l’accesso a IAM per l’individuazione automatica dei cataloghi. Per non aderire, aggiungi una policy delle risorse a livello di account AWS Glue per negare selettivamente l’accesso ai cataloghi ai ruoli collegati al servizio. Poiché il ruolo collegato al servizio include già un’azione di autorizzazione esplicita nella policy, la policy di non adesione deve negare esplicitamente tale azione. Considera l’esempio seguente, nel quale una policy aggiuntiva nega l’individuazione automatica per 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>/*" ] } }

Consentire a un'entità IAM di creare ruoli collegati ai servizi 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"}} }

Consentire a un'entità IAM di eliminare il ruolo collegato al servizio AWSServiceRoleForRedshift

Aggiungi la seguente istruzione di policy alle autorizzazioni per l'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"}} }

In alternativa, è possibile utilizzare una policy gestita da AWS per fornire l'accesso completo a Amazon Redshift.

Creazione di un ruolo collegato ai servizi per Amazon Redshift

Non è necessario creare manualmente il ruolo collegato ai servizi AWSServiceRoleForRedshift. Amazon Redshift crea il ruolo collegato al servizio per te. Se il ruolo collegato al servizio AWSServiceRoleForRedshift è stato eliminato dal tuo account, Amazon Redshift lo crea quando viene avviato un nuovo cluster Amazon Redshift.

Importante

Se usavi il servizio Amazon Redshift già prima del 18 settembre 2017, data da cui è iniziato il supporto dei ruoli collegati ai servizi, Amazon Redshift ha creato il ruolo AWSServiceRoleForRedshift nel tuo account. Per ulteriori informazioni, consultare Un nuovo ruolo è apparso nel mio account IAM.

Modifica di un ruolo collegato ai servizi per Amazon Redshift

Amazon Redshift non consente di modificare il ruolo collegato ai servizi AWSServiceRoleForRedshift. Dopo aver creato un ruolo collegato al servizio, non è possibile modificarne il nome, perché potrebbero farvi riferimento diverse entità. Tuttavia, puoi modificare la descrizione del ruolo usando la console IAM, AWS Command Line Interface (AWS CLI) o l'API IAM. Per ulteriori informazioni, consultare Modifica di un ruolo nella Guida per l'utente di IAM.

Eliminazione di un ruolo collegato ai servizi per Amazon Redshift

Se non è più necessario utilizzare una caratteristica o un servizio che richiede un ruolo collegato ai servizi, ti consigliamo di eliminare quel ruolo. In questo modo non sarà più presente un'entità non utilizzata che non viene monitorata e gestita attivamente.

Prima di poter eliminare un ruolo legato a un servizio per un account, è necessario arrestare ed eliminare qualsiasi cluster nell'account. Per ulteriori informazioni, consulta Arresto ed eliminazione di un cluster.

Per eliminare un ruolo collegato al servizio, è possibile utilizzare la console IAM, la AWS CLI o l’API IAM. Per ulteriori informazioni, consultare Eliminazione del ruolo collegato ai servizi nella Guida per l'utente di IAM.