View a markdown version of this page

AWSPremiumSupport-CollectAWSGlueMetadata - AWS Systems Manager Référence du dossier d’exploitation Automation

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

AWSPremiumSupport-CollectAWSGlueMetadata

Description

Le AWSPremiumSupport-CollectAWSGlueMetadata runbook rassemble les métadonnées de configuration de vos AWS Glue ressources, notamment les bases de données, les robots d'exploration, les tâches ETL, les points de terminaison de développement, les déclencheurs, les flux de travail et les configurations de sécurité. Le runbook écrit ces métadonnées dans un rapport JSON dans le compartiment Amazon S3 de votre choix. Votre responsable de compte technique (TAM) ou votre responsable de compte technique spécialisé (STAM) examine le rapport dans le cadre de l'examen AWS Glue opérationnel. Cet examen est une évaluation proactive de votre AWS Glue environnement par rapport aux AWS meilleures pratiques.

Comment ça marche

Une application Python collecte les AWS Glue métadonnées. L'application s'exécute sur une instance Amazon EC2 temporaire. Le runbook crée cette instance temporaire dans un nouveau Amazon VPC isolé à l'aide d'un modèle intégré AWS CloudFormation . L'instance Amazon EC2 s'exécute sur un sous-réseau privé avec accès à Internet via une passerelle de traduction d'adresses réseau (NAT). Le runbook accède à AWS des services AWS Glue, notamment Amazon EC2 Systems Manager et Amazon S3, via des points de terminaison Amazon VPC situés dans la même région. La passerelle NAT extrait les métadonnées des compartiments Amazon S3 associés à vos AWS Glue ressources dans d'autres AWS régions.

Lorsque le runbook est terminé, il supprime la CloudFormation pile et télécharge le rapport dans le compartiment Amazon S3 de votre choix. Le runbook joint ensuite le rapport au dossier de AWS support pour cette revue opérationnelle. Le fichier JSON se trouve dans le dossier racine de votre compartiment Amazon S3. Contactez votre TAM ou votre STAM si vous avez des questions concernant la revue opérationnelle et les métadonnées collectées.

Important

La revue AWS Glue opérationnelle nécessite un abonnement au support d' AWS entreprise. Avant d'exécuter ce runbook, contactez votre TAM ou votre STAM pour obtenir des instructions. Pour plus d'informations sur les plans de AWS support, consultez AWS Support Proactive Services.

Important

Assurez-vous que vous n'avez pas atteint la limite d'adresses IP élastiques (EIP), d'instances Amazon EC2 ou d'Amazon VPC sur votre compte ou votre région. Si vous avez besoin d'un EIP ou d'un Amazon VPC supplémentaire, complétez le formulaire de demande d'augmentation de la limite de service.

Important

AWS débite votre compte des coûts liés à l'instance Amazon EC2, à son volume Amazon EBS et aux données transférées pendant l'exécution de ce runbook. Le temps nécessaire dépend de la quantité et de la configuration des AWS Glue ressources de votre compte. Par défaut, ce runbook crée une t2.micro instance. Si vous disposez d'un grand nombre de AWS Glue ressources, augmentez la taille de l'instance temporaire.

Exécutez cette automatisation (console)

Type de document

 Automatisation

Propriétaire

Amazon

Plateformes

/

Paramètres du document

AutomationAssumeRole

Type : AWS : :IAM : :Role : :Arn

Description : (Facultatif) L'ARN du rôle qui permet au runbook Automation d'effectuer les actions en votre nom. Si aucun rôle n'est spécifié, SSM Automation utilise votre contexte actuel d'autorisations utilisateur IAM pour exécuter ce runbook.

Schéma autorisé : ^$|^arn:(aws|aws-cn|aws-us-gov):iam::\d{12}:role/[\w+=/,.@-]+$

Acknowledge

Type : chaîne

Obligatoire : oui

Description : Écrivez « Oui » si vous reconnaissez que ce runbook collecte des métadonnées concernant vos AWS Glue ressources dans la région où vous le gérez. Le runbook stocke le fichier de sortie dans le compartiment Amazon S3 de votre choix. Pour plus d'informations, consultez la section Description.

Schéma autorisé : ^[Yy][Ee][Ss]$

SupportCase

Type : chaîne

Description : (Facultatif) Numéro de dossier d' AWS assistance fourni par votre TAM ou STAM. Le runbook met à jour le dossier et y joint les données collectées. Contactez votre TAM ou STAM pour plus d'informations.

Schéma autorisé : ^[0-9]{10}$

Par défaut : 0000000000

S3BucketName

Type : chaîne

Description : (Facultatif) Le nom du compartiment Amazon S3 de votre compte dans lequel vous souhaitez télécharger les données collectées. Assurez-vous que la politique de compartiment n'accorde aucune autorisation de lecture ou d'écriture inutile aux parties qui n'ont pas besoin d'accéder au fichier.

Schéma autorisé : ^$|^[a-zA-Z0-9\.\-_]{1,255}$

InstanceType

Type : chaîne

Description : (Facultatif) Taille du type d'instance Amazon EC2 temporaire qui exécute l'application de collecte de AWS Glue métadonnées.

Valeurs valides : t2.micro | t2.small | t2.medium | t2.large

Par défaut : t2.micro

Module

Type : chaîne

Description : Module de révision AWS Glue opérationnelle (facultatif) (supprimez toutes les nouvelles lignes, onglets ou espaces blancs lorsque vous saisissez une nouvelle valeur). Ne modifiez cette valeur que si votre responsable technique spécialisé (STAM) vous le demande.

Par défaut : chaîne de configuration JSON qui définit les modules à exécuter pour la collecte de métadonnées, notamment les métadonnées, le catalogue, le robot d'exploration, les tâches ETL, les points de terminaison de développement, les déclencheurs, les flux de travail, les configurations de sécurité et le cryptage du catalogue.

Autorisations IAM requises pour collecter les AWS Glue metadata

L'application de collecte de AWS Glue données nécessite les actions suivantes pour exécuter correctement ce runbook et charger le fichier dans le compartiment Amazon S3 privé de votre choix. Un rôle IAM accorde automatiquement ces autorisations à l'instance Amazon EC2 temporaire.

  • glue:List*

  • glue:Query*

  • glue:Get*

  • glue:BatchGet*

  • glue:CheckSchemaVersionValidity

  • glue:SearchTables

  • sts:GetCallerIdentity

  • s3:PutObject

  • s3:AbortMultipartUpload

  • s3:ListBucket

  • s3:ListAllMyBuckets

  • s3:GetBucketLocation

Autorisations IAM requises pour exécuter ce runbook

Pour exécuter ce runbook, le AutomationAssumeRole ou votre utilisateur IAM a besoin des actions suivantes. Ces autorisations sont requises pour créer un nouvel Amazon VPC temporaire et l'instance Amazon EC2 à l'aide de. 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

L'exemple de politique suivant montre les autorisations de moindre privilège requises pour le. AutomationAssumeRole Remplacez REGIONACCOUNTID, et S3_BUCKET_NAME par vos propres valeurs :

{ "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": "*" } ] }

Étapes du document

  1. aws:branch - Branche le flux de travail selon que vous avez fourni un nom de compartiment Amazon S3 ou que vous avez laissé le paramètre vide.

  2. aws:assert AwsResourceProperty - Vérifie si le compartiment Amazon S3 existe.

  3. aws:ExecuteScript - Vérifie si le compartiment Amazon S3 dans lequel le runbook télécharge le rapport autorise des autorisations d'accès anonymes en lecture ou en écriture. Assurez-vous que seules les personnes autorisées ont accès au fichier.

  4. aws:branch - Met fin à l'automatisation si le script détecte que le compartiment Amazon S3 est accessible au public. Assurez-vous que seules les personnes autorisées ont accès au fichier.

  5. aws:ExecuteScript - Récupère le corps du contenu du CloudFormation modèle à partir de la pièce jointe du runbook Automation. Le CloudFormation modèle est utilisé pour créer l'instance Amazon EC2 temporaire.

  6. aws:CreateStack  : crée la CloudFormation pile contenant Amazon VPC, le sous-réseau privé, la table de routage, le rôle et le profil de l'instance Amazon EC2 et les points de terminaison Amazon VPC.

  7. aws:execute AwsApi - Crée l'instance Amazon EC2 temporaire dans le nouvel Amazon VPC. L'instance Amazon EC2 s'exécute sur un sous-réseau privé avec accès à Internet via une passerelle NAT.

  8. aws:wait ForAwsResourceProperty - Attend que l'instance Amazon EC2 créée par le CloudFormation modèle soit prête.

  9. aws:execute AwsApi - Obtient l'ID d'instance Amazon EC2 temporaire.

  10. aws:wait ForAwsResourceProperty - Attend jusqu'à ce que l'instance Amazon EC2 temporaire passe les contrôles de statut.

  11. aws:wait ForAwsResourceProperty  : attend que l'instance Amazon EC2 temporaire soit gérée par SSM. Si cette étape expire ou échoue, le runbook redémarre l'instance.

  12. aws:execute AwsApi - Redémarre l'instance Amazon EC2 temporaire si elle n'est pas gérée par SSM.

  13. aws:wait ForAwsResourceProperty - Attend que l'instance temporaire d'Amazon EC2 soit gérée par SSM après le redémarrage.

  14. aws:RunCommand  : installe et exécute l'application pour collecter les métadonnées. AWS Glue

  15. aws:RunCommand  : télécharge le rapport de métadonnées dans le compartiment Amazon S3 de votre choix.

  16. aws:RunCommand - Joint le rapport de métadonnées au dossier de AWS support. Le script compresse et divise le rapport en parties de 5 Mo. Le script peut joindre un maximum de 12 fichiers au dossier de AWS support.

  17. aws:execute AwsApi - Décrit les événements de la CloudFormation pile si le runbook ne parvient pas à créer ou à mettre à jour la pile. CloudFormation

  18. aws:DeleteStack - Supprime la pile. CloudFormation