Amazon Redshift non supporterà più la creazione di nuovi Python UDFs a partire dalla Patch 198. Python esistente UDFs continuerà a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il post del blog
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Configurazione delle autorizzazioni IAM
Amazon Redshift fornisce la policy gestita AmazonRedshiftDataFullAccess. Questa policy fornisce accesso completo alle operazioni API dati di Amazon Redshift. Questa policy consente inoltre l'accesso mirato a specifiche operazioni di Amazon Redshift Gestione dei segreti AWS e API IAM necessarie per autenticare e accedere a un cluster Amazon Redshift o a un gruppo di lavoro Serverless Redshift.
È possibile anche creare una policy IAM personalizzata che consente l'accesso a risorse specifiche. Per creare la policy, utilizzare la policy AmazonRedshiftDataFullAccess come modello di partenza. Dopo aver creato la policy, aggiungerla a ciascun utente che richiede l'accesso all'API dati.
Considera i seguenti requisiti della policy IAM associata all'utente:
-
Se la utilizzi Gestione dei segreti AWS per l'autenticazione, conferma che la policy consenta l'utilizzo dell'
secretsmanager:GetSecretValueazione per recuperare il segreto etichettato con la chiave.RedshiftDataFullAccess -
Se per l'autenticazione in un cluster vengono utilizzate credenziali temporanee, confermare che la policy consente l'uso dell'operazione
redshift:GetClusterCredentialsal nome utente del databaseredshift_data_api_userper qualsiasi database nel cluster. Questo nome utente deve essere già stato creato nel database. -
Se utilizzi credenziali temporanee per eseguire l'autenticazione in un gruppo di lavoro serverless, verifica che la policy consenta l'uso dell'operazione
redshift-serverless:GetCredentialsper richiamare il gruppo di lavoro taggato con la chiaveRedshiftDataFullAccess. L'utente del database viene mappato 1:1 all'identità di origine AWS Identity and Access Management (IAM). Ad esempio, l'utente sample_user è mappato all'utente del databaseIAM:sample_usere il ruolo IAM sample_role è mappato aIAMR:sample_role. Per ulteriori informazioni sulle diverse identità IAM, consulta Identità IAM (utenti, gruppi di utenti e ruoli) nella Guida per l'utente IAM. -
L’azione IAM
redshift-data:GetStatementResultconsente l’accesso a entrambe le operazioni APIGetStatementResulteGetStatementResultV2.
I seguenti collegamenti forniscono ulteriori informazioni sulla Guida per AWS Identity and Access Management l'utente IAM.
-
Per ulteriori informazioni sulla creazione dei ruoli IAM, consultare Creazione di ruoli IAM.
-
Per informazioni sulla creazione di una policy IAM, consultare Creazione di policy IAM.
-
Per informazioni sull'aggiunta di una policy IAM a un utente, consultare Aggiunta e rimozione di autorizzazioni per identità IAM.
Esecuzione di una query su un cluster di proprietà di un altro account
Per eseguire una query su un cluster di proprietà di un altro account, l'account proprietario deve fornire un ruolo IAM che l'API dati può assumere nell'account chiamante. Si supponga, ad esempio, che l'Account B sia proprietario di un cluster a cui l'Account A deve accedere. L'account B può allegare la policy AWS gestita AmazonRedshiftDataFullAccess al ruolo IAM dell'account B. Quindi l'Account B considera attendibile l'Account A utilizzando una policy di attendibilità come la seguente:
Infine, il ruolo IAM dell'Account A deve essere in grado di assumere il ruolo IAM dell'Account B.
Specificare un ruolo IAM che limiti le risorse ai gruppi di lavoro Redshift serverless e ai cluster Amazon Redshift in un Account AWS
Puoi specificare la risorsa ARNs nella tua policy basata sull'identità per controllare l'accesso ai gruppi di lavoro Serverless Redshift e ai cluster Amazon Redshift in un unico. Account AWS Questo esempio mostra come creare una policy che consente l’accesso all’API dati solo per il gruppo di lavoro e i cluster nell’Account AWS specificato.
Configurare una policy IAM che limiti l’accesso alle informazioni sull’istruzione SQL solo al proprietario dell’istruzione
Per impostazione predefinita, l’API dati di Amazon Redshift considera il ruolo IAM utilizzato durante la chiamata di ExecuteStatement e BatchExecuteStatement come proprietario dell’istruzione SQL. Chiunque sia autorizzato ad assumere il ruolo è in grado di accedere alle informazioni sull’istruzione SQL, compresi i relativi risultati. Per limitare l’accesso alle informazioni sull’istruzione SQL a una sessione di ruolo IAM con un particolare proprietario, aggiungi la condizione redshift-data:statement-owner-iam-userid:
"${aws:userid}". La seguente policy IAM limita l’accesso.
Puoi utilizzare la condizione statement-owner-iam-userid con CancelStatement, DescribeStatement, GetStatementResult e ListStatements. Per ulteriori informazioni, consulta Azioni definite dall’API dati Amazon Redshift.
Configurare una policy IAM che limiti l’accesso ai risultati SQL solo al proprietario della sessione
Per impostazione predefinita, l’API dati di Amazon Redshift considera il ruolo IAM utilizzato durante la chiamata di ExecuteStatement e BatchExecuteStatement come proprietario della sessione del database che esegue l’istruzione SQL. Chiunque sia autorizzato ad assumere il ruolo è in grado di inviare domande alla sessione del database. Per limitare l’accesso alla sessione a una sessione come ruolo IAM con un particolare proprietario, aggiungi la condizione redshift-data:session-owner-iam-userid: "${aws:userid}". La seguente policy IAM limita l’accesso.
La seguente policy IAM consente solo al proprietario della sessione di ottenere i risultati dell’istruzione. La condizione session-owner-iam-userid viene utilizzata per limitare l’accesso alle risorse al valore specificato userid.
Puoi utilizzare la condizione session-owner-iam-userid con ExecuteStatement e BatchExecuteStatement. Per ulteriori informazioni, consulta Azioni definite dall’API dati Amazon Redshift.