View a markdown version of this page

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

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

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: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(如果使用 KMS 加密)

  • s3:GetBucketAcl

  • s3:GetBucketLocation

  • s3:GetBucketPolicy

  • s3:GetObjectAcl

  • s3:GetObjectVersion

  • s3: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": "*" } ] }

说明

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

  1. 导航到 AWSSupport-TroubleshootS3AccessSameAccount “系统管理器” 下的 “文档”。

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

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

    • 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 资源类型(存储桶或对象)。示例包括:GetObjectPutObjectDeleteObjectGetBucketAcl、等。

    • RequesterArn (必填):

      您想要查找特定 Amazon S3 资源访问级别的 IAM 负责人(用户或角色)ARN。例如:arn:aws:iam::123456789012:user/user_namearn:aws:iam::123456789012:role/example-role

    • RequesterRoleSessionName (可选):

      如果 IAM ARN 是一个角色并且您想要提供特定的会话名称,则为代入角色的会话名称。

    • S3ObjectVersionId (可选):

      如果对象有多个版本,则此参数允许您指定要评估访问上下文的对象的特定版本。

    • KmsKeyArn (可选):

      如果与操作相关,则为 AWS KMS 密钥 ARN(例如:CompleteMultipartUploadCopyObjectCreateMultipartUploadPutObject、等)。注意:运行手册不支持在其他 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)。当你从组织的管理账户运行这本运行手册时,这不是必需的,也会被忽略。

  4. 选择执行。

  5. 自动化启动。

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

    • 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:

      共同评估所有策略以确定指定操作的有效权限。

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

参考

Systems Manager Automation