翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWSSupport-ContainS3Resource
説明
AWSSupport-ContainS3Resource ランブックは、記事「Support Automation Workflow (SAW) Runbook: Contain a compromised AWS Amazon S3 Bucket」で説明されている手順の自動化ソリューションを提供します。
重要
-
このランブックは、Amazon S3 バケットポリシー、タグ、パブリックアクセス設定の変更など、昇格された権限を必要とするさまざまなオペレーションを実行します。これらのアクションは、特権のエスカレーションや、ターゲットの Amazon S3 バケットに依存する他のワークロードに影響を与える可能性があります。
AutomationAssumeRoleパラメータで指定されたロールに付与されたアクセス許可を確認し、それらが意図したユースケースに適していることを確認する必要があります。IAM アクセス許可の詳細については、次の AWS ドキュメントを参照してください:Identity and Access Management (IAM) PermissionsAWS AWS Systems Manager Automation Permissions。 -
このランブックは、ワークロードの可用性の低下や中断を引き起こす可能性のある変更アクションを実行します。具体的には、
Containアクションは、SecureRolesパラメータで指定されたロールを除き、指定された Amazon S3 バケットへのすべてのアクセスをブロックします。これは、ターゲットの Amazon S3 バケットに依存するアプリケーションまたはサービスに影響を与える可能性があります。 -
Containアクション中に、このランブックは追加の Amazon S3 バケット (BackupS3BucketNameパラメータで指定) を作成し、元のバケットの設定のバックアップがまだ存在しない場合は保存することがあります。 -
Actionパラメータが に設定されている場合Restore、このランブックはバケットに保存されているバックアップに基づいて Amazon S3 バケットの設定を元の状態に復元しようとしますBackupS3BucketName。ただし、復元プロセスが失敗し、Amazon S3 バケットが整合性のない状態になるリスクがあります。ランブックには、このような障害が発生した場合の手動復元の手順が記載されていますが、復元プロセス中に発生する可能性のある問題に対処する準備を整えておく必要があります。
本番環境で実行する前に、ランブックを徹底的に確認し、その潜在的な影響を理解し、非本番環境でテストすることをお勧めします。
動作の仕組み
このランブックは、リソースタイプとアクションに基づいて動作が異なります。
-
Amazon S3 汎用バケット
Containmentの場合: オートメーションは、バケットへのパブリックアクセスをブロックし、ACL 設定を無効にし、バケット所有者オブジェクトの所有権を強制し、リストされた許可 IAM ロールを除くすべての Amazon S3 アクションを拒否する制限付きバケットポリシーをバケットに配置します。 -
Amazon S3 汎用オブジェクト の場合
Containment: オートメーションは、バケットへのパブリックアクセスをブロックし、ACL 設定を無効にし、バケット所有者オブジェクトの所有権を強制し、リストされた許可 IAM ロールを除くすべての Amazon S3 アクションを拒否する制限付きバケットポリシーをオブジェクトに配置します。 -
Amazon S3 Directory Bucket の場合
Containment: オートメーションは、リストされた許可 IAM ロールを除くすべての Amazon S3 アクションを拒否する制限付きバケットポリシーをバケットに配置します。 -
Amazon S3 汎用バケットの場合
Restore: 自動化は、ブロックパブリックアクセス設定、バケット ACL 設定、バケット所有者オブジェクトの所有権、バケットポリシーを、封じ込め前の初期設定に復元します。 -
Amazon S3 汎用オブジェクト の場合
Restore: 自動化は、ブロックパブリックアクセス設定、バケット ACL 設定、オブジェクト ACL 設定、バケット所有者オブジェクトの所有権、バケットポリシーを格納前の初期設定に復元します。 -
Amazon S3 Directory Bucket の場合
Restore: 自動化は、格納前にバケットポリシーを初期設定に復元します。
ドキュメントタイプ
オートメーション
[所有者]
Amazon
プラットフォーム
/
必要な IAM アクセス許可
AutomationAssumeRole パラメータでは、ランブックを正常に使用するために、次のアクションが必要です。
-
s3:CreateBucket
-
s3:DeleteBucketPolicy
-
s3:DeleteObjectTagging
-
s3:GetAccountPublicAccessBlock
-
s3:GetBucketAcl
-
s3:GetBucketLocation
-
s3:GetBucketOwnershipControls
-
s3:GetBucketPolicy
-
s3:GetBucketPolicyStatus
-
s3:GetBucketTagging
-
s3:GetEncryptionConfiguration
-
s3:GetObject
-
s3:GetObjectAcl
-
s3:GetObjectTagging
-
s3:GetReplicationConfiguration
-
s3:ListBucket
-
s3:PutAccountPublicAccessBlock
-
s3:PutBucketACL
-
s3:PutBucketOwnershipControls
-
s3:PutBucketPolicy
-
s3:PutBucketPublicAccessBlock
-
s3:PutBucketTagging
-
s3:PutBucketVersioning
-
s3:PutObject
-
s3:PutObjectAcl
-
s3express:CreateSession
-
s3express:DeleteBucketPolicy
-
s3express:GetBucketPolicy
-
s3express:PutBucketPolicy
-
ssm:DescribeAutomationExecutions
に必要なアクセス許可を付与する IAM ポリシーの例を次に示しますAutomationAssumeRole。
指示
次の手順に従って自動化を設定します。
-
ドキュメントの Systems Manager
AWSSupport-ContainS3Resourceで に移動します。 -
[Execute automation] (オートメーションを実行) を選択します。
-
入力パラメータには、次のように入力します。
-
BucketName (必須):
-
説明: (必須) Amazon S3 バケットの名前。
-
型:
AWS::S3::Bucket::Name
-
-
アクション (必須):
-
説明: (必須) Amazon S3 リソースを
Contain分離するかRestore、リソース設定を以前のバックアップから元の状態に復元しようとします。 -
タイプ: 文字列
-
許可される値:
Contain|Restore
-
-
DryRun (オプション):
-
説明: (オプション) true に設定すると、オートメーションはターゲット Amazon S3 リソースを変更せず、変更しようとした内容を出力します。デフォルト値: true。
-
タイプ: ブール値
-
許可される値:
true|false
-
-
BucketKeyName (オプション):
-
説明: (オプション) 格納または復元する Amazon S3 オブジェクトのキー。オブジェクトレベルの格納中に使用されます。
-
タイプ: 文字列
-
許可されたパターン:
^[a-zA-Z0-9\\.\\-_\\\\!*'()/]{0,1024}$
-
-
BucketRestrictAccess (条件付き):
-
説明: (条件付き) 封じ込めアクションを実行した後にターゲット Amazon S3 リソースへのアクセスを許可する IAM ユーザーまたはロールの ARN。
ActionをContainに設定した場合、このパラメータは必須です。 -
タイプ: StringList
-
許可されたパターン:
^$|^arn:(aws|aws-cn|aws-us-gov|aws-iso(-[a-z])?):iam::[0-9]{12}:(role|user)\\/[\\w+\\/=,.@-]+$
-
-
TagIdentifier (オプション):
-
説明: (オプション) 格納ワークフロー中にこのランブックによって作成または変更されたリソースに追加される Key=BatchId,Value=78925 形式のタグ。
-
タイプ: 文字列
-
許可されたパターン:
^$|^[Kk][Ee][Yy]=[\\+\\-\\=\\.\\_\\:\\/@a-zA-Z0-9]{1,128},[Vv][Aa][Ll][Uu][Ee]=[\\+\\-\\=\\.\\_\\:\\/@a-zA-Z0-9]{0,128}$
-
-
BackupS3BucketName (条件付き):
-
説明: (条件付き) が に設定されている場合にターゲットリソース設定をバックアップする Amazon S3 バケット
Action、ContainまたはActionが に設定されている場合に から設定を復元する Amazon S3 バケットRestore。 -
型:
AWS::S3::Bucket::Name
-
-
BackupS3KeyName (条件付き):
-
説明: (条件付き)
Actionが に設定されている場合Restore、オートメーションがターゲットリソース設定の復元を試みるために使用する Amazon S3 キーを指定します。 -
タイプ: 文字列
-
許可されたパターン:
^[a-zA-Z0-9\\.\\-_\\\\!*'()/]{0,1024}$
-
-
BackupS3BucketAccess (条件付き):
-
説明: (条件付き) 封じ込めアクションを実行した後にバックアップ Amazon S3 バケットへのアクセスを許可する IAM ユーザーまたはロールの ARN。このパラメータは、
Actionが の場合に必要ですContain。 -
タイプ: StringList
-
許可されたパターン:
^$|^arn:(aws|aws-cn|aws-us-gov|aws-iso(-[a-z])?):iam::[0-9]{12}:(role|user)\\/[\\w+\\/=,.@-]+$
-
-
AutomationAssumeRole(オプション):
-
説明: (オプション) Systems Manager Automation がユーザーに代わってアクションを実行できるようにする IAM ロールの Amazon リソースネーム (ARN)。
-
型:
AWS::IAM::Role::Arn
-
-
-
[実行] を選択します。
-
自動化が開始されます。
-
ドキュメントは以下のステップを実行します。
-
validateRequiredInputs
指定されたアクションに基づいて、必要なオートメーション入力パラメータを検証します。
-
assertBucketExists
ターゲット Amazon S3 バケットが存在し、アクセス可能かどうかを確認します。
-
backupBucketPreChecks
バックアップ Amazon S3 バケットがオブジェクトへのパブリック読み取りまたは書き込みアクセスを許可する可能性があるかどうかを確認します。
-
backupTargetBucketMetadata
ターゲット Amazon S3 バケットの現在の設定を記述し、指定されたバックアップ Amazon S3 バケットにバックアップをアップロードします。
-
containBucket
バケットレベルのオペレーションを実行して、ターゲット Amazon S3 バケットを含めます。
-
BranchOnActionAndMode
入力パラメータ Action と DryRun に基づいてオートメーションを分岐します。
-
RestoreInstanceConfiguration
バックアップから Amazon S3 バケット設定を復元します。
-
containFinalOutput
コンテナアクティビティを読み取り可能な形式で統合します。
-
ReportContain
封じ込めアクションのドライランの詳細を出力します。
-
ReportRestore
復元アクションのドライランの詳細を出力します。
-
ReportRestoreFailure
復元ワークフローの失敗シナリオ中に Amazon S3 バケットの元の設定を復元する手順について説明します。
-
ReportContainmentFailure
封じ込めワークフローの失敗シナリオ中に Amazon S3 バケットの元の設定を復元する手順について説明します。
-
FinalOutput
封じ込めアクションの詳細を出力します。
-
-
実行が完了したら、出力セクションで実行の詳細な結果を確認します。
-
ContainFinalOutput.Output
が False に
DryRun設定されている場合、このランブックによって実行される封じ込めアクションの詳細を出力します。 -
RestoreFinalOutput.Output
が False に
DryRun設定されている場合、このランブックによって実行される復元アクションの詳細を出力します。 -
ContainS3ResourceDryRun.Output
が True に
DryRun設定されている場合、このランブックによって実行される封じ込めアクションの詳細を出力します。 -
RestoreS3ResourceDryRun.Output
が True に
DryRun設定されている場合、このランブックによって実行される復元アクションの詳細を出力します。 -
ReportContainmentFailure.Output
封じ込めワークフローの失敗シナリオ中に、ターゲット Amazon S3 リソースの元の設定を復元する手順について説明します。
-
ReportRestoreFailure.Output
復元ワークフローの失敗シナリオ中に、ターゲット Amazon S3 リソースの元の設定を復元する手順について説明します。
-
リファレンス
Systems Manager Automation