翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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": "*" } ] }
指示
次の手順に従って自動化を設定します。
-
ドキュメントの Systems Manager
AWSSupport-ContainEC2Instance
で に移動します。 -
[Execute automation] (オートメーションを実行) を選択します。
-
入力パラメータには、次のように入力します。
-
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 S3Action
バケット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
が の場合に必要ですContain
。AutomationAssumeRole
、または存在しない場合は、自動化が実行されているコンテキストのユーザーが自動的にリストに追加されます。タイプ: 文字列
許可されたパターン:
^$|^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}$
-
-
[実行] を選択します。
-
自動化が開始されます。
-
ドキュメントは以下のステップを実行します。
-
ValidateRequiredInputs
必要な入力がすべて提供されていることを検証します。
-
AssertInstanceIsNotTerminated
ターゲット Amazon EC2 インスタンスが終了 (削除) していないかどうかを確認します。
-
GetAutoScalingInstanceInfo
ターゲット Amazon EC2 インスタンスが Auto Scaling グループの一部である場合、Amazon EC2 インスタンスのライフサイクルとグループ名を取得します。
-
CheckBackupS3BucketName
ターゲット Amazon S3 バケットがオブジェクトへの
write
パブリックアクセスを許可read
している可能性があるかどうかを確認します。バケットが存在しない場合、新しい Amazon S3BackupS3BucketName
バケットが作成されます。 -
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
封じ込めアクションの詳細を出力します。
-
-
実行が完了したら、出力セクションで実行の詳細な結果を確認します。
-
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