Etapa 1: criar uma política do IAM para o serviço AWS Glue
Para qualquer operação que acesse dados em outro recurso da AWS, como o acesso aos seus objetos no Amazon S3,o AWS Glue precisa de permissão para acessar o recurso em seu nome. Você concede essas permissões usando o AWS Identity and Access Management (IAM).
nota
Você pode ignorar esta etapa se usar a política gerenciada pela AWS AWSGlueServiceRole
.
Nesta etapa, você cria uma política semelhante a AWSGlueServiceRole
. Você pode encontrar a versão mais atual da AWSGlueServiceRole
no console do IAM.
Para criar uma política do IAM para AWS Glue
Essa política concede permissão a algumas ações do Amazon S3 para o gerenciamento dos recursos na sua conta que são exigidos pelo AWS Glue quando ele assume uma função usando essa política. Alguns dos recursos especificados nessa política referem-se a nomes padrão que são usados pelo AWS Glue para buckets do Amazon S3, scripts de ETL do Amazon S3, CloudWatch Logs e recursos do Amazon EC2. Por questões de simplicidade, o AWS Glue grava alguns objetos do Amazon S3 em buckets da sua conta com o prefixo aws-glue-*
por padrão.
Faça login no AWS Management Console e abra o console do IAM em https://console.aws.amazon.com/iam/
. -
No painel de navegação à esquerda, escolha Políticas.
-
Escolha Criar política.
-
Na tela Create Policy, navegue até uma guia para editar o JSON. Crie um documento de política com as seguintes instruções JSON e escolha Review policy.
nota
Adicione quaisquer permissões necessárias para os recursos do Amazon S3. Convém definir o escopo da seção de recursos da sua política de acesso somente para os recursos necessários.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:*", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:GetBucketAcl", "ec2:DescribeVpcEndpoints", "ec2:DescribeRouteTables", "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcAttribute", "iam:ListRolePolicies", "iam:GetRole", "iam:GetRolePolicy", "cloudwatch:PutMetricData" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:PutBucketPublicAccessBlock" ], "Resource": [ "arn:aws:s3:::aws-glue-*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::aws-glue-*/*", "arn:aws:s3:::*/*aws-glue-*/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::crawler-public*", "arn:aws:s3:::aws-glue-*" ] }, { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:AssociateKmsKey" ], "Resource": [ "arn:aws:logs:*:*:log-group:/aws-glue/*" ] }, { "Effect": "Allow", "Action": [ "ec2:CreateTags", "ec2:DeleteTags" ], "Condition": { "ForAllValues:StringEquals": { "aws:TagKeys": [ "aws-glue-service-resource" ] } }, "Resource": [ "arn:aws:ec2:*:*:network-interface/*", "arn:aws:ec2:*:*:security-group/*", "arn:aws:ec2:*:*:instance/*" ] } ] }
A tabela a seguir descreve as permissões concedidas por esta política.
Ação Recurso Descrição "glue:*"
"*"
Concede permissão para executar todas as operações de API do AWS Glue.
"s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:GetBucketAcl",
"*"
Permite listar os buckets do Amazon S3 a partir de crawlers, trabalhos, endpoints de desenvolvimento e servidores de cadernos.
"ec2:DescribeVpcEndpoints", "ec2:DescribeRouteTables", "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcAttribute",
"*"
Permite a configuração de itens de rede do Amazon EC2, como nuvens privadas virtuais (VPCs), ao executar trabalhos, crawlers e endpoints de desenvolvimento.
"iam:ListRolePolicies", "iam:GetRole", "iam:GetRolePolicy"
"*"
Permite listar as funções do IAM a partir de crawlers, trabalhos, endpoints de desenvolvimento e servidores de cadernos.
"cloudwatch:PutMetricData"
"*"
Permite gravar métricas do CloudWatch para trabalhos.
"s3:CreateBucket", "s3:PutBucketPublicAccessBlock"
"arn:aws:s3:::aws-glue-*"
Permite criar buckets do Amazon S3 na sua conta a partir de trabalhos e servidores de cadernos.
Convenção de nomenclatura: usa pastas do Amazon S3 chamadas aws-glue-.
Permite que o AWS Glue crie buckets que bloqueiam o acesso público.
"s3:GetObject", "s3:PutObject", "s3:DeleteObject"
"arn:aws:s3:::aws-glue-*/*", "arn:aws:s3:::*/*aws-glue-*/*"
Possibilita obter, inserir e excluir objetos do Amazon S3 contidos na sua conta ao armazenar objetos, como scripts de ETL e locais de servidores de cadernos.
Convenção de nomenclatura: concede permissão a buckets ou pastas do Amazon S3 cujos nomes contêm o prefixo aws-glue-.
"s3:GetObject"
"arn:aws:s3:::crawler-public*", "arn:aws:s3:::aws-glue-*"
Permite obter objetos do Amazon S3 usados por exemplos e tutoriais dos crawlers e trabalhos.
Convenção de nomenclatura: os nomes de buckets do Amazon S3 começam com crawler-public e aws-glue-.
"logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents"
"arn:aws:logs:*:*:log-group:/aws-glue/*"
Permite gravar logs no CloudWatch Logs.
Convenção de nomenclatura: o AWS Glue grava logs em grupos cujos nomes começam com aws-glue.
"ec2:CreateTags", "ec2:DeleteTags"
"arn:aws:ec2:*:*:network-interface/*", "arn:aws:ec2:*:*:security-group/*", "arn:aws:ec2:*:*:instance/*"
Permite marcar de recursos do Amazon EC2 criados para endpoints de desenvolvimento.
Convenção de nomenclatura: o AWS Glue marca interfaces de rede, grupos de segurança e instâncias do Amazon EC2 com aws-glue-service-resource.
-
Na tela Review Policy (Revisar política), insira o Policy Name (Nome da política), por exemplo, GlueServiceRolePolicy. Digite uma descrição opcional e, quando estiver satisfeito com a política, escolha Create policy (Criar política).