本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWSSupport-TroubleshootS3AccessSameAccount
描述
该AWSSupport-TroubleshootS3AccessSameAccount运行手册通过评估在您的 Amazon S3 资源上向请求 AWS Identity and Access Management 者 (IAM) 身份(用户或角色)授予的访问级别,帮助诊断存储桶或对象操作中的亚马逊简单存储服务 (Amazon S3) 访问被拒绝的问题。该运行手册评估了与 Amazon S3 资源以及输入参数中指定的 IAM 用户或角色相关的所有相关访问策略、用户策略和基于资源的策略(存储桶策略、存储桶 ACL 和对象 ACL)。
重要
只有当请求者与 Amazon S3 存储桶或对象在同一个 AWS 账户中时,您才能使用此运行手册来评估访问被拒绝的问题。
确保您的用户或AutomationAssumeRole用于运行此运行手册的用户拥有相关资源策略和 bucket/key 元数据配置的必要权限。 get/list
如果资源策略中有NotPrincipal元素,则运行手册将在该步骤PolicyModifier中引发错误。
如何工作?
该运行手册执行以下评估:
验证 IAM 用户或角色的存在并解构 ARN 以识别其关键组件。
检查 Amazon S3 资源(存储桶或对象)是否存在并返回存储桶和密钥名称。
验证 user/role 和 bucket/object 是否在同一个 AWS 账户中。
检索存储桶和对象 ACL 配置(如果适用)。
获取附加到用户或角色的 IAM 策略。
检索存储桶策略(如果存在)。
如果适用,获取加密对象的 AWS KMS 密钥策略。
如果适用,获取 VPC 终端节点策略。
检索 AWS 组织服务控制策略 (SCP)(如果提供)。
共同评估所有策略以确定指定操作的有效权限。
文档类型
自动化
所有者
Amazon
平台
/
所需的 IAM 权限
AutomationAssumeRole 参数需要执行以下操作才能成功使用运行手册。
ec2:DescribeVpcEndpoints(如果指定了 VPC 终端节点)iam:GetGroupPolicyiam:GetPolicyiam:GetPolicyVersioniam:GetRoleiam:GetRolePolicyiam:GetUseriam:GetUserPolicyiam:ListAttachedRolePoliciesiam:ListAttachedUserPoliciesiam:ListGroupsForUseriam:ListRolePoliciesiam:ListUserPoliciesiam:SimulatePrincipalPolicykms:GetKeyPolicy(如果使用 KMS 加密)s3:GetBucketAcls3:GetBucketLocations3:GetBucketPolicys3:GetObjectAcls3:GetObjectVersions3:ListBucket
示例 IAM 策略:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeVpcEndpoints", "iam:GetGroupPolicy", "iam:GetPolicy", "iam:GetPolicyVersion", "iam:GetRole", "iam:GetRolePolicy", "iam:GetUser", "iam:GetUserPolicy", "iam:ListAttachedRolePolicies", "iam:ListAttachedUserPolicies", "iam:ListGroupsForUser", "iam:ListRolePolicies", "iam:ListUserPolicies", "iam:SimulatePrincipalPolicy", "kms:GetKeyPolicy", "s3:GetBucketAcl", "s3:GetBucketLocation", "s3:GetBucketPolicy", "s3:GetObjectAcl", "s3:GetObjectVersion", "s3:ListBucket" ], "Resource": "*" } ] }
说明
按照这些步骤对自动化进行配置:
-
导航到
AWSSupport-TroubleshootS3AccessSameAccount“系统管理器” 下的 “文档”。 -
选择 Execute automation(执行自动化)。
-
对于输入参数,输入以下内容:
-
AutomationAssumeRole (可选):
允许系统管理员自动化代表您执行操作的 IAM 角色的亚马逊资源名称 (ARN)。如果未指定任何角色,系统管理员自动化将使用您的权限。
-
S3ResourceArn (必填):
您的 Amazon S3 资源(存储桶或密钥)的 ARN。对于诸如
PutObject或之类的对象操作GetObject,请提供对象的 ARN。示例:arn:aws:s3:::bucket_name、或arn:aws:s3:::bucket_name/key_name。 -
S3Action(必填):
您希望运行手册评估访问上下文的 Amazon S3 操作。确保为特定操作提供相应的 Amazon S3 资源类型(存储桶或对象)。示例包括:
GetObjectPutObject、DeleteObject、GetBucketAcl、等。 -
RequesterArn (必填):
您想要查找特定 Amazon S3 资源访问级别的 IAM 负责人(用户或角色)ARN。例如:
arn:aws:iam::123456789012:user/user_name或arn:aws:iam::123456789012:role/example-role。 -
RequesterRoleSessionName (可选):
如果 IAM ARN 是一个角色并且您想要提供特定的会话名称,则为代入角色的会话名称。
-
S3ObjectVersionId (可选):
如果对象有多个版本,则此参数允许您指定要评估访问上下文的对象的特定版本。
-
KmsKeyArn (可选):
如果与操作相关,则为 AWS KMS 密钥 ARN(例如:
CompleteMultipartUploadCopyObject、CreateMultipartUpload、PutObject、等)。注意:运行手册不支持在其他 AWS 账户中指定 AWS KMS 密钥。 -
VpcEndpointId (可选):
与访问评估相关的虚拟私有云 (VPC) 终端节点 ID。Amazon S3 存储桶策略可以控制对来自特定 VPC 终端节点的存储桶的访问。
-
ContextKeyList (可选):
条件键列表和与策略评估相关的相应值。例如:
[{"ContextKeyName":"aws:PrincipalArn","ContextKeyValues":["arn:aws:iam::123456789012:root"],"ContextKeyType":"string"}]。 -
SCP政策(可选):
如果您想让运行手册根据特定的 SCP 策略评估输入,请使用 AWS 组织服务控制策略 (SCP)。当你从组织的管理账户运行这本运行手册时,这不是必需的,也会被忽略。
-
-
选择执行。
-
自动化启动。
-
文档将执行以下步骤:
-
IAMCheckTypeset:检查 IAM 用户或角色的存在并解构 ARN 以识别其关键组件。
-
ResourceTypeCheck:检查 Amazon S3 资源(存储桶或对象)是否存在并返回存储桶和密钥名称。
-
UaBoOoAccountCheck:验证 user/role 和 bucket/object 是否在同一个 AWS 账户中。
-
KeyDetailsChecker:如果资源是对象,则检索有关 Amazon S3 对象的详细信息。
-
ACLBucketCheck:检索存储桶 ACL 配置。
-
ConditionSetter:为策略评估设置条件密钥。
-
FetchIAMPolicy:获取附加到用户或角色的 IAM 策略。
-
branchOnACLCheck:确定是否需要检查对象 ACL。
-
FetchBucketPolicy:检索存储桶策略(如果存在)。
-
branchOnKMSCheck:确定是否需要评估 AWS KMS 关键策略。
-
FetchKMSPolicy:检索 AWS KMS 密钥策略(如果适用)。
-
branchOnVPCeCheck:确定是否需要评估 VPC 终端节点策略。
-
FetchVPCePolicy:检索 VPC 终端节点策略(如果适用)。
-
FetchSCPPolicy:检索 AWS 组织 SCP(如果提供)。
-
PolicyModifier:修改和准备所有策略以供评估。
-
EvaluatePolicy:共同评估所有策略以确定指定操作的有效权限。
-
-
完成后,请查看 “输出” 部分,了解详细的执行结果。
参考
Systems Manager Automation