本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWSSupport-TroubleshootSAMLIssues
描述
该AWSSupport-TroubleshootSAMLIssues 自动化运行手册通过分析存储在亚马逊简单存储服务 (Amazon S3) 中的 SAML 响应文件,帮助诊断与安全断言标记语言 (SAML) 相关的问题。它执行全面的验证,包括架构验证、签名验证、受众限制检查和到期时间验证。该运行手册从 SAML 响应中解码和提取关键 SAML 元素,包括发布者、断言、主题、条件、签名和属性。对于使用 SAML 通过 IAM 身份提供商访问 AWS 资源(例如连接客户或亚马逊 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
策略示例:
说明
按照这些步骤对自动化进行配置:
-
在使用本运行手册之前,您需要捕获 Base64-encoded SAML 响应(txt 文件)并将其存储在 S3 存储桶中。捕获 SAML 响应的说明可以在本文档中找到
-
导航到
AWSSupport-TroubleshootSAMLIssues“系统管理器” 下的 “文档”。 -
选择 Execute automation(执行自动化)。
-
对于输入参数,输入以下内容:
-
AutomationAssumeRole (可选):
-
描述:(可选)允许 SSM 自动化代表您执行操作的 AWS Identity and Access Management (IAM) 角色的亚马逊资源名称 (ARN)。如果未指定角色,Systems Manager Automation 将使用启动此运行手册的用户的权限。
-
类型:
AWS::IAM::Role::Arn
-
-
InputFileS3URI(必填):
-
描述:(必填)SAML 响应 txt 文件(例如 s3://bucket-name/path/to/file.txt)的亚马逊简单存储服务 (亚马逊 S3) 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:webservices、https://signin.aws.amazon.com/saml)。 -
类型:字符串
-
默认:urn: amazon: webservices
-
-
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_-]+$
-
-
SAMLAuthenticationTime (可选):
-
描述:(可选)执行 SAML 身份验证的日期和时间。时区必须是 UTC。必须 YYYY-MM-DDThh:mm:ss采用格式(例如,2025-02-0 T10:00:00 1)。如果未提供此参数,则将根据当前时间戳执行到期检查。
-
类型:字符串
-
允许图案:
^$|^\\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 存储桶和账户封禁公有访问设置、存储桶加密配置、存储桶 ACL、存储桶策略状态以及向存储桶上传对象的 IAM 角色的 ARN。如果未指定此参数,则运行手册使用启动此运行手册的 AutomationAssumeRole ``(如果指定)或用户(如果未指定 AutomationAssumeRole `)。
-
类型:
AWS::IAM::Role::Arn
-
-
-
选择执行。
-
自动化启动。
-
文档将执行以下步骤:
-
验证 IAMID 提供商
通过检查提供的 IAM ID 提供商 ARN 是否存在且可访问来验证该提供商 ARN。如果未提供 ARN,则跳过验证并成功完成该步骤。
-
CheckS3BucketPublicStatus
检查 Amazon S3 存储桶是否允许匿名或公共读取或写入访问权限。如果存储桶允许这些权限,则自动化将在此步骤停止。
-
CheckS3ObjectExistence
验证对 Amazon S3 存储桶的访问权限。检查存储桶和对象是否存在,以及自动化是否具有从源读取和写入目标所需的权限。
-
分析 SAMLResponse
通过执行检查(架构验证、签名验证、受众验证、到期检查)来分析 SAML 响应文件。生成详细的 JSON 报告并将其保存到指定的 Amazon S3 位置。
-
-
完成后,请查看 “输出” 部分,了解详细的执行结果:
-
输出部分包含有关描述分析结果的 Amazon S3 对象的信息。
-
-
分析结果中的 Amazon S3 对象是一个 Json 文件,其中包含以下信息:
-
验证结果:包含 SAML 响应的基本验证结果。
-
saml_info:关键 SAML 信息,包括发布者、签名和断言。
-
schema_validation:SAML 架构验证的结果。
-
-
验证结果:提供更详细的诊断结果。
-
签名:签名验证的结果。
-
受众:受众限制验证的结果。
-
到期:过期时间验证的结果。
-
-
参考
Systems Manager Automation