

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

# `AWSSupport-ContainEC2Instance`
<a name="automation-awssupport-containec2instance"></a>

 **説明** 

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

 **動作の仕組み** 

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

**重要**  
このランブックは、セキュリティグループの変更、 AMIの作成、Auto Scaling グループとのやり取りなど、昇格された権限を必要とするさまざまなオペレーションを実行します。これらのアクションは、特権のエスカレーションや、アカウントの他のワークロードに影響を与える可能性があります。`AutomationAssumeRole` パラメータで指定されたロールに付与されたアクセス許可を確認し、それらが意図したユースケースに適していることを確認する必要があります。IAM アクセス許可の詳細については、次の AWS ドキュメントを参照してください: [https://docs.aws.amazon.com//IAM/latest/UserGuide/access_controlling.html](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_controlling.html) [https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup-iam.html](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup-iam.html)。
このランブックは、ワークロードの可用性の低下や中断を引き起こす可能性のある変更アクションを実行します。具体的には、ターゲット Amazon EC2 インスタンスに関連付けられたセキュリティグループが変更され、ネットワーク接続に影響する可能性があります。さらに、インスタンスが Auto Scaling グループの一部である場合、ランブックはグループの設定を変更し、スケーリング動作に影響を与える可能性があります。
封じ込めプロセス中に、このランブックはセキュリティグループや などの追加のリソースを作成しますAMI。これらのリソースには識別用のタグが付けられていますが、リソースの作成に注意し、封じ込めプロセスの完了後に適切なクリーンアップまたは管理を行う必要があります。
`Action` パラメータが に設定されている場合`Release`、このランブックは Amazon EC2 インスタンスの設定を元の状態に復元しようとします。ただし、復元プロセスが失敗し、インスタンスが整合性のない状態になるリスクがあります。ランブックには、このような障害が発生した場合の手動復元の手順が記載されていますが、復元プロセス中に発生する可能性のある問題に対処する準備を整えておく必要があります。
本番環境で実行する前に、ランブックを徹底的に確認し、その潜在的な影響を理解し、非本番環境でテストすることをお勧めします。

 [このオートメーションを実行する (コンソール)](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-ContainEC2Instance) 

**ドキュメントタイプ**

オートメーション

**[所有者]**

Amazon

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

/

**必要な IAM アクセス許可**

`AutomationAssumeRole` パラメータでは、ランブックを正常に使用するために、次のアクションが必要です。
+ autoscaling:CreateOrUpdateTags
+ 自動スケーリング:DeleteTags
+ autoscaling:DescribeAutoScalingGroups
+ autoscaling:DescribeAutoScalingInstances
+ Auto Scaling: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

ポリシーの例: 

------
#### [ JSON ]

****  

```
	{
		"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 [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-ContainEC2Instance/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-ContainEC2Instance/description)で に移動します。

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

1. 入力パラメータには、次のように入力します。
   + **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`が の場合に必要です`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}$`

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

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

1. ドキュメントは以下のステップを実行します。
   + **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**

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

1. 実行が完了したら、出力セクションで実行の詳細な結果を確認します。
   + **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
+ [このオートメーションを実行する (コンソール)](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-ContainEC2Instance)
+ [シンプルなオートメーションワークフローを実行する](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-working-executing.html)
+ [自動化のセットアップ](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup.html)
+ [自動化ワークフローのサポート](https://aws.amazon.com/premiumsupport/technology/saw/)