翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWSPremiumSupport-CollectAWSGlueMetadata
説明
AWSPremiumSupport-CollectAWSGlueMetadata ランブックは、データベース、クローラ、ETL ジョブ、開発エンドポイント、トリガー、ワークフロー、セキュリティ設定など、 AWS Glue リソースの設定メタデータを収集します。ランブックはこのメタデータを、選択した Amazon S3 バケットの JSON レポートに書き込みます。テクニカルアカウントマネージャー (TAM) またはスペシャリストテクニカルアカウントマネージャー (STAM) は、 AWS Glue 運用レビューの一環としてレポートを確認します。このレビューは、 AWS ベストプラクティスに照らして AWS Glue 環境をプロアクティブに評価するものです。
仕組み
Python アプリケーションは AWS Glue メタデータを収集します。アプリケーションは一時的な Amazon EC2 インスタンスで実行されます。ランブックは、埋め込み AWS CloudFormation テンプレートを使用して、新しい分離された Amazon VPC にこの一時インスタンスを作成します。Amazon EC2 インスタンスは、ネットワークアドレス変換 (NAT) ゲートウェイを介したインターネットアクセスを備えたプライベートサブネットで実行されます。ランブックは、同じリージョンの AWS Glue Amazon VPC エンドポイントを介して、Amazon EC2 Systems Manager や Amazon S3 などの AWS サービスにアクセスします。NAT ゲートウェイは、他の AWS リージョンの AWS Glue リソースに関連付けられている Amazon S3 バケットからメタデータを取得します。
ランブックが終了すると、 CloudFormation スタックが削除され、選択した Amazon S3 バケットにレポートがアップロードされます。次に、ランブックは、この運用レビュー AWS のサポートケースにレポートをアタッチします。JSON ファイルは Amazon S3 バケットのルートフォルダにあります。運用レビューと収集されたメタデータについて質問がある場合は、TAM または STAM にお問い合わせください。
重要
AWS Glue 運用レビューには AWS エンタープライズサポートサブスクリプションが必要です。このランブックを実行する前に、TAM または STAM に連絡して手順を確認してください。 AWS サポートプランの詳細については、AWS 「 Support Proactive Services」を参照してください。
重要
アカウントまたはリージョンの Elastic IP (EIP) アドレス、Amazon EC2 インスタンス、または Amazon VPCs の制限に達していないことを確認してください。追加の EIP または Amazon VPC が必要な場合は、Service Limit Increase リクエストフォーム
重要
AWS は、このランブックの実行中に Amazon EC2 インスタンス、その Amazon EBS ボリューム、および転送されたデータのコストをアカウントに請求します。必要な時間は、アカウント内の AWS Glue リソースの量と設定によって異なります。デフォルトでは、このランブックはt2.microインスタンスを作成します。リソースが多数ある場合は AWS Glue 、一時インスタンスのサイズを増やします。
ドキュメントタイプ
オートメーション
[所有者]
Amazon
[Platforms] (プラットフォーム)
/
ドキュメントパラメータ
AutomationAssumeRole-
タイプ: AWS::IAM::Role::Arn
説明: (オプション) Automation ランブックがユーザーに代わってアクションを実行できるようにするロールの ARN。ロールが指定されていない場合、SSM Automation は現在の IAM ユーザーアクセス許可コンテキストを使用してこのランブックを実行します。
許可されるパターン:
^$|^arn:(aws|aws-cn|aws-us-gov):iam::\d{12}:role/[\w+=/,.@-]+$ Acknowledge-
タイプ: 文字列
必須: はい
説明: このランブックが、実行するリージョンのリソースに関するメタデータを収集することを確認した場合は、「はい」と書き込みます AWS Glue 。ランブックは、選択した Amazon S3 バケットに出力ファイルを保存します。詳細については、「説明」セクションを参照してください。
許可されるパターン:
^[Yy][Ee][Ss]$ SupportCase-
タイプ: 文字列
説明: (オプション) TAM または STAM によって提供される AWS サポートケース番号。ランブックはケースを更新し、収集されたデータをアタッチします。詳細については、TAM または STAM にお問い合わせください。
許可されるパターン:
^[0-9]{10}$デフォルト: 0000000000
S3BucketName-
タイプ: 文字列
説明: (オプション) 収集されたデータをアップロードするアカウントの Amazon S3 バケット名。バケットポリシーが、ファイルへのアクセスを必要としない関係者に不要な読み取りまたは書き込みアクセス許可を付与していないことを確認します。
許可されるパターン:
^$|^[a-zA-Z0-9\.\-_]{1,255}$ InstanceType-
タイプ: 文字列
説明: (オプション) AWS Glue メタデータ収集アプリケーションを実行する一時的な Amazon EC2 インスタンスタイプのサイズ。
有効な値: t2.micro | t2.small | t2.medium | t2.large
デフォルト: t2.micro
Module-
タイプ: 文字列
説明: (オプション) AWS Glue オペレーションレビューモジュール (新しい値を入力するときは、新しい行、タブ、または空白を削除します)。この値は、スペシャリストテクニカルアカウントマネージャー (STAM) からリクエストされた場合にのみ変更してください。
デフォルト: メタデータ、カタログ、クローラ、ETL ジョブ、開発エンドポイント、トリガー、ワークフロー、セキュリティ設定、カタログ暗号化など、メタデータ収集のために実行するモジュールを定義する JSON 設定文字列。
AWS Glue メタデータを収集するために必要な IAM アクセス許可
AWS Glue データコレクターアプリケーションでは、このランブックを正常に実行し、選択したプライベート Amazon S3 バケットにファイルをアップロードするために、次のアクションが必要です。IAM ロールは、これらのアクセス許可を一時的な 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
このランブックを実行するために必要な IAM アクセス許可
このランブックを実行するには、AutomationAssumeRole または IAM ユーザーに次のアクションが必要です。これらのアクセス許可は、 を使用して新しい一時的な Amazon VPC と Amazon EC2 インスタンスを作成するために必要です 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
次のポリシー例は、 に必要な最小特権のアクセス許可を示していますAutomationAssumeRole。REGION、ACCOUNTID、 を独自の値S3_BUCKET_NAMEに置き換えます。
{ "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": "*" } ] }
ドキュメントステップ
-
aws:branch - Amazon S3 バケット名を指定したか、パラメータを空のままにしたかに基づいてワークフローを分岐します。
-
aws:assertAwsResourceProperty - Amazon S3 バケットが存在するかどうかを確認します。
-
aws:executeScript - ランブックがレポートをアップロードする Amazon S3 バケットで、匿名の読み取りまたは書き込みアクセス許可が許可されているかどうかを確認します。許可されたユーザーのみが ファイルにアクセスできることを確認します。
-
aws:branch - Amazon S3 バケットがパブリックにアクセス可能であることをスクリプトが検出した場合、自動化を終了します。許可されたユーザーのみが ファイルにアクセスできることを確認します。
-
aws:executeScript - Automation ランブックアタッチメントから CloudFormation テンプレートコンテンツ本文を取得します。 CloudFormation テンプレートは、一時的な Amazon EC2 インスタンスを作成するために使用されます。
-
aws:createStack - Amazon VPC、プライベートサブネット、ルートテーブル、Amazon EC2 CloudFormation インスタンスのロールとプロファイル、Amazon VPC エンドポイントを含む スタックを作成します。
-
aws:executeAwsApi - 新しい Amazon VPC に一時的な Amazon EC2 インスタンスを作成します。Amazon EC2 インスタンスは、NAT ゲートウェイを介したインターネットアクセスを備えたプライベートサブネットで実行されます。
-
aws:waitForAwsResourceProperty - CloudFormation テンプレートによって作成された Amazon EC2 インスタンスの準備ができるまで待機します。
-
aws:executeAwsApi - 一時的な Amazon EC2 インスタンス ID を取得します。
-
aws:waitForAwsResourceProperty - 一時的な Amazon EC2 インスタンスがステータスチェックに合格するまで待機します。
-
aws:waitForAwsResourceProperty - 一時的な Amazon EC2 インスタンスが SSM によって管理されるまで待機します。このステップがタイムアウトまたは失敗すると、ランブックはインスタンスを再起動します。
-
aws:executeAwsApi - SSM によって管理されていない場合、一時的な Amazon EC2 インスタンスを再起動します。
-
aws:waitForAwsResourceProperty - 再起動後に一時的な Amazon EC2 インスタンスが SSM によって管理されるまで待機します。
-
aws:runCommand - アプリケーションをインストールして実行し、 AWS Glue メタデータを収集します。
-
aws:runCommand - 選択した Amazon S3 バケットにメタデータレポートをアップロードします。
-
aws:runCommand - AWS サポートケースにメタデータレポートをアタッチします。このスクリプトはレポートを圧縮して 5 MB の部分に分割します。スクリプトは、サポートケースに最大 12 個の AWS ファイルをアタッチできます。
-
aws:executeAwsApi - ランブックが CloudFormation スタックの作成または更新に失敗した場合の CloudFormation スタックイベントを記述します。
-
aws:deleteStack - CloudFormation スタックを削除します。