As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
AWSPremiumSupport-CollectAWSGlueMetadata
Description
O AWSPremiumSupport-CollectAWSGlueMetadata runbook reúne metadados de configuração para seus AWS Glue recursos, incluindo bancos de dados, rastreadores, tarefas de ETL, endpoints de desenvolvimento, gatilhos, fluxos de trabalho e configurações de segurança. O runbook grava esses metadados em um relatório JSON no bucket do Amazon S3 que você escolher. Seu gerente técnico de contas (TAM) ou gerente técnico especializado de contas (STAM) analisa o relatório como parte da revisão AWS Glue operacional. Esta análise é uma avaliação proativa do seu AWS Glue ambiente em relação às AWS melhores práticas.
Como funciona
Um aplicativo Python coleta os metadados AWS Glue . O aplicativo é executado em uma instância temporária do Amazon EC2. O runbook cria essa instância temporária em uma nova Amazon VPC isolada usando um modelo incorporado AWS CloudFormation . A instância do Amazon EC2 é executada em uma sub-rede privada com acesso à Internet por meio de um gateway de tradução de endereços de rede (NAT). O runbook acessa AWS serviços AWS Glue, incluindo o Amazon EC2 Systems Manager e o Amazon S3, por meio de endpoints do Amazon VPC na mesma região. O gateway NAT recupera metadados dos buckets do Amazon S3 que estão associados aos seus AWS Glue recursos em outras regiões. AWS
Quando o runbook termina, ele exclui a CloudFormation pilha e faz o upload do relatório para o bucket do Amazon S3 de sua escolha. Em seguida, o runbook anexa o relatório ao caso de AWS suporte para esta revisão operacional. O arquivo JSON está na pasta raiz do seu bucket do Amazon S3. Entre em contato com seu TAM ou STAM se tiver dúvidas sobre a revisão operacional e os metadados coletados.
Importante
A análise AWS Glue operacional exige uma assinatura de suporte AWS corporativo. Antes de executar esse runbook, entre em contato com seu TAM ou STAM para obter instruções. Para obter mais informações sobre os planos de AWS suporte, consulte AWS Support Proactive Services.
Importante
Certifique-se de não ter atingido o limite de endereços IP elásticos (EIP), instâncias do Amazon EC2 ou Amazon VPCs em sua conta ou região. Se você precisar de um EIP adicional ou Amazon VPC, preencha o formulário de solicitação de aumento de limite de serviço.
Importante
AWS cobra de sua conta os custos da instância do Amazon EC2, seu volume do Amazon EBS e os dados transferidos enquanto esse runbook é executado. O tempo necessário depende da quantidade e da configuração dos AWS Glue recursos em sua conta. Por padrão, esse runbook cria uma t2.micro instância. Se você tiver um grande número de AWS Glue recursos, aumente o tamanho da instância temporária.
Executar esta automação (console)
Tipo de documento
Automação
Proprietário
Amazon
Plataformas
/
Parâmetros do documento
AutomationAssumeRole-
Tipo: AWS: :IAM: :Role: :Arn
Descrição: (Opcional) O ARN da função que permite que o runbook de automação execute as ações em seu nome. Se nenhuma função for especificada, o SSM Automation usa seu contexto atual de permissões de usuário do IAM para executar esse runbook.
Padrão permitido:
^$|^arn:(aws|aws-cn|aws-us-gov):iam::\d{12}:role/[\w+=/,.@-]+$ Acknowledge-
Tipo: string
Obrigatório: Sim
Descrição: Escreva “Sim” se você reconhecer que este runbook coleta metadados sobre seus AWS Glue recursos na região em que você o executa. O runbook armazena o arquivo de saída no bucket do Amazon S3 de sua escolha. Para obter mais informações, consulte a seção Descrição.
Padrão permitido:
^[Yy][Ee][Ss]$ SupportCase-
Tipo: string
Descrição: (Opcional) Número do caso de AWS suporte fornecido pelo seu TAM ou STAM. O runbook atualiza o caso e anexa os dados coletados. Entre em contato com seu TAM ou STAM para obter mais informações.
Padrão permitido:
^[0-9]{10}$Padrão: 0000000000
S3BucketName-
Tipo: string
Descrição: (Opcional) O nome do bucket do Amazon S3 na sua conta em que você deseja fazer o upload dos dados coletados. Certifique-se de que a política do bucket não conceda permissões de leitura ou gravação desnecessárias às partes que não precisam acessar o arquivo.
Padrão permitido:
^$|^[a-zA-Z0-9\.\-_]{1,255}$ InstanceType-
Tipo: string
Descrição: (Opcional) O tamanho do tipo de instância temporária do Amazon EC2 que executa o aplicativo de coleta de AWS Glue metadados.
Valores válidos: t2.micro | t2.small | t2.medium | t2.large
Padrão: t2.micro
Module-
Tipo: string
Descrição: Módulo de revisão AWS Glue operacional (opcional) (remova todas as novas linhas, guias ou espaços em branco ao inserir um novo valor). Só altere esse valor se solicitado pelo seu gerente técnico especializado de contas (STAM).
Padrão: uma string de configuração JSON que define os módulos a serem executados para a coleta de metadados, incluindo metadados, catálogo, rastreador, tarefas de ETL, endpoints de desenvolvimento, gatilhos, fluxos de trabalho, configurações de segurança e criptografia de catálogo.
Permissões de IAM necessárias para coletar o AWS Glue metadata
O aplicativo coletor de AWS Glue dados exige as seguintes ações para executar com êxito esse runbook e fazer o upload do arquivo para o bucket privado do Amazon S3 de sua escolha. Uma função do IAM concede automaticamente essas permissões à instância temporária do Amazon EC2.
-
glue:List* -
glue:Query* -
glue:Get* -
glue:BatchGet* -
glue:CheckSchemaVersionValidity -
glue:SearchTables -
sts:GetCallerIdentity -
s3:PutObject -
s3:AbortMultipartUpload -
s3:ListBucket -
s3:ListAllMyBuckets -
s3:GetBucketLocation
Permissões de IAM necessárias para executar este runbook
Para executar esse runbook, o AutomationAssumeRole ou seu usuário do IAM precisa das seguintes ações. Essas permissões são necessárias para criar uma nova Amazon VPC temporária e a instância do Amazon EC2 usando. CloudFormation
-
cloudformation:CreateStack -
cloudformation:DeleteStack -
cloudformation:DescribeStackEvents -
cloudformation:DescribeStacks -
cloudformation:UpdateStack -
ec2:AllocateAddress -
ec2:AssociateRouteTable -
ec2:AttachInternetGateway -
ec2:AuthorizeSecurityGroupEgress -
ec2:AuthorizeSecurityGroupIngress -
ec2:CreateInternetGateway -
ec2:CreateNatGateway -
ec2:CreateRoute -
ec2:CreateRouteTable -
ec2:CreateSecurityGroup -
ec2:CreateSubnet -
ec2:CreateTags -
ec2:CreateVpc -
ec2:CreateVpcEndpoint -
ec2:DeleteInternetGateway -
ec2:DeleteNatGateway -
ec2:DeleteRoute -
ec2:DeleteRouteTable -
ec2:DeleteSecurityGroup -
ec2:DeleteSubnet -
ec2:DeleteTags -
ec2:DeleteVpc -
ec2:DeleteVpcEndpoints -
ec2:DescribeAddresses -
ec2:DescribeImages -
ec2:DescribeInstances -
ec2:DescribeInstanceStatus -
ec2:DescribeInternetGateways -
ec2:DescribeNatGateways -
ec2:DescribeRouteTables -
ec2:DescribeSecurityGroups -
ec2:DescribeSubnets -
ec2:DescribeVpcEndpoints -
ec2:DescribeVpcs -
ec2:DetachInternetGateway -
ec2:DisassociateRouteTable -
ec2:ModifySubnetAttribute -
ec2:ModifyVpcAttribute -
ec2:RebootInstances -
ec2:ReleaseAddress -
ec2:RevokeSecurityGroupEgress -
ec2:RunInstances -
ec2:TerminateInstances -
iam:AddRoleToInstanceProfile -
iam:AttachRolePolicy -
iam:CreateInstanceProfile -
iam:CreateRole -
iam:DeleteInstanceProfile -
iam:DeleteRole -
iam:DeleteRolePolicy -
iam:DetachRolePolicy -
iam:GetInstanceProfile -
iam:GetRole -
iam:GetRolePolicy -
iam:PassRole -
iam:PutRolePolicy -
iam:RemoveRoleFromInstanceProfile -
s3:GetAccountPublicAccessBlock -
s3:GetBucketAcl -
s3:GetBucketPolicyStatus -
s3:GetBucketPublicAccessBlock -
s3:ListBucket -
ssm:DescribeAutomationExecutions -
ssm:DescribeInstanceInformation -
ssm:GetDocument -
ssm:GetParameters -
ssm:ListCommandInvocations -
ssm:ListCommands -
ssm:SendCommand -
support:AddAttachmentsToSet -
support:AddCommunicationToCase -
support:DescribeCases
O exemplo de política a seguir mostra as permissões de menor privilégio necessárias para o. AutomationAssumeRole Substitua REGIONACCOUNTID,, e S3_BUCKET_NAME por seus próprios valores:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "CloudFormationStackAccess", "Effect": "Allow", "Action": [ "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack" ], "Resource": "arn:aws:cloudformation:REGION:ACCOUNTID:stack/AWSPremiumSupport-CollectAWSGlueMetadata-*/*" }, { "Sid": "EC2NetworkingAccess", "Effect": "Allow", "Action": [ "ec2:AllocateAddress", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateNatGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteInternetGateway", "ec2:DeleteNatGateway", "ec2:DeleteRoute", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteTags", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAddresses", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeInstanceStatus", "ec2:DescribeInternetGateways", "ec2:DescribeNatGateways", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RebootInstances", "ec2:ReleaseAddress", "ec2:RevokeSecurityGroupEgress", "ec2:RunInstances", "ec2:TerminateInstances" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestedRegion": "REGION" } } }, { "Sid": "IAMRoleAccess", "Effect": "Allow", "Action": [ "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:GetRolePolicy", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile" ], "Resource": [ "arn:aws:iam::ACCOUNTID:role/AWSPremiumSupport-CollectAWSGlueMetadata-*", "arn:aws:iam::ACCOUNTID:instance-profile/AWSPremiumSupport-CollectAWSGlueMetadata-*" ] }, { "Sid": "PassRoleToEC2", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::ACCOUNTID:role/AWSPremiumSupport-CollectAWSGlueMetadata-*", "Condition": { "StringEquals": { "iam:PassedToService": "ec2.amazonaws.com" } } }, { "Sid": "S3BucketAccess", "Effect": "Allow", "Action": [ "s3:GetAccountPublicAccessBlock", "s3:GetBucketAcl", "s3:GetBucketPolicyStatus", "s3:GetBucketPublicAccessBlock", "s3:ListBucket" ], "Resource": "arn:aws:s3:::S3_BUCKET_NAME" }, { "Sid": "SSMAutomationAccess", "Effect": "Allow", "Action": [ "ssm:DescribeAutomationExecutions", "ssm:DescribeInstanceInformation", "ssm:GetDocument", "ssm:GetParameters", "ssm:ListCommandInvocations", "ssm:ListCommands", "ssm:SendCommand" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestedRegion": "REGION" } } }, { "Sid": "SupportCaseAccess", "Effect": "Allow", "Action": [ "support:AddAttachmentsToSet", "support:AddCommunicationToCase", "support:DescribeCases" ], "Resource": "*" } ] }
Etapas do documento
-
aws:branch - Ramifica o fluxo de trabalho com base no fato de você ter fornecido um nome de bucket do Amazon S3 ou deixado o parâmetro vazio.
-
aws:assert AwsResourceProperty — Verifica se o bucket do Amazon S3 existe.
-
aws:ExecuteScript — Verifica se o bucket do Amazon S3 para o qual o runbook carrega o relatório permite permissões anônimas de acesso de leitura ou gravação. Certifique-se de que somente pessoas autorizadas tenham acesso ao arquivo.
-
aws:branch — Encerra a automação se o script detectar que o bucket do Amazon S3 está acessível publicamente. Certifique-se de que somente pessoas autorizadas tenham acesso ao arquivo.
-
aws:ExecuteScript - Obtém o corpo do conteúdo do CloudFormation modelo do anexo do runbook de automação. O CloudFormation modelo é usado para criar a instância temporária do Amazon EC2.
-
CloudFormation aws:CreateStack — Cria a pilha contendo o Amazon VPC, a sub-rede privada, a tabela de rotas, a função e o perfil da instância do Amazon EC2 e os endpoints do Amazon VPC.
-
aws:execute AwsApi — Cria a instância temporária do Amazon EC2 no novo Amazon VPC. A instância do Amazon EC2 é executada em uma sub-rede privada com acesso à Internet por meio de um gateway NAT.
-
aws:wait ForAwsResourceProperty - Espera até que a instância do Amazon EC2 criada pelo modelo esteja pronta. CloudFormation
-
aws:execute AwsApi — Obtém o ID temporário da instância do Amazon EC2.
-
aws:wait ForAwsResourceProperty - Espera até que a instância temporária do Amazon EC2 passe pelas verificações de status.
-
aws:wait ForAwsResourceProperty - Espera até que a instância temporária do Amazon EC2 seja gerenciada pelo SSM. Se essa etapa expirar ou falhar, o runbook reinicializará a instância.
-
aws:execute AwsApi - Reinicializa a instância temporária do Amazon EC2 se ela não for gerenciada pelo SSM.
-
aws:wait ForAwsResourceProperty - Espera até que a instância temporária do Amazon EC2 seja gerenciada pelo SSM após a reinicialização.
-
aws:runCommand - Instala e executa o aplicativo para coletar os metadados. AWS Glue
-
AWS:RunCommand — Carrega o relatório de metadados para o bucket Amazon S3 de sua escolha.
-
aws:runCommand — Anexa o relatório de metadados ao caso de suporte. AWS O script compacta e divide o relatório em partes de 5 MB. O script pode anexar no máximo 12 arquivos ao caso de AWS suporte.
-
aws:execute AwsApi - Descreve os eventos do CloudFormation Stack se o runbook falhar ao criar ou atualizar o Stack. CloudFormation
-
aws:deleteStack — exclui a pilha. CloudFormation