本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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
策略示例:
说明
按照这些步骤对自动化进行配置:
-
在使用本运行手册之前,您需要在 S3 存储桶中捕获并存储一个 Base64 编码的 SAML 响应(txt 文件)。可以在本文档中找到捕获 SAML 响应的说明
-
AWSSupport-TroubleshootSAMLIssues在 Systems Manager 的 “文档” 下导航至。 -
选择 Execute automation(执行自动化)。
-
对于输入参数,请输入以下内容:
-
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:webservices,https://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
-
-
-
选择执行。
-
自动化启动。
-
文档将执行以下步骤:
-
验证 IAMIDProvider
通过检查提供的 IAM ID 提供商 ARN 是否存在且可访问来验证该提供商 ARN。如果未提供 ARN,则会跳过验证并成功完成该步骤。
-
checkS3 BucketPublicStatus
检查 Amazon S3 存储桶是否允许匿名或公开读取或写入权限。如果存储桶允许这些权限,则自动化将在此步骤停止。
-
checkS3 ObjectExistence
验证对 Amazon S3 存储桶的访问权限。检查存储桶和对象是否存在,以及自动化是否具有从源读取和写入目标的必要权限。
-
分析 SAMLResponse
通过执行检查(架构验证、签名验证、受众验证、到期检查)来分析 SAML 响应文件。生成详细的 JSON 报告并将其保存到指定的 Amazon S3 位置。
-
-
完成后,请查看 “输出” 部分,了解执行的详细结果:
-
输出部分包含有关描述分析结果的 Amazon S3 对象的信息。
-
-
分析结果中的 Amazon S3 对象是一个 Json 文件,其中包含以下信息:
-
验证结果:包含 S AML 响应的基本验证结果。
-
saml_info:关键的 SAML 信息,包括颁发者、签名和断言。
-
架构验证:SAML 架构验证的结果。
-
-
verification_result:提供更详细的诊断结果。
-
签名:签名验证的结果。
-
受众:受众限制验证的结果。
-
过期:到期时间验证的结果。
-
-
参考
Systems Manager Automation