AWSSupport-ContainS3Resource - AWS Systems Manager 自动化运行手册参考

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AWSSupport-ContainS3Resource

描述

AWSSupport-ContainS3Resource运行手册为文章《支持自动化工作流程 (SAW) 运行手册:包含受损的 AWS Amazon S3 存储桶》中概述的程序提供了自动解决方案

重要
  • 本运行手册执行各种需要提升权限的操作,例如修改 Amazon S3 存储桶策略、标签和公共访问配置。这些操作可能会导致权限提升或影响依赖目标 Amazon S3 存储桶的其他工作负载。您应查看向AutomationAssumeRole参数指定的角色授予的权限,并确保这些权限适用于预期用例。您可以参考以下 AWS 文档,了解有关 IAM 权限的更多信息:Identity and Access Management (IAM) PermissionsAWS AWS Systems Manager Automation Permissions

  • 此运行手册执行的变异操作可能会导致您的工作负载不可用或中断。具体而言,该Contain操作会阻止对指定 Amazon S3 存储桶的所有访问权限,但SecureRoles参数中指定的角色除外。这可能会影响依赖目标 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 目录存储桶Containment:自动化设置了限制性存储桶策略,除了允许列出的 IAM 角色外,拒绝对该存储桶执行所有 Amazon S3 操作。

  • 对于 Amazon S3 通用存储桶Restore:自动化会将封锁公共访问配置、存储桶 ACL 配置、存储桶所有者对象所有权和存储桶策略恢复到包含之前的初始配置。

  • 对于 Amazon S3 通用对象Restore:自动化会将阻止公共访问配置、存储桶 ACL 配置、对象 ACL 配置、存储桶所有者对象所有权和存储桶策略恢复到包含之前的初始配置。

  • 对于 Amazon S3 目录存储桶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

{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3Permissions", "Effect": "Allow", "Action": [ "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" ], "Resource": "*" }, { "Sid": "S3ExpressPermissions", "Effect": "Allow", "Action": [ "s3express:CreateSession", "s3express:DeleteBucketPolicy", "s3express:GetBucketPolicy", "s3express:PutBucketPolicy" ], "Resource": "*" }, { "Sid": "SSMPermissions", "Effect": "Allow", "Action": [ "ssm:DescribeAutomationExecutions" ], "Resource": "*" } ] }

说明

按照这些步骤对自动化进行配置:

  1. AWSSupport-ContainS3Resource在 Systems Manager 的 “文档” 下导航至。

  2. 选择 Execute automation(执行自动化)。

  3. 对于输入参数,请输入以下内容:

    • BucketName (必填):

      • 描述:(必填)Amazon S3 存储桶的名称。

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

    • 操作(必填):

      • 描述:(必填)选择Contain隔离 Amazon S3 资源或Restore尝试将资源配置从先前备份恢复到其原始状态。

      • 类型:字符串

      • 允许的值:Contain|Restore

    • DryRun (可选):

      • 描述:(可选)设置为 true 时,自动化不会对目标 Amazon S3 资源进行任何更改,而是输出它本来会尝试更改的内容。默认值:真。

      • 类型:布尔值

      • 允许的值: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为时恢复配置Restore

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

    • BackupS3KeyName (视情况而定):

      • 描述:(视情况而定)如果设置ActionRestore,则指定自动化用于尝试恢复目标资源配置的 Amazon S3 密钥。

      • 类型:字符串

      • 允许的模式:^[a-zA-Z0-9\\.\\-_\\\\!*'()/]{0,1024}$

    • BackupS3BucketAccess (视情况而定):

      • 描述:(视情况而定)在运行控制操作后将被允许访问备份 Amazon S3 存储桶的 IAM 用户或角色的 ARN。当是时,此参数是必需ActionContain

      • 类型: StringList

      • 允许的模式:^$|^arn:(aws|aws-cn|aws-us-gov|aws-iso(-[a-z])?):iam::[0-9]{12}:(role|user)\\/[\\w+\\/=,.@-]+$

    • AutomationAssumeRole (可选):

      • 描述:(可选)允许 Systems Manager Automation 代表您执行操作的 IAM 角色的亚马逊资源名称 (ARN)。

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

  4. 选择执行。

  5. 自动化启动。

  6. 文档将执行以下步骤:

    • validateRequiredInputs

      根据指定的操作验证所需的自动化输入参数。

    • assertBucketExists

      检查目标 Amazon S3 存储桶是否存在并且可以访问。

    • backupBucketPre支票

      检查备份 Amazon S3 存储桶是否有可能向公众授予对其对象的读取或写入权限。

    • backupTargetBucket元数据

      描述目标 Amazon S3 存储桶的当前配置,并将备份上传到指定的备份 Amazon S3 存储桶。

    • 容器桶

      执行存储桶级别的操作以包含目标 Amazon S3 存储桶。

    • BranchOnActionAndMode

      根据输入参数 “操作” 和 “分支自动化” DryRun。

    • RestoreInstanceConfiguration

      从备份中恢复 Amazon S3 存储桶配置。

    • containFinalOutput

      以可读的格式整合控制活动。

    • ReportContain

      输出遏制操作的试运行详细信息。

    • ReportRestore

      输出恢复操作的试运行详细信息。

    • ReportRestoreFailure

      提供在恢复工作流程失败的情况下恢复 Amazon S3 存储桶原始配置的说明。

    • ReportContainmentFailure

      提供在控制工作流程失败的情况下恢复 Amazon S3 存储桶原始配置的说明。

    • FinalOutput

      输出遏制操作的详细信息。

  7. 执行完成后,请查看 “输出” 部分,了解执行的详细结果:

    • ContainFinalOutput。输出

      当设置为 False 时DryRun,输出此运行手册执行的遏制操作的详细信息。

    • RestoreFinalOutput。输出

      设置为 False 时DryRun,输出此运行手册执行的还原操作的详细信息。

    • 包含 3ResourceDryRun. 输出

      设置为 Tr DryRun ue 时,输出此运行手册执行的遏制操作的详细信息。

    • 恢复 3ResourceDryRun. 输出

      设置为 True 时DryRun,输出此运行手册执行的还原操作的详细信息。

    • ReportContainmentFailure。输出

      提供在控制工作流程失败的情况下恢复目标 Amazon S3 资源原始配置的说明。

    • ReportRestoreFailure。输出

      提供在恢复工作流程失败的情况下恢复目标 Amazon S3 资源原始配置的说明。

参考

Systems Manager Automation