Amazon Redshift non supporterà più l'uso delle UDF di Python dopo il 30 giugno 2026. Inizieremo ad applicarlo gradualmente. Per ulteriori informazioni sulla fine del ciclo di vita di Python e sulle opzioni di migrazione, consulta il post sul 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à.
Autorizzazioni per accedere ad altri AWS Resources
Per spostare dati tra il cluster e un'altra AWS risorsa, come Amazon S3, Amazon DynamoDB, Amazon EMR o Amazon EC2, il cluster deve disporre dell'autorizzazione per accedere alla risorsa ed eseguire le azioni necessarie. Ad esempio, per caricare i dati da Amazon S3, COPY deve avere accesso LIST al bucket e accesso GET per gli oggetti del bucket. Per maggiori informazioni sulle autorizzazioni minime, consultare Autorizzazioni IAM per COPY, UNLOAD e CREATE LIBRARY.
Per ottenere l'autorizzazione ad accedere alla risorsa, il cluster deve essere autenticato utilizzando il seguente metodo di autenticazione:
-
Role-based controllo degli accessi— Per il controllo degli accessi basato sui ruoli, si specifica un ruolo AWS Identity and Access Management (IAM) utilizzato dal cluster per l'autenticazione e l'autorizzazione. Per proteggere AWS le credenziali e i dati sensibili, consigliamo vivamente di utilizzare l'autenticazione basata sui ruoli.
Role-based controllo degli accessi
Con il controllo degli accessi basato su ruoli, il cluster assume in modo temporaneo e automatico un ruolo (IAM). Quindi, in base alle autorizzazioni concesse al ruolo, il cluster può accedere alle risorse AWS necessarie.
La creazione di un ruolo IAM è simile all'assegnazione delle autorizzazioni a un utente, in quanto è un'identità AWS con policy di autorizzazioni che determinano ciò che l'identità può e non può fare in AWS. Tuttavia, invece di essere associato univocamente a un utente, un ruolo può essere assunto da qualsiasi entità che ne abbia bisogno. Inoltre, a un ruolo non sono associate credenziali (password o chiavi di accesso). Al contrario, se un ruolo è associato a un cluster, le chiavi di accesso vengono create dinamicamente e fornite al cluster.
Consigliamo di utilizzare il controllo degli accessi basato sui ruoli perché fornisce un controllo più sicuro e dettagliato dell'accesso alle AWS risorse e ai dati sensibili degli utenti, oltre a salvaguardare le credenziali. AWS
Role-based l'autenticazione offre i seguenti vantaggi:
-
È possibile utilizzare strumenti IAM AWS standard per definire un ruolo IAM e associarlo a più cluster. Quando modifichi la policy di accesso a un ruolo, le modifiche vengono applicate automaticamente a tutti i cluster che utilizzano il ruolo.
-
Puoi definire policy IAM granulari che concedono autorizzazioni a cluster e utenti del database specifici per accedere a risorse e azioni specifiche. AWS
-
Il cluster ottiene le credenziali di sessione temporanee al momento dell'esecuzione e le aggiorna come necessario fino al completamento dell'operazione.
-
L'ID chiave di accesso e l'ID chiave di accesso segreta non vengono memorizzati o trasmessi nel codice SQL.
Per utilizzare il controllo degli accessi basato su ruoli, è necessario creare prima un ruolo IAM utilizzando il tipo di ruolo di servizio Amazon Redshift, quindi collegare il ruolo al cluster. Il ruolo deve avere, come minimo, le autorizzazioni elencate in Autorizzazioni IAM per COPY, UNLOAD e CREATE LIBRARY. Per i passaggi per creare un ruolo IAM e collegarlo al cluster, consulta la sezione Autorizzazione di Amazon Redshift ad accedere ad AWS altri servizi per conto dell'utente nella Amazon Redshift Management Guide.
È possibile aggiungere un ruolo a un cluster o visualizzare i ruoli associati a un cluster utilizzando la Console di gestione, la CLI o l'API di Amazon Redshift. Per ulteriori informazioni, consulta Associazione di un ruolo IAM a un cluster nella Guida alla gestione di Amazon Redshift.
Quando crei un ruolo IAM, IAM restituisce un Amazon Resource Name (ARN) per il ruolo. Per specificare un ruolo IAM, fornire l'ARN del ruolo con il parametro Utilizzo del parametro IAM_ROLE.
Ad esempio, supponiamo che al cluster sia collegato il seguente ruolo.
"IamRoleArn": "arn:aws:iam::0123456789012:role/MyRedshiftRole"
Il seguente esempio di comando COPY utilizza il parametro IAM_ROLE con l'ARN dell'esempio precedente per l'autenticazione e l'accesso a Amazon S3.
copy customer from 's3://amzn-s3-demo-bucket/mydata' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';
Inoltre, un utente con privilegi avanzati può concedere il privilegio ASSUMEROLE a utenti e gruppi di database per fornire l'accesso a un ruolo per le operazioni COPY. Per informazioni, consulta GRANT.
Credenziali di sicurezza temporanee
Quando utilizzi il controllo degli accessi basato sui ruoli, Amazon Redshift utilizza automaticamente credenziali di sicurezza temporanee per tuo conto. Le credenziali di sicurezza temporanee offrono maggiore sicurezza perché hanno una durata breve e non possono essere riutilizzate dopo la loro scadenza.
Quando autorizzi l'utilizzo di un ruolo IAM, il cluster assume temporaneamente il ruolo e ottiene le credenziali di sessione temporanee in fase di esecuzione. Il cluster aggiorna queste credenziali secondo necessità fino al completamento dell'operazione, quindi non è necessario fornirle o gestirle personalmente. Per ulteriori informazioni, consulta Role-based controllo degli accessi.
Autorizzazioni IAM per COPY, UNLOAD e CREATE LIBRARY
Il ruolo IAM a cui fa riferimento il parametro IAM_ROLE deve disporre almeno delle seguenti autorizzazioni:
-
Per COPY da Amazon S3, l'autorizzazione per il LIST del bucket Amazon S3 e il GET degli oggetti Amazon S3 che vengono caricati e il file manifest, se viene utilizzato.
-
Per la COPIA da Amazon S3, Amazon EMR e host remoti (SSH) con JSON-formatted dati, autorizzazione a ELENCARE e OTTENERE il file JSONPaths su Amazon S3, se ne viene utilizzato uno.
-
Per COPY da DynamoDB, l'autorizzazione a SCAN e DESCRIBE sulla tabella DynamoDB che viene caricata.
-
Per COPY da un cluster Amazon EMR, l'autorizzazione per l'operazione
ListInstancessul cluster Amazon EMR. -
Per UNLOAD su Amazon S3, le autorizzazioni GET, LIST e PUT per il bucket Amazon S3 in cui i file di dati vengono scaricati.
-
Per CREATE LIBRARY da Amazon S3, l'autorizzazione per il LIST del bucket Amazon S3 e il GET degli oggetti Amazon S3 importati.
Nota
Se si riceve il messaggio di errore S3ServiceException: Access
Denied, quando si esegue un comando COPY, UNLOAD o CREATE LIBRARY, il cluster non ha le autorizzazioni di accesso appropriate per Amazon S3.
È possibile gestire le autorizzazioni IAM assegnando una policy IAM a un ruolo IAM collegato al cluster, all'utente o al gruppo a cui appartiene l'utente. Ad esempio, la policy gestita da AmazonS3ReadOnlyAccess concede le autorizzazioni LIST e GET alle risorse Amazon S3. Per ulteriori informazioni sulle policy IAM, consultare Utilizzo delle policy IAM nella Guida per l'utente di IAM.