View a markdown version of this page

AWSPremiumSupport-CollectAWSGlueMetadata - AWS Systems Manager Referencia del manual de procedimientos de Automatización

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

AWSPremiumSupport-CollectAWSGlueMetadata

Description (Descripción)

El AWSPremiumSupport-CollectAWSGlueMetadata manual recopila los metadatos de configuración de sus AWS Glue recursos, incluidas las bases de datos, los rastreadores, los trabajos de ETL, los puntos finales de desarrollo, los desencadenadores, los flujos de trabajo y las configuraciones de seguridad. El runbook escribe estos metadatos en un informe JSON del bucket de Amazon S3 que usted elija. Su administrador técnico de cuentas (TAM) o gerente técnico de cuentas especializado (STAM) revisa el informe como parte de la revisión AWS Glue operativa. Esta revisión es una evaluación proactiva de su AWS Glue entorno comparándola con las AWS mejores prácticas.

Funcionamiento

Una aplicación de Python recopila los AWS Glue metadatos. La aplicación se ejecuta en una instancia temporal de Amazon EC2. El runbook crea esta instancia temporal en una nueva Amazon VPC aislada mediante una plantilla integrada. AWS CloudFormation La instancia Amazon EC2 se ejecuta en una subred privada con acceso a Internet a través de una puerta de enlace de traducción de direcciones de red (NAT). El runbook accede a AWS los servicios, incluidos Amazon EC2 Systems Manager y Amazon S3 AWS Glue, a través de puntos de enlace de Amazon VPC en la misma región. La puerta de enlace NAT recupera los metadatos de los depósitos de Amazon S3 que están asociados a sus recursos en otras regiones. AWS Glue AWS

Cuando el manual finaliza, elimina la CloudFormation pila y carga el informe en el bucket de Amazon S3 de su elección. A continuación, el manual adjunta el informe al caso de AWS soporte para esta revisión operativa. El archivo JSON se encuentra en la carpeta raíz de su bucket de Amazon S3. Póngase en contacto con su TAM o STAM si tiene preguntas sobre la revisión operativa y los metadatos recopilados.

importante

La revisión AWS Glue operativa requiere una suscripción al soporte AWS empresarial. Antes de ejecutar este manual, póngase en contacto con su TAM o STAM para obtener instrucciones. Para obtener más información sobre los planes de AWS soporte, consulte AWS Support Proactive Services.

importante

Asegúrese de no haber alcanzado el límite de direcciones IP elásticas (EIP), instancias de Amazon EC2 o Amazon VPC en su cuenta o región. Si necesita una EIP o una Amazon VPC adicional, complete el formulario de solicitud de aumento del límite de servicio.

importante

AWS cobra a su cuenta los costes de la instancia de Amazon EC2, su volumen de Amazon EBS y los datos transferidos mientras se ejecuta este runbook. El tiempo necesario depende de la cantidad y la configuración de los AWS Glue recursos de su cuenta. De forma predeterminada, este manual crea una t2.micro instancia. Si tiene una gran cantidad de AWS Glue recursos, aumente el tamaño de la instancia temporal.

Ejecuta esta automatización (consola)

Tipo de documento

Automatización

Propietario

Amazon

Plataformas

/

Parámetros de documento

AutomationAssumeRole

Escriba: AWS: :IAM: :Role: :Arn

Descripción: (opcional) El ARN del rol que permite al manual de automatización realizar las acciones en su nombre. Si no se especifica ningún rol, SSM Automation usa tu contexto actual de permisos de usuario de IAM para ejecutar este libro de ejecución.

Patrón permitido: ^$|^arn:(aws|aws-cn|aws-us-gov):iam::\d{12}:role/[\w+=/,.@-]+$

Acknowledge

Tipo: cadena

Obligatorio: sí

Descripción: Escribe «Sí» si confirmas que este manual recopila metadatos sobre tus AWS Glue recursos en la región en la que lo ejecutas. El runbook almacena el archivo de salida en el bucket de Amazon S3 que elija. Para obtener más información, consulte la sección Descripción.

Patrón permitido: ^[Yy][Ee][Ss]$

SupportCase

Tipo: cadena

Descripción: (opcional) Número de caso de AWS soporte proporcionado por su TAM o STAM. El manual actualiza el caso y adjunta los datos recopilados. Ponte en contacto con tu TAM o STAM para obtener más información.

Patrón permitido: ^[0-9]{10}$

Predeterminado: 0000000000

S3BucketName

Tipo: cadena

Descripción: (opcional) El nombre del bucket de Amazon S3 de su cuenta donde desea cargar los datos recopilados. Asegúrese de que la política de cubos no conceda ningún permiso de lectura o escritura innecesario a las partes que no necesitan acceder al archivo.

Patrón permitido: ^$|^[a-zA-Z0-9\.\-_]{1,255}$

InstanceType

Tipo: cadena

Descripción: (opcional) El tamaño del tipo de instancia temporal de Amazon EC2 que ejecuta la aplicación de recopilación de AWS Glue metadatos.

Valores válidos: t2.micro | t2.small | t2.medium | t2.large

Predeterminado: t2.micro

Module

Tipo: cadena

Descripción: Módulo de revisión AWS Glue operativa (opcional) (elimina las líneas, pestañas o espacios en blanco nuevos al introducir un valor nuevo). Cambie este valor únicamente si lo solicita su gestor de cuentas técnico especializado (STAM).

Predeterminado: una cadena de configuración JSON que define los módulos que se deben ejecutar para la recopilación de metadatos, incluidos los metadatos, el catálogo, el rastreador, los trabajos de ETL, los puntos finales de desarrollo, los activadores, los flujos de trabajo, las configuraciones de seguridad y el cifrado del catálogo.

Los permisos de IAM necesarios para recopilar el AWS Glue metadatos

La aplicación de recopilación de AWS Glue datos requiere las siguientes acciones para ejecutar correctamente este libro de operaciones y cargar el archivo en el bucket privado de Amazon S3 que elija. Un rol de IAM concede automáticamente estos permisos a la instancia temporal de 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

Se requieren los permisos de IAM para ejecutar este manual

Para ejecutar este libro de ejecución, el usuario de IAM AutomationAssumeRole o su usuario deben realizar las siguientes acciones. Estos permisos son necesarios para crear una nueva Amazon VPC temporal y la instancia Amazon EC2 utilizando. 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

El siguiente ejemplo de política muestra los permisos con menos privilegios necesarios para. AutomationAssumeRole Sustituya REGIONACCOUNTID, y por sus S3_BUCKET_NAME propios 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": "*" } ] }

Documente los pasos

  1. aws:branch: bifurca el flujo de trabajo en función de si ha proporcionado un nombre de bucket de Amazon S3 o si ha dejado el parámetro vacío.

  2. aws:assert AwsResourceProperty: comprueba si el bucket de Amazon S3 existe.

  3. aws:ExecuteScript: comprueba si el bucket de Amazon S3 en el que el runbook carga el informe permite permisos de acceso de lectura o escritura anónimos. Asegúrese de que solo las personas autorizadas tengan acceso al archivo.

  4. aws:branch: finaliza la automatización si el script detecta que el bucket de Amazon S3 es de acceso público. Asegúrese de que solo las personas autorizadas tengan acceso al archivo.

  5. aws:ExecuteScript: obtiene el cuerpo del contenido de la CloudFormation plantilla a partir del archivo adjunto del manual de automatización. La CloudFormation plantilla se usa para crear la instancia temporal de Amazon EC2.

  6. aws:CreateStack: crea la CloudFormation pila que contiene la Amazon VPC, la subred privada, la tabla de rutas, el rol y el perfil de la instancia de Amazon EC2 y los puntos de enlace de Amazon VPC.

  7. aws:execute: crea la instancia temporal de Amazon EC2 en la AwsApi nueva Amazon VPC. La instancia Amazon EC2 se ejecuta en una subred privada con acceso a Internet a través de una puerta de enlace NAT.

  8. aws:wait ForAwsResourceProperty: espera hasta que la instancia Amazon EC2 creada por la plantilla esté lista. CloudFormation

  9. aws:execute: obtiene el ID de AwsApi instancia temporal de Amazon EC2.

  10. aws:wait ForAwsResourceProperty: espera hasta que la instancia temporal de Amazon EC2 pase las comprobaciones de estado.

  11. aws:wait ForAwsResourceProperty: espera hasta que SSM administre la instancia temporal de Amazon EC2. Si se agota el tiempo de espera o se produce un error en este paso, el runbook reinicia la instancia.

  12. aws:execute AwsApi: reinicia la instancia temporal de Amazon EC2 si SSM no la administra.

  13. aws:wait ForAwsResourceProperty: espera hasta que SSM administre la instancia temporal de Amazon EC2 tras el reinicio.

  14. aws:RunCommand: instala y ejecuta la aplicación para recopilar los metadatos. AWS Glue

  15. aws:RunCommand: carga el informe de metadatos en el bucket de Amazon S3 de su elección.

  16. aws:RunCommand: adjunta el informe de metadatos al caso de soporte. AWS El script comprime y divide el informe en partes de 5 MB. El script puede adjuntar un máximo de 12 archivos al caso de AWS soporte.

  17. aws:execute AwsApi: describe los eventos de la CloudFormation pila si el runbook no puede crear o actualizar la pila. CloudFormation

  18. aws:deleteStack: elimina la pila. CloudFormation