

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

# IAM
<a name="automation-ref-iam"></a>

 AWS Systems Manager 自动化为用户提供了预定义的运行手册。 AWS Identity and Access Management有关运行手册的更多信息，请参阅[使用运行手册](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。有关如何查看运行手册内容的信息，请参阅 [查看运行手册内容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWSSupport-TroubleshootIAMAccessDeniedEvents`](awssupport-troubleshootiamaccessdeniedevents.md)
+ [`AWS-AttachIAMToInstance`](automation-aws-attachiamtoinstance.md)
+ [`AWS-DeleteIAMInlinePolicy`](delete-iam-inline-policy.md)
+ [`AWSConfigRemediation-DeleteIAMRole`](automation-aws-delete-iam-role.md)
+ [`AWSConfigRemediation-DeleteIAMUser`](automation-aws-delete-iam-user.md)
+ [`AWSConfigRemediation-DeleteUnusedIAMGroup`](automation-aws-delete-iam-group.md)
+ [`AWSConfigRemediation-DeleteUnusedIAMPolicy`](automation-aws-delete-iam-policy.md)
+ [`AWSConfigRemediation-DetachIAMPolicy`](automation-aws-detach-iam-policy.md)
+ [`AWSConfigRemediation-EnableAccountAccessAnalyzer`](automation-aws-enable-account-access-analyzer.md)
+ [`AWSSupport-GrantPermissionsToIAMUser`](automation-awssupport-grantpermissionstoiamuser.md)
+ [`AWSConfigRemediation-RemoveUserPolicies`](automation-aws-remove-user-policies.md)
+ [`AWSConfigRemediation-ReplaceIAMInlinePolicy`](automation-aws-replace-iam-policy.md)
+ [`AWSConfigRemediation-RevokeUnusedIAMUserCredentials`](automation-aws-revoke-iam-user.md)
+ [`AWSConfigRemediation-SetIAMPasswordPolicy`](automation-aws-set-iam-policy.md)
+ [`AWSSupport-ContainIAMPrincipal`](awssupport-contain-iam-principal.md)
+ [`AWSSupport-TroubleshootSAMLIssues`](awssupport-troubleshootsamlissues.md)

# `AWSSupport-TroubleshootIAMAccessDeniedEvents`
<a name="awssupport-troubleshootiamaccessdeniedevents"></a>

 **描述** 

 ** AWSSupport-TroubleshootIAMAccessDeniedEvents 自动化运行手册可帮助排除 AWS Identity and Access Management (IAM) 访问被拒绝的问题。**运行手册会查询 CloudTrail 与指定 IAM 实体和 AWS 服务事件源相关的最近访问被拒绝事件。它可以在长达 24 小时的可配置时间窗口内分析事件，每次执行最多处理 10 个事件。对每个已识别的访问被拒绝事件进行检查，以帮助了解拒绝和尝试操作的背景。自动化同时分析基于身份和基于资源的 IAM 策略。对于基于身份的策略，它会检查附加到 IAM 实体的内联和托管策略。对于基于资源的策略，它会评估多种 AWS 服务的策略，包括亚马逊简单存储服务 (Amazon S3)、()、、 AWS Key Management Service 亚马逊简单通知服务 (Amazon SNS) Simple Notification Service、 AWS Lambda亚马逊弹性容器注册表 (Amazon ECR)、Amazon API Gateway、亚马逊弹性文件系统 (Amazon EFS)、 CodeArtifact亚马逊简单队列服务 (亚马逊 SQS) Simple Service、、Ama AWS Cloud9 zon Service、Signer 和。AWS KMS OpenSearch AWS AWS Serverless Application Repository AWS Secrets Manager

 该运行手册利用 IAM 策略模拟功能根据事件中发现的被拒绝操作来评估这些策略。 CloudTrail 该运行手册通过针对 IAM 用户和 IAM 角色利[SimulatePrincipalPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulatePrincipalPolicy.html)用 IAM [SimulateCustomPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulateCustomPolicy.html)的策略模拟功能，根据事件中发现的被拒绝的操作来评估这些策略。 CloudTrail自动化会输出一份报告，该报告可帮助识别被拒绝的具体操作，区分隐式拒绝和显式拒绝，列出导致拒绝访问的策略，并为每一次拒绝提供解释。该报告还提出了可能的解决方案，例如识别缺失的允许声明或相互矛盾的拒绝声明 

 **如何工作？** 

 运行手册执行以下步骤：
+ 描述和验证`RequesterARN`（角色或用户）以获取诸如 IAM 实体类型和 IAM ID 之类的信息。
+ 获取与`RequesterARN``EventSource`、和关联 CloudTrail 的事件（`ResourceARN`如果提供）。
+ 分析 CloudTrail 事件以获取返回 “访问被拒绝” 错误时执行的操作，然后检查所有 IAM 策略，例如附加到 IAM 实体的内联和托管策略，以及基于资源的策略。然后，它会根据相关 CloudTrail 事件的 “Access Denied” 错误中发现的操作来模拟这些策略，以确定错误的原因。
+ 输出一份报告，确定 Access Denied 错误的类型、导致错误的策略，并就错误的可能解决方案提供建议。

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootIAMAccessDeniedEvents) 

**文档类型**

自动化

**所有者**

Amazon

**平台**

/

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+ `apigateway:GetRestApis`
+ `cloudtrail:LookupEvents`
+ `cloud9:GetEnvironment`
+ `codeartifact:GetRepositoryPermissionsPolicy`
+ `ecr:GetRepositoryPolicy`
+ `elasticfilesystem:GetFileSystemPolicy`
+ `es:DescribeDomain`
+ `iam:GetPolicy`
+ `iam:GetPolicyVersion`
+ `iam:GetRole`
+ `iam:GetRolePolicy`
+ `iam:GetUser`
+ `iam:GetUserPolicy`
+ `iam:ListAttachedRolePolicies`
+ `iam:ListAttachedUserPolicies`
+ `iam:ListRolePolicies`
+ `iam:ListUserPolicies`
+ `iam:SimulatePrincipalPolicy`
+ `iam:SimulateCustomPolicy`
+ `kms:GetKeyPolicy`
+ `lambda:GetPolicy`
+ `secretsmanager:GetResourcePolicy`
+ `serverlessrepo:GetApplication`
+ `signer:GetSigningProfile`
+ `sns:GetTopicAttributes`
+ `ssm:StartAutomationExecution`
+ `ssm:StopAutomationExecution`
+ `sqs:GetQueueAttributes`
+ `s3:GetBucketPolicy`

策略示例：

------
#### [ JSON ]

****  

```
        {
            "Version":"2012-10-17",		 	 	 
            "Statement": [
                {
                    "Action": [
                        "iam:GetUser",
                        "iam:GetRole",
                        "iam:SimulatePrincipalPolicy",
                        "iam:ListUserPolicies",
                        "iam:ListRolePolicies",
                        "iam:GetRolePolicy",
                        "iam:ListAttachedRolePolicies",
                        "iam:GetPolicy",
                        "iam:GetUserPolicy",
                        "iam:GetPolicyVersion",
                        "iam:ListAttachedUserPolicies",
                        "ssm:StartAutomationExecution",
                        "ssm:StopAutomationExecution",
                        "cloudtrail:LookupEvents",
                        "iam:SimulateCustomPolicy"
                    ],
                    "Resource": "*",
                    "Effect": "Allow"
                },
                {
                    "Action": [
                        "s3:GetBucketPolicy",
                        "kms:GetKeyPolicy",
                        "lambda:GetPolicy",
                        "sns:GetTopicAttributes",
                        "ecr:GetRepositoryPolicy",
                        "apigateway:GET",
                        "codeartifact:GetRepositoryPermissionsPolicy",
                        "elasticfilesystem:DescribeFileSystemPolicy",
                        "sqs:GetQueueAttributes",
                        "cloud9:DescribeEnvironmentStatus",
                        "es:DescribeDomain",
                        "signer:GetSigningProfile",
                        "serverlessrepo:GetApplication",
                        "secretsmanager:GetResourcePolicy"
                    ],
                    "Resource": "*",
                    "Effect": "Allow"
                }
            ]
        }
```

------

 **说明** 

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

1. [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootIAMAccessDeniedEvents/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootIAMAccessDeniedEvents/description)在 Systems Manager 的 “文档” 下导航至。

1. 选择 **Execute automation**（执行自动化）。

1. 对于输入参数，请输入以下内容：
   + **AutomationAssumeRole （可选）：**
     + 描述：（可选）允许 SSM Automation 代表您执行操作的 AWS Identity and Access Management (IAM) 角色的亚马逊资源名称 (ARN)。需要将该角色添加到您的 Amazon EKS 集群访问条目或 RBAC 权限中，才能允许 Kubernetes API 调用。
     + 类型：`AWS::IAM::Role::Arn`
   + **requesterArn（必填）：**
     + 描述：（必填）您要调查其对特定 AWS 资源的访问权限的 IAM 用户或角色的 ARN。
     + 类型：`String`
     + 允许模式：`^arn:(aws|aws-cn|aws-us-gov|aws-iso(-[a-z])?):iam::[0-9]{12}:(role|user)\\/[\\w+\\/=,.@-]+$`
   + **resourceArn（可选）：**
     + 描述：（可选）评估访问被拒绝 AWS 的资源的 ARN。 AWS 目标资源应位于执行自动化 Runbook 的同一区域。
     + 类型：`String`
     + 允许模式：`^$|^arn:(aws|aws-cn|aws-us-gov|aws-iso(-[a-z])?):([a-zA-Z0-9\\-]{1,63}):([a-z0-9\\-]{0,63})?:(\\d{12})?:([a-zA-Z0-9\\-_/:.]{1,1024})$`
   + **EventSource （必填）：**
     + 描述：（必填） CloudTrail事件起源的 Amazon API 终端节点。例如：`s3.amazonaws.com`。
     + 类型：`String`
     + 允许模式：`^([a-zA-Z0-9.-]+)\\.amazonaws\\.com$`
   + **EventName （可选）：**
     + 描述：（可选）与 CloudTrail 事件关联的 Amazon API 操作名称。例如：`s3:CreateBucket`。
     + 类型：`String`
     + 允许模式：`^$|^[a-z0-9]+:[A-Za-z0-9]+$`
   + **LookBackHours （可选）：**
     + 描述：（可选）搜索 CloudTrail 事件时要回顾`Access Denied`事件的小时数。有效范围：`1`到`24`小时。
     + 类型：整数
     + 允许模式：`^([1-9]|1[0-9]|2[0-4])$`
     + 默认值：12
   + **MaxEvents （可选）：**
     + 描述：（可选）搜索 CloudTrail `Access Denied`事件时返回的最大事件数。有效范围：`1`至`5`事件。
     + 类型：整数
     + 允许模式：`^([1-9]|1[0-9]|2[0-4])$`
     + 原定设置值：3
   + **UseContextEntries （可选）：**
     + 描述：（可选）如果您指定`true`，则自动化会从 CloudTrail 事件中提取有关 API 请求上下文的详细信息，并将其包含在 IAM 策略模拟中。
     + 类型：布尔值
     + 允许模式：`^([1-9]|1[0-9]|2[0-4])$`
     + 原定设置值：3

1. 选择**执行**。

1. 自动化启动。

1. 文档将执行以下步骤：
   + **ValidateRequesterArn**

     验证和解构 `RequesterArn` ARN，检索有关目标 IAM 用户或角色的信息。
   + **GetCloudTrailEvents****WithAccessDeniedError**

     查询与指定 IAM 实体和 AWS 服务相关的最新`Access Denied`事件`EventSource`。 CloudTrail 
   + **评估IAMRequester政策**

     根据事件产生的操作评估请求者 IAM 实体的 IAM 权限。 CloudTrail 此评估包括分析与请求者相关的基于身份和基于资源的策略。自动化利用 IAM 的策略模拟功能，在 CloudTrail事件中发现的被拒绝操作的背景下评估这些策略。

1. 完成后，请查看 “**输出**” 部分，了解执行的详细结果：
   + **PermissionEvaluationResults**

     输出一份报告，该报告有助于识别被拒绝的具体操作，区分隐含拒绝和显式拒绝。它还列出了导致拒绝访问的政策，并对每一次拒绝都提供了解释。该报告还提出了可能的解决方案，例如识别缺失的允许声明或相互矛盾的拒绝声明

 **参考** 

Systems Manager Automation
+ [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/documents/TroubleshootIAMAccessDeniedEvents/description)
+ [运行自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-working-executing.html)
+ [设置自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup.html)
+ [支持自动化工作流登录页面](https://aws.amazon.com/premiumsupport/technology/saw/)

# `AWS-AttachIAMToInstance`
<a name="automation-aws-attachiamtoinstance"></a>

 **描述** 

将 AWS Identity and Access Management (IAM) 角色附加到托管实例。

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-AttachIAMToInstance) 

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux、macOS、Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

  描述：（可选）允许 Systems Manager Automation 代表您执行操作 AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称（ARN）。如果未指定角色，Systems Manager Automation 将使用启动此运行手册的用户的权限。
+ ForceReplace

  类型：布尔值

  描述：（可选）指定是否替换现有 IAM 配置文件的标志。

  默认：True
+ InstanceId

  类型：字符串

  描述：（必需）要为其分配 IAM 角色的实例 ID。
+ RoleName

  类型：字符串

  描述：（必需）要添加到托管实例的 IAM 角色名称。

 **文档步骤** 

1.  `aws:executeAwsApi`- DescribeInstanceProfile -查找附加到 EC2 实例的 IAM 实例配置文件。

1.  `aws:branch`- CheckInstanceProfileAssociations -检查附加到 EC2 实例的 IAM 实例配置文件。

   1.  如果附加了 `ForceReplace` IAM 实例配置文件并将 设置为 `true`：

      1.  `aws:executeAwsApi`- DisassociateIamInstanceProfile -解除 IAM 实例配置文件与 EC2 实例的关联。

   1.  `aws:executeAwsApi`- ListInstanceProfilesForRole -列出所提供的 IAM 角色的实例配置文件。

   1.  `aws:branch`- CheckInstanceProfileCreated -检查提供的 IAM 角色是否有关联的实例配置文件。

      1. 如果 IAM 角色具有关联的实例配置文件：

         1.  `aws:executeAwsApi`-AttacHiam ProfileToInstance -将 IAM 实例配置文件角色附加到 EC2 实例。

      1. 如果 IAM 角色没有关联的实例配置文件：

         1.  `aws:executeAwsApi`- CreateInstanceProfileForRole -为指定的 IAM 角色创建实例配置文件角色。

         1.  `aws:executeAwsApi`- AddRoleToInstanceProfile -将实例配置文件角色附加到指定的 IAM 角色。

         1.  `aws:executeAwsApi`- GetInstanceProfile-获取指定 IAM 角色的实例配置文件数据。

         1.  `aws:executeAwsApi`-AttacHiam ProfileToInstanceWithRetry -将 IAM 实例配置文件角色附加到 EC2 实例。

 **输出** 

附上IAMProfileToInstanceWithRetry。 AssociationId

GetInstanceProfile.InstanceProfileName

GetInstanceProfile.InstanceProfileArn

附上IAMProfileToInstance。 AssociationId

ListInstanceProfilesForRole.InstanceProfileName

ListInstanceProfilesForRole.InstanceProfileArn

# `AWS-DeleteIAMInlinePolicy`
<a name="delete-iam-inline-policy"></a>

**描述**

`AWS-DeleteIAMInlinePolicy`运行手册会删除附加到您指定的 IAM 身份的所有 AWS Identity and Access Management (IAM) 内联策略。

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-DeleteIAMInlinePolicy)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux、macOS、Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

  描述：（可选）允许 Systems Manager Automation 代表您执行操作 AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称（ARN）。如果未指定角色，Systems Manager Automation 将使用启动此运行手册的用户的权限。
+ IamArns

  类型：字符串

  描述：（必填）要从中删除内联策略 ARNs 的 IAM 身份的逗号分隔列表。此列表可以包括 IAM 用户、群组或角色。

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+ `iam:DeleteGroupPolicy`
+ `iam:DeleteRolePolicy`
+ `iam:DeleteUserPolicy`
+ `iam:ListGroupPolicies`
+ `iam:ListRolePolicies`
+ `iam:ListUserPolicies`

**文档步骤**
+ `aws:executeScript`-删除附加到目标 IAM 身份的 IAM 内联策略。

# `AWSConfigRemediation-DeleteIAMRole`
<a name="automation-aws-delete-iam-role"></a>

 **描述** 

 `AWSConfigRemediation-DeleteIAMRole` 运行手册可删除您指定的 AWS Identity and Access Management (IAM) 角色。此自动化并不删除与 IAM 角色或服务相关角色关联的实例配置文件。

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-DeleteIAMRole) 

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux、macOS、Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

  描述：（必需）允许 Systems Manager Automation 代表您执行操作的 AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称（ARN）。
+ IAMRole身份证

  类型：字符串

  描述：（必选）要删除的 IAM 角色的 ID。

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `iam:DeleteRole` 
+  `iam:DeleteRolePolicy` 
+  `iam:GetRole` 
+  `iam:ListAttachedRolePolicies` 
+  `iam:ListInstanceProfilesForRole` 
+  `iam:ListRolePolicies` 
+  `iam:ListRoles` 
+  `iam:RemoveRoleFromInstanceProfile` 

 **文档步骤** 
+  `aws:executeScript` - 收集您在 `IAMRoleID` 参数中指定的 IAM 角色的名称。
+  `aws:executeScript` - 收集与 IAM 角色关联的策略和实例配置文件。
+  `aws:executeScript` - 删除附加的策略。
+  `aws:executeScript` - 删除 IAM 角色并验证该角色已被删除。

# `AWSConfigRemediation-DeleteIAMUser`
<a name="automation-aws-delete-iam-user"></a>

 **描述** 

 `AWSConfigRemediation-DeleteIAMUser` 运行手册可删除您指定的 AWS Identity and Access Management (IAM) 用户。此自动化可删除或分离与 IAM 用户关联的以下资源：
+ 访问密钥
+ 附加的托管策略
+ Git 凭证
+ IAM 群组成员资格
+ IAM 用户密码
+ 内联策略
+ 多重身份验证 (MFA) 设备
+ 签名证书
+ SSH 公约

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-DeleteIAMUser) 

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux、macOS、Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

  描述：（必需）允许 Systems Manager Automation 代表您执行操作的 AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称（ARN）。
+ IAMUser我是

  类型：字符串

  描述：（必选）要删除的 IAM 用户的 ID。

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `iam:DeactivateMFADevice` 
+  `iam:DeleteAccessKey` 
+  `iam:DeleteLoginProfile` 
+  `iam:DeleteServiceSpecificCredential` 
+  `iam:DeleteSigningCertificate` 
+  `iam:DeleteSSHPublicKey` 
+  `iam:DeleteVirtualMFADevice` 
+  `iam:DeleteUser` 
+  `iam:DeleteUserPolicy` 
+  `iam:DetachUserPolicy` 
+  `iam:GetUser` 
+  `iam:ListAttachedUserPolicies` 
+  `iam:ListAccessKeys` 
+  `iam:ListGroupsForUser` 
+  `iam:ListMFADevices` 
+  `iam:ListServiceSpecificCredentials` 
+  `iam:ListSigningCertificates` 
+  `iam:ListSSHPublicKeys` 
+  `iam:ListUserPolicies` 
+  `iam:ListUsers` 
+  `iam:RemoveUserFromGroup` 

 **文档步骤** 
+  `aws:executeScript` - 收集您在 `IAMUserId` 参数中指定的 IAM 用户的用户名。
+  `aws:executeScript` - 收集与 IAM 用户关联的访问密钥、证书、凭证、MFA 设备和 SSH 密钥。
+  `aws:executeScript` - 收集 IAM 用户的群组成员资格和策略。
+  `aws:executeScript` - 删除与 IAM 用户关联的访问密钥、证书、凭证、MFA 设备和 SSH 密钥。
+  `aws:executeScript` - 删除 IAM 用户的群组成员资格和策略。
+  `aws:executeScript` - 删除 IAM 用户并验证该用户已被删除。

# `AWSConfigRemediation-DeleteUnusedIAMGroup`
<a name="automation-aws-delete-iam-group"></a>

 **描述** 

 `AWSConfigRemediation-DeleteUnusedIAMGroup` 运行手册将删除不包含任何用户的 IAM 群组。

 `AWSConfigRemediation-DeleteUnusedIAMGroup` 运行手册将删除不包含任何用户的 IAM 群组。

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-DeleteUnusedIAMGroup) 

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux、macOS、Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

  描述：（必需）允许 Systems Manager Automation 代表您执行操作的 AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称（ARN）。
+ GroupName

  类型：字符串

  描述：（必需）要删除的 IAM 群组的名称。

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `iam:DeleteGroup` 
+  `iam:DeleteGroupPolicy` 
+  `iam:DetachGroupPolicy` 

 **文档步骤** 
+  `aws:executeScript` - 移除附加到目标 IAM 群组的托管和内联 IAM 策略，然后删除该 IAM 组。

# `AWSConfigRemediation-DeleteUnusedIAMPolicy`
<a name="automation-aws-delete-iam-policy"></a>

 **描述** 

 `AWSConfigRemediation-DeleteUnusedIAMPolicy` 运行手册将删除未附加到任何用户、群组或角色的 AWS Identity and Access Management (IAM) 策略。

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-DeleteUnusedIAMPolicy) 

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux、macOS、Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

  描述：（必需）允许 Systems Manager Automation 代表您执行操作的 AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称（ARN）。
+ IAMResource我是

  类型：字符串

  描述：（必需）要删除的 IAM policy 的资源标识符。

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `config:GetResourceConfigHistory` 
+  `config:ListDiscoveredResources` 
+  `iam:DeletePolicy` 
+  `iam:DeletePolicyVersion` 
+  `iam:GetPolicy` 
+  `iam:ListEntitiesForPolicy` 
+  `iam:ListPolicyVersions` 

 **文档步骤** 
+  `aws:executeScript` - 删除您在 `IAMResourceId` 参数中指定的策略，并验证该策略是否已删除。

# `AWSConfigRemediation-DetachIAMPolicy`
<a name="automation-aws-detach-iam-policy"></a>

 **描述** 

 `AWSConfigRemediation-DetachIAMPolicy` 运行手册将分离您指定的 AWS Identity and Access Management (IAM) 策略。

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-DetachIAMPolicy) 

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux、macOS、Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

  描述：（必需）允许 Systems Manager Automation 代表您执行操作的 AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称（ARN）。
+ IAMResource我是

  类型：字符串

  描述：（必选）要分离的 IAM policy 的 ID。

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `config:GetResourceConfigHistory` 
+  `config:ListDiscoveredResources` 
+  `iam:DetachGroupPolicy` 
+  `iam:DetachRolePolicy` 
+  `iam:DetachUserPolicy` 
+  `iam:GetPolicy` 
+  `iam:ListEntitiesForPolicy` 

 **文档步骤** 
+  `aws:executeScript` - 将 IAM policy 与所有资源分离。

# `AWSConfigRemediation-EnableAccountAccessAnalyzer`
<a name="automation-aws-enable-account-access-analyzer"></a>

 **描述** 

 `AWSConfigRemediation-EnableAccountAccessAnalyzer`运行手册将在您的 AWS 账户中创建一个 AWS Identity and Access Management (IAM) 访问分析器。有关 Access Analyzer 的信息，请参阅*《IAM 用户指南》*中的[使用 AWS IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html)。

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableAccountAccessAnalyzer) 

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux、macOS、Windows

**参数**
+ AnalyzerName

  类型：字符串

  描述：（必需）要创建的分析器名称。
+ AutomationAssumeRole

  类型：字符串

  描述：（必需）允许 Systems Manager Automation 代表您执行操作的 AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称（ARN）。

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `access-analyzer:CreateAnalyzer` 
+  `access-analyzer:GetAnalyzer` 

 **文档步骤** 
+  `aws:executeAwsApi` - 为您的账户创建一个访问分析器。
+  `aws:waitForAwsResourceProperty` - 等待访问分析器的状态变为 `ACTIVE`。
+  `aws:assertAwsResourceProperty` - 确认访问分析器的状态为 `ACTIVE`。

# `AWSSupport-GrantPermissionsToIAMUser`
<a name="automation-awssupport-grantpermissionstoiamuser"></a>

 **描述** 

 此运行手册将指定的权限授予 IAM 组（新建组或现有组），并将现有的 IAM 用户添加到此组。您可以选择的策略：[账单](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/job-function/Billing$serviceLevelSummary)或[支持](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AWSSupportAccess$serviceLevelSummary)。要为 IAM 启用账单访问权限，请注意还需要激活 [IAM 用户和联合用户对“账单和成本管理”页面的访问权限](https://docs.aws.amazon.com/console/iam/billing-enable)。

**重要**  
如果提供的是现有 IAM 组，则此组中的所有当前 IAM 用户都将收到新权限。

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-GrantPermissionsToIAMUser) 

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux、macOS、Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

  描述：（可选）允许 Systems Manager Automation 代表您执行操作 AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称（ARN）。如果未指定角色，Systems Manager Automation 将使用启动此运行手册的用户的权限。
+ IAMGroup名称

  类型：字符串

  默认： ExampleSupportAndBillingGroup

   描述：（必需）可以是新组或现有组。必须符合 [IAM 实体名称限制](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-names)。
+ IAMUser名称

  类型：字符串

  默认： ExampleUser

  描述：（必需）必须是现有用户。
+ LambdaAssumeRole

  类型：字符串

  描述：（可选）Lambda担任的角色的 ARN。
+ Permissions

  类型：字符串

  有效值： SupportFullAccess \$1 BillingFullAccess \$1 SupportAndBillingFullAccess

  默认： SupportAndBillingFullAccess

   描述：（必需）选择以下值之一：`SupportFullAccess` 授予支持中心的完全访问权限。`BillingFullAccess` 授予“账单”控制面板的完全访问权限。`SupportAndBillingFullAccess` 授予支持中心和“账单”控制面板的完全访问权限。有关策略的更多信息，请参阅文档详细信息。

**所需的 IAM 权限**

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

 所需的权限取决于 `AWSSupport-GrantPermissionsToIAMUser` 的运行方式。

 **以当前登录的用户或角色运行** 

 建议附加 `AmazonSSMAutomationRole` Amazon 托管策略以及以下额外权限，以便创建 Lambda 函数和将 IAM 角色传递给 Lambda：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "lambda:InvokeFunction",
                "lambda:CreateFunction",
                "lambda:DeleteFunction",
                "lambda:GetFunction"
            ],
            "Resource": "arn:aws:lambda:*:111122223333:function:AWSSupport-*",
            "Effect": "Allow"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:CreateGroup",
                "iam:AddUserToGroup",
                "iam:ListAttachedGroupPolicies",
                "iam:GetGroup",
                "iam:GetUser"
            ],
            "Resource": [
                "arn:aws:iam::*:user/*",
                "arn:aws:iam::*:group/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:AttachGroupPolicy"
            ],
            "Resource": "*",
            "Condition": {
                "ArnEquals": {
                    "iam:PolicyArn": [
                        "arn:aws:iam::aws:policy/job-function/Billing",
                        "arn:aws:iam::aws:policy/AWSSupportAccess"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:ListAccountAliases",
                "iam:GetAccountSummary"
            ],
            "Resource": "*"
        }
    ]
}
```

------

 **使用 AutomationAssumeRole 和 LambdaAssumeRole** 

 用户在运行手册上必须具有 **ssm: StartAutomationExecution** 权限，对作为**AutomationAssumeRole**和传递**的 IAM 角色必须具有 iam: PassRole** 权限。**LambdaAssumeRole**以下是每个 IAM 角色所需的权限：

```
AutomationAssumeRole

                    {
                        "Version": "2012-10-17",		 	 	 
                        "Statement": [
                            {
                                "Action": [
                                    "lambda:InvokeFunction",
                                    "lambda:CreateFunction",
                                    "lambda:DeleteFunction",
                                    "lambda:GetFunction"
                                ],
                                "Resource": "arn:aws:lambda:*:ACCOUNTID:function:AWSSupport-*",
                                "Effect": "Allow"
                            }
                        ]
                    }
```

```
LambdaAssumeRole

                {
                    "Version": "2012-10-17",		 	 	 
                    "Statement": [
                        {
                            "Effect" : "Allow",
                            "Action" : [
                                "iam:CreateGroup",
                                "iam:AddUserToGroup",
                                "iam:ListAttachedGroupPolicies",
                                "iam:GetGroup",
                                "iam:GetUser"
                            ],
                            "Resource" : [
                                "arn:aws:iam::*:user/*",
                                "arn:aws:iam::*:group/*"
                            ]
                        },
                        {
                            "Effect" : "Allow",
                            "Action" : [
                                "iam:AttachGroupPolicy"
                            ],
                            "Resource": "*",
                            "Condition": {
                                "ArnEquals": {
                                    "iam:PolicyArn": [
                                        "arn:aws:iam::aws:policy/job-function/Billing",
                                        "arn:aws:iam::aws:policy/AWSSupportAccess"
                                    ]
                                }
                            }
                        },
                        {
                            "Effect" : "Allow",
                            "Action" : [
                                "iam:ListAccountAliases",
                                "iam:GetAccountSummary"
                            ],
                            "Resource" : "*"
                        }
                    ]
                }
```

 **文档步骤** 

1.  `aws:createStack`-运行 CloudFormation 模板创建 Lambda 函数。

1.  `aws:invokeLambdaFunction` - 运行 Lambda 以设置 IAM 权限。

1.  `aws:deleteStack`-删除 CloudFormation 模板。

 **输出** 

configureIAM.Payload

# `AWSConfigRemediation-RemoveUserPolicies`
<a name="automation-aws-remove-user-policies"></a>

 **描述** 

 `AWSConfigRemediation-RemoveUserPolicies` 运行手册将删除 AWS Identity and Access Management (IAM) 内联策略，并分离附加到指定用户的所有托管策略。

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-RemoveUserPolicies) 

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux、macOS、Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

  描述：（必需）允许 Systems Manager Automation 代表您执行操作的 AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称（ARN）。
+ IAMUser身份证

  类型：字符串

  描述：（必需）要从其移除策略的用户的 ID。
+ PolicyType

  类型：字符串

  有效值：全部 \$1 内联 \$1 托管

  默认：全部

  描述：（必需）要从用户移除的 IAM 策略的类型。

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `iam:DeleteUserPolicy` 
+  `iam:DetachUserPolicy` 
+  `iam:ListAttachedUserPolicies` 
+  `iam:ListUserPolicies` 
+  `iam:ListUsers` 

 **文档步骤** 
+  `aws:executeScript` - 删除您在 `IAMUserID` 参数中指定的用户的 IAM 策略并将其与该用户分离。

# `AWSConfigRemediation-ReplaceIAMInlinePolicy`
<a name="automation-aws-replace-iam-policy"></a>

 **描述** 

 `AWSConfigRemediation-ReplaceIAMInlinePolicy`运行手册将内联 AWS Identity and Access Management (IAM) 策略替换为复制的托管 IAM 策略。对于附加到用户、群组或角色的内联策略，内联策略权限会克隆到托管 IAM policy。托管 IAM 策略已添加到资源中，并删除内联策略。 AWS Config 必须在运行此自动化的 AWS 区域 位置中启用。

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-ReplaceIAMInlinePolicy) 

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux、macOS、Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

  描述：（必需）允许 Systems Manager Automation 代表您执行操作的 AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称（ARN）。
+ InlinePolicyName

  类型： StringList

  描述：（必需）要替换的内联 IAM policy。
+ ResourceId

  类型：字符串

  描述：（必需）要替换其内联策略的 IAM 用户、群组或角色的 ID。

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `iam:AttachGroupPolicy` 
+  `iam:AttachRolePolicy` 
+  `iam:AttachUserPolicy` 
+  `iam:CreatePolicy` 
+  `iam:CreatePolicyVersion` 
+  `iam:DeleteGroupPolicy` 
+  `iam:DeleteRolePolicy` 
+  `iam:DeleteUserPolicy` 
+  `iam:GetGroupPolicy` 
+  `iam:GetRolePolicy` 
+  `iam:GetUserPolicy` 
+  `iam:ListGroupPolicies` 
+  `iam:ListRolePolicies` 
+  `iam:ListUserPolicies` 

 **文档步骤** 
+  `aws:executeScript` - 将内联 IAM policy 替换为指定资源的 AWS 复制策略。

# `AWSConfigRemediation-RevokeUnusedIAMUserCredentials`
<a name="automation-aws-revoke-iam-user"></a>

 **描述** 

 `AWSConfigRemediation-RevokeUnusedIAMUserCredentials`运行手册会撤销未使用的 AWS Identity and Access Management (IAM) 密码和有效的访问密钥。此运行手册还会停用过期的访问密钥，并删除过期的登录配置文件。 AWS Config 必须在运行此自动化的 AWS 区域 位置中启用。

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-RevokeUnusedIAMUserCredentials) 

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux、macOS、Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

  描述：（必需）允许 Systems Manager Automation 代表您执行操作的 AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称（ARN）。
+ IAMResource我是

  类型：字符串

  描述：（必需）要从其撤销未使用的凭证的 IAM 资源的 ID。
+ MaxCredentialUsageAge

  类型：字符串

  默认：90

  描述：（必需）凭证必须已使用的天数。

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `config:ListDiscoveredResources` 
+  `iam:DeleteAccessKey` 
+  `iam:DeleteLoginProfile` 
+  `iam:GetAccessKeyLastUsed` 
+  `iam:GetLoginProfile` 
+  `iam:GetUser` 
+  `iam:ListAccessKeys` 
+  `iam:UpdateAccessKey` 

 **文档步骤** 
+  `aws:executeScript` - 撤销您在 `IAMResourceId` 参数中指定的用户的 IAM 凭证。过期的访问密钥将被停用，过期的登录配置文件将被删除。

**注意**  
确保将此修复操作的`MaxCredentialUsageAge`参数配置为与用于触发此操作的 AWS Config 规则的`maxAccessKeyAge`参数相匹配：[access-keys-rotated](https://docs.aws.amazon.com/config/latest/developerguide/access-keys-rotated.html)。

# `AWSConfigRemediation-SetIAMPasswordPolicy`
<a name="automation-aws-set-iam-policy"></a>

 **描述** 

 `AWSConfigRemediation-SetIAMPasswordPolicy`运行手册将为您的 AWS 账户设置 AWS Identity and Access Management (IAM) 用户密码策略。

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-SetIAMPasswordPolicy) 

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux、macOS、Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

  描述：（必需）允许 Systems Manager Automation 代表您执行操作的 AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称（ARN）。
+ AllowUsersToChangePassword

  类型：布尔值

  默认：false

   描述：（可选）如果设置为`true`，则您的所有 IAM 用户都 AWS 账户 可以使用 AWS 管理控制台 来更改其密码。
+ HardExpiry

  类型：布尔值

  默认值：false

   描述：（可选）如果设置为 `true`，IAM 用户将无法在密码到期后重置密码。
+ MaxPasswordAge

  类型：整数

  默认值：0

  描述：（可选）IAM 用户密码的有效天数。
+ MinimumPasswordLength

  类型：整数

  默认：6

  描述：（可选）IAM 用户的密码可以包含的最少字符数。
+ PasswordReusePrevention

  类型：整数

  默认值：0

  描述：（可选）阻止 IAM 用户再次使用的先前密码的数量。
+ RequireLowercaseCharacters

  类型：布尔值

  默认值：false

   描述：（可选）如果设置为 `true`，则 IAM 用户的密码必须包含 ISO 基本拉丁字母（a 到 z）中的小写字符。
+ RequireNumbers

  类型：布尔值

  默认值：false

   描述：（可选）如果设置为 `true`，则 IAM 用户的密码必须包含数字字符 (0-9)。
+ RequireSymbols

  类型：布尔值

  默认值：false

   描述：（可选）如果设置为 `true`，则 IAM 用户的密码必须包含非字母数字字符 (\$1 @ \$1 \$1 % ^ \$1 ( ) \$1 \$1 - = [ ] \$1 \$1 \$1 ')。
+ RequireUppercaseCharacters

  类型：布尔值

  默认值：false

   描述：（可选）如果设置为 `true`，则 IAM 用户的密码必须包含 ISO 基本拉丁字母（A 到 Z）中的大写字符。

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `iam:GetAccountPasswordPolicy` 
+  `iam:UpdateAccountPasswordPolicy` 

 **文档步骤** 
+  `aws:executeScript` - 根据您为 AWS 账户的运行手册参数指定的值设置 IAM 用户密码策略。

# `AWSSupport-ContainIAMPrincipal`
<a name="awssupport-contain-iam-principal"></a>

 **描述** 

如果发生安全事件或涉嫌泄露 AWS Identity and Access Management (IAM) 用户/角色或 AWS 身份中心 (IDC) 用户，在保留其配置以供调查的同时，迅速隔离受影响的身份至关重要。该操作`AWSSupport-ContainIAMPrincipal`手册提供了一种结构化、可逆的方法来遏制受损的 IAM 或 IDC 身份，从而有效地阻止他们访问 AWS 资源并防止漏洞的潜在传播。

这种自动化过程允许在不永久更改身份配置的情况下进行调查，从而允许在认为适当时恢复正常访问权限。遏制过程可以维护 IAM 中的用户或角色或 IDC 中的用户，同时有效地将其与所有网络活动隔离开来。这种隔离可防止所包含的身份资源与您的 Amazon Virtual Private Cloud 内的资源通信或访问互联网资源。封闭装置的设计是可逆的，允许在认为适当时恢复正常进入。

 **如何工作？** 

该`AWSSupport-ContainIAMPrincipal`运行手册对 IAM 用户、角色和身份中心用户实施了全面的控制流程。在`Contain`模式下执行时，它会首先验证所有输入参数，然后对指定的 Amazon S3 存储桶执行安全检查。然后，它收集有关目标 IAM 委托人的详细信息，并根据委托人类型应用适当的遏制措施。对于 IAM 用户，它会禁用访问密钥、移除控制台访问权限并附加拒绝策略。对于 IAM 角色，它会附加一个拒绝策略，该策略可撤消在包含之前创建的会话的权限。对于 Identity Center 用户，它会删除权限集、群组成员资格，并应用拒绝策略。在整个过程中，运行手册会将原始配置备份到 Amazon S3 存储桶，以便进行恢复。在`Restore`模式下执行时，它会尝试使用备份的配置将主体恢复到其预先包含的状态。运行手册包括一个无需应用更改即可预览变更的`DryRun`选项，并提供有关成功操作和失败场景的全面报告。

**重要**  
**使用提升权限：**此 SSM 文档执行各种需要提升权限的操作，例如修改 IAM 和 IDC 身份策略以及应用隔离配置。这些操作可能会导致权限升级或影响依赖目标身份的其他工作负载。您应查看向`AutomationAssumeRole`参数指定的角色授予的权限，并确保这些权限适用于预期用例。有关 IAM 权限的更多信息，您可以参考以下 AWS 文档：  
[身份和访问管理 (IAM) Access Management 权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_permissions.html)
[AWS Systems Manager 自动化权限](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-permissions.html)
**工作负载不可用风险：本** Systems Manager 文档执行的隔离操作可能会导致工作负载不可用或中断。在安全事件期间执行时，它将通过撤消指定 IAM 和 IDC 身份的 AWS API 权限来限制对受影响资源的访问，阻止他们进行任何 AWS API 调用或操作。这可能会影响依赖这些身份的任何应用程序或服务。
**创建其他资源：**自动化文档可能会有条件地创建其他资源，例如亚马逊简单存储服务 (Amazon S3) 存储桶和存储在其中的 Amazon S3 对象，具体取决于执行参数。这些资源将根据您的 AWS 使用情况产生额外费用。
**恢复风险：**如果*操作*参数设置为`Restore`，则此 SSM 文档会尝试将 IAM 或 IDC 身份配置恢复到其原始状态。但是，恢复过程可能会失败，从而导致 IAM 或 IDC 身份处于不一致的状态。本文档提供了在出现此类故障时手动恢复的说明，但您应该做好在恢复过程中处理潜在问题的准备。
建议在生产环境中执行运行手册之前，请仔细阅读运行手册，了解其潜在影响，并在非生产环境中对其进行测试。

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-ContainIAMPrincipal) 

**文档类型**

自动化

**所有者**

Amazon

**平台**

/

 **所需的 IAM 权限** 

该`AutomationAssumeRole`参数需要以下权限才能成功使用运行手册：
+ s3：GetBucketLocation
+ s3：GetBucket
+ s3：ListBucket
+ s3：GetBucketPublicAccessBlocks
+ s3：GetAccountPublicAccessBlocks
+ s3：GetBucketPolicyStatus
+ s3：GetBucketAcl
+ s3：GetObject
+ s3：CreateBucket
+ s3：PutObject
+ 我是：GetUser
+ 我是：GetUserPolicy
+ 我是：GetRole
+ 我是：ListUserPolicies
+ 我是：ListAttachedUserPolicies
+ 我是：ListAccessKeys
+ 我是：ListMfaDevices
+ 我是：ListVirtualMFADevices
+ 我是：GetLoginProfile
+ 我是：GetPolicy
+ 我是：GetRolePolicy
+ 我是：ListPolicies
+ 我是：ListAttachedRolePolicies
+ 我是：ListRolePolicies
+ 我是：UpdateAccessKey
+ 我是：CreateAccessKey
+ 我是：DeleteLoginProfile
+ 我是：DeleteAccessKey
+ 我是：PutUserPolicy
+ 我是：DeleteUserPolicy
+ 我是：停用 MFADevice
+ 我是：AttachRolePolicy
+ 我是：AttachUserPolicy
+ 我是：DeleteRolePolicy
+ 我是:Tag MFADevice
+ 我是：PutRolePolicy
+ 我是：TagPolicy
+ 我是：TagRole
+ 我是：TagUser
+ 我是：UntagUser
+ 我是：UntagRole
+ 组织：ListAccounts
+ sso：ListPermissionSetsProvisionedToAccount
+ sso：GetInlinePolicyForPermissionSet
+ sso：ListInstances
+ sso 目录：SearchUsers
+ sso：ListPermissionSets
+ sso：ListAccountAssignments
+ sso 目录：DescribeUser
+ identitystore：ListUsers
+ identitystore：ListGroups
+ identitystore：IsMemberInGroups
+ identitystore：ListGroupMemberships
+ 秘密管理器：CreateSecret
+ 秘密管理器：DeleteSecret
+ sso：DeleteAccountAssignment
+ sso：PutInlinePolicyToPermissionSet
+ sso：CreateAccountAssignment
+ sso：DeleteInlinePolicyFromPermissionSet
+ sso：TagResource
+ sso：UntagResource
+ identitystore：DeleteGroupMembership
+ identitystore：CreateGroupMembership

 以下是 IAM 策略的示例，该策略为以下各项授予必要权限`AutomationAssumeRole`：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "S3Permissions",
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketLocation",
                "s3:ListBucket",
                "s3:GetBucketPublicAccessBlock",
                "s3:GetBucketPolicyStatus",
                "s3:GetBucketAcl",
                "s3:GetObject",
                "s3:CreateBucket",
                "s3:PutObject"
            ],
            "Resource": "*"
        },
        {
            "Sid": "IAMPermissions",
            "Effect": "Allow",
            "Action": [
                "iam:GetUser",
                "iam:GetUserPolicy",
                "iam:GetRole",
                "iam:ListUserPolicies",
                "iam:ListAttachedUserPolicies",
                "iam:ListAccessKeys",
                "iam:ListMfaDevices",
                "iam:ListVirtualMFADevices",
                "iam:GetLoginProfile",
                "iam:GetPolicy",
                "iam:GetRolePolicy",
                "iam:ListPolicies",
                "iam:ListAttachedRolePolicies",
                "iam:ListRolePolicies",
                "iam:UpdateAccessKey",
                "iam:CreateAccessKey",
                "iam:DeleteLoginProfile",
                "iam:DeleteAccessKey",
                "iam:PutUserPolicy",
                "iam:DeleteUserPolicy",
                "iam:DeactivateMFADevice",
                "iam:AttachRolePolicy",
                "iam:AttachUserPolicy",
                "iam:DeleteRolePolicy",
                "iam:TagMFADevice",
                "iam:PutRolePolicy",
                "iam:TagPolicy",
                "iam:TagRole",
                "iam:TagUser",
                "iam:UntagUser",
                "iam:UntagRole"
            ],
            "Resource": "*"
        },
        {
            "Sid": "OrganizationsPermissions",
            "Effect": "Allow",
            "Action": [
                "organizations:ListAccounts"
            ],
            "Resource": "*"
        },
        {
            "Sid": "SSOPermissions",
            "Effect": "Allow",
            "Action": [
                "sso:ListPermissionSetsProvisionedToAccount",
                "sso:GetInlinePolicyForPermissionSet",
                "sso:ListInstances",
                "sso-directory:SearchUsers",
                "sso:ListPermissionSets",
                "sso:ListAccountAssignments",
                "sso-directory:DescribeUser",
                "sso:DeleteAccountAssignment",
                "sso:PutInlinePolicyToPermissionSet",
                "sso:CreateAccountAssignment",
                "sso:DeleteInlinePolicyFromPermissionSet",
                "sso:TagResource",
                "sso:UntagResource"
            ],
            "Resource": "*"
        },
        {
            "Sid": "IdentityStorePermissions",
            "Effect": "Allow",
            "Action": [
                "identitystore:ListUsers",
                "identitystore:ListGroups",
                "identitystore:IsMemberInGroups",
                "identitystore:ListGroupMemberships",
                "identitystore:DeleteGroupMembership",
                "identitystore:CreateGroupMembership"
            ],
            "Resource": "*"
        },
        {
            "Sid": "SecretsManagerPermissions",
            "Effect": "Allow",
            "Action": [
                "secretsmanager:CreateSecret",
                "secretsmanager:DeleteSecret"
            ],
            "Resource": "*"
        }
    ]
}
```

------

 **说明** 

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

1. 在 S AWS ystems Manager 控制台[AWSSupport-ContainIAMPrincipal](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-ContainIAMPrincipal/description)中导航到。

1. 选择 **Execute automation**（执行自动化）。

1. 对于输入参数，请输入以下内容：
   + **AutomationAssumeRole （可选）：**
     + 描述：（可选） AWS 身份和访问管理 (IAM) Access Management 角色的亚马逊资源名称 (ARN)，允许系统管理员自动化代表您执行操作。如果未指定角色，Systems Manager Automation 将使用启动此运行手册的用户的权限。
     + 类型：`AWS::IAM::Role::Arn`
   + **PrincipalType （必填）：**
     + 描述：（必填） AWS IAM 委托人类型：IAM 用户、IAM 角色或身份中心用户。
     + 类型：字符串
     + 允许的值：`IAM user|IAM role|Identity Center user`
   + **PrincipalName （必填）：**
     + 描述：（必填）IAM 委托人的名称。对于身份中心用户，请提供用户名。
     + 类型：字符串
     + 允许的模式：`^[a-zA-Z0-9\\.\\-_\\\\!*'()/+=,@]{1,1024}$`
   + **操作（必填）：**
     + 描述：（必填）选择`Contain`隔离目标 IAM 委托人或`Restore`尝试将 IAM 委托人恢复到之前备份的原始配置。
     + 类型：字符串
     + 允许的值：`Contain|Restore`
   + **DryRun （可选）：**
     + 描述：（可选）如果设置为`true`，自动化将不会对目标 IAM 委托人进行任何更改，而是输出它本来会尝试更改的内容，详细说明每个步骤。默认值：`true`。
     + 类型：布尔值
     + 允许的值：`true|false`
   + **ActivateDisabledKeys（视情况而定）：**
     + 描述：（视情况而定）如果输入参数 “操作” 设置为，`Restore`且设置 PrincipalType 为 IAM 用户，则此选项决定在停用后，此自动化是否应尝试激活关联的访问密钥。请注意，无法验证泄露的访问密钥的完整性。 AWS 强烈建议不要重新激活被盗的密钥。相反，建议生成新密钥。默认值：`false`。
     + 类型：布尔值
     + 允许的值：`true|false`
   + **BackupS3BucketName （视情况而定）：**
     + 描述：（视情况而定）Amazon Amazon S3 存储桶，用于在操作设置为时备份 IAM 主体配置`Contain`或从操作设置为时恢复配置`Restore`。请注意，如果指定的 Acti `Contain` on 是，而 runbook 无法访问该存储桶或未提供值，则会在您的账户中创建一个名`awssupport-containiamprincipal-<random-string>`为的新存储桶。如果设置 DryRun 为，则需要`true`此参数。
     + 类型：`AWS::S3::Bucket::Name`
   + **BackupS3KeyName （视情况而定）：**
     + 描述：（视情况而定）如果将操作设置为`Restore`，则指定自动化用于尝试恢复 IAM 委托人配置的 Amazon Amazon S3 密钥。亚马逊 Amazon S3 密钥通常遵循以下格式:`{year}/{month}/{day}/{hour}/{minute}/{automation_execution_id}.json`. 密钥可以从之前的控制自动化执行的输出中获得。
     + 类型：字符串
     + 允许的模式：`^[a-zA-Z0-9\\.\\-_\\\\!*'()/]{0,1024}$`
   + **BackupS3BucketAccess（视情况而定）：**
     + 描述：（视情况而定）在运行控制操作后将被允许访问备份 Amazon Amazon S3 存储桶的 IAM 用户或角色的 ARN。当 “操作” 为 “时，此参数是必需的`Contain`。自动将 AutomationAssumeRole正在其上下文中运行自动化的用户添加到列表中。
     + 类型： StringList
     + 允许的模式：`^$|^arn:(aws|aws-cn|aws-us-gov|aws-iso(-[a-z])?):iam::[0-9]{12}:(role|user)\\/[\\w+\\/=,.@-]+$`
   + **TagIdentifier （可选）：**
     + 描述：（可选）使用您选择的标签标记 IAM 委托人，格式如下：`Key=<EXAMPLE_KEY>,Value=<EXAMPLE_VALUE>`。此选项允许您跟踪本运行手册所针对的 IAM 委托人。**注意：**标签键和值区分大小写。
     + 类型：字符串
     + 允许的模式：`^$|^[Kk][Ee][Yy]=[\\+\\-\\=\\.\\_\\:\\/@a-zA-Z0-9]{1,128},[Vv][Aa][Ll][Uu][Ee]=[\\+\\-\\=\\.\\_\\:\\/@a-zA-Z0-9]{0,128}$`

1. 选择执行。

1. 自动化启动。

1. 文档将执行以下步骤：
   + **ValidateRequiredInputs**

     根据`Action`指定的值验证所需的自动化输入参数。
   + **CheckBackupS3BucketName**

     检查目标 Amazon S3 存储桶是否有可能向其对象授予`read`或`write`公开访问其对象。对于容纳工作流程，如果存储桶不存在，则会创建一个新的 Amazon S3 `BackupS3BucketName` 存储桶。
   + **BranchOnAction**

     根据指定的值对自动化进行分支`Action`。
   + **BranchOnPrincipalTypeAndDryRun**

     根据 IAM 委托人的类型（IAM 用户、IAM 角色或身份中心用户）及其是否在`DryRun`模式下运行来分支自动化。
   + **BranchOnPrincipalTypeForContain**

     分支基于`Contain`操作和输入中指定的 IAM 委托人类型（IAM 用户、IAM 角色或身份中心用户）的自动化。
   + **获取 IAMUser**

     获取目标 IAM 用户的创建时间和用户名。
   + **获取IAMUser详情**

     获取和存储目标 IAM 用户的配置，包括内联策略、托管策略、访问密钥、MFA 设备和登录资料。
   + **最新消息 3 KeyForUser**

     更新步骤输出中的自动化 “S3Key” 变量。`GetIAMUserDetails`
   + **获取 IAMRole**

     获取目标 IAM 角色的创建时间、角色名称和路径。
   + **获取IAMRole详情**

     获取和存储目标 IAM 角色的配置，包括内联策略和附加到该角色的托管策略。
   + **最新消息 3 KeyForRole**

     更新步骤输出中的自动化 “S3Key” 变量。`GetIAMRoleDetails`
   + **GetIdentityStoreId**

     获取与 AWS 账户关联的 AWS IAM 身份中心实例的 ID。
   + **获取 IDCUser**

     使用身份存储 ID 获取目标身份中心用户的用户 ID。
   + **收集IDCUser细节**

     获取和存储目标 Identity Center 用户的配置，包括帐户分配、关联权限集和内联策略。
   + **最新消息 3 KeyFor IDCUser**

     更新步骤输出中的自动化 “S3Key” 变量。`GatherIDCUserDetails`
   + **BranchOnIdentityContain**

     根据`Contain`操作的值`DryRun`和 IAM 委托人类型对自动化进行分支。
   + **BranchOnDisableAccessKeys**

     根据 IAM 用户是否有需要禁用的访问密钥来分支自动化。
   + **DisableAccessKeys**

     禁用有效的 IAM 用户访问密钥。
   + **BranchOnDisableConsoleAccess**

     分支基于 IAM 用户是否启用了 AWS 管理控制台访问权限。
   + **DisableConsoleAccess**

     移除 IAM 用户对 AWS 管理控制台的基于密码的访问权限。
   + **AttachInlineDenyPolicyToUser**

     向 IAM 用户附加拒绝策略，以撤消对旧会话令牌的权限。
   + **AttachInlineDenyPolicyToRole**

     向 IAM 角色附加拒绝策略，以撤消对旧会话令牌的权限。
   + **RemovePermissionSets**

     移除与 Identity Center 用户关联的权限集。
   + **IDCUser从中删除 IDCGroups**

     将身份中心用户从身份中心群组中移除。
   + **AttachInlineDenyPolicyToPermissionSet**

     将拒绝策略附加到与 Identity Center 用户关联的权限集。
   + **BranchOnReactivateKeys**

     在还原过程中，根据`ActivateDisabledKeys`参数对自动化进行分支。
   + **DetachInlineDenyPolicy**

     移除在控制过程中附加到 IAM 角色的拒绝策略。
   + **DetachInlineDenyPolicyFromPermissionSet**

     移除在遏制过程中附加到权限集的拒绝策略。
   + **ReportContain**

     输出有关设置为时将要执行的遏制操作`DryRun`的详细信息。`True`
   + **ReportRestore**

     输出有关设置为时`DryRun`将要执行的恢复操作的详细信息`True`。
   + **ReportContainFailure**

     提供在控制工作流程失败的情况下手动恢复 IAM 委托人的原始配置的全面说明。
   + **ReportRestoreFailure**

     提供在还原工作流程失败的情况下手动完成 IAM 委托人原始配置恢复的详细说明。

1. 执行完成后，请查看 “输出” 部分，了解执行的详细结果：
   + **包含IAMPrincipal。输出**

     提供有关在 “操作” 设置为 “包含” 且 DryRun 设置为 “假” 时执行的遏制操作的详细信息。包括有关备份位置、已应用的拒绝策略和修改的配置的信息。
   + **恢复IAMPrincipal. 输出**

     提供有关在 “操作” 设置为 “还原” 且 DryRun 设置为 False 时所执行的还原操作的详细信息。包括有关已恢复的配置以及恢复过程中遇到的任何问题的信息。
   + **ReportContain。输出**

     输出有关在 “操作” 设置为 “包含” 且 DryRun 设置为 True 时将执行的遏制操作的详细信息。包括当前和封闭后配置的比较。
   + **ReportRestore。输出**

     输出有关在 “操作” 设置为 “恢复” 且 DryRun 设置为 True 时将执行的还原操作的详细信息。显示当前配置和要恢复的原始配置。
   + **ReportContainFailure。输出**

     提供在控制工作流程失败的情况下手动恢复 IAM 委托人的原始配置的全面说明。
   + **ReportRestoreFailure。输出**

     提供在还原工作流程失败的情况下手动完成 IAM 委托人原始配置恢复的详细说明。

 **输出** 

执行完成后，请查看 “输出” 部分以了解详细结果：
+ **包含IAMPrincipal。输出**

  提供有关在 “操作” 设置为 “包含” 且 DryRun 设置为 “假” 时执行的遏制操作的详细信息。包括有关备份位置、已应用的拒绝策略和修改的配置的信息。
+ **恢复IAMPrincipal. 输出**

  提供有关在 “操作” 设置为 “还原” 且 DryRun 设置为 False 时所执行的还原操作的详细信息。包括有关已恢复的配置以及恢复过程中遇到的任何问题的信息。
+ **ReportContain。输出**

  输出有关在 “操作” 设置为 “包含” 且 DryRun 设置为 True 时将执行的遏制操作的详细信息。包括当前和封闭后配置的比较。
+ **ReportRestore。输出**

  输出有关在 “操作” 设置为 “恢复” 且 DryRun 设置为 True 时将执行的还原操作的详细信息。显示当前配置和要恢复的原始配置。
+ **ReportContainFailure。输出**

  提供在控制工作流程失败的情况下手动恢复 IAM 委托人的原始配置的全面说明。
+ **ReportRestoreFailure。输出**

  提供在还原工作流程失败的情况下手动完成 IAM 委托人原始配置恢复的详细说明。

 **参考** 

Systems Manager Automation
+ [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-ContainIAMPrincipal)
+ [运行简单的自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-working-executing.html)
+ [设置自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup.html)
+ [Support 自动化工作流程](https://aws.amazon.com/premiumsupport/technology/saw/)

# `AWSSupport-TroubleshootSAMLIssues`
<a name="awssupport-troubleshootsamlissues"></a>

 **描述** 

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

 **如何工作？** 

 运行手册执行以下步骤：
+ 验证 SAML 响应格式和必填元素。
+ 解码并提取 SAML 响应组件（发布者、断言、主题、条件、签名、属性）。
+ 根据 IAM 身份提供商证书（如果提供）验证数字签名。
+ 检查受众限制和时间有效性。
+ 提供详细的诊断信息，显示已解析的 SAML 结构和验证结果。

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootSAMLIssues) 

**文档类型**

自动化

**所有者**

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 文件）。可以在[本](https://docs.aws.amazon.com//IAM/latest/UserGuide/troubleshoot_saml_view-saml-response.html)文档中找到捕获 SAML 响应的说明

1. [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootSAMLIssues/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootSAMLIssues/description)在 Systems Manager 的 “文档” 下导航至。

1. 选择 **Execute automation**（执行自动化）。

1. 对于输入参数，请输入以下内容：
   + **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\$1analysis\$1 .json” 的名义存储在输入存储桶中。如果要输出带有特定前缀的文件，则可以使用此参数。<executionID of the runbook>默认值为 “output/”，在这种情况下，输出结果的文件 URI 将为 's3://bucket-name/output/saml \$1analysis\$1 .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`

1. 选择**执行**。

1. 自动化启动。

1. 文档将执行以下步骤：
   + **验证 IAMIDProvider**

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

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

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

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

1. 完成后，请查看 “**输出**” 部分，了解执行的详细结果：
   + **输出**部分包含有关描述分析结果的 Amazon S3 对象的信息。

1. 分析结果中的 Amazon S3 对象是一个 Json 文件，其中包含以下信息：
   + **验证结果：包含 S** AML 响应的基本验证结果。
     + **saml\$1info**：关键的 SAML 信息，包括颁发者、签名和断言。
     + **架构验证：SAML 架构验证**的结果。
   + **verification\$1result：提供更详细的诊断结果**。
     + **签名**：签名验证的结果。
     + **受众**：受众限制验证的结果。
     + **过期**：到期时间验证的结果。

 **参考** 

Systems Manager Automation
+ [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootSAMLIssues)
+ [运行自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-working-executing.html)
+ [设置自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup.html)
+ [支持自动化工作流登录页面](https://aws.amazon.com/premiumsupport/technology/saw/)