AWSSupport-ValidateFSxWindowsADConfig - AWS Systems Manager 自動化ランブックリファレンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWSSupport-ValidateFSxWindowsADConfig

説明

AWSSupport-ValidateFSxWindowsADConfig ランブックは、Amazon FSx for Windows File Server のセルフマネージド Active Directory (AD) 設定を検証するために使用されます。

動作の仕組み

ランブックは、Amazon FSx サブネットのランブックによって起動された一時的な Amazon Elastic Compute Cloud (Amazon EC2) Windows インスタンスで Amazon FSx 検証スクリプトAWSSupport-ValidateFSxWindowsADConfigを実行します。このスクリプトは複数のチェックを実行して、セルフマネージド AD/DNS サーバーへのネットワーク接続と Amazon FSx サービスアカウントのアクセス許可を検証します。ランブックは、失敗した、または誤って設定された Amazon FSx for Windows File Server を検証したり、セルフマネージド AD を使用して新しい Amazon FSx for Windows File Server を作成したりできます。

デフォルトでは、ランブックは Amazon FSx サブネット AWS CloudFormation で を使用して、Amazon EC2 Windows インスタンス、 (SSM) アクセスのセキュリティグループ AWS Systems Manager 、 AWS Identity and Access Management (IAM) ロール、およびポリシーを作成します。既存の Amazon EC2 インスタンスでスクリプトを実行する場合は、パラメータ で ID を指定しますInstanceId。正常に実行されると、CloudFormation リソースが削除されます。ただし、リソースを保持するには、 RetainCloudFormationStackパラメータを に設定しますtrue

CloudFormation テンプレートは、Amazon EC2 インスタンスにアタッチして Amazon FSx 検証スクリプトを実行するために必要なアクセス許可を持つ IAM ロールをユーザーに代わって作成します。一時インスタンスの既存の IAM インスタンスプロファイルを指定するには、 InstanceProfileNameパラメータを使用します。関連付けられた IAM ロールには、次のアクセス許可が含まれている必要があります。

  • ec2:DescribeSubnets および のec2:DescribeVpcsアクセス許可と Amazon 管理ポリシーAmazonSSMManagedInstanceCore

  • GetSecretValue API を呼び出して Systems Manager から Amazon FSx サービスアカウントのユーザー名とパスワードを取得するアクセス許可。

  • スクリプト出力の Amazon Simple Storage Service (Amazon S3) バケットにオブジェクトを配置するアクセス許可。

前提条件

SSM Run Command を使用してAmazonFSxADValidationスクリプトを実行するには AWS Systems Manager、一時的な Amazon EC2 インスタンスが作成されるサブネット (または InstanceIdパラメータで提供される既存のインスタンス) で、、 AWS Secrets Manager、および Amazon S3 エンドポイントへのアクセスを許可する必要があります。

AWS Secrets Manager セットアップ

検証スクリプトは、Secrets Manager へのランタイム呼び出しを使用して Amazon FSx サービスアカウントのユーザー名とパスワードを取得することで、Microsoft AD ドメインに接続します。「 AWS Secrets Manager シークレットを作成する」の手順に従って、新しい Secrets Manager シークレットを作成します。ユーザー名とパスワードが 形式のキーと値のペアを使用して保存されていることを確認します{"username":"EXAMPLE-USER","password":"EXAMPLE-PASSWORD"}"。シークレットへのアクセスを保護する方法については、「 の認証とアクセスコントロール AWS Secrets Manager」を参照してください。

ツールの詳細については、AmazonFSxADValidation README.mdファイルの TROUBLESHOOTING.mdおよび ファイルを参照してください。

ランブックの実行

Amazon FSx ID または AD パラメータを使用してランブックを実行します。ランブックのワークフローは次のとおりです。

  • Amazon FSx ID からパラメータを取得するか、入力 AD パラメータを使用します。

  • Amazon FSx サブネット上の一時的な検証 Amazon EC2 Windows インスタンス、SSM アクセスのセキュリティグループ、CloudFormation を使用した IAM ロールとポリシー (条件付き) を作成します。InstanceId パラメータを指定すると、パラメータが使用されます。

  • Amazon FSx プライマリサブネットのターゲット Amazon EC2 インスタンスで検証スクリプトをダウンロードして実行します。

  • 自動化出力に AD 検証結果コードを提供します。さらに、完全なスクリプト出力が Amazon S3 バケットにアップロードされます。

このオートメーションを実行する (コンソール)

ドキュメントタイプ

Automation

[所有者]

Amazon

[Platforms] (プラットフォーム)

Windows

パラメータ

必要な IAM アクセス許可

AutomationAssumeRole パラメータでは、ランブックを正常に使用するために、次のアクションが必要です。

  • cloudformation:CreateStack

  • cloudformation:DeleteStack

  • cloudformation:DescribeStacks

  • cloudformation:DescribeStackResources

  • cloudformation:DescribeStackEvents

  • ec2:CreateTags

  • ec2:RunInstances

  • ec2:TerminateInstances

  • ec2:CreateLaunchTemplate

  • ec2:DeleteLaunchTemplate

  • ec2:DescribeSubnets

  • ec2:DescribeSecurityGroups

  • ec2:DescribeImages

  • ec2:DescribeInstances

  • ec2:DescribeLaunchTemplates

  • ec2:DescribeLaunchTemplateVersions

  • ec2:CreateSecurityGroup

  • ec2:DeleteSecurityGroup

  • ec2:RevokeSecurityGroupEgress

  • ec2:AuthorizeSecurityGroupEgress

  • iam:CreateRole

  • iam:CreateInstanceProfile

  • iam:GetInstanceProfile

  • iam:getRolePolicy

  • iam:DeleteRole

  • iam:DeleteInstanceProfile

  • iam:AddRoleToInstanceProfile

  • iam:RemoveRoleFromInstanceProfile

  • iam:AttachRolePolicy

  • iam:DetachRolePolicy

  • iam:PutRolePolicy

  • iam:DeleteRolePolicy

  • iam:GetRole

  • iam:PassRole

  • ssm:SendCommand

  • ssm:StartAutomationExecution

  • ssm:DescribeInstanceInformation

  • ssm:DescribeAutomationExecutions

  • ssm:GetDocument

  • ssm:GetAutomationExecution

  • ssm:DescribeAutomationStepExecutions

  • ssm:ListCommandInvocations

  • ssm:GetParameters

  • ssm:ListCommands

  • ssm:GetCommandInvocation

  • fsx:DescribeFileSystems

  • ds:DescribeDirectories

  • s3:GetEncryptionConfiguration

  • s3:GetBucketPublicAccessBlock

  • s3:GetAccountPublicAccessBlock

  • s3:GetBucketPolicyStatus

  • s3:GetBucketAcl

  • s3:GetBucketLocation

自動化引き受けロールの IAM ポリシーの例

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowDescribe", "Effect": "Allow", "Action": [ "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeLaunchTemplates", "ec2:DescribeLaunchTemplateVersions", "ssm:DescribeInstanceInformation", "ssm:DescribeAutomationExecutions", "ssm:DescribeAutomationStepExecutions", "fsx:DescribeFileSystems", "ds:DescribeDirectories" ], "Resource": "*" }, { "Sid": "CloudFormation", "Effect": "Allow", "Action": [ "cloudformation:DescribeStacks", "cloudformation:DescribeStackResources", "cloudformation:DescribeStackEvents", "cloudformation:CreateStack", "cloudformation:DeleteStack" ], "Resource": "arn:*:cloudformation:*:*:stack/AWSSupport-ValidateFSxWindowsADConfig-*" }, { "Sid": "AllowCreateLaunchTemplate", "Effect": "Allow", "Action": [ "ec2:CreateLaunchTemplate", "ec2:CreateTags" ], "Resource": [ "arn:aws:ec2:*:*:launch-template/*" ] }, { "Sid": "AllowEC2RunInstances", "Effect": "Allow", "Action": [ "ec2:RunInstances", "ec2:CreateTags" ], "Resource": [ "arn:aws:ec2:*::image/*", "arn:aws:ec2:*::snapshot/*", "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:network-interface/*", "arn:aws:ec2:*:*:security-group/*", "arn:aws:ec2:*:*:key-pair/*", "arn:aws:ec2:*:*:launch-template/*" ] }, { "Sid": "AllowEC2RunInstancesWithTags", "Effect": "Allow", "Action": [ "ec2:RunInstances", "ec2:CreateTags" ], "Resource": [ "arn:aws:ec2:*:*:instance/*", "arn:aws:ec2:*:*:volume/*" ] }, { "Sid": "EC2SecurityGroup", "Effect": "Allow", "Action": [ "ec2:CreateSecurityGroup", "ec2:RevokeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupEgress", "ec2:CreateTags" ], "Resource": [ "arn:*:ec2:*:*:security-group/*", "arn:*:ec2:*:*:vpc/*" ] }, { "Sid": "EC2Remove", "Effect": "Allow", "Action": [ "ec2:TerminateInstances", "ec2:DeleteLaunchTemplate", "ec2:DeleteSecurityGroup" ], "Resource": [ "arn:aws:ec2:*:*:instance/*", "arn:aws:ec2:*:*:launch-template/*", "arn:*:ec2:*:*:security-group/*" ] }, { "Sid": "IAMInstanceProfile", "Effect": "Allow", "Action": [ "iam:CreateInstanceProfile", "iam:DeleteInstanceProfile", "iam:GetInstanceProfile", "iam:AddRoleToInstanceProfile", "iam:RemoveRoleFromInstanceProfile" ], "Resource": "arn:*:iam::*:instance-profile/*" }, { "Sid": "IAM", "Effect": "Allow", "Action": [ "iam:CreateRole", "iam:DeleteRole", "iam:AttachRolePolicy", "iam:DetachRolePolicy", "iam:getRolePolicy", "iam:PutRolePolicy", "iam:DeleteRolePolicy", "iam:GetRole", "iam:TagRole" ], "Resource": "arn:*:iam::*:role/*" }, { "Sid": "SSM", "Effect": "Allow", "Action": [ "ssm:StartAutomationExecution", "ssm:GetDocument", "ssm:GetAutomationExecution", "ssm:ListCommandInvocations", "ssm:GetParameters", "ssm:ListCommands", "ssm:GetCommandInvocation" ], "Resource": "*" }, { "Sid": "SSMSendCommand", "Effect": "Allow", "Action": [ "ssm:SendCommand" ], "Resource": "arn:aws:ssm:*:*:document/AWS-RunPowerShellScript" }, { "Sid": "SSMSendCommandOnlyFsxInstance", "Effect": "Allow", "Action": [ "ssm:SendCommand" ], "Resource": [ "arn:aws:ec2:*:*:instance/*" ], "Condition": { "StringLike": { "ssm:resourceTag/CreatedBy": [ "AWSSupport-ValidateFSxWindowsADConfig" ] } } }, { "Sid": "AllowPassRoleToEC2", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:*:iam::*:role/AWSSupport-ValidateFSxWindowsADConfig-*", "Condition": { "StringEquals": { "iam:PassedToService": [ "ec2.amazonaws.com" ] } } }, { "Effect": "Allow", "Action": [ "s3:GetEncryptionConfiguration", "s3:GetBucketPublicAccessBlock", "s3:GetAccountPublicAccessBlock", "s3:GetBucketPolicyStatus", "s3:GetBucketAcl", "s3:GetBucketLocation" ], "Resource": "*" } ] }

指示

次の手順に従って自動化を設定します。

  1. ドキュメントの Systems Manager AWSSupport-ValidateFSxWindowsADConfigで に移動します。

  2. [Execute automation] (オートメーションを実行) を選択します。

  3. 既存の失敗した、または誤って設定された Amazon FSx でセルフマネージド AD を検証するには、次のパラメータを入力します。

    • AutomationAssumeRole(オプション):

      Systems Manager Automation がユーザーに代わってアクションを実行できるようにする AWS Identity and Access Management (IAM) ロールの Amazon リソースネーム (ARN)。ロールが指定されていない場合、Systems Manager Automation は、このランブックを開始するユーザーのアクセス許可を使用します。

    • FSxId (条件付き):

      Amazon FSx for Windows File Server ID。これは、既存の失敗した、または誤って設定された Amazon FSx を検証するために必要です。

    • SecretArn (必須):

      Amazon FSx サービスアカウントのユーザー名とパスワードを含む Secrets Manager シークレットの ARN。ユーザー名とパスワードが 形式のキーと値のペアを使用して保存されていることを確認します{"username":"EXAMPLE-USER","password":"EXAMPLE-PASSWORD"}。CloudFormation スタックは、GetSecretValueこの ARN に対して実行するアクセス許可を持つ検証インスタンスを作成します。

    • FSxSecurityGroupId (必須):

      Amazon FSx for Windows File Server のセキュリティグループ ID。

    • BucketName (必須):

      検証結果をアップロードする Amazon S3 バケット。バケットがサーバー側の暗号化 (SSE) で設定されており、バケットポリシーがログにアクセスする必要がないユーザーに不要な読み取り/書き込みアクセス許可を付与していないことを確認します。また、Amazon EC2 Windows インスタンスが Amazon S3 バケットに必要なアクセス権を持っていることを確認します。

    Input parameters form for AWS Systems Manager managed Windows Server EC2 instance validation.
  4. 新しい Amazon FSx 作成のセルフマネージド AD 設定を検証するには、次のパラメータを入力します。

    • AutomationAssumeRole(オプション):

      Systems Manager Automation がユーザーに代わってアクションを実行できるようにする AWS Identity and Access Management (IAM) ロールの Amazon リソースネーム (ARN)。ロールが指定されていない場合、Systems Manager Automation は、このランブックを開始するユーザーのアクセス許可を使用します。

    • SecretArn (必須):

      Amazon FSx サービスアカウントのユーザー名とパスワードを含む Secrets Manager シークレットの ARN。ユーザー名とパスワードが 形式のキーと値のペアを使用して保存されていることを確認します{"username":"EXAMPLE-USER","password":"EXAMPLE-PASSWORD"}。CloudFormation スタックは、GetSecretValueこの ARN に対して実行するアクセス許可を持つ検証インスタンスを作成します。

    • FSxSecurityGroupId (必須):

      Amazon FSx for Windows File Server のセキュリティグループ ID。

    • BucketName (必須):

      検証結果をアップロードする Amazon S3 バケット。バケットがサーバー側の暗号化 (SSE) で設定されており、バケットポリシーがログにアクセスする必要がないユーザーに不要な読み取り/書き込みアクセス許可を付与していないことを確認します。また、Amazon EC2 Windows インスタンスが Amazon S3 バケットに必要なアクセス権を持っていることを確認します。

    • FSxPreferredSubnetId (条件付き):

      Amazon FSx for Windows File Server の優先サブネット。

    • DomainName (条件付き):

      セルフマネージド Microsoft AD ドメインの完全修飾ドメイン名。

    • DnsIpAddresses (条件付き):

      セルフマネージド AD ドメイン内の最大 2 つの DNS サーバーまたはドメインコントローラーの IP アドレスのリスト。最大 2 つの IPs、カンマで区切って入力します。

    • FSxAdminsGroup (条件付き):

      Amazon FSx for Windows File Server の委任ファイルシステム管理者グループ。デフォルトでは、これは Domain Admins です。

    • FSxOrganizationalUnit (条件付き):

      ファイルシステムに参加する組織単位 (OU)。OU の識別パス名を指定します。例えば、OU=org,DC=example,DC=com などです。

    Form fields for configuring Amazon FSx for Windows File Server and related AWS のサービス.
  5. [実行] を選択します。

  6. 自動化が開始されます。

  7. ドキュメントは以下のステップを実行します。

    • CheckBucketPublicStatus (aws:executeScript):

      ターゲット Amazon S3 バケットがオブジェクトへの読み取り/書き込みパブリックアクセスを許可する可能性があるかどうかを確認します。

    • BranchOnInputParameters (aws:branch):

      Amazon FSx ID や Amazon FSx パラメータなど、指定された入力パラメータのブランチ。

    • AssertFileSystemTypeIsWindows (aws:assertAwsResourceProperty):

      Amazon FSx ID が指定されている場合、 はファイルシステムタイプが Amazon FSx for Windows File Server であることを確認します。

    • GetValidationInputs (aws:executeScript):

      Amazon EC2 インスタンスを作成するために CloudFormation テンプレートに必要なセルフマネージド Microsoft AD 設定を返します。

    • BranchOnInstanceId (aws:branch):

      指定された入力 のブランチInstanceId。が指定されている場合、検証スクリプトInstanceIdはオートメーション からターゲット Amazon EC2 インスタンスで実行されますstep:RunValidationScript

    • CreateEC2InstanceStack (aws:createStack):

      AmazonFSxADValidation ツールが実行される AWS CloudFormation を使用して、任意のサブネットに Amazon EC2 インスタンスを作成します。

    • DescribeStackResources (aws:executeAwsApi):

      一時的な Amazon EC2 インスタンス ID を取得するための CloudFormation スタックについて説明します。

    • WaitForEC2InstanceToBeManaged (aws:waitForAwsResourceProperty):

      SSM Run Command を使用して検証スクリプトを実行するために、Amazon EC2 インスタンスが Systems Manager によって管理されるまで待ちます。

    • GetAmazonFSxADValidationAttachment (aws:executeAwsApi):

      ランブックアタッチメントからAmazonFSxADValidationツール URL を取得します。

    • RunValidationScript (aws:runCommand):

      一時的な Amazon EC2 インスタンスでAmazonFSxADValidationツールを実行し、 BucketNameパラメータで指定された Amazon S3 バケットに結果を保存します。

    • DescribeErrorsFromStackEvents (aws:executeScript):

      ランブックがスタックの作成に失敗した場合の CloudFormation スタックイベントについて説明します。

    • BranchOnRetainCloudFormationStack (aws:branch):

      CloudFormation スタックを削除するかどうかを判断するために、 RetainCloudFormationStack および InstanceIdパラメータで分岐します。

    • DeleteCloudFormationStack (aws:deleteStack):

      AWS CloudFormation スタックを削除します。

  8. 完了したら、出力セクションで実行結果を確認します。

    Output showing instance details, CloudFormation stack ID, and validation script results with errors.

    ランブックは、検証スクリプトの実行結果を Amazon S3 バケットにアップロードします。

リファレンス

Systems Manager Automation

AWS サービスドキュメント