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à.
Prerequisiti per la gestione dei namespace di Amazon Redshift nel AWS Glue Data Catalog
-
Crea un amministratore del data lake: crea un ruolo IAM autorizzato ad accettare l'invito al namespace e crea AWS Glue Data Catalog gli oggetti (cataloghi, database, tabelle/viste) e concedi le autorizzazioni Lake Formation ad altri utenti.
Per step-by-step istruzioni sulla creazione di un amministratore di data lake, consulta. Crea un amministratore del data lake
-
Aggiorna le autorizzazioni di amministratore del data lake.
Oltre alle autorizzazioni di amministratore del data lake, l'amministratore del data lake richiede le seguenti autorizzazioni per accettare un invito allo spazio dei nomi Amazon Redshift in Lake Formation, creare o aggiornare le risorse del Data Catalog e abilitare l'accesso al data lake:
{ "Version": "2012-10-17", "Id": "glue-enable-datalake-access", "Statement": [ { "Effect": "Allow", "Action": [ "redshift:AssociateDataShareConsumer", "redshift:DescribeDataSharesForConsumer", "redshift:DescribeDataShares", "redshift-serverless:CreateNamespace", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteWorkgroup", "ec2:DescribeAccountAttributes", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribeAvailabilityZones", "s3:createBucket", "s3:deleteBucket", "s3:putBucketPolicy", "s3:putEncryptionConfiguration", "s3:putLifecycleConfiguration", "s3:putBucketVersioning", "iam:CreateRole" ], "Resource": "*" } ] } { "Action": [ "iam:PassRole" ], "Effect": "Allow", "Resource": "arn:aws:iam::*:role/
data transfer role name
", "Condition": { "StringLike": { "iam:PassedToService": [ "glue.amazonaws.com" ] } } } -
Se il ruolo IAM utilizzato per creare cataloghi federati non è un amministratore di data lake, devi concedere al ruolo l'autorizzazione.
Create catalog
Per creare creatori di cataloghi
Apri la console Lake Formation all'indirizzo https://console.aws.amazon.com/lakeformation/
. Scegli Ruoli e attività amministrative in Amministrazione.
Scegli Concessione.
Nella schermata Concedi le autorizzazioni, scegli un utente o un ruolo IAM.
Seleziona Crea autorizzazione al catalogo.
Facoltativamente, puoi anche concedere l'autorizzazione alla creazione di catalogo. L'autorizzazione concessa consente al creatore del catalogo di concedere l'
Create catalog
autorizzazione ad altri responsabili.Scegli Concessione.
AWS CLI esempio di concessione delle autorizzazioni per creare un catalogo federato.
aws lakeformation grant-permissions \ --cli-input-json \ '{ "Principal": { "DataLakePrincipalIdentifier":"arn:aws:iam::123456789012:role/Admin" }, "Resource": { "Catalog": { } }, "Permissions": [ "CREATE_CATALOG", "DESCRIBE" ] }'
-
Crea un ruolo di amministratore di sola lettura per scoprire i cataloghi federati di Amazon Redshift nel Data Catalog da Amazon Redshift Query Editor v2.
Per interrogare le tabelle Amazon Redshift nel catalogo federato da Amazon Redshift Query Editor v2, assicurati che la policy del ruolo di amministratore di sola lettura contenga l'ARN per il ruolo collegato al servizio Amazon Redshift-.
AWSServiceRoleForRedshift
aws lakeformation put-data-lake-settings --region us-east-1 \ --data-lake-settings \ '{ "DataLakeAdmins": [{"DataLakePrincipalIdentifier":"arn:aws:iam::123456789012:role/Admin"}], "ReadOnlyAdmins":[{"DataLakePrincipalIdentifier":"arn:aws:iam::123456789012:role/aws-service-role/redshift.amazonaws.com/AWSServiceRoleForRedshift"}], "CreateDatabaseDefaultPermissions":[], "CreateTableDefaultPermissions":[], "Parameters":{"CROSS_ACCOUNT_VERSION":"4","SET_CONTEXT":"TRUE"} }'
-
Crea un ruolo di trasferimento dati che Amazon Redshift può assumere per tuo conto per trasferire dati da e verso il bucket Amazon S3.
Quando abiliti l'accesso al data lake per motori di query compatibili con Apache Iceberg come Athena, Amazon EMR su EC2 Amazon per accedere alle risorse Amazon Redshift nel Data Catalog, devi creare un ruolo IAM con le autorizzazioni necessarie per eseguire il trasferimento di dati da e verso il bucket Amazon S3.
{ "Version": "2012-10-17", "Id": "glue-enable-datalake-access", "Statement": [{ "Sid": "DataTransferRole policy", "Effect": "Allow", "Action": [ "glue:GetCatalog", "glue:GetDatabase", "kms:GenerateDataKey", "kms:Decrypt"], "Resource": "*" } ] }
-
Aggiungi la seguente policy di fiducia al ruolo di trasferimento dati per AWS Glue i servizi Amazon Redshift per assumere il ruolo di trasferimento dati da e verso il bucket Amazon S3.
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": [ "redshift.amazonaws.com", "glue.amazonaws.com" ] }, "Action": "sts:AssumeRole" }] }
-
Aggiungi la seguente policy chiave alla chiave se utilizzi una AWS KMS chiave gestita dal cliente per crittografare i dati nel cluster/namespace di Amazon Redshift. Sostituisci il numero di account con un numero di AWS account valido e specifica il nome del ruolo di trasferimento dati. Per impostazione predefinita, i dati nel cluster Amazon Redshift sono crittografati utilizzando una chiave KMS. Lake Formation offre la possibilità di creare una chiave KMS personalizzata per la crittografia. Se utilizzi una chiave gestita dal cliente, devi aggiungere politiche chiave specifiche alla chiave.
Per ulteriori informazioni sulla gestione delle autorizzazioni di una chiave gestita dal cliente, consulta Chiavi gestite dal cliente.
{ "Version": "2012-10-17", "Id": "auto-redshift-3", "Statement": [ { "Sid": "Allow access through RedShift for all principals in the account that are authorized to use RedShift", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:CallerAccount": "
123456789012
", "kms:ViaService": "redshift.us-east-1.amazonaws.com" } } }, { "Sid": "Allow access through RedShift-Serverless for all principals in the account that are authorized to use RedShift-Serverless", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:CallerAccount": "123456789012
", "kms:ViaService": "redshift-serverless.us-east-1.amazonaws.com" } } }, { "Sid": "Allow direct access to key metadata to the account", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012
:root" }, "Action": [ "kms:Describe*", "kms:Get*", "kms:List*", "kms:RevokeGrant" ], "Resource": "*" }, { "Sid": "Allow GenerateDataKey + Decrypt to the DataTransferRole via s3", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012
:role/data-transfer-role-name
" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*" }, "Condition": { "StringEquals": { "kms:ViaService": "s3.us-east-1.amazonaws.com
" } } ] }