

# Conceitos básicos do AWS Glue
<a name="setting-up"></a>

As seções a seguir fornecem informações sobre como configurar o AWS Glue. Nem todas as seções de configuração são necessárias para começar a usar o AWS Glue. Você pode usar as instruções, conforme necessário, para configurar permissões do IAM, criptografia e DNS (se estiver usando um ambiente de VPC para acessar armazenamentos de dados ou se estiver usando sessões interativas).

**Topics**
+ [Visão geral do uso do AWS Glue](start-console-overview.md)
+ [Configurar permissões do IAM para o AWS Glue](set-up-iam.md)
+ [Configurar perfis de uso do AWS Glue](start-usage-profiles.md)
+ [Conceitos básicos do AWS Glue Data Catalog](start-data-catalog.md)
+ [Configurar o acesso de rede aos armazenamentos de dados](start-connecting.md)
+ [Configurar criptografia no AWS Glue](set-up-encryption.md)
+ [Configurar redes para desenvolvimento para o AWS Glue](start-development-endpoint.md)

# Visão geral do uso do AWS Glue
<a name="start-console-overview"></a>

Com o AWS Glue, você armazena metadados no AWS Glue Data Catalog. Você usa esses metadados para orquestrar trabalhos de ETL que transformam fontes de dados e carregam o data warehouse ou o data lake. As etapas a seguir descrevem o fluxo de trabalho geral e algumas das opções que você faz ao trabalhar com o AWS Glue.

**nota**  
É possível realizar as etapas a seguir ou criar um fluxo de trabalho que execute automaticamente as etapas 1 a 3. Para obter mais informações, consulte [Realizar atividades de ETL complexas usando esquemas e fluxos de trabalho no AWS Glue](orchestrate-using-workflows.md).

1. Preencher o AWS Glue Data Catalog com definições de tabela.

   No console, para armazenamentos de dados persistentes, é possível adicionar um crawler para preencher o AWS Glue Data Catalog. Você pode iniciar o assistente **Add crawler** na lista de tabelas ou na lista de crawlers. Você escolhe um ou mais armazenamentos de dados para o seu crawler acessar. Você também pode criar uma programação para determinar a frequência de execução do seu crawler. Para streams de dados, é possível criar manualmente a definição de tabela e definir propriedades de stream.

   Se preferir, você pode fornecer um classificador personalizado que infere o esquema dos seus dados. Você pode criar classificadores personalizados usando um padrão grok, No entanto, o AWS Glue fornece classificadores integrados que são usados ​​automaticamente pelos crawlers quando um classificador personalizado não reconhece seus dados. Ao definir um crawler, você não precisa selecionar um classificador. Para obter mais informações sobre classificadores no AWS Glue, consulte [Definir e gerenciar classificadores](add-classifier.md). 

   O crawling de alguns tipos de armazenamento de dados requer uma conexão que forneça informações de autenticação e local. Se necessário, você pode criar uma conexão que fornece essas informações necessárias no console do AWS Glue.

   O crawler lê seu armazenamento de dados e cria definições de dados e tabelas nomeadas no AWS Glue Data Catalog. Estas tabelas são organizadas em um banco de dados de sua escolha. Você também pode preencher o Data Catalog com tabelas criadas manualmente. Com esse método, você fornece o esquema e outros metadados para criar definições de tabela no Data Catalog. Como esse método pode ser um pouco entediante e propenso a erros, muitas vezes é melhor deixar que o crawler crie as definições da tabela.

   Para obter mais informações sobre como preencher o AWS Glue Data Catalog com definições de tabela, consulte [Criar tabelas](tables-described.md).

1. Defina um trabalho que descreva a transformação de dados de origem para dados de destino.

   Geralmente, para criar um trabalho, você precisa fazer as seguintes escolhas:
   + Escolha uma tabela do AWS Glue Data Catalog para ser a origem do trabalho. Seu trabalho usa essa definição de tabela para acessar a fonte de dados e interpretar o formato dos dados.
   + Escolha uma tabela ou um local do AWS Glue Data Catalog para ser o destino do trabalho. Seu trabalho usa essas informações para acessar seu armazenamento de dados.
   + Instrua o AWS Glue a gerar um script para transformar sua origem em destino. O AWS Glue gera o código para chamar transformações integradas a fim de converter dados de seu esquema de origem no formato do esquema de destino. Essas transformações executam operações como cópia de dados, renomeação de colunas e filtragem de dados para transformar os dados conforme necessário. Você pode modificar esse script no console do AWS Glue.

   Para obter mais informações sobre como definir trabalhos no AWS Glue, consulte [Criar trabalhos de ETL visuais](author-job-glue.md).

1. Execute seu trabalho para transformar seus dados.

   Você pode executar seu trabalho sob demanda, ou iniciá-lo com base em um destes tipos de gatilho:
   + Um gatilho baseado em uma programação cron.
   + Um gatilho baseado em eventos. Por exemplo, a conclusão bem-sucedida de outro trabalho pode iniciar um trabalho do AWS Glue.
   + Um gatilho que inicia um trabalho sob demanda.

   Para obter mais informações sobre gatilhos no AWS Glue, consulte [Iniciar trabalhos e crawlers usando acionadores](trigger-job.md).

1. Monitore seus crawlers programados e trabalhos acionados.

   Use o console do AWS Glue para visualizar o seguinte:
   + Detalhes e erros de execução do trabalho.
   + Detalhes e erros de execução do crawler.
   + Todas as notificações sobre atividades do AWS Glue

   Para obter mais informações sobre como monitorar crawlers e trabalhos no AWS Glue, consulte [Como monitorar o AWS Glue](monitor-glue.md).

# Configurar permissões do IAM para o AWS Glue
<a name="set-up-iam"></a>

As instruções neste tópico ajudam você a configurar rapidamente as permissões AWS Identity and Access Management (IAM) para o AWS Glue. Você concluirá as seguintes tarefas:
+ Conceda às suas identidades do IAM acesso aos recursos do AWS Glue.
+ Crie um perfil de serviço para executar trabalhos, acessar dados e executar tarefas de qualidade do AWS Glue Data Quality.

Para obter instruções detalhadas que você pode usar para personalizar as permissões do IAM para o AWS Glue, consulte [Configurar permissões do KMS para o AWS Glue](configure-iam-for-glue.md).

**Para configurar as permissões do IAM para AWS Glue no Console de gerenciamento da AWS**

1. Faça login no Console de gerenciamento da AWS e abra o console do AWS Glue em [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/).

1. Escolha **Conceitos básicos**.

1. Em **Preparar sua conta para o AWS Glue**, escolha **Configurar permissões do IAM**.

1. Escolha as identidades do IAM (perfis ou usuários) às quais você deseja conceder permissões do AWS Glue. O AWS Glue anexa a política gerenciada `[AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)` a essas identidades. Você pode pular essa etapa se quiser definir essas permissões manualmente ou se quiser definir apenas um perfil de serviço padrão.

1. Escolha **Próximo**.

1. Escolha o nível de acesso ao Amazon S3 de que os perfis e usuários precisam. As opções escolhidas nessa etapa são aplicadas a todas as identidades selecionadas.

   1. Em **Escolher locais do S3**, escolha os locais do Amazon S3 aos quais você deseja conceder acesso.

   1. Em seguida, selecione se as identidades devem ter acesso de **Somente leitura (recomendado)** ou de **Leitura e gravação** aos locais que você selecionou anteriormente. O AWS Glue adiciona políticas de permissões às identidades com base na combinação dos locais e das permissões de leitura ou gravação que você seleciona.

      A tabela a seguir mostra as permissões que o AWS Glue anexa para acesso ao Amazon S3.  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/glue/latest/dg/set-up-iam.html)

1. Escolha **Próximo**.

1. Escolha perfil de serviço padrão do AWS Glue para sua conta. Um perfil de serviço é um perfil do IAM que é o AWS Glue usada para acessar recursos em outros serviços da AWS em seu nome. Para obter mais informações, consulte [Perfis de serviço do AWS Glue](security_iam_service-with-iam.md#security_iam_service-with-iam-roles-service).
   + Ao escolher perfil de serviço padrão do AWS Glue, o AWS Glue cria um novo perfil do IAM na sua Conta da AWS denominado `AWSGlueServiceRole` com as seguintes políticas gerenciadas anexadas. Se sua conta já tiver um perfil do IAM denomiado `AWSGlueServiceRole`, o AWS Glue anexa essas políticas ao perfil existente.
     +  [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole): esta política gerenciada é necessária para que o AWS Glue possa acessar e gerenciar recursos em seu nome. Ela permite ao AWS Glue criar, atualizar e excluir vários recursos, como AWS Glue trabalhos, crawlers e conexões. Também concede permissões ao AWS Glue para acessar logs Amazon CloudWatch para fins de registro em log. Para começar, recomendamos usar essa política para aprender a usar o AWS Glue. À medida que você se familiarizar com o AWS Glue, poderá criar políticas que permitem ajustar o acesso aos recursos conforme necessário. 
     +  [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess): esta política gerenciada concede acesso total ao serviço do AWS Glue por meio do Console de gerenciamento da AWS. Esta política concede permissões para realizar qualquer operação dentro do AWS Glue, permitindo que você crie, modifique e exclua qualquer recurso do AWS Glue conforme necessário. No entanto, é importante observar que ela não concede permissões para acessar os armazenamentos de dados subjacentes ou outros serviços da AWS que possam estar envolvidos no processo de ETL. Devido ao amplo escopo das permissões concedidas pela política do `AWSGlueConsoleFullAccess`, ela deve ser atribuída com cautela e seguindo o princípio do privilégio mínimo. Geralmente, é recomendável criar e usar políticas mais granulares adaptadas a casos de uso e requisitos específicos sempre que possível. 
     +  [ AWSGlueConsole-S3-read-only-policy](https://console.aws.amazon.com/iam/home#policies/details/arn:aws:iam:aws:policy/AWSGlueConsole-S3-read-only-policy): esta política permite que o AWS Glue leia dados de buckets específicos do Amazon S3, mas não concede permissões para gravar ou modificar dados no Amazon S3 ou 

        [ AWSGlueConsole-S3-read-and-write](https://console.aws.amazon.com/iam/home#policies/details/arn:aws:iam:aws:policy/AWSGlueConsole-S3-read-and-write): esta política permite que o AWS Glue leia e grave dados em buckets específicos do Amazon S3 como parte do processo de ETL. 
   +  Quando você escolhe um perfil do IAM existente, o AWS Glue o define como padrão, mas não adiciona a ele nenhuma permissão do `AWSGlueServiceRole`. Verifique se você configurou o perfil a ser usado como um perfil de serviço do AWS Glue. Para obter mais informações, consulte [Etapa 1: criar uma política do IAM para o serviço AWS Glue](create-service-policy.md) e [Etapa 2: criar um perfil do IAM para o AWS Glue](create-an-iam-role.md). 

1. Escolha **Próximo**.

1. Por fim, revise as permissões que você selecionou e escolha **Aplicar alterações**. Ao aplicar as alterações, o AWS Glue adiciona permissões do IAM às identidades que você selecionou. Você pode visualizar ou modificar as novas permissões no console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

Você agora concluiu a configuração de permissões mínimas do IAM para o AWS Glue. Em um ambiente de produção, recomendamos que você se familiarize com o [Segurança no AWS Glue](security.md) e o [Gerenciamento de identidade e acesso do AWS Glue](security-iam.md) para ajudar a proteger os recursos da AWS para seu caso de uso.

## Próximas etapas
<a name="set-up-iam-next-steps"></a>

Agora que tem as permissões do IAM configuradas, você pode explorar os seguintes tópicos para começar a usar o AWS Glue:
+ [Introdução ao AWS Glue no AWS Skill Builder](https://explore.skillbuilder.aws/learn/course/external/view/elearning/8171/getting-started-with-aws-glue)
+ [Conceitos básicos do AWS Glue Data Catalog](start-data-catalog.md)

# Configuração do AWS Glue Studio
<a name="setting-up-studio"></a>

Conclua as tarefas nesta seção ao usar o AWS Glue para o Visual ETL pela primeira vez:

**Topics**
+ [Revisar as permissões do IAM necessárias para o usuário do AWS Glue Studio](getting-started-min-privs.md)
+ [Revisar as permissões do IAM necessárias para trabalhos de ETL](getting-started-min-privs-job.md)
+ [Configurar permissões do IAM para o AWS Glue Studio](getting-started-iam-permissions.md)
+ [Configurar uma VPC para seu trabalho de ETL](getting-started-vpc-config.md)

# Revisar as permissões do IAM necessárias para o usuário do AWS Glue Studio
<a name="getting-started-min-privs"></a>

Para usar AWS Glue Studio, o usuário deve ter acesso a vários recursos da AWS. O usuário deve ser capaz de visualizar e selecionar buckets do Amazon S3, políticas e funções do IAM e objetos do AWS Glue Data Catalog.

## AWS GluePermissões de serviço do
<a name="getting-started-min-privs-glue"></a>

O AWS Glue Studio usa as ações e recursos do serviço do AWS Glue. Seu usuário precisa de permissões sobre essas ações e recursos para usar com eficiência o AWS Glue Studio. Você pode conceder ao usuário do AWS Glue Studio a política gerenciada `AWSGlueConsoleFullAccess` ou criar uma política personalizada com um conjunto menor de permissões.

**Importante**  
De acordo com as práticas recomendadas de segurança, recomenda-se restringir o acesso enrijecendo políticas para restringir ainda mais o acesso ao bucket do Amazon S3 e grupos de logs do Amazon CloudWatch. Para obter um exemplo de política do Amazon S3, consulte [Gravar políticas do IAM: como conceder acesso a um bucket do Amazon S3](https://aws.amazon.com/blogs/security/writing-iam-policies-how-to-grant-access-to-an-amazon-s3-bucket/). 

## Criação de políticas do IAM personalizadas para o AWS Glue Studio
<a name="getting-started-all-gs-privs"></a>

Você pode criar uma política personalizada com um conjunto menor de permissões para o AWS Glue Studio. A política pode conceder permissões para um subconjunto de objetos ou ações. Use as seguintes informações ao criar uma política personalizada. 

 Para usar as APIs do AWS Glue Studio, inclua `glue:UseGlueStudio` na política de ação em suas permissões do IAM. O uso de `glue:UseGlueStudio` permitirá que você acesse todas as ações do AWS Glue Studio mesmo quando mais ações forem adicionadas à API no decorrer do tempo. 

 Para obter mais informações sobre as ações definidas pelo AWS Glue, consulte [Ações definidas pelo AWS Glue](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsglue.html). 

 **Preparação de dados em autoria de ações** 
+ SendRecipeAction
+ GetRecipeAction

 **Ações do gráfico acíclico dirigido (DAG** 
+ CreateDag
+ UpdateDag
+ GetDag
+ DeleteDag

 **Ações de trabalho** 
+ SaveJob
+ GetJob
+ CreateJob
+ DeleteJob
+ GetJobs
+ UpdateJob

 **Ações de execução de trabalho** 
+ StartJobRun
+ GetJobRuns
+ BatchStopJobRun
+ GetJobRun
+ QueryJobRuns
+ QueryJobs
+ QueryJobRunsAggregated

 **Ações do esquema** 
+ GetSchema
+ GetInferredSchema

 **Ações de banco de dados** 
+ GetDatabases

 **Ações de planejamento** 
+ GetPlan

 **Ações de tabela** 
+ SearchTables
+ GetTables
+ GetTables

 **Ações de conexão** 
+ CreateConnection
+ DeleteConnection
+ UpdateConnection
+ GetConnections
+ GetConnection

 **Ações de mapeamento** 
+ GetMapping

 **Ações do proxy do S**
+ ListBuckets
+ ListObjectsV2
+ GetBucketLocation

**Ações de configuração de segurança**
+ GetSecurityConfigurations 

**Ações de script**
+ CreateScript (diferente da API de mesmo nome no AWS Glue)

## Acesso às APIs do AWS Glue Studio
<a name="getting-started-glue-studio-apis"></a>

 Para acessar o AWS Glue Studio, adicione `glue:UseGlueStudio` na lista de políticas de ações nas permissões do IAM. 

 No exemplo abaixo, `glue:UseGlueStudio` está incluído na política de ação, mas as APIs do AWS Glue Studio não estão identificadas individualmente. Isso ocorre porque ao incluir `glue:UseGlueStudio`, você recebe automaticamente acesso às APIs internas sem precisar especificar as APIs individuais do AWS Glue Studio nas permissões do IAM. 

 No exemplo, as políticas adicionais de ação listadas (p. ex., `glue:SearchTables`) não são APIs do AWS Glue Studio, portanto, será necessário incluí-las nas permissões do IAM, conforme necessário. Você também pode incluir ações do Amazon S3 Proxy para especificar o nível de acesso do Amazon S3 a ser concedido. O exemplo de política abaixo fornece acesso para abrir o AWS Glue Studio, criar um trabalho visual e salvá-lo/executá-lo se o perfil do IAM selecionado tiver acesso suficiente. 

## Permissões de visualização de dados e caderno
<a name="getting-started-data-preview-perms"></a>

As visualizações de dados e os cadernos permitem que você veja uma amostra dos seus dados em qualquer estágio do trabalho (leitura, transformação, gravação), sem precisar executar o trabalho. Você especifica uma função do AWS Identity and Access Management (IAM) para a AWS Glue Studio para usar ao acessar os dados. As funções do IAM destinam-se a poder ser assumidas e não têm credenciais de longo prazo padrão, como uma senha ou chaves de acesso, associadas a ela. Em vez disso, quando o AWS Glue Studio assume a função, o IAM fornece credenciais de segurança temporárias. 

Para garantir que as visualizações de dados e os comandos do caderno funcionem corretamente, use uma função que tenha um nome que comece com a string `AWSGlueServiceRole`. Se você escolher usar um nome diferente para a função, será necessário adicionar a permissão `iam:passrole` e configurar uma política para a função no IAM. Para obter mais informações, consulte [Criar uma política do IAM para funções não nomeadas “AWSGlueServiceRole\$1”](getting-started-iam-permissions.md#create-iam-policy).

**Atenção**  
Se uma função conceder a permissão `iam:passrole` a um caderno e você implementar o encadeamento de funções, um usuário pode inadvertidamente obter acesso ao caderno. No momento, não há auditoria implementada que permita monitorar quais usuários receberam acesso ao caderno.

Caso queira negar a uma identidade do IAM a capacidade de criar sessões de pré-visualização de dados, consulte o exemplo para [Negação da capacidade de criar sessões de pré-visualização de dados para uma identidade](security_iam_id-based-policy-examples.md#deny-data-preview-sessions-per-identity).

## Amazon CloudWatchPermissões do
<a name="getting-started-min-privs-cloudwatch"></a>

É possível monitorar os trabalhos do AWS Glue Studio usando o Amazon CloudWatch, o qual coleta e processa dados brutos do AWS Glue e os transforma em métricas legíveis quase em tempo real. Por padrão, os dados de métricas do AWS Glue são enviados para o CloudWatch automaticamente. Para obter mais informações, consulte [O que é o Amazon CloudWatch?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatch.html) no *Manual do usuário do Amazon CloudWatch* e [Métricas do AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/monitoring-awsglue-with-cloudwatch-metrics.html#awsglue-metrics) no *Guia do desenvolvedor do AWS Glue*. 

Para acessar os painéis do CloudWatch, o usuário que acessa o AWS Glue Studio precisa de um dos seguintes:
+ A política `AdministratorAccess`
+ A política `CloudWatchFullAccess`
+ Uma política personalizada que inclui uma ou mais destas permissões específicas:
  + `cloudwatch:GetDashboard` e `cloudwatch:ListDashboards` para visualizar painéis
  + `cloudwatch:PutDashboard` para criar ou modificar painéis
  + `cloudwatch:DeleteDashboards` para excluir painéis

Para obter mais informações sobre como alterar as permissões de um usuário do IAM usando políticas, consulte [Alterar permissões de um usuário do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html) no *Manual do usuário do IAM*. 

# Revisar as permissões do IAM necessárias para trabalhos de ETL
<a name="getting-started-min-privs-job"></a>

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
<a name="getting-started-min-privs-data"></a>

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
+ eusc-de-east-1: aws-glue-studio-transforms-780995497573-prod-eusc-de-east-1-555

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](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-redshift.html) 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](https://docs.aws.amazon.com/glue/latest/dg/start-connecting.html) 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](#getting-started-min-privs-connectors).

## Permissões necessárias para excluir trabalhos
<a name="getting-started-min-privs-delete-job"></a>

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.

## AWS Key Management ServicePermissões do
<a name="getting-started-min-privs-kms"></a>

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)](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys) em [Preços do AWS Key Management Service](https://aws.amazon.com/kms/pricing) no *Guia do desenvolvedor do AWS Key Management Service*.

## Permissões necessárias para usar conectores
<a name="getting-started-min-privs-connectors"></a>

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`.
+ AWS Secrets ManagerPermissões do para acessar segredos que são usados com conexões. Consulte [Exemplo: permissão para recuperar valores de segredos](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_examples.html#auth-and-access_examples_read) 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](getting-started-vpc-config.md).

# Configurar permissões do IAM para o AWS Glue Studio
<a name="getting-started-iam-permissions"></a>

Você pode criar as funções e atribuir políticas a usuários e a funções de trabalho usando o usuário administrador da AWS. 

Você pode usar a política gerenciada pela AWS **AWSGlueConsoleFullAccess** para fornecer as permissões necessárias para usar o console do AWS Glue Studio. 

Para criar sua própria política, siga as etapas documentadas em [Criar uma política do IAM para o serviço do AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/create-service-policy.html) no *Guia do desenvolvedor do AWS Glue*. Inclua as permissões do IAM descritas anteriormente em [Revisar as permissões do IAM necessárias para o usuário do AWS Glue Studio](getting-started-min-privs.md).

**Topics**
+ [Anexar políticas ao usuário do AWS Glue Studio](#attach-iam-policy)
+ [Criar uma política do IAM para funções não nomeadas “AWSGlueServiceRole\$1”](#create-iam-policy)

## Anexar políticas ao usuário do AWS Glue Studio
<a name="attach-iam-policy"></a>

Qualquer usuário do AWS que fizer login no console do AWS Glue Studio deverá ter permissões para acessar recursos específicos. Você fornece essas permissões associando políticas do IAM ao usuário. 

**Para anexar a política gerenciada **AWSGlueConsoleFullAccess** a um usuário**

1. Faça login no Console de gerenciamento da AWS e abra o console do IAM, em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação, selecione **Políticas**. 

1. Na lista de políticas, marque a caixa de seleção ao lado da política **AWSGlueConsoleFullAccess**. Você pode usar o menu **Filtro** e a caixa de pesquisa para filtrar a lista de políticas. 

1. Selecione **Ações da política** e escolha **Anexar**. 

1. Escolha o usuário ao qual a política será anexada. Você pode usar o menu **Filter** (Filtro) e a caixa de pesquisa para filtrar a lista de entidades principais. Depois de escolher o usuário ao qual a política será anexada, selecione **Attach policy**. 

1. Repita as etapas anteriores para anexar políticas adicionais ao usuário conforme necessário.

## Criar uma política do IAM para funções não nomeadas “AWSGlueServiceRole\$1”
<a name="create-iam-policy"></a>

**Para configurar uma política do IAM para funções usadas pelo AWS Glue Studio**

1. Faça login no Console de gerenciamento da AWS e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Adicione uma nova política do IAM. É possível adicionar a uma política existente ou criar uma nova política em linha do IAM. Para criar uma política do IAM:

   1. Escolha **Policies** (Políticas) e depois **Create Policy** (Criar política). Se aparecer um botão **Get Started**, selecione-o e, em seguida, **Create Policy**.

   1. Próximo a **Create Your Own Policy**, escolha **Select**.

   1. Em **Nome da política**, digite qualquer valor que seja mais fácil para você consultar mais tarde. Você também pode digitar um texto descritivo em **Descrição**.

   1. Em **Documento de política**, digite uma instrução com o seguinte formato e escolha **Criar política**:

1. Copie e cole os blocos a seguir na política na matriz “Statement”, substituindo *my-interactive-session-role-prefix* pelo prefixo de todos os perfis comuns a serem associados com as permissões para o AWS Glue.

   ```
   {
       "Action": [
           "iam:PassRole"
       ],
       "Effect": "Allow",
       "Resource": "arn:aws:iam::*:role/my-interactive-session-role-prefix*",
       "Condition": {
           "StringLike": {
               "iam:PassedToService": [
                   "glue.amazonaws.com "
               ]
           }
       }
   }
   ```

    Aqui está o exemplo completo com os arrays Version and Statement incluídos na política 

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Action": [
           "iam:PassRole"
         ],
         "Effect": "Allow",
         "Resource": "arn:aws:iam::*:role/my-interactive-session-role-prefix*",
         "Condition": {
           "StringLike": {
             "iam:PassedToService": [
               "glue.amazonaws.com "
             ]
           }
         }
       }
     ]
   }
   ```

------

1. Para habilitar a política para um usuário, escolha **Usuários**.

1. Escolha o usuário do para o qual você deseja anexar a política.

# Configurar uma VPC para seu trabalho de ETL
<a name="getting-started-vpc-config"></a>

O Amazon Virtual Private Cloud (Amazon VPC) permite definir uma rede virtual em sua própria área isolada logicamente na Nuvem AWS, conhecida como uma *nuvem privada virtual (VPC)*. Você pode iniciar os recursos da AWS, como as instâncias, na VPC. Sua VPC assemelha-se a uma rede tradicional que você poderia operar no seu próprio data center, com os benefícios de usar a infraestrutura escalável da AWS. É possível configurar seu VPC, selecionar o intervalo de endereços IP dele, criar sub-redes e definir tabelas de rotas, gateways de rede e configurações de segurança. Você pode se conectar às suas instâncias na VPC. É possível conectar a VPC a seu próprio data center corporativo, tornando a Nuvem AWS uma extensão do seu data center. Para proteger os recursos em cada sub-rede, você pode usar várias camadas de segurança, incluindo grupos de segurança e listas de controle de acesso de rede. Para obter mais informações, consulte o [Manual do usuário da Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/).

Você pode configurar os trabalhos de ETL do AWS Glue para serem executados em uma VPC ao usar conectores. Você deve configurar a VPC para o seguinte, conforme necessário:
+ Acesso à rede pública para armazenamentos de dados fora da AWS. Todos os armazenamentos de dados acessados pelo trabalho devem estar disponíveis na sub-rede da VPC. 
+ Se o seu trabalho precisar acessar recursos da VPC e a Internet pública, a VPC precisará conter uma instância de gateway de conversão de endereços de rede (NAT). 

  Para obter mais informações, consulte [Configurar seu ambiente para acessar armazenamentos de dados](https://docs.aws.amazon.com/glue/latest/dg/start-connecting.html) no *Guia do desenvolvedor do AWS Glue*.

# Conceitos básicos de cadernos no AWS Glue Studio
<a name="notebook-getting-started"></a>

 Ao iniciar um caderno por meio do AWS Glue Studio, todas as etapas de configuração são feitas para você, para que você possa explorar seus dados e começar a desenvolver seu script de trabalho após apenas alguns segundos. 

 As seções a seguir descrevem como criar um perfil e conceder as permissões apropriadas para usar cadernos do AWS Glue Studio para trabalhos de ETL. 

 Para obter mais informações sobre as ações definidas pelo AWS Glue, consulte [Ações definidas pelo AWS Glue](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsglue.html). 

**Topics**
+ [Conceder permissões para a função do IAM](#studio-notebook-permissions)

## Conceder permissões para a função do IAM
<a name="studio-notebook-permissions"></a>

 A configuração do AWS Glue Studio é um pré-requisito para usar cadernos. 

Para usar cadernos no AWS Glue, seu perfil exige o seguinte:
+  Uma relação de confiança com o AWS Glue para a ação `sts:AssumeRole`, além de `sts:TagSession` se você quiser usar marcação. 
+  Uma política do IAM contendo todas as permissões para cadernos, AWS Glue e sessões interativas. 
+  Uma política do IAM para uma função de transmissão, pois a função precisa ser capaz de repassar ela própria do caderno para sessões interativas. 

 Por exemplo, ao criar um novo perfil, você pode adicionar uma política gerenciada padrão do AWS como `AWSGlueConsoleFullAccessRole` a função, e depois adicionar uma nova política para as operações do caderno e outra para a política PassRole do IAM. 

### Ações necessárias para uma relação de confiança com o AWS Glue
<a name="create-notebook-permissions-trust"></a>

 Ao iniciar uma sessão de caderno, deve adicionar `sts:AssumeRole` ao relacionamento de confiança da função que é repassada ao caderno. Se a sessão incluir etiquetas, você também deve repassar a ação `sts:TagSession`. Sem essas ações, a sessão do caderno não pode começar. 

 Por exemplo: 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "glue.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

### Políticas contendo permissões do IAM para cadernos
<a name="create-notebook-permissions-operations"></a>

 O exemplo de política a seguir descreve as permissões necessárias do AWS IAM para os cadernos. Se você estiver criando um novo perfil, crie uma política que contenha o seguinte: 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:StartNotebook",
        "glue:TerminateNotebook",
        "glue:GlueNotebookRefreshCredentials",
        "glue:DeregisterDataPreview",
        "glue:GetNotebookInstanceStatus",
        "glue:GlueNotebookAuthorize"
      ],
      "Resource": "*"
    }
  ]
}
```

------

 É possível usar as seguintes políticas do IAM para permitir acesso a recursos específicos: 
+  *AwsGlueSessionUserRestrictedNotebookServiceRole*: fornece acesso total a todos os recursos do AWS Glue, exceto para sessões. Permite que os usuários criem e usem somente as sessões de caderno que estejam associadas ao usuário. Essa política também inclui outras permissões exigidas pelo AWS Glue para gerenciar recursos do AWS Glue em outros serviços da AWS. 
+  *AwsGlueSessionUserRestrictedNotebookPolicy*: fornece permissões que permitem que os usuários criem e usem somente as sessões de caderno associadas ao usuário. Essa política também inclui permissões para permitir explicitamente que os usuários transmitam uma função de sessão restrita do AWS Glue. 

### Política do IAM para uma aprovar um perfil
<a name="create-notebook-permissions-pass-role"></a>

 Quando você cria um caderno com uma função, essa função é transmitida para sessões interativas, de modo que a mesma função possa ser usada em ambos os lugares. Por isso, a permissão `iam:PassRole` precisa fazer parte da política da função. 

 Crie uma nova política para seu perfil usando o exemplo a seguir. Substitua o número da conta e pelo seu próprio e pelo nome do perfil. 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::111122223333:role/<role_name>"
    }
  ]
}
```

------

# Configurar perfis de uso do AWS Glue
<a name="start-usage-profiles"></a>

Uma das principais vantagens de usar uma plataforma em nuvem é a flexibilidade. No entanto, com a facilidade de criação de recursos computacionais, surge o risco de aumentar os custos da nuvem quando eles não são gerenciados e não possuem barreiras. Como resultado, os administradores precisam evitar altos custos de infraestrutura e, ao mesmo tempo, permitir que os usuários trabalhem sem atritos desnecessários.

Com perfis de uso do AWS Glue, os administradores podem criar diversas classes de usuários na conta, como equipes de desenvolvedores, testadores e de produto. Cada perfil é um conjunto exclusivo de parâmetros que podem ser atribuídos a diferentes tipos de usuários. Por exemplo, os desenvolvedores podem precisar de mais trabalhadores e ter um número maior de trabalhadores máximo, enquanto as equipes de produto podem precisar de menos trabalhadores e de um valor menor de tempo limite ou tempo limite de inatividade.

**Exemplo de comportamento de trabalhos e execuções de trabalhos**  
Suponha que um trabalho seja criado pelo usuário A com o perfil A. O trabalho é salvo com determinados valores de parâmetros. O usuário B com perfil B tentará executar o trabalho.

Quando o usuário A criou o trabalho, se ele não definiu um número específico de trabalhadores, o conjunto padrão no perfil do usuário A foi aplicado e salvo com as definições do trabalho.

Quando o usuário B executa o trabalho, ele é executado com os valores que foram salvos para ele. Se o perfil do usuário B for mais restritivo e não puder ser executado com tantos trabalhadores, a execução do trabalho falhará.

**Perfil de uso como recurso**  
Um perfil de uso do AWS Glue é um recurso identificado por um nome do recurso da Amazon (ARN). Todos os controles padrão do IAM (Identity and Access Management) se aplicam, incluindo autorização baseada em ações e recursos. Os administradores devem atualizar a política do IAM dos usuários que criam recursos do AWS Glue, concedendo acesso a eles para usar os perfis.

![\[Um exemplo de perfis de uso configurados no AWS Glue.\]](http://docs.aws.amazon.com/pt_br/glue/latest/dg/images/usage-profiles-1.png)


**Topics**
+ [Criação e gerenciamento de perfis de uso](start-usage-profiles-managing.md)
+ [Perfis de uso e tarefas](start-usage-profiles-jobs.md)

# Criação e gerenciamento de perfis de uso
<a name="start-usage-profiles-managing"></a>

## Criação de um perfil de uso do AWS Glue
<a name="w2aac15c15c19b3"></a>

Os administradores devem criar perfis de uso e depois atribuí-los aos diversos usuários. Ao criar um perfil de uso, você especifica valores padrão, bem como um intervalo de valores permitidos para vários parâmetros de tarefa e sessão. Você deve configurar ao menos um parâmetro para tarefas ou sessões interativas. É possível personalizar o valor padrão a ser usado quando um valor de parâmetro não for fornecido para a tarefa e/ou configurar um limite de intervalo ou um conjunto de valores permitidos para validação se um usuário fornecer um valor de parâmetro ao usar esse perfil. 

Os *padrões* são uma prática recomendada definida pelo administrador para auxiliar os autores da tarefa. Quando um usuário cria uma nova tarefa e não define um valor de tempo limite, o sistema aplicará o tempo limite padrão do perfil de uso. Se o autor não tiver um perfil, o sistema vai aplicar os padrões de serviço do AWS Glue e salvá-los na definição de tarefa. No runtime, o AWS Glue aplica os limites definidos no perfil (mínimo, máximo, operadores permitidos).

 Após a configuração de um parâmetro, todos os outros parâmetros serão opcionais. Os parâmetros passíveis de personalização para tarefas ou sessões interativas são: 
+  **Número de operadores**: restrinja o número de operadores para evitar o uso excessivo dos recursos computacionais. É possível definir um valor padrão, mínimo e máximo. O mínimo é 1. 
+  **Tipo de operador**: restrinja os tipos de operadores relevantes para suas workloads. Você pode definir um tipo padrão e permitir tipos de operador para um perfil de usuário. 
+  **Tempo limite**: defina o tempo máximo durante o qual uma tarefa ou sessão interativa pode ser executada e consumir recursos antes de ser encerrada. Configure valores de tempo limite para evitar tarefas de longa duração.

  É possível definir um valor padrão, mínimo e máximo em minutos. O mínimo é de 1 (minuto). Embora o tempo limite padrão do AWS Glue seja de 2.880 minutos, você pode definir qualquer valor padrão no perfil de uso.

  Uma prática recomendada é a definição de um valor para “padrão”. Esse valor será usado para a criação da tarefa ou da sessão se o usuário não tiver definido nenhum valor.
+  **Tempo limite de inatividade**: defina o número de minutos em que uma sessão interativa fica inativa antes de expirar após a execução de uma célula. Defina o tempo limite de inatividade para que as sessões interativas sejam encerradas após a conclusão da tarefa. O intervalo de tempo limite de inatividade deverá estar dentro do limite do tempo limite.

  É possível definir um valor padrão, mínimo e máximo em minutos. O mínimo é de 1 (minuto). Embora o tempo limite padrão do AWS Glue seja de 2.880 minutos, você pode definir qualquer valor padrão no perfil de uso. 

  Uma prática recomendada é a definição de um valor para “padrão”. Esse valor será usado para a criação da sessão se o usuário não tiver definido nenhum valor.

**Para criar um perfil de uso do AWS Glue como administrador (console)**

1. No menu de navegação à esquerda, escolha **Gerenciamento de custos**.

1. Escolha **Criar perfil de uso**.

1. Insira o **Nome do perfil de uso** para o perfil de uso.

1. Insira uma descrição opcional que ajudará outras pessoas a reconhecer a finalidade do perfil de uso.

1. Defina pelo menos um parâmetro no perfil. Qualquer campo no formulário é um parâmetro. Por exemplo, o tempo limite mínimo de inatividade da sessão.

1. Defina qualquer tag opcional que seja aplicável ao perfil de uso.

1. Escolha **Salvar**.  
![\[Um exemplo de um administrador criando um perfil de uso no AWS Glue.\]](http://docs.aws.amazon.com/pt_br/glue/latest/dg/images/usage-profiles-2-create.png)

**Para criar um novo perfil de uso (AWS CLI)**

1. Insira o comando a seguir.

   ```
   aws glue create-usage-profile --name profile-name --configuration file://config.json --tags list-of-tags
   ```

   no qual config.json pode definir valores de parâmetros para sessões interativas (`SessionConfiguration`) e tarefas (`JobConfiguration`):

   ```
   //config.json (There is a separate blob for session/job configuration
   {
       "SessionConfiguration": {
           "timeout": {
               "DefaultValue": "2880",
               "MinValue": "100",
               "MaxValue": "4000"
           },
           "idleTimeout": {
               "DefaultValue": "30",
               "MinValue": "10",
               "MaxValue": "4000"
           },
           "workerType": {
               "DefaultValue": "G.2X",
               "AllowedValues": [
                   "G.1X",
                   "G.2X",
                   "G.4X",
                   "G.8X",
                   "G.12X",
                   "G.16X",
                   "R.1X",
                   "R.2X",
                   "R.4X",
                   "R.8X"
               ]
           },
           "numberOfWorkers": {
               "DefaultValue": "10",
               "MinValue": "1",
               "MaxValue": "10"
           }
       },
       "JobConfiguration": {
           "timeout": {
               "DefaultValue": "2880",
               "MinValue": "100",
               "MaxValue": "4000"
           },
           "workerType": {
               "DefaultValue": "G.2X",
               "AllowedValues": [
                   "G.1X",
                   "G.2X",
                   "G.4X",
                   "G.8X",
                   "G.12X",
                   "G.16X",
                   "R.1X",
                   "R.2X",
                   "R.4X",
                   "R.8X"
               ]
           },
           "numberOfWorkers": {
               "DefaultValue": "10",
               "MinValue": "1",
               "MaxValue": "10"
           }
       }
   }
   ```

1. Insira o comando a seguir para visualizar o perfil de uso criado:

   ```
   aws glue get-usage-profile --name profile-name
   ```

   A resposta:

   ```
   {
       "ProfileName": "foo",
       "Configuration": {
           "SessionConfiguration": {
               "numberOfWorkers": {
                   "DefaultValue": "10",
                   "MinValue": "1",
                   "MaxValue": "10"
               },
               "workerType": {
                   "DefaultValue": "G.2X",
                   "AllowedValues": [
                       "G.1X",
                       "G.2X",
                       "G.4X",
                       "G.8X",
                       "G.12X",
                       "G.16X",
                       "R.1X",
                       "R.2X",
                       "R.4X",
                       "R.8X"
                   ]
               },
               "timeout": {
                   "DefaultValue": "2880",
                   "MinValue": "100",
                   "MaxValue": "4000"
               },
               "idleTimeout": {
                   "DefaultValue": "30",
                   "MinValue": "10",
                   "MaxValue": "4000"
               }
           },
           "JobConfiguration": {
               "numberOfWorkers": {
                   "DefaultValue": "10",
                   "MinValue": "1",
                   "MaxValue": "10"
               },
               "workerType": {
                   "DefaultValue": "G.2X",
                   "AllowedValues": [
                       "G.1X",
                       "G.2X",
                       "G.4X",
                       "G.8X",
                       "G.12X",
                       "G.16X",
                       "R.1X",
                       "R.2X",
                       "R.4X",
                       "R.8X"
                   ]
               },
               "timeout": {
                   "DefaultValue": "2880",
                   "MinValue": "100",
                   "MaxValue": "4000"
               }
           }
       },
       "CreatedOn": "2024-01-19T23:15:24.542000+00:00"
   }
   ```

Comandos adicionais de CLI usados para gerenciar perfis de uso:
+ aws glue list-usage-profiles
+ aws glue update-usage-profile --name *profile-name* --configuration *file://config.json*
+ aws glue delete-usage-profile --name *profile-name*

## Editar um perfil de uso
<a name="w2aac15c15c19b5"></a>

Para alterar os valores do parâmetro do perfil para tarefas e sessões interativas, os administradores podem editar os perfis de uso que eles criaram.

Para editar um perfil de uso:

**Para editar um perfil de uso do AWS Glue como administrador (console)**

1. No menu de navegação à esquerda, escolha **Gerenciamento de custos**.

1. Escolha um perfil de uso para o qual você tenha permissões para editar e escolha **Editar**.

1. Faça as alterações necessárias no perfil. Por padrão, os parâmetros que já têm valores serão expandidos.

1. Escolha **Salvar edições**.  
![\[Um exemplo de um usuário editando um perfil de uso no AWS Glue.\]](http://docs.aws.amazon.com/pt_br/glue/latest/dg/images/usage-profiles-4-edit.png)

**Para editar um perfil de uso (AWS CLI)**
+ Insira o comando a seguir. A mesma sintaxe de arquivo `--configuration` é usada conforme apresentado acima no comando criar.

  ```
  aws glue update-usage-profile --name profile-name --configuration file://config.json
  ```

  no qual config.json define valores de parâmetros para sessões interativas (`SessionConfiguration`) e tarefas (`JobConfiguration`):

## Atribuição de um perfil de uso
<a name="w2aac15c15c19b7"></a>

A coluna **Status de utilização** na página **Perfis de uso** mostra se um perfil de uso está ou não atribuído a usuários. Passar o mouse sobre o status mostra as entidades atribuídas do IAM.

O administrador pode atribuir um perfil de uso do AWS Glue aos usuários/perfis que criarem recursos do AWS Glue. A atribuição de um perfil é uma combinação de duas ações:
+ Atualizar a tag de usuário/perfil do IAM com a chave `glue:UsageProfile` e, em seguida
+ Atualizar a política do IAM do usuário/perfil.

Para usuários que usam o AWS Glue Studio para criar tarefas/sessões interativas, o administrador marca com tags os seguintes perfis:
+ Para restrições em tarefas, o administrador marca o perfil de console conectado.
+ Para restrições em sessões interativas, o administrador marca com tag o perfil que o usuário fornece ao criar o notebook.

Veja a seguir um exemplo de política que o administrador precisa atualizar nos usuários/perfis do IAM que criam recursos do AWS Glue:

```
{
    "Effect": "Allow",
    "Action": [
        "glue:GetUsageProfile"
    ],
    "Resource": [
        "arn:aws:glue:us-east-1:123456789012:usageProfile/foo"
    ]
}
```

O AWS Glue valida solicitações de tarefa, execução de tarefa e sessões com base nos valores especificados no perfil de uso do AWS Glue e gera uma exceção se a solicitação não for permitida. Para APIs síncronas, haverá o lançamento de um erro para o usuário. Para caminhos assíncronos, o sistema criará uma execução de tarefa com falha com a mensagem de erro de que o parâmetro de entrada está fora do intervalo permitido para o perfil atribuído do usuário/perfil.

Para atribuir um perfil de uso a um usuário/perfil:

1. Abra o console do Identity and Access Management (IAM).

1. No painel de navegação à esquerda, escolha **Usuários** ou **Perfis**.

1. Escolha um usuário ou um perfil.

1. Escolha a guia **Tags**.

1. Selecione **Adicionar nova tag**

1. Adicione uma tag com a **Chave** de `glue:UsageProfile` e o **Valor** do nome do seu perfil de uso.

1. Selecione **Save changes** (Salvar alterações)  
![\[Um exemplo de adição de uma tag a um perfil do IAM.\]](http://docs.aws.amazon.com/pt_br/glue/latest/dg/images/usage-profiles-iam-role-tagged.png)

## Visualizar seu perfil de uso atribuído
<a name="w2aac15c15c19b9"></a>

Os usuários podem visualizar seus perfis de uso atribuídos e usá-los ao fazer chamadas de API para criar recursos de tarefa e sessão do AWS Glue ou ao iniciar uma tarefa.

As permissões de perfil são fornecidas nas políticas do IAM. O usuário poderá visualizar o perfil desde que a política de chamadas tenha a permissão `glue:UsageProfile`. Caso contrário, você receberá um erro de acesso negado.

Para visualizar um perfil de uso atribuído:

1. No menu de navegação à esquerda, escolha **Gerenciamento de custos**.

1. Escolha um perfil de uso para o qual você tenha permissões de visualizar.

![\[Um exemplo de um usuário visualizando seu perfil de uso atribuído no AWS Glue.\]](http://docs.aws.amazon.com/pt_br/glue/latest/dg/images/usage-profiles-3-view.png)


# Perfis de uso e tarefas
<a name="start-usage-profiles-jobs"></a>

## Criação de tarefas com perfis de uso
<a name="w2aac15c15c21b3"></a>

Ao criar tarefas, os limites e padrões definidos em seu perfil de uso serão aplicados. Seu perfil será atribuído à tarefa quando ela for salva.

## Execução de tarefas com perfis de uso
<a name="w2aac15c15c21b5"></a>

Quando você inicia uma execução de tarefa, o AWS Glue impõe os limites definidos no perfil do chamador. Se não houver um chamador direto, o Glue aplicará os limites do perfil atribuído à tarefa pelo autor.

**nota**  
Quando uma tarefa for executada com base em um cronograma (por fluxos de trabalho do AWS Glue ou acionadores do AWS Glue), o sistema aplicará o perfil atribuído à tarefa pelo autor.  
Quando uma tarefa for executada por um serviço externo (Step Functions, MWAA) ou por uma API `StartJobRun`, o sistema aplicará o limite do perfil do chamador.

Para fluxos de trabalho do AWS Glue ou acionadores do AWS Glue: é necessário atualizar tarefas preexistentes para salvar o novo nome do perfil, de modo que os limites do perfil (mínimo, máximo e operadores permitidos) sejam aplicados em runtime para execuções programadas.

## Visualização de um perfil de uso atribuído a tarefas
<a name="w2aac15c15c21b7"></a>

Para visualizar o perfil atribuído às suas tarefas (que será usado em runtime com fluxos de trabalho do AWS Glue ou acionadores do AWS Glue programados), você pode consultar a guia **Detalhes** da tarefa. Você também pode ver o perfil usado em execuções anteriores na guia de detalhes de execuções de tarefas.

## Atualizar ou excluir um perfil de uso anexado a uma tarefa
<a name="w2aac15c15c21b9"></a>

O perfil atribuído a uma tarefa é alterado após a atualização. Se o autor não tiver um perfil de uso atribuído, qualquer perfil anteriormente anexado à tarefa será removido dele.

# Conceitos básicos do AWS Glue Data Catalog
<a name="start-data-catalog"></a>

 O AWS Glue Data Catalog é seu armazenamento persistente de metadados técnicos. É um serviço gerenciado que você pode usar para armazenar, anotar e compartilhar metadados na Nuvem AWS. Para obter mais informações, consulte [AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/components-overview.html#data-catalog-intro). 


|  | 
| --- |
| O console do AWS Glue e algumas interfaces do usuário foram atualizadas recentemente. | 

## Visão geral
<a name="start-data-catalog-overview"></a>

 É possível usar este tutorial para criar o primeiro Catálogo de dados AWS Glue, que usa um bucket do Amazon S3 como origem de dados. 

 Neste tutorial, você fará o seguinte usando o console do AWS Glue: 

1.  Criar um banco de dados. 

1.  Criar uma tabela 

1.  Usar um bucket do Amazon S3 como fonte de dados 

 Após concluir essas etapas, você terá usado com êxito um bucket do Amazon S3 como fonte de dados para preencher o Catálogo de dado AWS Glue. 

## Etapa 1: criar um banco de dados
<a name="start-data-catalog-database"></a>

 Para começar, faça login no Console de gerenciamento da AWS e abra o [console do AWS Glue](https://console.aws.amazon.com/glue). 

 **Para criar um banco de dados usando o console do AWS Glue: ** 

1.  No console do AWS Glue, escolha **Databases** (Bancos de dados) em **Data catalog** (Catálogo de dados) no menu à esquerda. 

1.  Selecione **Adicionar banco de dados**. 

1.  Na página Criar um banco de dados, insira um nome para o banco de dados. Na seção **Localização - *opcional***, defina a localização do URI para uso pelos clientes do catálogo de dados. Se não souber, você poderá continuar com a criação do banco de dados. 

1.  (Opcional). Insira uma descrição para o banco de dados. 

1.  Selecione **Criar banco de dados**. 

 Parabéns, você acabou de configurar seu primeiro banco de dados usando o console AWS Glue. Seu novo banco de dados aparecerá na lista de bancos de dados disponíveis. Você pode editar o banco de dados escolhendo o nome do banco de dados no painel **Bancos de dados**. 

 **Próximas etapas** 

 **Outras formas de criar um banco de dados: ** 

 Você acabou de criar um banco de dados usando o console AWS Glue, mas existem outras maneiras de criar um banco de dados: 
+ Você pode usar crawlers para criar um banco de dados e tabelas para você automaticamente. Para configurar um banco de dados usando crawlers, consulte[Trabalhar com crawlers no console AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/console-crawlers.html). 
+  Você pode usar os modelos CloudFormation. Consulte [Criar recursos AWS Glue usando modelos AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/populate-with-cloudformation-templates.html). 
+  Você também pode criar um banco de dados usando as AWS Glueoperações de API do banco de dados. 

   Para criar um banco de dados usando a operação `create`, estruture a solicitação, incluindo os parâmetros `DatabaseInput` (obrigatórios). 

   Por exemplo:   
****  
 Veja a seguir exemplos de como você pode usar a CLI, Boto3 ou DDL para definir uma tabela com base no mesmo arquivo flight\$1data.csv do bucket do S3 usado no tutorial.   

  ```
  aws glue create-database --database-input "{\"Name\":\"clidb\"}"                                              
  ```

  ```
  glueClient = boto3.client('glue')
  
  response = glueClient.create_database(
      DatabaseInput={
          'Name': 'boto3db'
      }
  )
  ```

 Para obter mais informações sobre os tipos de dados, estrutura e operações da API do banco de dados, consulte [API do banco de dados](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-databases.html). 

 **Próximas etapas** 

 Na próxima seção, você criará uma tabela e adicionará essa tabela ao banco de dados. 

Você também pode explorar as configurações e permissões do seu Catálogo de dados. Consulte [Trabalhar com configurações de catálogo de dados no console AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/console-data-catalog-settings.html). 

## Etapa 2. Criar uma tabela
<a name="start-data-catalog-table"></a>

 Nesta etapa, você cria uma tabela usando o console AWS Glue. 

1.  No console AWS Glue, escolha **Tables (Tabelas)** no menu à esquerda. 

1.  Escolha **Add table (Adicionar tabela)**. 

1.  Defina as propriedades da tabela inserindo um nome para a tabela em **Table details** (Detalhes da tabela). 

1.  No seção **Databases** (Banco de dados), escolha no menu suspenso o banco de dados que criou na Etapa 1. 

1.  Na seção **Add a data store** (Adicionar um datastore), a opção **S3** será selecionada por padrão como o tipo de fonte. 

1.  Em **Data is located in** (Dados localizados em), escolha **Specified path in another account** (Caminho especificado em outra conta). 

1. Copie e cole o caminho para o campo de entrada **Include path** (Incluir caminho):

   `s3://crawler-public-us-west-2/flight/2016/csv/`

1.  Na seção **Data format** (Formato de dados), para **Classification** (Classificação), escolha **CSV** e para **Delimiter** (Delimitador), escolha **comma (,)** (vírgula [,]). Escolha **Próximo**. 

1. Será solicitado que você defina um esquema. O esquema define a estrutura e o formato de um registro de dados. Selecione **Add column (Adicionar coluna)**. (Para obter mais informações, consulte [Schema registries (Registros de esquema](https://docs.aws.amazon.com/glue/latest/dg/schema-registry.html#schema-registry-schemas.html)).

1.  Especifique as propriedades da coluna: 

   1. Insira um nome de coluna. 

   1. Para o **Column type (Tipo de coluna)**, 'string' já está selecionada por padrão.

   1. Para o **Column number (Número da coluna)**, 'string' já está selecionada por padrão.

   1. Escolha **Adicionar**.

1.  Você é solicitado a adicionar índices de partição. Isso é opcional. Para pular esta etapa, escolha, escolha **Next (Próximo)**. 

1.  Um resumo das propriedades da tabela é exibido. Se tudo estiver conforme o esperado, escolha **Criar**. Caso contrário, escolha **Voltar** e faça edições conforme for necessário. 

 Parabéns, você criou uma tabela manualmente e a associou a um banco de dados. Sua tabela recém-criada aparecerá no painel Tabelas. No painel, você pode modificar e gerenciar suas tabelas. 

 Para obter mais informações, consulte [Working with Tables (Trabalhar com tabelas) no console AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/console-tables.html). 

## Next steps (Próximas etapas)
<a name="start-data-catalog-next-steps"></a>

 **Next steps (Próximas etapas** 

 Agora que o Catálogo de dados está preenchido, você pode começar a criar trabalhos no AWS Glue. Consulte [Criar trabalhos de ETL visual com o AWS Glue Studio](https://docs.aws.amazon.com/glue/latest/dg/author-job-glue.html). 

 Além de usar o console, há outras maneiras de definir tabelas no Catálogo de dados, incluindo:
+  [Criar e executar um crawler](https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html) 
+  [Adicionar classificadores a um crawler no AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/add-classifier.html) 
+  [Usar a API da tabelaAWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-tables.html) 
+  [ Usar o modelo AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/populate-with-cloudformation-templates.html) 
+  [ Migrar um metastore do Apache Hive](https://github.com/aws-samples/aws-glue-samples/tree/master/utilities/Hive_metastore_migration) 
+  [Usar o AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/glue/create-table.html), Boto3 ou linguagem de definição de dados (DDL)   
****  
 Veja a seguir exemplos de como você pode usar a CLI, Boto3 ou DDL para definir uma tabela com base no mesmo arquivo flight\$1data.csv do bucket do S3 usado no tutorial.   
 Consulte a documentação sobre como estruturar um comando AWS CLI. O exemplo de CLI contém a sintaxe JSON para o valor 'aws glue create-table --table-input'.   

  ```
  {
          "Name": "flights_data_cli",
          "StorageDescriptor": {
              "Columns": [
                  {
                      "Name": "year",
                      "Type": "bigint"
                  },
                  {
                      "Name": "quarter",
                      "Type": "bigint"
                  }
              ],
              "Location": "s3://crawler-public-us-west-2/flight/2016/csv",
              "InputFormat": "org.apache.hadoop.mapred.TextInputFormat",
              "OutputFormat": "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat",
              "Compressed": false,
              "NumberOfBuckets": -1,
              "SerdeInfo": {
                  "SerializationLibrary": "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe",
                  "Parameters": {
                      "field.delim": ",",
                      "serialization.format": ","
                  }
              }
          },
          "PartitionKeys": [
              {
                  "Name": "mon",
                  "Type": "string"
              }
          ],
          "TableType": "EXTERNAL_TABLE",
          "Parameters": {
              "EXTERNAL": "TRUE",
              "classification": "csv",
              "columnsOrdered": "true",
              "compressionType": "none",
              "delimiter": ",",
              "skip.header.line.count": "1",
              "typeOfData": "file"
          }
      }
  ```

  ```
  import boto3
  
  glue_client = boto3.client("glue")
  
  response = glue_client.create_table(
      DatabaseName='sampledb',
      TableInput={
          'Name': 'flights_data_manual',
      'StorageDescriptor': {
        'Columns': [{
          'Name': 'year',
          'Type': 'bigint'
        }, {
          'Name': 'quarter',
          'Type': 'bigint'
        }],
        'Location': 's3://crawler-public-us-west-2/flight/2016/csv',
        'InputFormat': 'org.apache.hadoop.mapred.TextInputFormat',
        'OutputFormat': 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat',
        'Compressed': False,
        'NumberOfBuckets': -1,
        'SerdeInfo': {
          'SerializationLibrary': 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe',
          'Parameters': {
            'field.delim': ',',
            'serialization.format': ','
          }
        },
      },
      'PartitionKeys': [{
        'Name': 'mon',
        'Type': 'string'
      }],
      'TableType': 'EXTERNAL_TABLE',
      'Parameters': {
        'EXTERNAL': 'TRUE',
        'classification': 'csv',
        'columnsOrdered': 'true',
        'compressionType': 'none',
        'delimiter': ',',
        'skip.header.line.count': '1',
        'typeOfData': 'file'
      }
      }
  )
  ```

  ```
  CREATE EXTERNAL TABLE `sampledb`.`flights_data` (
    `year` bigint, 
    `quarter` bigint)
  PARTITIONED BY ( 
    `mon` string)
  ROW FORMAT DELIMITED 
    FIELDS TERMINATED BY ',' 
  STORED AS INPUTFORMAT 
    'org.apache.hadoop.mapred.TextInputFormat' 
  OUTPUTFORMAT 
    'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
  LOCATION
    's3://crawler-public-us-west-2/flight/2016/csv/'
  TBLPROPERTIES (
    'classification'='csv', 
    'columnsOrdered'='true', 
    'compressionType'='none', 
    'delimiter'=',', 
    'skip.header.line.count'='1', 
    'typeOfData'='file')
  ```

# Configurar o acesso de rede aos armazenamentos de dados
<a name="start-connecting"></a>

Para executar trabalhos de extração, transformação e carregamento (ETL), o AWS Glue precisa de acesso aos armazenamentos de dados. Se não for necessário executar um trabalho na sub-rede da sua nuvem privada virtual (VPC), por exemplo: transformação de dados do Amazon S3 para o Amazon S3, nenhuma configuração adicional será necessária.

Se for necessário executar um trabalho na sub-rede de sua VPC, por exemplo, transformar dados de um armazenamento de dados JDBC em uma sub-rede privada, o AWS Glue configurará [interfaces de rede elástica](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ElasticNetworkInterfaces.html) que permitem que os trabalhos se conectem com segurança a outros recursos dentro da sua VPC. Cada interface de rede elástica recebe um endereço IP privado do intervalo de endereços IP na sub-rede que você especificou. Nenhum endereço IP público atribuído. Grupos de segurança especificados na conexão do AWS Glue são aplicados a cada uma das interfaces de rede elásticas. Para obter mais informações, consulte [Configurar um Amazon VPC para conexões JDBC aos armazenamentos de dados do Amazon RDS desde o AWS Glue](setup-vpc-for-glue-access.md). 

Todos os armazenamentos de dados JDBC acessados pelo trabalho devem estar disponíveis na sub-rede da VPC. Para acessar o Amazon S3 na sua VPC, é necessário ter um [endpoint da VPC](vpc-endpoints-s3.md). Se o seu trabalho precisar acessar recursos da VPC e a Internet pública, a VPC precisará conter uma instância de gateway NAT (Network Address Translation).

 Um trabalho ou endpoint de desenvolvimento pode acessar somente uma VPC (e sub-rede) por vez. Se você precisar acessar armazenamentos de dados em várias VPCs, as opções são as seguintes: 
+ Use o emparelhamento de VPCs para acessar os armazenamentos de dados. Para obter mais informações sobre o emparelhamento de VPCs, consulte [Conceitos básicos sobre o emparelhamento de VPCs](https://docs.aws.amazon.com/vpc/latest/peering/vpc-peering-basics.html) 
+ Use um bucket do Amazon S3 como um local de armazenamento intermediário. Divida o trabalho em dois, com a saída do Amazon S3 do trabalho 1 como a entrada do trabalho 2.

Para obter detalhes sobre como conectar a um armazenamento de dados do Amazon Redshift usando o Amazon VPC, consulte [Configurar conexões do Redshift](aws-glue-programming-etl-connect-redshift-home.md#aws-glue-programming-etl-connect-redshift-configure).

Para obter detalhes sobre como conectar a um armazenamento de dados do Amazon RDS usando o Amazon VPC, consulte [Configurar um Amazon VPC para conexões JDBC aos armazenamentos de dados do Amazon RDS desde o AWS Glue](setup-vpc-for-glue-access.md).

Depois que as regras necessárias são definidas no Amazon VPC, você cria uma conexão no AWS Glue com as propriedades necessárias para conectar com seus armazenamentos de dados. Para obter mais informações sobre a conexão, consulte [Conectar a dados](glue-connections.md).

**nota**  
Configure seu ambiente de DNS para o AWS Glue. Para obter mais informações, consulte [Configurar o DNS na VPC](set-up-vpc-dns.md). 

**Topics**
+ [Configurar uma VPC para se conectar ao PyPI para AWS Glue](setup-vpc-for-pypi.md)
+ [Configurar o DNS na VPC](set-up-vpc-dns.md)

# Configurar uma VPC para se conectar ao PyPI para AWS Glue
<a name="setup-vpc-for-pypi"></a>

O Python Package Index (PyPI) é um repositório de software para a linguagem de programação Python. Este tópico aborda os detalhes necessários para oferecer suporte ao uso de pacotes instalados pelo pip (conforme especificado pelo criador da sessão usando o sinalizador `--additional-python-modules`).

O uso de sessões interativas do AWS Glue com um conector resulta no uso da rede VPC por meio da sub-rede especificada para o conector. Consequentemente, os serviços do AWS e outros destinos de rede não estão disponíveis, a menos que você defina uma configuração especial.

As resoluções para esse problema incluem:
+ Uso de um gateway da internet que seja acessível por sua sessão.
+ Configuração e uso de um bucket S3 com um repositório PyPI/simple contendo o fechamento transitivo das dependências de um conjunto de pacotes.
+ Uso de um repositório CodeArtifact que está espelhando o PyPI e anexado à sua VPC.

## Configuração de um gateway da Internet
<a name="setup-vpc-for-pypi-internet-gateway"></a>

Os aspectos técnicos são detalhados em [Casos de uso do gateway NAT](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-scenarios.html), mas observe esses requisitos para usar o `--additional-python-modules`. Especificamente, o `--additional-python-modules` requer acesso ao pypi.org, que é determinado pela configuração da sua VPC. Observe os seguintes requisitos:

1. A exigência de instalar módulos adicionais do python via pip install para uma sessão do usuário. Se a sessão usar um conector, sua configuração poderá ser afetada.

1. Quando um conector está sendo usado com o `--additional-python-modules`, quando a sessão é iniciada, a sub-rede associada aos `PhysicalConnectionRequirements` do conector deve fornecer um caminho de rede para alcançar pypi.org.

1. Você deve determinar se sua configuração está correta ou não.

## Configurar um bucket do Amazon S3 para hospedar um repositório PyPI/simple de destino
<a name="setup-vpc-for-pypi-s3-bucket"></a>

Este exemplo configura um espelho PyPI no Amazon S3 para um conjunto de pacotes e suas dependências.

Para configurar o espelho PyPI para um conjunto de pacotes:

```
# pip download all the dependencies
pip download -d s3pypi --only-binary :all: plotly gglplot
pip download -d s3pypi --platform manylinux_2_17_x86_64 --only-binary :all: psycopg2-binary
# create and upload the pypi/simple index and wheel files to the s3 bucket
s3pypi -b test-domain-name --put-root-index -v s3pypi/*
```

Se você já tiver um repositório de artefatos existente, ele terá um URL de índice para uso do pip que você pode fornecer no lugar do URL de exemplo para o bucket do Amazon S3, conforme descrito acima.

Para usar o index-url personalizado, com alguns pacotes de exemplo:

```
%%configure
{
    "--additional-python-modules": "psycopg2_binary==2.9.5",
    "python-modules-installer-option": "--no-cache-dir --verbose --index-url https://test-domain-name.s3.amazonaws.com/ --trusted-host test-domain-name.s3.amazonaws.com"
}
```

## Configurar um espelho CodeArtifact de pypi conectado à sua VPC
<a name="setup-vpc-for-pypi-code-artifact"></a>

Para configurar um espelho:

1. Crie um repositório na mesma região da sub-rede usada pelo conector.

   Selecione `Public upstream repositories` e escolha `pypi-store`.

1. Forneça acesso ao repositório da VPC para a sub-rede.

1. Especifique o `--index-url` correto usando o `python-modules-installer-option`. 

   ```
   %%configure
   {
       "--additional-python-modules": "psycopg2_binary==2.9.5",
       "python-modules-installer-option": "--no-cache-dir --verbose --index-url https://test-domain-name.s3.amazonaws.com/ --trusted-host test-domain-name.s3.amazonaws.com"
   }
   ```

Para obter mais informações, consulte [Use CodeArtifact from a VPC](https://docs.aws.amazon.com/codeartifact/latest/ug/use-codeartifact-from-vpc.html).

# Configurar o DNS na VPC
<a name="set-up-vpc-dns"></a>

Domain Name System (DNS) é um padrão por meio do qual os nomes usados na Internet são determinados de acordo com os endereços IP correspondentes. Um nome de host do DNS denomina exclusivamente um computador e consiste em um nome de host e em um nome de domínio. Os servidores DNS determinam os nomes do host DNS de acordo com os endereços IP correspondentes.

Para configurar o DNS na sua VPC, certifique-se de que os nomes de host do DNS e a resolução de DNS estão habilitados na VPC. Os atributos de rede `enableDnsHostnames` e `enableDnsSupport` da VPC precisam ser definidos como `true`. Para visualizar e modificar esses atributos, acesse o console da VPC em [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/). 

Para obter mais informações, consulte [Como usar o DNS com sua VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html). Além disso, é possível usar a AWS CLI e chamar o comando [modify-vpc-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-vpc-attribute.html) para configurar os atributos de rede da VPC.

**nota**  
Se você estiver usando o Route 53, confirme se a sua configuração não substitui os atributos de rede do DNS.

# Configurar criptografia no AWS Glue
<a name="set-up-encryption"></a>

O seguinte exemplo de fluxo de trabalho destaca as opções a serem configuradas quando você usa criptografia com AWS Glue. O exemplo demonstra o uso de chaves específicas do AWS Key Management Service (AWS KMS), mas você pode escolher outras configurações com base nas suas necessidades específicas. Esse fluxo de trabalho destaca apenas as opções que pertencem a criptografia ao configurar o AWS Glue. 

1. Se o usuário do console do AWS Glue não usar uma política de permissões que permita todas as operações de API do AWS Glue (por exemplo, `"glue:*"`), verifique se as seguintes ações são permitidas:
   + `"glue:GetDataCatalogEncryptionSettings"`
   + `"glue:PutDataCatalogEncryptionSettings"`
   + `"glue:CreateSecurityConfiguration"`
   + `"glue:GetSecurityConfiguration"`
   + `"glue:GetSecurityConfigurations"`
   + `"glue:DeleteSecurityConfiguration"`

1. Qualquer cliente que acesse ou grave em um catálogo criptografado, ou seja, qualquer usuário do console, crawler, trabalho ou endpoint de desenvolvimento, precisa das permissões a seguir.

1. Qualquer usuário ou função que acesse uma senha de conexão criptografada precisa das permissões a seguir.

1. A função de qualquer trabalho de extração, transformação e carregamento (ETL) que grave dados criptografados no Amazon S3 precisa das permissões a seguir.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": {
       "Effect": "Allow",
       "Action": [
         "kms:Decrypt",
         "kms:Encrypt",
         "kms:GenerateDataKey"
       ],
       "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-id"
     }
   }
   ```

------

1. Qualquer crawler ou trabalho de ETL que grave Amazon CloudWatch Logs criptografados requer as permissões a seguir nas políticas de chave e do IAM.

   Na política de chave (não na política do IAM):

   ```
   {
    	"Effect": "Allow",
    	"Principal": {
    		"Service": "logs.region.amazonaws.com"
    	},
    	"Action": [
    		"kms:Encrypt*",
    		"kms:Decrypt*",
    		"kms:ReEncrypt*",
    		"kms:GenerateDataKey*",
    		"kms:Describe*"
    	],
    	"Resource": "<arn of key used for ETL/crawler cloudwatch encryption>"
    }
   ```

   Para obter mais informações sobre políticas de chave, consulte [Usar políticas de chave no AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) no *Guia do desenvolvedor do AWS Key Management Service*.

   Na política do IAM, anexe a permissão `logs:AssociateKmsKey`:

   ```
   {
    	"Effect": "Allow",
    	"Principal": {
    		"Service": "logs.region.amazonaws.com"
    	},
    	"Action": [
    		"logs:AssociateKmsKey"
    	],
    	"Resource": "<arn of key used for ETL/crawler cloudwatch encryption>"
    }
   ```

1. Qualquer trabalho de ETL que use um marcador de trabalho criptografado precisa das permissões a seguir.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": {
       "Effect": "Allow",
       "Action": [
         "kms:Decrypt",
         "kms:Encrypt"
       ],
       "Resource": "arn:aws:kms:us-east-1:111122223333:key/*"
     }
   }
   ```

------

1. No console do AWS Glue, selecione **Settings (Configurações)** no painel de navegação.

   1. Na página **Data catalog settings** (Configurações do catálogo de dados), criptografe o Data Catalog selecionando **Metadata encryption** (Criptografia de metadados). Essa opção criptografa todos os objetos no Data Catalog com a chave do AWS KMS que você escolher.

   1.  Em **Chave do AWS KMS**, escolha **aws/glue**. Também é possível escolher uma chave do AWS KMS criada por você.
**Importante**  
AWS GlueO só oferece suporte a chaves mestras do cliente (CMKs) simétricas. A lista de **chaves do AWS KMS** exibe apenas chaves simétricas. No entanto, se você selecionar Escolher um **ARN de chave AWS KMS**, o console permitirá que você insira um ARN para qualquer tipo de chave. Certifique-se de inserir apenas ARNs para chaves simétricas.

   Quando a criptografia estiver habilitada, o cliente que estiver acessando o Data Catalog deverá ter permissões do AWS KMS. 

1. No painel de navegação, escolha **Security configurations (Configurações de segurança)**. Uma configuração de segurança é um conjunto de propriedades de segurança que pode ser usado para configurar processos do AWS Glue. Em seguida, escolha **Add security configuration (Adicionar configuração de segurança)**. Na configuração, escolha qualquer uma das opções a seguir: 

   1. Selecione **S3 encryption (Criptografia do S3)**. Para **Encryption mode (Modo de criptografia)**, escolha **SSE-KMS**. Para a **chave do AWS KMS**, escolha **aws/s3** (certifique-se de que o usuário tenha permissão para usar essa chave). Isso permite que os dados gravados pelo trabalho no Amazon S3 usem a chave do AWS KMS do AWS Glue gerenciada pela AWS.

   1. Selecione **CloudWatch logs encryption (Criptografia do CloudWatch Logs)** e escolha uma CMK. (Verifique se o usuário tem permissão para usar essa chave). Para obter mais informações, consulte [Criptografar dados de log no CloudWatch Logs usando o AWS KMS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html) no *Guia do desenvolvedor do AWS Key Management Service*.
**Importante**  
AWS GlueO só oferece suporte a chaves mestras do cliente (CMKs) simétricas. A lista de **chaves do AWS KMS** exibe apenas chaves simétricas. No entanto, se você selecionar Escolher um **ARN de chave AWS KMS**, o console permitirá que você insira um ARN para qualquer tipo de chave. Certifique-se de inserir apenas ARNs para chaves simétricas.

   1. Selecione **Advanced properties (Propriedades avançadas)** e **Job bookmark encryption (Criptografia do marcador de trabalho)**. Para a **chave do AWS KMS**, escolha **aws/glue** (certifique-se de que o usuário tenha permissão para usar essa chave). Isso habilita a criptografia de marcadores de trabalho gravados no Amazon S3 com a chave do AWS KMS do AWS Glue.

1. No painel de navegação, escolha ** Connections**.

   1. Escolha **Add connection (Adicionar conexão)** para criar uma conexão com o armazenamento de dados JDBC (Java Database Connectivity) que é o destino do seu trabalho de ETL.

   1. Para garantir que a criptografia do Secure Sockets Layer (SSL) seja usada, selecione **Require SSL connection (Exigir conexão SSL)** e teste a conexão.

1. No painel de navegação, escolha **Tarefas**. 

   1. Escolha **Add job (Adicionar trabalho)** para criar um trabalho que transforme dados. 

   1. Na definição de tarefa, escolha a configuração de segurança que você criou. 

1. No console do AWS Glue, execute o trabalho sob demanda. Verifique se os dados do Amazon S3 e os CloudWatch Logs gravados pelo trabalho, e os marcadores de trabalho, estão criptografados.

# Configurar redes para desenvolvimento para o AWS Glue
<a name="start-development-endpoint"></a>

Para executar seus scripts de extração, transformação e carregamento (ETL) com o AWS Glue, você pode desenvolvê-los e testá-los usando um *endpoint de desenvolvimento*. Os endpoints de desenvolvimento não são suportados para uso com trabalhos do AWS Glue versão 2.0. Para as versões 2.0 e posteriores, o método de desenvolvimento preferido é usar o Jupyter Notebook com um dos kernels AWS Glue. Para obter mais informações, consulte [Conceitos básicos das sessões interativas do AWS Glue](interactive-sessions.md).

## Configurar a rede para um endpoint de desenvolvimento
<a name="setup-vpc-for-development-endpoint"></a>

Ao configurar um endpoint de desenvolvimento, você especifica uma nuvem virtual privada (VPC), uma sub-rede e security groups.

**nota**  
Configure seu ambiente de DNS para o AWS Glue. Para obter mais informações, consulte [Configurar o DNS na VPC](set-up-vpc-dns.md). 

Para permitir que o AWS Glue acesse os recursos necessários, adicione uma linha na tabela de rotas da sua sub-rede para associar uma lista de prefixos para o Amazon S3 ao endpoint da VPC. É necessário um ID de lista de prefixos para criar uma regra de grupo de segurança de saída que permita que o tráfego de uma VPC acesse um produto da AWS por meio de um endpoint da VPC. Para facilitar a conexão com um servidor de cadernos associado a esse endpoint de desenvolvimento, na máquina local, adicione uma linha à tabela de rotas para incluir um ID de gateway da Internet. Para obter mais informações, consulte [VPC Endpoints](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html). Atualize a tabela de rotas da sub-rede de modo que ela fique semelhante a esta tabela: 


****  

| Destination (Destino) | Destino | 
| --- | --- | 
| 10.0.0.0/16 | local | 
| pl-id para o Amazon S3 | vpce-id | 
| 0.0.0.0/0 | igw-xxxx | 

 Para permitir que o AWS Glue se comunique entre seus componentes, especifique um grupo de segurança com uma regra de entrada de autorreferência para todas as portas TCP. Ao criar uma regra de autorreferência, você pode restringir a origem ao mesmo security group na VPC e fechá-la para todas as redes. O security group padrão para sua VPC pode já conter uma regra de entrada de autorreferenciada para ALL Traffic. 

**Para configurar um security group**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação esquerdo, escolha **Security Groups**.

1. Escolha um security group existente na lista ou **Create Security Group** para usar com o endpoint de desenvolvimento. 

1. No painel do security group, navegue até a guia **Inbound**.

1. Adicione uma regra de autorreferência para permitir que os componentes do AWS Glue se comuniquem. Especificamente, adicione ou confirme que existe uma regra de **Type** `All TCP`, que **Protocol** é `TCP`, **Port Range** inclui todas as portas e **Source** e **Group ID** apresentam o mesmo nome de grupo de segurança. 

   A regra de entrada é semelhante a esta:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/glue/latest/dg/start-development-endpoint.html)

   Veja a seguir um exemplo de uma regra de entrada de autorreferência:  
![\[Imagem mostrando o exemplo de uma regra de entrada de autorreferência.\]](http://docs.aws.amazon.com/pt_br/glue/latest/dg/images/SetupSecurityGroup-Start.png)

1. Adicione uma regra para o tráfego de saída também. Abra um tráfego de saída para todas as portas ou crie uma regra de autorreferência de **Type** `All TCP`. **Protocol** deve ser `TCP`, **Port Range** deve incluir todas as portas e **Source** e **Group ID** devem apresentar o mesmo nome de security group. 

   A regra de saída é semelhante a uma dessas regras:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/glue/latest/dg/start-development-endpoint.html)

## Configurar o Amazon EC2 para um servidor de cadernos
<a name="setup-vpc-for-notebook-server"></a>

 Com um endpoint de desenvolvimento, você pode criar um servidor de caderno para testar seus scripts de ETL com cadernos Jupyter. Para ativar a comunicação com seu notebook, especifique um security group com regras de entrada para HTTPS (porta 443) e SSH (porta 22). Verifique se a origem da regra é 0.0.0.0/0 ou o endereço IP da máquina que está se conectando ao notebook. 

**Para configurar um security group**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação esquerdo, escolha **Security Groups**.

1. Escolha um security group existente na lista ou **Create Security Group** para usar com o servidor de notebook. O security group associado ao seu endpoint de desenvolvimento também é usado para criar seu servidor de notebook.

1. No painel do security group, navegue até a guia **Inbound**.

1. Adicione regras de entrada semelhantes a esta:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/glue/latest/dg/start-development-endpoint.html)

   Veja a seguir um exemplo das regras de entrada para o security group:  
![\[Imagem mostrando um exemplo das regras de entrada para o grupo de segurança.\]](http://docs.aws.amazon.com/pt_br/glue/latest/dg/images/SetupSecurityGroupNotebook-Start.png)