As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Pré-requisitos para gerenciar namespaces do Amazon Redshift no AWS Glue Data Catalog
-
Crie um administrador de data lake — crie uma função do IAM autorizada a aceitar o convite do namespace, crie os AWS Glue Data Catalog objetos (catálogos, bancos de dados, tabelas/visualizações) e conceda permissões do Lake Formation a outros usuários.
Para step-by-step obter instruções sobre como criar um administrador de data lake, consulteCrie um administrador de data lake.
-
Atualize as permissões do administrador do data lake.
Além das permissões de administrador do data lake, o administrador do data lake exige as seguintes permissões para aceitar um convite de namespace do Amazon Redshift no Lake Formation, criar ou atualizar os recursos do catálogo de dados e habilitar o acesso ao 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 a função do IAM usada para criar catálogos federados não for de administrador de data lake, você precisará conceder a permissão à
Create catalog
função.Para criar criadores de catálogos
Abra o console do Lake Formation em https://console.aws.amazon.com/lakeformation/
. Escolha Funções e tarefas administrativas em Administração.
Selecione Conceder.
Na tela Conceder permissões, escolha um usuário ou uma função do IAM.
Selecione Criar permissão de catálogo.
Opcionalmente, você também pode conceder a permissão concedida para criar catálogo. A permissão concedida permite que o criador do catálogo conceda a
Create catalog
permissão a outros diretores.Selecione Conceder.
AWS CLI exemplo de concessão de permissões para criar um catálogo federado.
aws lakeformation grant-permissions \ --cli-input-json \ '{ "Principal": { "DataLakePrincipalIdentifier":"arn:aws:iam::123456789012:role/Admin" }, "Resource": { "Catalog": { } }, "Permissions": [ "CREATE_CATALOG", "DESCRIBE" ] }'
-
Crie uma função de administrador somente para leitura para descobrir os catálogos federados do Amazon Redshift no Catálogo de Dados do Amazon Redshift Query Editor v2.
Para consultar as tabelas do Amazon Redshift no catálogo federado do Amazon Redshift Query Editor v2, certifique-se de que a política de função de administrador somente leitura contenha o ARN da função vinculada ao serviço do 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"} }'
-
Crie uma função de transferência de dados que o Amazon Redshift possa assumir em seu nome para transferir dados de e para o bucket do Amazon S3.
Ao habilitar o acesso ao data lake para mecanismos de consulta compatíveis com Apache Iceberg, como Athena, Amazon EMR na EC2 Amazon, para acessar os recursos do Amazon Redshift no catálogo de dados, você precisa criar uma função do IAM com as permissões necessárias para realizar a transferência de dados de e para o bucket do Amazon S3.
{ "Version": "2012-10-17", "Id": "glue-enable-datalake-access", "Statement": [{ "Sid": "DataTransferRolePolicy", "Effect": "Allow", "Action": [ "glue:GetCatalog", "glue:GetDatabase", "kms:GenerateDataKey", "kms:Decrypt"], "Resource": "*" } ] }
-
Adicione a seguinte política de confiança à função de transferência de dados AWS Glue e aos serviços do Amazon Redshift para assumir a função de transferir dados de e para o bucket do Amazon S3.
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": [ "redshift.amazonaws.com", "glue.amazonaws.com" ] }, "Action": "sts:AssumeRole" }] }
-
Adicione a seguinte política de chaves à AWS KMS chave se você estiver usando uma chave gerenciada pelo cliente para criptografar os dados no cluster/namespace do Amazon Redshift. Substitua o número da conta por um número de AWS conta válido e especifique o nome da função de transferência de dados. Por padrão, os dados no cluster do Amazon Redshift são criptografados usando uma chave KMS. O Lake Formation oferece uma opção para criar sua chave KMS personalizada para criptografia. Se você estiver usando uma chave gerenciada pelo cliente, deverá adicionar políticas de chaves específicas à chave.
Para obter mais informações sobre como gerenciar as permissões de uma chave gerenciada pelo cliente, consulte Chaves gerenciadas pelo 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
" } } ] }