Introdução à propagação de identidade confiável em ETL do AWS Glue
Esta seção ajuda você a configurar a aplicação AWS Glue com sessões interativas para integração com o Centro de Identidade do IAM e permitir a Propagação de identidade confiável.
Pré-requisitos
Uma instância do Centro de Identidade na região da AWS em que você deseja criar sessões interativas da AWS Glue habilitadas para propagação de identidade confiável. Uma instância do Centro de Identidade só pode existir em uma única região para uma conta da AWS. Para obter mais informações, consulte Habilitar o Centro de Identidade do IAM e Provisionar os usuários e grupos da sua fonte de identidades no Centro de Identidade do IAM.
-
Habilite a propagação de identidade confiável para serviços downstream, como Lake Formation, Concessão de acesso do Amazon S3 ou cluster do Amazon Redshift com o qual a workload interativa interage para acessar dados.
Permissões necessárias para conectar ETL do AWS Glue ao Centro de Identidade do IAM
Criar um perfil do IAM
O perfil que cria a conexão do Centro de Identidade do IAM exige permissões para criar e modificar a configuração da aplicação no AWS Glue e no Centro de Identidade do IAM, conforme a política incorporada a seguir.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:CreateGlueIdentityCenterConfiguration", "sso:CreateApplication", "sso:PutApplicationAssignmentConfiguration", "sso:PutApplicationAuthenticationMethod", "sso:PutApplicationGrant", "sso:PutApplicationAccessScope", "sso:ListInstances" ], "Resource": [ "*" ] } ] }
As políticas incorporadas a seguir contêm permissões específicas necessárias para visualizar, atualizar e excluir propriedades da integração do AWS Glue com o Centro de Identidade do IAM.
Use a política incorporada a seguir para que um perfil do IAM visualize uma integração do AWS Glue ao Centro de Identidade do IAM.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:GetGlueIdentityCenterConfiguration" ], "Resource": [ "*" ] } ] }
Use a política incorporada a seguir para que um perfil do IAM atualize uma integração do AWS Glue ao Centro de Identidade do IAM.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:UpdateGlueIdentityCenterConfiguration", "sso:PutApplicationAccessScope", "sso:DeleteApplicationAccessScope" ], "Resource": [ "*" ] } ] }
Use a política incorporada a seguir para que um perfil do IAM exclua uma integração do AWS Glue do Centro de Identidade do IAM.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:DeleteGlueIdentityCenterConfiguration", "sso:DeleteApplication" ], "Resource": [ "*" ] } ] }
Descrição das permissões
glue:CreateGlueIdentityCenterConfiguration
: concede permissão para criar uma configuração de IdC do AWS Glue.glue:GetGlueIdentityCenterConfiguration
: concede permissão para obter uma configuração de IdC existente.glue:DeleteGlueIdentityCenterConfiguration
: concede permissão para excluir uma configuração de IdC do AWS Glue existente.glue:UpdateGlueIdentityCenterConfiguration
: concede permissão para atualizar uma configuração de IdC do AWS Glue existente.sso:CreateApplication
: concede permissão para criar uma aplicação do Centro de Identidade do IAM gerenciada pelo AWS Glue.sso:DescribeApplication
: concede permissão para descrever uma aplicação do Centro de Identidade do IAM gerenciada pelo AWS Glue.sso:DeleteApplication
: concede permissão para excluir uma aplicação do Centro de Identidade do IAM gerenciada pelo AWS Glue.sso:UpdateApplication
: concede permissão para atualizar uma aplicação do Centro de Identidade do IAM gerenciada pelo AWS Glue.sso:PutApplicationGrant
: concede permissão para aplicar as concessões token-exchange, introspectToken, refreshToken e RevokeToken à aplicação de IdC.sso:PutApplicationAuthenticationMethod
: concede permissão para colocar authenticationMethod na aplicação de IdC gerenciada pelo AWS Glue que permite que a entidade principal do serviço do AWS Glue interaja com a aplicação de IdC.sso:PutApplicationAccessScope
: concede permissão para adicionar ou atualizar a lista de escopos de serviços downstream autorizados na aplicação de IdC gerenciada pelo AWS Glue.sso:DeleteApplicationAccessScope
: concede permissão para excluir escopos downstream se um escopo é removido para a aplicação de IdC gerenciada pelo AWS Glue.sso:PutApplicationAssignmentConfiguration
: concede permissão para definir a configuração "User-assignment-not-required" na aplicação de IdC.sso:ListInstances
: concede permissão para listar instâncias e validar o InstanceARN do IDC que você especifica no parâmetro de configuração do Centro de Identidade.
Conectar o AWS Glue com o Centro de Identidade do IAM
Quando o AWS Glue está conectado ao Centro de Identidade do IAM, ele cria uma única aplicação de IdC gerenciada por conta. O exemplo a seguir mostra como é possível conectar AWS Glue ao Centro de Identidade do IAM:
aws glue create-glue-identity-center-configuration \ --instance-arn arn:aws:sso:::instance/ssoins-123456789 \ --scopes '["s3:access_grants:read_write", "redshift:connect","lakeformation:query"]'
Para atualizar os escopos da aplicação gerenciada (isso geralmente é feito para permitir a propagação para mais serviços downstream), é possível usar:
aws glue update-glue-identity-center-configuration \ --scopes '["s3:access_grants:read_write", "redshift:connect","lakeformation:query"]'
O parâmetro Scopes é opcional e todos os escopos serão adicionados se não forem fornecidos. Os valores aceitos são s3:access_grants:read_write
, redshift:connect
e lakeformation:query
.
Para obter os detalhes da configuração, você pode usar:
aws glue get-glue-identity-center-configuration
É possível excluir a conexão entre o AWS Glue e o Centro de Identidade do IAM por meio do seguinte comando:
aws glue delete-glue-identity-center-configuration
nota
O AWS Glue cria uma aplicação do Centro de Identidade gerenciada por serviço em sua conta que o serviço utiliza para validações de identidade e propagação de identidade para serviços downstream. A aplicação de Centro de Identidade gerenciada criada pelo AWS Glue é compartilhada em todas as sessões confiáveis de propagação de identidade em sua conta.
Aviso: não modifique manualmente as configurações na aplicação de Centro de Identidade gerenciada. Qualquer alteração pode afetar todas as sessões interativas do AWS Glue para propagação de identidade confiável em sua conta.
Criar uma sessão interativa do AWS Glue com a propagação de identidade confiável habilitada
Após conectar o AWS Glue ao Centro de Identidade do IAM, você pode usar credenciais de perfil com identidade aprimorada para criar uma sessão interativa do AWS Glue. Não é necessário passar parâmetros adicionais ao criar uma sessão do AWS Glue 5.0. Como o AWS Glue está conectado ao Centro de Identidade do IAM, se o AWS Glue detectar credenciais de perfil com identidade aprimorada, ele propagará automaticamente as informações de identidade para os serviços downstream que são chamados como parte de suas declarações. No entanto, o perfil de tempo de execução da sessão precisa ter a permissão sts:SetContext
conforme descrito abaixo.
Permissões do perfil de tempo de execução para propagação da identidade
À medida que as sessões do AWS Glue utilizam credenciais com identidade aprimorada para propagar a identidade para serviços da AWS downstream, a política de confiança do seu perfil de tempo de execução precisa ter a permissão sts:SetContext
adicional para permitir a propagação de identidade para serviços downstream (concessão de acesso ao Amazon S3, Lake Formation, Amazon Redshift). Para saber mais sobre como criar um perfil de tempo de execução, consulte Configurar um perfil de tempo de execução.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "glue.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:SetContext" ] } ] }
Além disso, o perfil de Tempo de execução precisaria de permissões para serviços da AWS downstream que job-run invocaria para buscar dados usando a identidade do usuário. Consulte os links a seguir para configurar a Concessão de acesso do Amazon S3 e o Lake Formation: