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

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

AWSSupport-ContainEC2Instance

説明

AWSSupport-ContainEC2Instance ランブックは、「How do I isolate the Amazon EC2 Instance when faced with a potential compromised or suspicious?」という記事で説明されている手順の自動ソリューションを提供します。オートメーションは、指定した値に応じて分岐します。

動作の仕組み

この自動化ランブックは、一連の調整されたステップを通じて Amazon EC2 インスタンスのネットワーク封じ込めAWSSupport-ContainEC2Instanceを実行します。Contain モードで実行すると、まず入力パラメータを検証し、インスタンスが終了していないかどうかを確認します。次に、現在のセキュリティグループ設定を Amazon S3 バケットにバックアップし、後で復元します。ランブックは、一時的な「すべてのアクセス」セキュリティグループと最終的な「封じ込め」セキュリティグループの 2 つのセキュリティグループを作成します。インスタンスのネットワークインターフェイスを元のセキュリティグループからオールアクセスセキュリティグループに徐々に移行し、最後に封じ込めセキュリティグループに移行します。指定した場合、インスタンスの暗号化されていないバックアップと暗号化されたAMIバックアップの両方が作成されます。Auto Scaling グループのインスタンスの場合、必要な Auto Scaling グループの変更を処理し、インスタンスをスタンバイ状態にします。Release モードで実行すると、Amazon S3 のバックアップ設定を使用してインスタンスを元のネットワーク設定に復元します。ランブックは、実際の変更を行うことなくアクションをプレビューするためのDryRunパラメータをサポートし、封じ込めおよびリリースワークフロー全体で包括的なエラー処理とレポートメカニズムが含まれています。

重要
  • このランブックは、セキュリティグループの変更、 AMIの作成、Auto Scaling グループとのやり取りなど、昇格された権限を必要とするさまざまなオペレーションを実行します。これらのアクションは、特権のエスカレーションや、アカウントの他のワークロードに影響を与える可能性があります。AutomationAssumeRole パラメータで指定されたロールに付与されたアクセス許可を確認し、それらが意図したユースケースに適していることを確認する必要があります。IAM アクセス許可の詳細については、次の AWS ドキュメントを参照してください: AWS Identity and Access Management (IAM) Permissions AWS Systems Manager Automation Permissions

  • このランブックは、ワークロードの可用性の低下や中断を引き起こす可能性のある変更アクションを実行します。具体的には、ターゲット Amazon EC2 インスタンスに関連付けられたセキュリティグループを変更し、ネットワーク接続に影響を与える可能性があります。さらに、インスタンスが Auto Scaling グループの一部である場合、ランブックはグループの設定を変更し、スケーリング動作に影響を与える可能性があります。

  • 封じ込めプロセス中に、このランブックはセキュリティグループや などの追加のリソースを作成しますAMI。これらのリソースには識別用のタグが付けられていますが、リソースの作成に注意し、封じ込めプロセスの完了後に適切なクリーンアップまたは管理を行う必要があります。

  • Action パラメータが に設定されている場合Release、このランブックは Amazon EC2 インスタンスの設定を元の状態に復元しようとします。ただし、復元プロセスが失敗し、インスタンスが整合性のない状態になるリスクがあります。ランブックには、このような障害が発生した場合の手動復元の手順が記載されていますが、復元プロセス中に発生する可能性のある問題に対処する準備を整えておく必要があります。

本番環境で実行する前に、ランブックを徹底的に確認し、その潜在的な影響を理解し、非本番環境でテストすることをお勧めします。

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

ドキュメントタイプ

Automation

[所有者]

Amazon

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

/

必要な IAM アクセス許可

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

  • autoscaling:CreateOrUpdateTags

  • 自動スケーリング:DeleteTags

  • autoscaling:DescribeAutoScalingGroups

  • autoscaling:DescribeAutoScalingInstances

  • 自動スケーリング:DescribeTags

  • autoscaling:EnterStandby

  • autoscaling:ExitStandby

  • autoscaling:UpdateAutoScalingGroup

  • ec2:AuthorizeSecurityGroupEgress

  • ec2:AuthorizeSecurityGroupIngress

  • ec2:CopyImage

  • ec2:CreateImage

  • ec2:CreateSecurityGroup

  • ec2:CreateSnapshot

  • ec2:CreateTags

  • ec2:DeleteSecurityGroup

  • ec2:DeleteTags

  • ec2:DescribeImages

  • ec2:DescribeInstances

  • ec2:DescribeSecurityGroups

  • ec2:DescribeSnapshots

  • ec2:DescribeTags

  • ec2:ModifyNetworkInterfaceAttribute

  • ec2:RevokeSecurityGroupEgress

  • kms:CreateGrant

  • kms:DescribeKey

  • kms:GenerateDataKeyWithoutPlaintext

  • kms:ReEncryptFrom

  • kms:ReEncryptTo

  • s3:CreateBucket

  • s3:DeleteObjectTagging

  • s3:GetAccountPublicAccessBlock

  • s3:GetBucketAcl

  • s3:GetBucketLocation

  • s3:GetBucketOwnershipControls

  • s3:GetBucketPolicy

  • s3:GetBucketPolicyStatus

  • s3:GetBucketPublicAccessBlock

  • s3:GetObject

  • s3:ListBucket

  • s3:PutAccountPublicAccessBlock

  • s3:PutBucketPolicy

  • s3:PutBucketVersioning

  • s3:PutObject

  • s3:PutObjectTagging

ポリシーの例:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadOperations", "Effect": "Allow", "Action": [ "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances", "autoscaling:DescribeTags", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSecurityGroups", "ec2:DescribeSnapshots", "ec2:DescribeTags", "kms:DescribeKey", "s3:GetAccountPublicAccessBlock", "s3:GetBucketAcl", "s3:GetBucketLocation", "s3:GetBucketOwnershipControls", "s3:GetBucketPolicy", "s3:GetBucketPolicyStatus", "s3:GetBucketPublicAccessBlock", "s3:GetObject", "s3:ListBucket" ], "Resource": "*" }, { "Sid": "WriteOperations", "Effect": "Allow", "Action": [ "autoscaling:CreateOrUpdateTags", "autoscaling:DeleteTags", "autoscaling:EnterStandby", "autoscaling:ExitStandby", "autoscaling:UpdateAutoScalingGroup", "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:CopyImage", "ec2:CreateImage", "ec2:CreateSecurityGroup", "ec2:CreateSnapshot", "ec2:CreateTags", "ec2:DeleteSecurityGroup", "ec2:DeleteTags", "ec2:ModifyNetworkInterfaceAttribute", "ec2:RevokeSecurityGroupEgress", "kms:CreateGrant", "kms:GenerateDataKeyWithoutPlaintext", "kms:ReEncryptFrom", "kms:ReEncryptTo", "s3:CreateBucket", "s3:DeleteObjectTagging", "s3:PutAccountPublicAccessBlock", "s3:PutBucketPolicy", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutObjectTagging" ], "Resource": "*" } ] }

指示

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

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

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

  3. 入力パラメータには、次のように入力します。

    • AutomationAssumeRole(オプション):

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

      • 型: AWS::IAM::Role::Arn

    • アクション (必須):

      • 説明: (必須) Amazon EC2 インスタンスをContain分離するかRestore、以前のバックアップから Amazon EC2 インスタンス設定の元の設定を復元しようとします。

      • タイプ: 文字列

      • 許可されたパターン: Contain|Restore

    • DryRun (オプション):

      • 説明: (オプション) に設定するとtrue、オートメーションはコマンドを実行せず、試行した内容を報告し、各ステップの詳細を表示します。デフォルト値: true

      • 型: ブール値

      • 許可される値: true|false

    • CreateAMIBackup (オプション):

      • 説明: (オプション) に設定するとtrue、封じ込めアクションを実行する前に Amazon EC2 インスタンスAMIの が作成されます。

      • 型: ブール値

      • 許可される値: true|false

    • KmsKey (オプション):

      • 説明: (オプション) ターゲット Amazon EC2 インスタンスの暗号化された を作成するために使用される AWS KMS キーAMIの ID。デフォルトでは alias/aws/ebs に設定されています。

      • タイプ: 文字列

      • 許可されたパターン: ^(((arn:(aws|aws-cn|aws-us-gov):kms:([a-z]{2}|[a-z]{2}-gov)-[a-z]+-[0-9]{1}:[0-9]{12}:key/)?([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}|mrk-[a-f0-9]{32}))|(arn:(aws|aws-cn|aws-us-gov):kms:([a-z]{2}|[a-z]{2}-gov)-[a-z]+-[0-9]{1}:[0-9]{12}:)?alias/.{1,})$

    • BackupS3BucketName (条件付き):

      • 説明: (条件付き) が の場合は設定をアップロードし、 Action が の場合は設定を復元Containする Amazon Amazon S3 Action バケットRelease注: 指定されたバケットがアカウントに存在しない場合、自動化はユーザーに代わって Amazon S3 バケットを作成します。

      • 型: AWS::S3::Bucket::Name

    • TagIdentifier (オプション):

      • 説明: (オプション) 封じ込めワークフロー中にこのランブックによって作成または変更Key=BatchId,Value=78925される AWS リソースに追加される形式のタグ。このタグは、封じ込めプロセス中に関連付けられたリソースを識別および管理するために使用できます。復元ワークフロー中、このパラメータで指定されたタグはリソースから削除されます。注: タグキーと値は大文字と小文字が区別されます。

      • タイプ: 文字列

      • 許可されたパターン: ^$|^[Kk][Ee][Yy]=[\\+\\-\\=\\.\\_\\:\\/@a-zA-Z0-9]{1,128},[Vv][Aa][Ll][Uu][Ee]=[\\+\\-\\=\\.\\_\\:\\/@a-zA-Z0-9]{0,128}$

    • BackupS3BucketAccess (条件付き):

      • 説明: (条件付き) 封じ込めアクションを実行した後にバックアップ Amazon S3 バケットへのアクセスを許可する IAM ユーザーまたはロールの ARN。このパラメータは、 Actionが の場合に必要ですContainAutomationAssumeRole、または存在しない場合は、自動化が実行されているコンテキストのユーザーが自動的にリストに追加されます。

      • タイプ: 文字列

      • 許可されたパターン: ^$|^arn:(aws|aws-cn|aws-us-gov|aws-iso(-[a-z])?):iam::[0-9]{12}:(role|user)\\/[\\w+\\/=,.@-]+$

    • IngressTrafficRules (オプション):

      • 説明: (オプション) Amazon EC2 インスタンス[{"Cidr": "1.2.3.4/32", "IpProtocol": "tcp", "FromPort":"22", "ToPort":"22"}]に適用する形式の Cidr、IpProtocol、FromPort、ToPort を使用したセキュリティグループの進入ルールのカンマ区切りマップ。ルールが指定されていない場合、進入ルールのないセキュリティグループが Amazon EC2 インスタンスにアタッチされ、受信トラフィックから効果的に分離されます。

      • タイプ: MapList

      • 許可されたパターン: ^\\{\\}$|^\\{\"Cidr\":\"[\\x00-\\x7F+]{1,128}\",\"IpProtocol\":\"[\\x00-\\x7F+]{1,128}\",\"FromPort\":\"[\\x00-\\x7F+]{1,128}\",\"ToPort\":\"[\\x00-\\x7F+]{0,255}\"\\}

    • EgressTrafficRules (オプション):

      • 説明: (オプション) Amazon EC2 インスタンス[{"Cidr": "1.2.3.4/32", "IpProtocol": "tcp", "FromPort":"22", "ToPort":"22"}]に適用する形式の Cidr、IpProtocol、FromPort、ToPort を使用したセキュリティグループ出力ルールのカンマ区切りマップ。ルールが指定されていない場合、出力ルールのないセキュリティグループが Amazon EC2 インスタンスにアタッチされるため、すべての送信トラフィックを効果的に防止できます。

      • タイプ: MapList

      • 許可されたパターン: ^\\{\\}$|^\\{\"Cidr\":\"[\\x00-\\x7F+]{1,128}\",\"IpProtocol\":\"[\\x00-\\x7F+]{1,128}\",\"FromPort\":\"[\\x00-\\x7F+]{1,128}\",\"ToPort\":\"[\\x00-\\x7F+]{0,255}\"\\}

    • BackupS3KeyName (オプション):

      • 説明: (オプション) Actionが に設定されている場合Restore、オートメーションがターゲット Amazon EC2 インスタンス設定の復元を試みるために使用する Amazon Amazon S3 キーを指定します。Amazon S3 キーは通常、 の形式に従います{year}/{month}/{day}/{hour}/{minute}/{automation_execution_id}.json。キーは、前の封じ込め自動化実行の出力から取得できます。

      • タイプ: 文字列

      • 許可されたパターン: ^[a-zA-Z0-9\\.\\-_\\\\!*'()/]{0,1024}$

  4. [実行] を選択します。

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

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

    • ValidateRequiredInputs

      必要な入力がすべて提供されていることを検証します。

    • AssertInstanceIsNotTerminated

      ターゲット Amazon EC2 インスタンスが終了 (削除) していないかどうかを確認します。

    • GetAutoScalingInstanceInfo

      ターゲット Amazon EC2 インスタンスが Auto Scaling グループの一部である場合、Amazon EC2 インスタンスのライフサイクルとグループ名を取得します。

    • CheckBackupS3BucketName

      ターゲット Amazon S3 バケットがオブジェクトへのwriteパブリックアクセスを許可readしている可能性があるかどうかを確認します。バケットが存在しない場合、新しい Amazon S3 BackupS3BucketNameバケットが作成されます。

    • BranchOnActionAndMode

      入力パラメータ Actionと に基づいてオートメーションを分岐しますDryRun

    • BranchOnAutoScalingGroupMembership

      ターゲット Amazon EC2 インスタンスが Auto Scaling グループの一部であるかどうかとそのライフサイクル状態に基づいてオートメーションを分岐します。

    • DescribeAutoScalingGroups

      関連付けられた Amazon EC2 Auto Scaling グループ設定を取得して保存します。

    • ModifyAutoScalingGroup

      封じ込めアクションの関連する Amazon EC2 Auto Scaling グループ設定を変更し、Amazon EC2 インスタンスを Standby状態に設定し、Auto Scaling グループのMinSize容量を調整します。

    • BackupInstanceSecurityGroups

      ターゲット Amazon EC2 インスタンスセキュリティグループの設定を取得して保存します。

    • CreateAllAccessSecurityGroup

      ターゲット Amazon EC2 インスタンスのセキュリティグループを置き換えるすべての進入トラフィックを許可する一時的なセキュリティグループを作成します。

    • CreateContainmentSecurityGroup

      指定されたイングレスルールとエグレスルールを使用して制限的な封じ込めセキュリティグループを作成し、一時的なオールアクセスグループをそのグループに置き換えます。

    • BranchOnCreateAMIBackup

      CreateAMIBackup 入力パラメータに基づいてオートメーションを分岐します。

    • AssertSourceInstanceRootVolumeIsEbs

      ターゲット Amazon EC2 インスタンスのルートボリュームが Amazon EBS かどうかを確認します。

    • CreateImage

      ターゲット Amazon EC2 インスタンスAMIの を作成します。

    • RestoreInstanceConfiguration

      バックアップからターゲット Amazon EC2 インスタンス設定を復元します。

    • ReportContain

      封じ込めアクションのドライランの詳細を出力します。

    • ReportRestore

      復元アクションのドライランの詳細を出力します。

    • ReportRestoreFailure

      復元ワークフローの失敗シナリオ中に、ターゲット Amazon EC2 インスタンスの元の設定を復元する手順を示します。

    • ReportContainmentFailure

      封じ込めワークフローの失敗シナリオ中に、ターゲット Amazon EC2 インスタンスの元の設定を復元する手順について説明します。

    • FinalOutput

      封じ込めアクションの詳細を出力します。

  7. 実行が完了したら、出力セクションで実行の詳細な結果を確認します。

    • FinalOutput.Output

      が False にDryRun設定されている場合、このランブックによって実行される封じ込めアクションの詳細を出力します。

    • RestoreInstanceConfiguration.Output

      が False に設定されている場合DryRun、このランブックによって実行される復元アクションを出力します。

    • ReportContain.Output

      が True にDryRun設定されている場合、このランブックによって実行される封じ込めアクションの詳細を出力します。

    • ReportRestore.Output

      が True にDryRun設定されている場合、このランブックによって実行される復元アクションの詳細を出力します。

    • ReportContainmentFailure.Output

      封じ込めワークフローの失敗シナリオ中に、ターゲット Amazon EC2 インスタンスの元の設定を復元する手順について説明します。

    • ReportRestoreFailure.Output

      復元ワークフローの失敗シナリオ中に、ターゲット Amazon EC2 インスタンスの元の設定を復元する手順を示します。

リファレンス

Systems Manager Automation