View a markdown version of this page

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

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

AWSSupport-TroubleshootSAMLIssues

描述

AWSSupport-TroubleshootSAMLIssues 自动化运行手册通过分析存储在亚马逊简单存储服务 (Amazon S3) Simple S3 Service 中的 SAML 响应文件,帮助诊断与安全断言标记语言 (SAML) 相关的问题。它执行全面的验证,包括架构验证、签名验证、受众限制检查和到期时间验证。运行手册解码并从 SAML 响应中提取关键的 SAML 元素,包括发布者、断言、主题、条件、签名和属性。对于使用 SAML 通过 IAM 身份提供商访问 AWS 资源(例如 Amazon Connect 或 Amazon WorkSpaces 应用程序)的环境,它会验证 SAML 响应签名中的证书是否与 IAM 身份提供商中配置的证书匹配。

如何工作?

运行手册执行以下步骤:

  • 验证 SAML 响应格式和必填元素。

  • 解码并提取 SAML 响应组件(发布者、断言、主题、条件、签名、属性)。

  • 根据 IAM 身份提供商证书(如果提供)验证数字签名。

  • 检查受众限制和时间有效性。

  • 提供详细的诊断信息,显示已解析的 SAML 结构和验证结果。

运行此自动化(控制台)

文档类型

自动化

所有者

Amazon

平台

/

所需的 IAM 权限

AutomationAssumeRole 参数需要执行以下操作才能成功使用运行手册。

  • s3:GetBucketLocation

  • s3:ListBucket

  • s3:GetBucketPublicAccessBlock

  • s3:GetAccountPublicAccessBlock

  • s3:GetObject

  • s3:GetBucketPolicyStatus

  • s3:GetEncryptionConfiguration

  • s3:GetBucketOwnershipControls

  • s3:GetBucketAcl

  • s3:GetBucketPolicy

  • s3:PutObject

  • iam:GetSAMLProvider

  • sts:AssumeRole

策略示例:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Action": [ "s3:GetBucketLocation", "s3:ListBucket", "s3:GetBucketPublicAccessBlock", "s3:GetAccountPublicAccessBlock", "s3:GetObject", "s3:GetBucketPolicyStatus", "s3:GetEncryptionConfiguration", "s3:GetBucketOwnershipControls", "s3:GetBucketAcl", "s3:GetBucketPolicy", "s3:PutObject", "iam:GetSAMLProvider", "sts:AssumeRole" ], "Resource": "*", "Effect": "Allow" } ] }

说明

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

  1. 在使用本运行手册之前,您需要在 S3 存储桶中捕获并存储一个 Base64 编码的 SAML 响应(txt 文件)。可以在文档中找到捕获 SAML 响应的说明

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

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

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

    • AutomationAssumeRole (可选):

      • 描述:(可选)允许 SSM Automation 代表您执行操作的 AWS Identity and Access Management (IAM) 角色的亚马逊资源名称 (ARN)。如果未指定角色,Systems Manager Automation 将使用启动此运行手册的用户的权限。

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

    • InputFileS3URI(必填):

      • 描述:(必填)亚马逊简单存储服务 (Amazon S3) Saml Response txt 文件(例如 s3://bucket name/path/to/file-.txt)的 URI。

      • 类型:字符串

      • 允许模式:^s3://[a-z0-9][a-z0-9.-][a-z0-9](/.)?$

    • S3OutputPrefix (可选):

      • <executionID of the runbook>描述:(可选)分析输出文件以 “saml_analysis_ .json” 的名义存储在输入存储桶中。如果要输出带有特定前缀的文件,则可以使用此参数。<executionID of the runbook>默认值为 “output/”,在这种情况下,输出结果的文件 URI 将为 's3://bucket-name/output/saml _analysis_ .json'。

      • 类型:字符串

      • 允许模式:^[a-zA-Z0-9+=,.@\\-_/]*/$

    • ExpectedAudience (可选):

      • 描述:(可选)SAML 响应中的预期受众价值。如果未指定,则使用urn:amazon:webservices。如果您在 IdP 和 SP 设置中配置了特定的受众群体值,请提供确切的格式(例如urn:amazon:webserviceshttps://signin.aws.amazon.com/saml)。

      • 类型:字符串

      • 默认:urn:亚马逊:网络服务

    • IamIdProviderArn (可选):

      • 描述:(可选)如果您使用 IAM ID 提供商实体将您的 IdP 与 AWS IAM 直接关联,请提供其 ARN(例如)。arn:aws:iam::<account-id>:saml-provider/<provider-name>

      • 类型:字符串

      • 允许模式:^$|^arn:aws:iam::[0-9]{12}:saml-provider/[a-zA-Z0-9_-]+$

    • SAMLAuthentication时间(可选):

      • 描述:(可选)执行 SAML 身份验证的日期和时间。时区必须为 UTC。必须采用:mm: ss YYYY-MM-DDThh 格式(例如,2025-02-01T10:00:00)。如果未提供此参数,则将根据当前时间戳执行过期检查。

      • 类型:字符串

      • 允许模式:^$|^\\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\\d|3[01])T(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$

    • S3BucketOwnerRoleArn (可选):

      • 描述:(可选)用于访问 Amazon S3 存储桶的 IAM 角色 ARN。有权获取 Amazon S3 存储桶和账户封禁公开访问设置、存储桶加密配置、存储桶、存储桶策略状态以及将对象上传到存储桶的 IAM 角色的 ARN。 ACLs如果未指定此参数,则运行手册将使用` AutomationAssumeRole `(如果已指定)或启动此运行手册的用户(如果未指定 AutomationAssumeRole ``)。

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

  5. 选择执行

  6. 自动化启动。

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

    • 验证 IAMIDProvider

      通过检查提供的 IAM ID 提供商 ARN 是否存在且可访问来验证该提供商 ARN。如果未提供 ARN,则会跳过验证并成功完成该步骤。

    • checkS3 BucketPublicStatus

      检查 Amazon S3 存储桶是否允许匿名或公开读取或写入权限。如果存储桶允许这些权限,则自动化将在此步骤停止。

    • checkS3 ObjectExistence

      验证对 Amazon S3 存储桶的访问权限。检查存储桶和对象是否存在,以及自动化是否具有从源读取和写入目标的必要权限。

    • 分析 SAMLResponse

      通过执行检查(架构验证、签名验证、受众验证、到期检查)来分析 SAML 响应文件。生成详细的 JSON 报告并将其保存到指定的 Amazon S3 位置。

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

    • 输出部分包含有关描述分析结果的 Amazon S3 对象的信息。

  9. 分析结果中的 Amazon S3 对象是一个 Json 文件,其中包含以下信息:

    • 验证结果:包含 S AML 响应的基本验证结果。

      • saml_info:关键的 SAML 信息,包括颁发者、签名和断言。

      • 架构验证:SAML 架构验证的结果。

    • verification_result:提供更详细的诊断结果

      • 签名:签名验证的结果。

      • 受众:受众限制验证的结果。

      • 过期:到期时间验证的结果。

参考

Systems Manager Automation