本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWSSupport-ContainS3Resource
描述
该AWSSupport-ContainS3Resource
运行手册为文章《支持自动化工作流程 (SAW) 运行手册:包含受损的 AWS Amazon S3 存储桶》中概述的
重要
-
本运行手册执行各种需要提升权限的操作,例如修改 Amazon S3 存储桶策略、标签和公共访问配置。这些操作可能会导致权限提升或影响依赖目标 Amazon S3 存储桶的其他工作负载。您应查看向
AutomationAssumeRole
参数指定的角色授予的权限,并确保这些权限适用于预期用例。您可以参考以下 AWS 文档,了解有关 IAM 权限的更多信息:Identity and Access Management (IAM) Permissions
AWS 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": "*" } ] }
说明
按照这些步骤对自动化进行配置:
-
AWSSupport-ContainS3Resource
在 Systems Manager 的 “文档” 下导航至。 -
选择 Execute automation(执行自动化)。
-
对于输入参数,请输入以下内容:
-
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 (视情况而定):
描述:(视情况而定)如果设置
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 角色的亚马逊资源名称 (ARN)。
类型:
AWS::IAM::Role::Arn
-
-
选择执行。
-
自动化启动。
-
文档将执行以下步骤:
-
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
输出遏制操作的详细信息。
-
-
执行完成后,请查看 “输出” 部分,了解执行的详细结果:
-
ContainFinalOutput。输出
当设置为 False 时
DryRun
,输出此运行手册执行的遏制操作的详细信息。 -
RestoreFinalOutput。输出
设置为 False 时
DryRun
,输出此运行手册执行的还原操作的详细信息。 -
包含 3ResourceDryRun. 输出
设置为 Tr
DryRun
ue 时,输出此运行手册执行的遏制操作的详细信息。 -
恢复 3ResourceDryRun. 输出
设置为 True 时
DryRun
,输出此运行手册执行的还原操作的详细信息。 -
ReportContainmentFailure。输出
提供在控制工作流程失败的情况下恢复目标 Amazon S3 资源原始配置的说明。
-
ReportRestoreFailure。输出
提供在恢复工作流程失败的情况下恢复目标 Amazon S3 资源原始配置的说明。
-
参考
Systems Manager Automation