

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

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

 AWS Systems Manager 自動化為 提供預先定義的 Runbook AWS Identity and Access Management。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](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>

 **Description** 

 **AWSSupport-TroubleshootIAMAccessDeniedEvents ** 自動化 Runbook 可協助疑難排解 AWS Identity and Access Management (IAM) 存取遭拒的問題。Runbook 會查詢 CloudTrail 是否有與指定 IAM 實體和服務 AWS 事件來源相關的最近存取遭拒事件。它會在最多 24 小時的可設定時段內分析事件，每次執行最多處理 10 個事件。系統會檢查每個已識別的拒絕存取事件，以協助了解拒絕的內容和嘗試的動作。自動化會分析身分型和資源型 IAM 政策。對於身分型政策，它會檢查連接到 IAM 實體的內嵌和受管政策。對於以資源為基礎的政策，它會評估多個 AWS 服務的政策，包括 Amazon Simple Storage Service (Amazon S3)、 AWS Key Management Service (AWS KMS) AWS Lambda、Amazon Simple Notification Service (Amazon SNS)、Amazon Elastic Container Registry (Amazon ECR)、Amazon API Gateway、CodeArtifact、Amazon Elastic File System (Amazon EFS) AWS Serverless Application Repository、Amazon Simple Queue Service (Amazon SQS) AWS Cloud9、Amazon OpenSearch Service、 AWS Signer 和 AWS Secrets Manager。

 Runbook 利用 IAM 政策模擬功能，針對 CloudTrail 事件中找到的拒絕動作來評估這些政策。Runbook 透過適用於 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)，利用 IAM 的政策模擬功能，針對 CloudTrail 事件中找到的拒絕動作來評估這些政策。自動化會輸出報告，以協助識別遭拒的特定動作、區分隱含和明確拒絕、列出負責存取拒絕的政策，並針對每個拒絕提供說明。報告也建議潛在的解決方案，例如識別缺少的允許陳述式或衝突的拒絕陳述式 

 **如何運作？** 

 Runbook 會執行下列步驟：
+ 描述並驗證 `RequesterARN`（角色或使用者） 以取得 IAM 實體類型和 IAM ID 等資訊。
+ 擷取與 `RequesterARN`、 和 相關聯的 CloudTrail 事件`EventSource`，`ResourceARN`如果提供的話。
+ 分析 CloudTrail 事件以取得傳回存取遭拒錯誤時所執行的動作，然後檢查連接至 IAM 實體的所有 IAM 政策，例如內嵌和受管政策，以及以資源為基礎的政策。然後，它會針對從有問題的 CloudTrail 事件存取遭拒錯誤中找到的動作模擬這些政策，以判斷錯誤的原因。
+ 輸出報告以判斷拒絕存取錯誤的類型、負責錯誤的政策，並為錯誤提供潛在解決方案的建議。

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

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

/

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `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. 在文件下的 Systems Manager [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootIAMAccessDeniedEvents/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootIAMAccessDeniedEvents/description)中導覽至 。

1. 選擇 **Execute automation** (執行自動化)。

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**
     + 描述：（選用） 允許 SSM Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (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 （選用）：**
     + 描述：（選用） 搜尋`Access Denied`事件時傳回的 CloudTrail 事件數目上限。有效範圍： `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**

     查詢 CloudTrail 事件是否有與指定 IAM 實體 AWS 和服務 相關的最近`Access Denied`事件`EventSource`。
   + **EvaluateIAMRequesterPolicies**

     根據 CloudTrail 事件的動作，評估請求者 IAM 實體的 IAM 許可。此評估包括分析與請求者相關聯的身分型和資源型政策。自動化利用 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>

 **Description** 

將 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 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ ForceReplace

  類型：布林值

  描述：（選用） 指定是否取代現有 IAM 設定檔的旗標。

  預設：true
+ InstanceId

  類型：字串

  描述：（必要） 您要為其指派 IAM 角色的執行個體 ID。
+ RoleName

  類型：字串

  描述：（必要） 要新增至受管執行個體的 IAM 角色名稱。

 **文件步驟** 

1.  `aws:executeAwsApi` - DescribeInstanceProfile - 尋找連接至 EC2 執行個體的 IAM 執行個體描述檔。

1.  `aws:branch` - CheckInstanceProfileAssociations - 檢查連接至 EC2 執行個體的 IAM 執行個體描述檔。

   1.  如果已連接 IAM 執行個體描述檔，且`ForceReplace`設定為 `true` ：

      1.  `aws:executeAwsApi` - DisassociateIamInstanceProfile - 取消 IAM 執行個體描述檔與 EC2 執行個體的關聯。

   1.  `aws:executeAwsApi` - ListInstanceProfilesForRole - 列出所提供 IAM 角色的執行個體描述檔。

   1.  `aws:branch` - CheckInstanceProfileCreated - 檢查提供的 IAM 角色是否有相關聯的執行個體描述檔。

      1. 如果 IAM 角色具有相關聯的執行個體描述檔：

         1.  `aws:executeAwsApi` - AttachIAMProfileToInstance - 將 IAM 執行個體描述檔角色連接至 EC2 執行個體。

      1. 如果 IAM 角色沒有相關聯的執行個體描述檔：

         1.  `aws:executeAwsApi` - CreateInstanceProfileForRole - 為指定的 IAM 角色建立執行個體描述檔角色。

         1.  `aws:executeAwsApi` - AddRoleToInstanceProfile - 將執行個體描述檔角色連接至指定的 IAM 角色。

         1.  `aws:executeAwsApi` - GetInstanceProfile - 取得指定 IAM 角色的執行個體設定檔資料。

         1.  `aws:executeAwsApi` - AttachIAMProfileToInstanceWithRetry - 將 IAM 執行個體描述檔角色連接至 EC2 執行個體。

 **輸出** 

AttachIAMProfileToInstanceWithRetry.AssociationId

GetInstanceProfile.InstanceProfileName

GetInstanceProfile.InstanceProfileArn

AttachIAMProfileToInstance.AssociationId

ListInstanceProfilesForRole.InstanceProfileName

ListInstanceProfilesForRole.InstanceProfileArn

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

**Description**

`AWS-DeleteIAMInlinePolicy` Runbook 會刪除連接至您指定 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 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ IamArns

  類型：字串

  描述：（必要） 您要從中刪除內嵌政策之 IAM 身分ARNs逗號分隔清單。此清單可以包含 IAM 使用者、群組或角色。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `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>

 **Description** 

 `AWSConfigRemediation-DeleteIAMRole` Runbook 會 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 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ IAMRoleID

  類型：字串

  描述：（必要） 您要刪除的 IAM 角色 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `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>

 **Description** 

 `AWSConfigRemediation-DeleteIAMUser` Runbook 會 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 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ IAMUserId

  類型：字串

  描述：（必要） 您要刪除的 IAM 使用者 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `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>

 **Description** 

 `AWSConfigRemediation-DeleteUnusedIAMGroup` Runbook 會刪除不包含任何使用者的 IAM 群組。

 `AWSConfigRemediation-DeleteUnusedIAMGroup` Runbook 會刪除不包含任何使用者的 IAM 群組。

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

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ GroupName

  類型：字串

  描述：（必要） 您要刪除的 IAM 群組名稱。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `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>

 **Description** 

 `AWSConfigRemediation-DeleteUnusedIAMPolicy` Runbook 會刪除未連接到任何使用者、群組或角色的 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 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ IAMResourceId

  類型：字串

  描述：（必要） 您要刪除之 IAM 政策的資源識別符。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `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>

 **Description** 

 `AWSConfigRemediation-DetachIAMPolicy` Runbook 會分離您指定的 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 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ IAMResourceId

  類型：字串

  描述：（必要） 您要分離的 IAM 政策 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `config:GetResourceConfigHistory` 
+  `config:ListDiscoveredResources` 
+  `iam:DetachGroupPolicy` 
+  `iam:DetachRolePolicy` 
+  `iam:DetachUserPolicy` 
+  `iam:GetPolicy` 
+  `iam:ListEntitiesForPolicy` 

 **文件步驟** 
+  `aws:executeScript` - 從所有資源分離 IAM 政策。

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

 **Description** 

 `AWSConfigRemediation-EnableAccountAccessAnalyzer` Runbook 會在您的 中建立 AWS Identity and Access Management (IAM) Access Analyzer AWS 帳戶。如需 Access Analyzer 的相關資訊，請參閱《[AWS IAM 使用者指南》中的使用 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 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `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>

 **Description** 

 此 Runbook 會將指定的許可授予 IAM 群組 （新的或現有的），並將現有的 IAM 使用者新增至該群組。您可以選擇的政策：[Billing](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/job-function/Billing$serviceLevelSummary) 或 [Support](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 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ IAMGroupName

  類型：字串

  預設：ExampleSupportAndBillingGroup

   描述：(必要) 可以是新的或現有的群組。必須遵守 [IAM 實體名稱限制](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-names)。
+ IAMUserName

  類型：字串

  預設：ExampleUser

  描述：(必要) 必須是現有的使用者。
+ LambdaAssumeRole

  類型：字串

  描述：(選用) 由 lambda 擔任之角色的 ARN。
+ 許可

  類型：字串

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

  預設：SupportAndBillingFullAccess

   描述：（必要） 選擇其中一項： `SupportFullAccess` 授予支援中心的完整存取權。 `BillingFullAccess` 授予帳單儀表板的完整存取權。 `SupportAndBillingFullAccess` 授予支援中心和帳單儀表板的完整存取權。您可以在文件詳細資訊下的政策找到更多資訊。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。

 所需的許可取決於 `AWSSupport-GrantPermissionsToIAMUser` 的執行方式。

 **以目前登入的使用者或角色執行** 

 建議您連接 `AmazonSSMAutomationRole` Amazon 受管政策，以及下列其他許可，以建立要傳遞給 Lambda 的 Lambda 函數和 IAM 角色：

------
#### [ 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** 

 使用者必須擁有 Runbook 上的 **ssm：StartAutomationExecution** 許可，以及傳遞為 **AutomationAssumeRole** **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>

 **Description** 

 `AWSConfigRemediation-RemoveUserPolicies` Runbook 會刪除 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 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ IAMUserID

  類型：字串

  描述：（必要） 您要從中移除政策的使用者 ID。
+ PolicyType

  類型：字串

  有效值：全部 \$1 內嵌 \$1 受管

  預設：全部

  描述：（必要） 您要從使用者中移除的 IAM 政策類型。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `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>

 **Description** 

 `AWSConfigRemediation-ReplaceIAMInlinePolicy` Runbook 會將內嵌 AWS Identity and Access Management (IAM) 政策取代為複寫的受管 IAM 政策。對於連接到使用者、群組或角色的內嵌政策，內嵌政策許可會複製到受管 IAM 政策。受管 IAM 政策會新增至 資源，並移除內嵌政策。 AWS Config 必須在您執行此自動化的 AWS 區域 中啟用 。

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

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ InlinePolicyName

  類型：StringList

  描述：（必要） 您要取代的內嵌 IAM 政策。
+ ResourceId

  類型：字串

  描述：（必要） 您要取代其內嵌政策的 IAM 使用者、群組或角色 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `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 政策取代為您指定的資源上的複 AWS 寫政策。

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

 **Description** 

 `AWSConfigRemediation-RevokeUnusedIAMUserCredentials` Runbook 會撤銷 unused AWS Identity and Access Management (IAM) 密碼和作用中存取金鑰。此 Runbook 也會停用過期的存取金鑰，並刪除過期的登入設定檔。 AWS Config 必須在您執行此自動化 AWS 區域 的 中啟用 。

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

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ IAMResourceId

  類型：字串

  描述：（必要） 您要撤銷未使用登入資料的 IAM 資源 ID。
+ MaxCredentialUsageAge

  類型：字串

  預設：90

  描述：（必要） 必須已使用登入資料的天數。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `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>

 **Description** 

 `AWSConfigRemediation-SetIAMPasswordPolicy` Runbook 會為您的 設定 AWS Identity and Access Management (IAM) 使用者密碼政策 AWS 帳戶。

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

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (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 ')。
+ RequireUppercaseCharacters

  類型：布林值

  預設：false

   描述：（選用） 如果設定為 `true` ，IAM 使用者的密碼必須包含 ISO 基本拉丁字母 (A 到 Z) 中的大寫字元。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `iam:GetAccountPasswordPolicy` 
+  `iam:UpdateAccountPasswordPolicy` 

 **文件步驟** 
+  `aws:executeScript` - 根據您為 Runbook 參數指定的值設定 IAM 使用者密碼政策 AWS 帳戶。

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

 **Description** 

如果發生安全事件或疑似入侵 AWS Identity and Access Management (IAM) 使用者/角色或 AWS 身分中心 (IDC) 使用者，快速隔離受影響的身分至關重要，同時保留其組態以進行調查。`AWSSupport-ContainIAMPrincipal` Runbook 提供結構化、可復原的方法，以包含遭入侵的 IAM 或 IDC 身分，有效地封鎖其對 AWS 資源的存取，並防止入侵的潛在傳播。

此自動化程序可在不永久變更身分組態的情況下進行調查，並在認為適當時還原正常存取。遏制程序會維護 IAM 內的使用者或角色，或 IDC 內的使用者，同時有效地將其與所有網路活動隔離。此隔離可防止包含的身分資源與 Amazon Virtual Private Cloud 內的資源通訊，或存取網際網路資源。遏制的設計是可逆的，允許在認為適當時還原正常存取。

 **如何運作？** 

`AWSSupport-ContainIAMPrincipal` Runbook 會為 IAM 使用者、角色和 Identity Center 使用者實作完整的遏制程序。在`Contain`模式下執行時，它會先驗證所有輸入參數，並對指定的 Amazon S3 儲存貯體執行安全檢查。然後，它會收集目標 IAM 主體的詳細資訊，並根據主體類型套用適當的遏制措施。對於 IAM 使用者，它會停用存取金鑰、移除主控台存取，以及連接拒絕政策。對於 IAM 角色，它會附加拒絕政策，以撤銷在遏制之前建立之工作階段的許可。對於 Identity Center 使用者，它會移除許可集、群組成員資格，並套用拒絕政策。在整個過程中， Runbook 會將原始組態備份到 Amazon S3 儲存貯體，以便進行可能的還原。在 `Restore` 模式下執行時，它會嘗試使用備份組態將主體還原至其遏制前狀態。Runbook 包含預覽變更而不套用變更`DryRun`的選項，並提供成功操作和失敗案例的完整報告。

**重要**  
**使用提升權限：**此 SSM 文件會執行需要提升權限的各種操作，例如修改 IAM 和 IDC 身分政策，以及套用隔離組態。這些動作可能會導致權限提升，或影響依賴目標身分的其他工作負載。您應該檢閱授予 `AutomationAssumeRole` 參數所指定角色的許可，並確保這些許可適用於預期的使用案例。如需 IAM 許可的詳細資訊，請參閱下列 AWS 文件：  
[Identity and Access Management (IAM) 許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_permissions.html)
[AWS Systems Manager Automation 許可](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-permissions.html)
**工作負載無法使用風險：**此 Systems Manager 文件會執行隔離動作，這可能會導致工作負載無法使用或中斷。在安全事件期間執行時，它會從指定的 IAM 和 IDC 身分撤銷 AWS API 許可，防止他們進行任何 AWS API 呼叫或動作，以限制對受影響資源的存取。這可能會影響依賴這些身分的任何應用程式或服務。
**建立其他資源：**自動化文件可能會根據執行參數，有條件地建立其他資源，例如存放在其中的 Amazon Simple Storage Service (Amazon S3) 儲存貯體和 Amazon S3 物件。這些資源會根據您的 AWS 用量產生額外費用。
**還原風險：**如果*動作*參數設定為 `Restore`，此 SSM 文件會嘗試將 IAM 或 IDC 身分組態還原為其原始狀態。不過，還原程序可能會失敗，使 IAM 或 IDC 身分處於不一致狀態。本文件提供在發生此類失敗時手動還原的說明，但您應該準備好在還原過程中處理潛在問題。
建議您徹底檢閱 Runbook、了解其潛在影響，並在非生產環境中進行測試，然後再在您的生產環境中執行。

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

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

/

 **必要的 IAM 許可** 

`AutomationAssumeRole` 參數需要下列許可，才能成功使用 Runbook：
+ s3:GetBucketLocation
+ s3:GetBucket
+ s3:ListBucket
+ s3：GetBucketPublicAccessBlocks
+ s3：GetAccountPublicAccessBlocks
+ s3:GetBucketPolicyStatus
+ s3:GetBucketAcl
+ s3:GetObject
+ s3:CreateBucket
+ s3:PutObject
+ 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
+ organizations:ListAccounts
+ sso：ListPermissionSetsProvisionedToAccount
+ sso：GetInlinePolicyForPermissionSet
+ sso：ListInstances
+ sso-directory：SearchUsers
+ sso：ListPermissionSets
+ sso：ListAccountAssignments
+ sso-directory：DescribeUser
+ identitystore:ListUsers
+ identitystore:ListGroups
+ identitystore:IsMemberInGroups
+ identitystore:ListGroupMemberships
+ secretsmanager:CreateSecret
+ secretsmanager: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. 在 AWS Systems Manager 主控台中導覽至 [AWSSupport-ContainIAMPrincipal](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-ContainIAMPrincipal/description)。

1. 選擇 **Execute automation** (執行自動化)。

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**
     + 描述：（選用） Identity AWS and Access Management (IAM) 角色的 Amazon Resource Name (ARN)，允許 Systems Manager Automation 代表您執行動作。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
     + 類型：`AWS::IAM::Role::Arn`
   + **PrincipalType （必要）：**
     + 描述：（必要） AWS IAM 主體類型：IAM 使用者、IAM 角色或 Identity Center 使用者。
     + 類型：字串
     + 允許的值： `IAM user|IAM role|Identity Center user`
   + **PrincipalName （必要）：**
     + 描述：（必要） IAM 主體的名稱。對於 Identity Center 使用者，請提供使用者名稱。
     + 類型：字串
     + 允許模式： `^[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 （條件式）：**
     + 描述：（條件式） 動作設定為 時要備份 IAM 主體組態的 Amazon S3 儲存貯體，`Contain`或動作為 時要從中還原組態`Restore`。請注意，如果指定的動作為 ，`Contain`且 Runbook 無法存取 儲存貯體，或未提供 值，則會在您的帳戶中建立名為 的新儲存貯體`awssupport-containiamprincipal-<random-string>`。如果 DryRun 設定為`true`此參數為必要。
     + 類型：`AWS::S3::Bucket::Name`
   + **BackupS3KeyName （條件式）：**
     + 描述：（條件式） 如果動作設定為 `Restore`，這會指定自動化用來嘗試還原 IAM 主體組態的 Amazon S3 金鑰。Amazon Amazon S3 金鑰通常遵循此格式：`{year}/{month}/{day}/{hour}/{minute}/{automation_execution_id}.json`。金鑰可從先前的遏制自動化執行的輸出取得。
     + 類型：字串
     + 允許模式： `^[a-zA-Z0-9\\.\\-_\\\\!*'()/]{0,1024}$`
   + **BackupS3BucketAccess （條件式）：**
     + 描述：（條件式） 在執行遏制動作後，允許存取備份 Amazon S3 儲存貯體的 IAM 使用者或角色 ARN。動作為 時，需要此參數`Contain`。AutomationAssumeRole，或在沒有 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>`。此選項可讓您追蹤此 Runbook 鎖定的 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 角色或 Identity Center 使用者），以及它是否在 `DryRun` 模式下執行，來配置自動化。
   + **BranchOnPrincipalTypeForContain**

     為輸入中指定的`Contain`動作型和 IAM 委託人類型 (IAM 使用者、IAM 角色或 Identity Center 使用者） 分支自動化。
   + **GetIAMUser**

     取得目標 IAM 使用者的建立時間和使用者名稱。
   + **GetIAMUserDetails**

     取得和儲存目標 IAM 使用者的組態，包括內嵌政策、受管政策、存取金鑰、MFA 裝置和登入設定檔。
   + **UpdateS3KeyForUser**

     從步驟 的輸出更新自動化 'S3Key' 變數`GetIAMUserDetails`。
   + **GetIAMRole**

     取得目標 IAM 角色的建立時間、角色名稱和路徑。
   + **GetIAMRoleDetails**

     取得和存放目標 IAM 角色的組態，包括內嵌政策和連接到角色的受管政策。
   + **UpdateS3KeyForRole**

     從步驟 的輸出更新自動化 'S3Key' 變數`GetIAMRoleDetails`。
   + **GetIdentityStoreId**

     取得與 AWS 帳戶相關聯的 AWS IAM Identity Center 執行個體 ID。
   + **GetIDCUser**

     使用 Identity Store ID 取得目標 Identity Center 使用者的使用者 ID。
   + **GatherIDCUserDetails**

     取得和儲存目標 Identity Center 使用者的組態，包括帳戶指派、相關聯的許可集和內嵌政策。
   + **UpdateS3KeyForIDCUser**

     從步驟 的輸出更新自動化 'S3Key' 變數`GatherIDCUserDetails`。
   + **BranchOnIdentityContain**

     根據 的值`DryRun`和 `Contain`動作的 IAM 主體類型來配置自動化。
   + **BranchOnDisableAccessKeys**

     根據 IAM 使用者是否具有需要停用的存取金鑰，來配置自動化。
   + **DisableAccessKeys**

     停用作用中的 IAM 使用者存取金鑰。
   + **BranchOnDisableConsoleAccess**

     根據 IAM 使用者是否已啟用 AWS 管理主控台存取的分支。
   + **DisableConsoleAccess**

     移除 IAM 使用者對 AWS 管理主控台的密碼型存取。
   + **AttachInlineDenyPolicyToUser**

     將拒絕政策連接至 IAM 使用者，以撤銷舊工作階段字符的許可。
   + **AttachInlineDenyPolicyToRole**

     將拒絕政策連接至 IAM 角色，以撤銷舊工作階段字符的許可。
   + **RemovePermissionSets**

     移除與 Identity Center 使用者相關聯的許可集。
   + **RemoveIDCUserFromIDCGroups**

     從 Identity Center 群組中移除 Identity Center 使用者。
   + **AttachInlineDenyPolicyToPermissionSet**

     將拒絕政策連接至與 Identity Center 使用者相關聯的許可集。
   + **BranchOnReactivateKeys**

     在還原程序期間，根據 `ActivateDisabledKeys` 參數分支自動化。
   + **DetachInlineDenyPolicy**

     在遏制過程中移除連接到 IAM 角色的拒絕政策。
   + **DetachInlineDenyPolicyFromPermissionSet**

     在遏制程序期間移除附加至許可集的拒絕政策。
   + **ReportContain**

     輸出有關 `DryRun` 設定為 時將執行的遏制動作的詳細資訊`True`。
   + **ReportRestore**

     輸出在 `DryRun` 設定為 時將執行之還原動作的詳細資訊`True`。
   + **ReportContainFailure**

     提供在遏制工作流程失敗案例期間手動還原 IAM 主體原始組態的完整指示。
   + **ReportRestoreFailure**

     提供詳細說明，以在還原工作流程失敗案例期間手動完成 IAM 主體原始組態的還原。

1. 執行完成後，請檢閱輸出區段以取得執行的詳細結果：
   + **ContainIAMPrincipal.Output**

     提供有關動作設定為「包含」且 DryRun 設定為 False 時所執行之遏制動作的詳細資訊。包括備份位置、套用的拒絕政策和修改組態的相關資訊。
   + **RestoreIAMPrincipal.Output**

     提供當動作設定為 Restore 且 DryRun 設定為 False 時所執行還原動作的詳細資訊。包括還原組態的相關資訊，以及在還原期間遇到的任何問題。
   + **ReportContain.Output**

     輸出有關當動作設定為「包含」且 DryRun 設定為 True 時將執行之遏制動作的詳細資訊。包括目前和遏制後組態的比較。
   + **ReportRestore.Output**

     輸出當動作設定為 Restore 且 DryRun 設定為 True 時，將執行之還原動作的詳細資訊。顯示目前的組態和要還原的原始組態。
   + **ReportContainFailure.Output**

     提供在遏制工作流程失敗案例期間手動還原 IAM 主體原始組態的完整指示。
   + **ReportRestoreFailure.Output**

     提供詳細說明，以在還原工作流程失敗案例期間手動完成 IAM 主體原始組態的還原。

 **輸出** 

執行完成後，請檢閱輸出區段以取得詳細結果：
+ **ContainIAMPrincipal.Output**

  提供有關動作設定為「包含」且 DryRun 設定為 False 時所執行之遏制動作的詳細資訊。包括備份位置、套用的拒絕政策和修改組態的相關資訊。
+ **RestoreIAMPrincipal.Output**

  提供當動作設定為 Restore 且 DryRun 設定為 False 時所執行還原動作的詳細資訊。包括還原組態的相關資訊，以及在還原期間遇到的任何問題。
+ **ReportContain.Output**

  輸出有關當動作設定為「包含」且 DryRun 設定為 True 時將執行之遏制動作的詳細資訊。包括目前和遏制後組態的比較。
+ **ReportRestore.Output**

  輸出當動作設定為 Restore 且 DryRun 設定為 True 時，將執行之還原動作的詳細資訊。顯示目前的組態和要還原的原始組態。
+ **ReportContainFailure.Output**

  提供在遏制工作流程失敗情況下手動還原 IAM 主體原始組態的完整指示。
+ **ReportRestoreFailure.Output**

  提供詳細說明，以在還原工作流程失敗案例期間手動完成 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)
+ [支援自動化工作流程](https://aws.amazon.com/premiumsupport/technology/saw/)

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

 **Description** 

 **AWSSupport-TroubleshootSAMLIssues ** 自動化 Runbook 透過分析存放在 Amazon Simple Storage Service (Amazon S3) 中的 SAML 回應檔案，協助診斷安全性聲明標記語言 (SAML) 相關問題。它執行全面的驗證，包括結構描述驗證、簽章驗證、受眾限制檢查和過期時間驗證。Runbook 會從 SAML 回應解碼和擷取主要 SAML 元素，包括發行者、聲明、主旨、條件、簽章和屬性。對於使用 SAML 透過 IAM Identity Provider 存取 AWS 資源 （例如 Amazon Connect 或 Amazon WorkSpaces 應用程式） 的環境，它會驗證 SAML 回應簽章中的憑證是否符合 IAM Identity Provider 中設定的憑證。

 **如何運作？** 

 Runbook 會執行下列步驟：
+ 驗證 SAML 回應格式和必要的元素。
+ 解碼和擷取 SAML 回應元件 （發行者、聲明、主旨、條件、簽章、屬性）。
+ 提供時，根據 IAM Identity Provider 憑證驗證數位簽章。
+ 檢查受眾限制和時間有效性。
+ 提供詳細的診斷資訊，顯示剖析的 SAML 結構和驗證結果。

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

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

/

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `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. 使用此 Runbook 之前，您需要擷取 Base64-encoded的 SAML 回應 (txt 檔案），並將其存放在 S3 儲存貯體中。您可以在[本文件](https://docs.aws.amazon.com//IAM/latest/UserGuide/troubleshoot_saml_view-saml-response.html)中找到擷取 SAML 回應的說明

1. 在文件下的 Systems Manager [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootSAMLIssues/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootSAMLIssues/description)中導覽至 。

1. 選擇 **Execute automation** (執行自動化)。

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**
     + 描述：（選用） 允許 SSM Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
     + 類型：`AWS::IAM::Role::Arn`
   + **InputFileS3URI （必要）：**
     + 描述：（必要） SAML 回應 txt 檔案的 Amazon Simple Storage Service (Amazon S3) URI （例如 s3：//bucket-name/path/to/file.txt)。
     + 類型：字串
     + 允許模式： `^s3://[a-z0-9][a-z0-9.-][a-z0-9](/.)?$`
   + **S3OutputPrefix （選用）：**
     + 描述：（選用） 分析輸出檔案存放在輸入儲存貯體中，名稱為 Runbook>.json' 的 'saml\$1analysis\$1<executionID。如果您想要輸出具有特定字首的檔案，您可以使用此參數。預設值為 "output/"，在此情況下，輸出結果的檔案 URI 將為 Runbook>.json' 的 's3：//bucket-name/output/saml\$1analysis\$1<executionID。
     + 類型：字串
     + 允許模式： `^[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 與 IAM AWS 連結，請提供其 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-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。IAM 角色的 ARN，具有取得 Amazon S3 儲存貯體和帳戶區塊公開存取設定、儲存貯體加密組態、儲存貯體 ACLs、儲存貯體政策狀態，以及將物件上傳至儲存貯體的許可。如果未指定此參數，則 Runbook 會使用 `AutomationAssumeRole` （如果指定） 或啟動此 Runbook 的使用者 （如果未指定 `AutomationAssumeRole`)。
     + 類型：`AWS::IAM::Role::Arn`

1. 選取**執行**。

1. 自動化會啟動。

1. 文件會執行下列步驟：
   + **ValidateIAMIDProvider**

     透過檢查提供的 IAM ID 提供者 ARN 是否存在並可存取，來驗證它。如果未提供 ARN，則會略過驗證並成功完成步驟。
   + **CheckS3BucketPublicStatus**

     檢查 Amazon S3 儲存貯體是否允許匿名或公有讀取或寫入存取許可。如果儲存貯體允許這些許可，自動化會在此步驟中停止。
   + **CheckS3ObjectExistence**

     驗證對 Amazon S3 儲存貯體的存取。檢查儲存貯體和物件是否存在，以及自動化是否具有從來源讀取和寫入目的地的必要許可。
   + **AnalyzeSAMLResponse**

     透過執行檢查 （結構描述驗證、簽章驗證、對象驗證、過期檢查） 來分析 SAML 回應檔案。產生詳細的 JSON 報告，並將其儲存至指定的 Amazon S3 位置。

1. 完成後，請檢閱**輸出**區段以取得執行的詳細結果：
   + **輸出**區段包含描述分析結果之 Amazon S3 物件的相關資訊。

1. 分析結果中的 Amazon S3 物件是包含下列資訊的 Json 檔案：
   + **validation\$1result**：包含 SAML 回應的基本驗證結果。
     + **saml\$1info**：重要 SAML 資訊，包括發行者、簽章和聲明。
     + **schema\$1validation**：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/)