AWSS 支持-疑难解答 3 公开阅读 - AWS Systems Manager
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

AWSS 支持-疑难解答 3 公开阅读

描述

AWSSupport-故障排除 3 Pubread 运行手册诊断从公共 Amazon Simple Storage Service (Amazon S3) 存储桶读取对象时出现问题,该存储桶在S3BucketName参数。还会分析 S3 存储桶中对象的设置子集。

运行此自动化(控制台)

限制

  • 此自动化不检查允许公众访问对象的接入点。

  • 此 Automation 不会评估 S3 存储桶策略中的条件密钥。

  • 如果您使用的是 AWS Organizations,则此自动化不会评估服务控制策略以确认是否允许访问 Amazon S3。

文档类型

Automation

Owner

Amazon

平台

Linux,macOSWindows、

参数

  • AutomationAssumeRole

    类型: 字符串

    描述:(可选)允许 Sydentity on Access Management (IAM) 角色的 Amazon 资源名称 (ARN),该角色允许 Systems Manager agement 代表您执行操作。如果未指定任何角色,则 Systems Manager 使用运行此 Runbook 的用户的权限。

  • 云监视日志组名称

    类型: 字符串

    描述:(可选)要在其中发送自动化输出的 Amazon CloudWatch Logs 日志组。如果找不到与指定值匹配的日志组,则自动化将使用此参数值创建日志组。由此自动化创建的日志组的保留期为 14 天。

  • 云监视日志流名称

    类型: 字符串

    描述:(可选)要在其中发送自动化输出的 CloudWatch Logs 流。如果找不到与指定值匹配的日志流,则自动化将使用此参数值创建日志流。如果不为此参数指定值,则 Automation 将使用ExecutionId作为日志流的名称。

  • HTTpGet

    类型: Boolean

    有效值:true | false

    默认值:True

    描述:(可选)如果该参数设置为true,则自动化对S3BucketName您指定的。只有使用 Range HTTP 标头返回对象的第一个字节。

  • 忽略阻止公共访问

    类型: Boolean

    有效值:true | false

    默认值:false

    描述:(可选)如果该参数设置为true,则自动化会忽略您在S3BucketName参数。建议不要将该参数更改为默认值。

  • 最大对象

    类型: 整数

    有效值:1-25

    默认值:5

    描述:(可选)要在您在S3BucketName参数。

  • S3BucketName

    类型: 字符串

    描述:(必需)要排除故障的 S3 存储桶的名称。

  • S3 前缀名称

    类型: 字符串

    描述:(可选)要在 S3 存储桶中分析的对象的密钥名称前缀。有关更多信息,请参阅 。对象键中的Amazon Simple Storage Service 开发人员指南

  • 星空旅行

    类型: 字符串

    描述:(可选)希望自动化开始分析 S3 存储桶中的对象的数据元密钥名称。

  • 资源分区

    类型: 字符串

    有效值:AWS | AWS-美国政府 | aws-cn

    默认值:aws

    描述:(必需)S3 存储桶所在的分区。

  • 详细

    类型: Boolean

    有效值:true | false

    默认值:false

    描述:(可选)要在自动化过程中返回更多详细信息,请将此参数设置为true。如果参数设置为false

所需的 IAM 权限

这些区域有:AutomationAssumeRole参数需要执行以下操作才能成功使用 Runbook。

这些区域有:logs:CreateLogGrouplogs:CreateLogStream, 和logs:PutLogEvents权限仅当您希望自动化将日志数据发送到 CloudWatch Logs 时才需要。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "iam:SimulateCustomPolicy", "iam:GetContextKeysForCustomPolicy", "s3:ListAllMyBuckets", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:PutRetentionPolicy", "s3:GetAccountPublicAccessBlock" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "s3:GetObject", "s3:GetObjectAcl", "s3:GetObjectTagging" ], "Resource": "arn:aws:s3:::awsexamplebucket1/*", "Effect": "Allow" }, { "Action": [ "s3:ListBucket", "s3:GetBucketLocation", "s3:GetBucketPublicAccessBlock", "s3:GetBucketRequestPayment", "s3:GetBucketPolicyStatus", "s3:GetBucketPolicy", "s3:GetBucketAcl" ], "Resource": "arn:aws:s3:::awsexamplebucket1", "Effect": "Allow" } ] }

文档步骤

  • AWS: assertAwsResourceProperty-确认 S3 存储桶存在且可访问。

  • AWS:执行脚本-返回 S3 存储桶位置和规范用户 ID。

  • AWS:执行脚本-返回您的账户和 S3 存储桶的公共访问阻止设置。

  • AWS: assertAwsResourceProperty-确认 S3 存储桶付款人设置为BucketOwner。如果Requester Pays在 S3 存储桶上启用,则自动化将结束。

  • AWS: 执行脚本-返回 S3 存储桶策略状态并确定它是否被视为公共存储桶。有关公有 S3 存储桶的更多信息,请参阅“公有”的含义中的Amazon Simple Storage Service 开发人员指南

  • aws: executeAwsApi-返回 S3 存储桶策略。

  • AW: ExteAwsApi-返回在 S3 存储桶策略中找到的所有上下文密钥。

  • AWS: 断言输入资源属性-确认 S3 存储桶策略中是否存在GetObjectAPI 操作。

  • AWS-UpsApi-返回 S3 存储桶的访问控制列表 (ACL)。

  • AWS: 执行脚本-创建一个 CloudWatch Logs 组和日志流,如果您为CloudWatchLogGroupName参数。

  • AWS: ExecuteScript-根据您在 Runbook 输入参数中指定的值,评估在自动化过程中收集的 S3 存储桶设置是否阻止公共访问对象。此脚本执行以下功能:

    • 评估公共访问阻止设置

    • 从 S3 存储桶中返回数据元,基于您在MaxObjectsS3PrefixName, 和StartAfter参数。

    • 返回 S3 存储桶策略,以模拟从 S3 存储桶返回的对象的自定义 IAM 策略。

    • 对返回的对象执行部分 HTTP 请求,如果HttpGet参数设置为true。只有使用 Range HTTP 标头返回对象的第一个字节。

    • 检查返回的对象的密钥名称,以确认它是以一个或两个句点结束。无法从 Amazon S3 控制台下载以句点结尾的对象键名称。

    • 检查返回对象的拥有者是否与 S3 存储桶的拥有者相匹配。

    • 检查对象的 ACL 是否授予READ或者FULL_CONTROL访问匿名用户的权限。

    • 返回与对象关联的标签。

    • 使用模拟 IAM 策略确认是否存在针对GetObjectAPI 操作。

    • 返回对象的元数据以确认存储类别受支持。

    • 检查对象的服务器端加密设置,以确认是否使用 AWS Key Management Service (AWS KMS) 客户托管密钥加密对象。

输出

分析对象。存储桶

分析对象。对象