Revisar as permissões do IAM necessárias para trabalhos de ETL - AWS Glue

Revisar as permissões do IAM necessárias para trabalhos de ETL

Quando você cria um trabalho usando o AWS Glue Studio, o trabalho assume as permissões da função do IAM que você especificou ao criá-lo. Essa função do IAM precisa ter permissão para extrair dados da sua origem dos dados, gravá-los no destino e acessar recursos do AWS Glue.

O nome da função que você cria para o trabalho deve começar com a string AWSGlueServiceRole para que ele seja usado corretamente pelo AWS Glue Studio. Por exemplo, você pode nomear sua função AWSGlueServiceRole-FlightDataJob.

Permissões de origem e destino dos dados

Um trabalho do AWS Glue Studio deve ter acesso ao Amazon S3 para quaisquer origens, destinos, scripts e diretórios temporários utilizados no trabalho. Você pode criar uma política para fornecer acesso minucioso a recursos específicos do Amazon S3.

  • As fontes de dados exigem permissões s3:ListBucket e s3:GetObject.

  • Os destinos de dados exigem permissões s3:ListBucket, s3:PutObject e s3:DeleteObject.

nota

Sua política de IAM precisa permitir s3:GetObject para os buckets específicos usados para hospedar as transformações do AWS Glue.

Os buckets a seguir pertencem à conta do serviço da AWS e podem ser lidos em todo o mundo. Esses buckets servem como um repositório para o código-fonte referente a um subconjunto de transformações acessíveis por meio do editor visual do AWS Glue Studio. As permissões no bucket são configuradas para negar qualquer outra ação de API no bucket. Qualquer pessoa pode ler os scripts que fornecemos para as transformações, mas ninguém fora da nossa equipe de serviço pode "colocar" nada neles. Quando seu trabalho do AWS Glue é executado, esse arquivo é extraído como uma importação local para que o arquivo seja baixado para o contêiner local. Depois disso, não há mais comunicação com essa conta.

Região: Nome do bucket

  • af-south-1: aws-glue-studio-transforms-762339736633-prod-af-south-1

  • ap-east-1: aws-glue-studio-transforms-125979764932-prod-ap-east-1

  • ap-northeast-2: aws-glue-studio-transforms-673535381443-prod-ap-northeast-2

  • ap-northeast-3: aws-glue-studio-transforms-149976050262-prod-ap-northeast-3

  • ap-south-1: aws-glue-studio-transforms-584702181950-prod-ap-south-1

  • ap-south-2: aws-glue-studio-transforms-380279651983-prod-ap-south-2

  • ap-southeast-1: aws-glue-studio-transforms-737106620487-prod-ap-southeast-1

  • ap-southeast-2: aws-glue-studio-transforms-234881715811-prod-ap-southeast-2

  • ap-southeast-3: aws-glue-studio-transforms-151265630221-prod-ap-southeast-3

  • ap-southeast-4: aws-glue-studio-transforms-052235663858-prod-ap-southeast-4

  • ca-central-1: aws-glue-studio-transforms-622716468547-prod-ca-central-1

  • ca-west-1: aws-glue-studio-transforms-915795495192-prod-ca-west-1

  • eu-central-1: aws-glue-studio-transforms-560373232017-prod-eu-central-1

  • eu-central-2: aws-glue-studio-transforms-907358657121-prod-eu-central-2

  • eu-north-1: aws-glue-studio-transforms-312557305497-prod-eu-north-1

  • eu-south-1: aws-glue-studio-transforms-939684186351-prod-eu-south-1

  • eu-south-2: aws-glue-studio-transforms-239737454084-prod-eu-south-2

  • eu-west-1: aws-glue-studio-transforms-244479516193-prod-eu-west-1

  • eu-west-2: aws-glue-studio-transforms-804222392271-prod-eu-west-2

  • eu-west-3: aws-glue-studio-transforms-371299348807-prod-eu-west-3

  • il-central-1: aws-glue-studio-transforms-806964611811-prod-il-central-1

  • me-central-1: aws-glue-studio-transforms-733304270342-prod-me-central-1

  • me-south-1: aws-glue-studio-transforms-112120182341-prod-me-south-1

  • sa-east-1: aws-glue-studio-transforms-881619130292-prod-sa-east-1

  • us-east-1: aws-glue-studio-transforms-510798373988-prod-us-east-1

  • us-east-2: aws-glue-studio-transforms-251189692203-prod-us-east-2

  • us-west-1: aws-glue-studio-transforms-593230150239-prod-us-west-1

  • us-west-2: aws-glue-studio-transforms-818035625594-prod-us-west-2

  • ap-northeast-1: aws-glue-studio-transforms-200493242866-prod-ap-northeast-1

  • cn-north-1: aws-glue-studio-transforms-071033555442-prod-cn-north-1

  • cn-northwest-1: aws-glue-studio-transforms-070947029561-prod-cn-northwest-1

  • us-gov-west-1: aws-glue-studio-transforms-227493901923-prod-us-gov-west-1-2604

Se escolher Amazon Redshift como sua origem dos dados, você poderá fornecer uma função para permissões de cluster. Trabalhos que são executados em um cluster do Amazon Redshift emitem comandos que acessam o Amazon S3 para armazenamento temporário usando credenciais temporárias. Se o trabalho for executado por mais de uma hora, essas credenciais expirarão, fazendo com que o trabalho falhe. Para evitar esse problema, você pode atribuir uma função ao próprio cluster do Amazon Redshift que concede as permissões necessárias aos trabalhos utilizando credenciais temporárias. Para obter mais informações, consulte Mover dados de e para o Amazon RedShift no Guia do desenvolvedor do AWS Glue.

Se o trabalho usar origens ou destinos de dados diferentes do Amazon S3, você deve anexar as permissões necessárias à função do IAM usada pelo trabalho para acessar essas origens e destinos de dados. Para obter mais informações, consulte Configurar seu ambiente para acessar armazenamentos de dados no Guia do desenvolvedor do AWS Glue.

Se você estiver usando conectores e conexões para seu armazenamento de dados, precisará de permissões adicionais, conforme descrito em Permissões necessárias para usar conectores.

Permissões necessárias para excluir trabalhos

No AWS Glue Studio, você pode selecionar vários trabalhos no console para excluir. Para executar essa ação, você deve ter a permissão glue:BatchDeleteJob. Isso é diferente do console do AWS Glue, que requer a permissão glue:DeleteJob para excluir trabalhos.

Permissões AWS Key Management Service

Se você planeja acessar origens e destinos do Amazon S3 que usam criptografia do lado do servidor com AWS Key Management Service (AWS KMS), anexe uma política à função do AWS Glue Studio usada pelo trabalho que permita que ele descriptografe os dados. A função de trabalho precisa das permissões kms:ReEncrypt, kms:GenerateDataKey e kms:DescribeKey. Além disso, a função de trabalho precisa da permissão kms:Decrypt para carregar ou baixar um objeto do Amazon S3 criptografado com uma chave mestra do cliente do AWS KMS (CMK).

Há custos adicionais pelo uso de CMKs do AWS KMS. Para obter mais informações, consulte Conceitos do AWS Key Management Service: chaves mestras de cliente (CMKs) em Preços do AWS Key Management Service no Guia do desenvolvedor do AWS Key Management Service.

Permissões necessárias para usar conectores

Se você estiver usando um conector personalizado e uma conexão do AWS Glue para acessar um armazenamento de dados, a função usada para executar o trabalho de ETL do AWS Glue precisa de permissões adicionais anexadas:

  • A política gerenciada pela AWS AmazonEC2ContainerRegistryReadOnly para acessar conectores comprados no AWS Marketplace.

  • As permissões glue:GetJob e glue:GetJobs.

  • Permissões do AWS Secrets Manager para acessar segredos que são usados com conexões. Consulte Exemplo: permissão para recuperar valores de segredos para obter exemplos de políticas do IAM.

Se seus trabalhos de ETL do AWS Glue são executados em uma VPC executando a Amazon VPC, então a VPC deve ser configurada conforme descrito em Configurar uma VPC para seu trabalho de ETL.