

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 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) 액세스 거부 문제를 해결하는 데 도움이 됩니다. 실행서는 지정된 IAM 엔터티 및 AWS 서비스 이벤트 소스와 관련된 최근 액세스 거부 이벤트에 대해 CloudTrail을 쿼리합니다. 최대 24시간의 구성 가능한 기간 내에 이벤트를 분석하여 실행당 최대 10개의 이벤트를 처리합니다. 식별된 각 액세스 거부 이벤트는 거부의 컨텍스트와 시도된 작업을 이해하는 데 도움이 되도록 검사됩니다. 자동화는 자격 증명 기반 및 리소스 기반 IAM 정책을 모두 분석합니다. 자격 증명 기반 정책의 경우 IAM 엔터티에 연결된 인라인 및 관리형 정책을 검사합니다. 리소스 기반 정책의 경우 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), Amazon Simple Queue Service(Amazon SQS), AWS Cloud9 Amazon OpenSearch Service AWS AWS Serverless Application Repository, Signer 및 등 여러 AWS 서비스의 정책을 평가합니다 AWS Secrets Manager.

 실행서는 IAM 정책 시뮬레이션 기능을 활용하여 CloudTrail 이벤트에서 발견된 거부된 작업과 비교하여 이러한 정책을 평가합니다. 실행서는 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 이벤트에서 발견된 거부된 작업에 대해 이러한 정책을 평가합니다. 자동화는 거부된 특정 작업을 식별하는 데 도움이 되는 보고서를 출력하여 암시적 거부와 명시적 거부를 구분하고 액세스 거부를 담당하는 정책을 나열하고 각 거부에 대한 설명을 제공합니다. 보고서는 누락된 허용 문 식별 또는 거부 문 충돌과 같은 잠재적 해결 방법도 제안합니다.

 **어떻게 작동하나요?**

 실행서는 다음 단계를 수행합니다.
+ `RequesterARN` (역할 또는 사용자)를 설명하고 검증하여 IAM 엔터티 유형 및 IAM ID와 같은 정보를 가져옵니다.
+ 제공된 `ResourceARN` 경우 `RequesterARN`, `EventSource`및와 연결된 CloudTrail 이벤트를 가져옵니다.
+ CloudTrail 이벤트를 분석하여 액세스 거부됨 오류가 반환될 때 수행된 작업을 가져온 다음 IAM 엔터티에 연결된 인라인 및 관리형 정책과 리소스 기반 정책과 같은 모든 IAM 정책을 검사합니다. 그런 다음 해당 CloudTrail 이벤트의 액세스 거부 오류에서 발견된 작업에 대해 이러한 정책을 시뮬레이션하여 오류의 원인을 확인합니다.
+ 액세스 거부 오류 유형, 오류를 담당하는 정책을 결정하는 보고서를 출력하고 오류에 대한 잠재적 해결 방법을 제안합니다.

 [이 자동화 실행(콘솔)](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. 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 리소스 이름(ARN)입니다. Kubernetes API 호출을 허용하려면 Amazon EKS 클러스터 액세스 항목 또는 RBAC 권한에 역할을 추가해야 합니다.
     + 유형: `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 대상 리소스는 자동화 실행서가 실행되는 리전과 동일한 리전에 있어야 합니다.
     + 유형: `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` \$1 `24` 시간.
     + 유형: 정수
     + 패턴 허용: `^([1-9]|1[0-9]|2[0-4])$`
     + 기본값: 12
   + **MaxEvents(선택 사항):**
     + 설명: (선택 사항) `Access Denied` 이벤트를 검색할 때 반환되는 CloudTrail 이벤트의 최대 수입니다. 유효한 범위: `1` \$1 `5` 이벤트.
     + 유형: 정수
     + 패턴 허용: `^([1-9]|1[0-9]|2[0-4])$`
     + 기본값: 3
   + **UseContextEntries(선택 사항):**
     + 설명: (선택 사항)를 지정하면 자동화`true`는 CloudTrail 이벤트에서 API 요청의 컨텍스트에 대한 세부 정보를 추출하여 IAM 정책 시뮬레이션에 포함합니다.
     + 유형: Boolean
     + 패턴 허용: `^([1-9]|1[0-9]|2[0-4])$`
     + 기본값: 3

1. **실행**을 선택합니다.

1. 자동화가 시작됩니다.

1. 문서는 다음 단계를 수행합니다.
   + **ValidateRequesterArn**

     대상 IAM 사용자 또는 역할에 대한 정보를 검색하여 `RequesterArn` ARN을 검증하고 해체합니다.
   + **GetCloudTrailEvents****WithAccessDeniedError**

     지정된 IAM 엔터티 및 AWS 서비스와 관련된 최근 이벤트에 대해 CloudTrail `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)
+ [Automation 설정](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup.html)
+ [Support Automation Workflows 랜딩 페이지](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

  유형: Boolean

  설명: (선택 사항) 플래그를 사용하여 기존 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 - EC2 인스턴스에서 IAM 인스턴스 프로파일의 연결을 해제합니다.

   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>

**설명**

`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

  유형: 문자열

  설명: (필수) 인라인 정책을 삭제하려는 IAM 자격 증명에 대해 쉼표로 구분된 ARNs 목록입니다. 이 목록에는 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)입니다.
+ IAMRoleID

  유형: 문자열

  설명: (필수) 삭제하려는 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` - 파라미터에서 지정하는 IAM 역할 이름을 수집합니다.`IAMRoleID`
+  `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)입니다.
+ IAMUserId

  유형: 문자열

  설명: (필수) 삭제하려는 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)입니다.
+ IAMResourceId

  유형: 문자열

  설명: (필수) 삭제하려는 IAM 정책의 리소스 식별자입니다.

**필수 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)입니다.
+ IAMResourceId

  유형: 문자열

  설명: (필수) 분리하려는 IAM 정책의 ID입니다.

**필수 IAM 권한**

실행서를 성공적으로 사용하려면 `AutomationAssumeRole` 파라미터에 다음 작업이 필요합니다.
+  `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>

 **설명** 

 `AWSConfigRemediation-EnableAccountAccessAnalyzer` 실행서는에서 AWS Identity and Access Management (IAM) Access Analyzer를 생성합니다 AWS 계정. Access Analyzer에 대한 자세한 내용은 *IAM 사용 설명서*의 [AWS 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` - 계정에 대한 Access Analyzer를 생성합니다.
+  `aws:waitForAwsResourceProperty` - Access Analyzer의 상태가 `ACTIVE`가 될 때까지 기다립니다.
+  `aws:assertAwsResourceProperty` - Access Analyzer의 상태가 `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에 대한 결제 액세스를 활성화하려면 [Billing and Cost Management 페이지에 대한 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에서는 이 실행서를 시작하는 사용자의 권한을 사용합니다.
+ 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` 파라미터에 다음 작업이 필요합니다.

 필요한 `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** 및 **LambdaAssumeRole**로 전달된 IAM 역할에 대한 **iam:PassRole** 권한이 있어야 합니다. 각 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)입니다.
+ IAMUserID

  유형: 문자열

  설명: (필수) 정책을 제거하려는 사용자의 ID입니다.
+ PolicyType

  유형: 문자열

  유효한 값: All \$1 Inline \$1 Managed

  기본값: All

  설명: (필수) 사용자로부터 제거하려는 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 정책에 복제됩니다. 관리형 IAM 정책이 리소스에 추가되고 인라인 정책이 제거됩니다.이 자동화를 실행하는 AWS 리전 에서 활성화해야 AWS Config 합니다.

 [이 자동화 실행(콘솔)](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 정책입니다.
+ 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 정책을 지정하는 리소스의 AWS 복제된 정책으로 대체합니다.

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

 **설명** 

 `AWSConfigRemediation-RevokeUnusedIAMUserCredentials` 실행서는 미사용 AWS Identity and Access Management (IAM) 암호와 활성 액세스 키를 취소합니다. 또한이 실행서는 만료된 액세스 키를 비활성화하고 만료된 로그인 프로필을 삭제합니다.이 자동화를 실행하는 AWS 리전 에서 활성화해야 AWS Config 합니다.

 [이 자동화 실행(콘솔)](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)입니다.
+ IAMResourceId

  유형: 문자열

  설명: (필수) 사용하지 않은 보안 인증을 취소하려는 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 보안 인증을 취소합니다. 만료된 액세스 키는 비활성화되고 만료된 로그인 프로파일은 삭제됩니다.

**참고**  
이 작업을 트리거하는 데 사용하는 AWS Config 규칙의 `MaxCredentialUsageAge`파라미터인 [access-keys-rotated](https://docs.aws.amazon.com/config/latest/developerguide/access-keys-rotated.html)와 일치하도록이 수정 작업의 `maxAccessKeyAge` 파라미터를 구성해야 합니다.

# `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

  유형: Boolean

  기본값: false

   설명: (선택 사항) `true` 로 설정하면의 모든 IAM 사용자가 AWS Management Console 를 사용하여 암호를 변경할 AWS 계정 수 있습니다.
+ HardExpiry

  유형: Boolean

  기본값: false

   설명: (선택 사항) `true`로 설정된 경우, IAM 사용자는 암호가 만료된 후 암호를 재설정할 수 없습니다.
+ MaxPasswordAge

  유형: 정수

  기본값: 0

  설명: (선택 사항) IAM 사용자의 암호가 유효한 일수입니다.
+ MinimumPasswordLength

  유형: 정수

  기본값: 6

  설명: (선택 사항) IAM 사용자의 암호가 될 수 있는 최소 문자 수입니다.
+ PasswordReusePrevention

  유형: 정수

  기본값: 0

  설명: (선택 사항) IAM 사용자가 재사용할 수 없는 이전 암호의 수입니다.
+ RequireLowercaseCharacters

  유형: Boolean

  기본값: false

   설명: (선택 사항) `true`로 설정된 경우, IAM 사용자의 암호에는 ISO 기본 라틴 알파벳(a\$1z)의 소문자가 포함되어야 합니다.
+ RequireNumbers

  유형: Boolean

  기본값: false

   설명: (선택 사항) `true`로 설정된 경우, IAM 사용자의 암호는 숫자(0-9)를 포함해야 합니다.
+ RequireSymbols

  유형: Boolean

  기본값: false

   설명: (선택 사항) `true`로 설정된 경우, IAM 사용자의 암호는 영숫자 이외의 문자(\$1 @ \$1 \$1 % ^ \$1 ( ) \$1 \$1 - = [ ] \$1 \$1 \$1 ')를 포함해야 합니다.
+ RequireUppercaseCharacters

  유형: Boolean

  기본값: false

   설명: (선택 사항) `true`로 설정된 경우, IAM 사용자의 암호에는 ISO 기본 라틴 알파벳(A\$1Z)의 대문자가 포함되어야 합니다.

**필수 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 Identity Center(IDC) 사용자의 침해가 의심되는 경우 조사를 위한 구성을 유지하면서 영향을 받는 자격 증명을 신속하게 격리하는 것이 중요합니다. `AWSSupport-ContainIAMPrincipal` 실행서는 손상된 IAM 또는 IDC 자격 증명을 억제하여 AWS 리소스에 대한 액세스를 효과적으로 차단하고 손상의 잠재적 확산을 방지하는 구조화되고 되돌릴 수 있는 접근 방식을 제공합니다.

이 자동화된 프로세스를 통해 자격 증명 구성을 영구적으로 변경하지 않고도 조사를 수행할 수 있으므로 적절한 것으로 간주되면 일반 액세스를 복원할 수 있습니다. 억제 프로세스는 IAM 내에서 사용자 또는 역할을 유지하거나 IDC 내에서 사용자를 유지 관리하는 동시에 모든 네트워크 활동에서 효과적으로 격리합니다. 이 격리는 포함된 자격 증명 리소스가 Amazon Virtual Private Cloud 내의 리소스와 통신하거나 인터넷 리소스에 액세스하는 것을 방지합니다. 격납은 되돌릴 수 있도록 설계되어 적절한 것으로 간주될 때 일반 액세스를 복원할 수 있습니다.

 **어떻게 작동하나요?**

`AWSSupport-ContainIAMPrincipal` 실행서는 IAM 사용자, 역할 및 Identity Center 사용자를 위한 포괄적인 격리 프로세스를 구현합니다. `Contain` 모드에서 실행되면 먼저 모든 입력 파라미터를 검증하고 지정된 Amazon S3 버킷에 대한 보안 검사를 수행합니다. 그런 다음 대상 IAM 보안 주체에 대한 세부 정보를 수집하고 보안 주체 유형에 따라 적절한 억제 조치를 적용합니다. IAM 사용자의 경우 액세스 키를 비활성화하고 콘솔 액세스를 제거하며 거부 정책을 연결합니다. IAM 역할의 경우 격리 전에 생성된 세션에 대한 권한을 취소하는 거부 정책을 연결합니다. Identity Center 사용자의 경우 권한 세트, 그룹 멤버십을 제거하고 거부 정책을 적용합니다. 전체 프로세스에서 실행서는 잠재적 복원을 위해 원본 구성을 Amazon S3 버킷에 백업합니다. `Restore` 모드에서 실행되면 백업된 구성을 사용하여 보안 주체를 컨테이너 전 상태로 되돌리려고 시도합니다. 실행서에는 변경 사항을 적용하지 않고 미리 볼 수 있는 `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 권한을 취소하여 영향을 받는 리소스에 대한 액세스를 제한하여 API 호출 또는 작업을 수행하지 AWS 못하도록 합니다. 이는 이러한 자격 증명에 의존하는 모든 애플리케이션 또는 서비스에 영향을 미칠 수 있습니다.
**추가 리소스 생성:** 자동화 문서는 실행 파라미터에 따라 Amazon Simple Storage Service(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
+ 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(선택 사항):**
     + 설명: (선택 사항) Systems Manager Automation이 사용자를 대신하여 작업을 수행하도록 허용하는 AWS Identity and Access Management(IAM) 역할의 Amazon 리소스 이름(ARN)입니다. 역할이 지정되지 않은 경우 Systems Manager Automation은이 실행서를 시작하는 사용자의 권한을 사용합니다.
     + 유형: `AWS::IAM::Role::Arn`
   + **PrincipalType(필수):**
     + 설명: (필수) AWS IAM 보안 주체 유형: IAM 사용자, IAM 역할 또는 Identity Center 사용자.
     + 유형: String
     + 허용되는 값: `IAM user|IAM role|Identity Center user`
   + **PrincipalName(필수):**
     + 설명: (필수) IAM 보안 주체의 이름입니다. Identity Center 사용자의 경우 사용자 이름을 입력합니다.
     + 유형: 문자열
     + 허용된 패턴: `^[a-zA-Z0-9\\.\\-_\\\\!*'()/+=,@]{1,1024}$`
   + **작업(필수):**
     + 설명: (필수) 대상 IAM 보안 주체를 `Contain` 격리`Restore`하거나 이전 백업에서 원래 구성으로 IAM 보안 주체를 복원하려고 합니다.
     + 유형: String
     + 허용된 값: `Contain|Restore`
   + **DryRun(선택 사항):**
     + 설명: (선택 사항) 로 설정하면 `true`자동화는 대상 IAM 보안 주체를 변경하지 않고, 대신 각 단계에 대해 자세히 설명하면서 변경하려고 시도한 내용을 출력합니다. 기본값: `true`.
     + 유형: Boolean
     + 허용된 값: `true|false`
   + **ActivateDisabledKeys(조건부):**
     + 설명: (조건부) 입력 파라미터 Action이 로 설정`Restore`되고 PrincipalType이 IAM 사용자로 설정된 경우이 옵션은 비활성화된 경우이 자동화가 연결된 액세스 키를 활성화해야 하는지 여부를 결정합니다. 손상된 액세스 키의 무결성은 확인할 수 없습니다. AWS 는 손상된 키를 다시 활성화하지 않도록 강력히 권장합니다. 대신 새 키를 생성하는 것이 좋습니다. 기본값: `false`.
     + 유형: Boolean
     + 허용된 값: `true|false`
   + **BackupS3BucketName(조건부):**
     + 설명: (조건부) 작업이 로 설정된 경우 IAM 보안 주체 구성을 백업하거나 작업이 인 경우 구성을 복원`Contain`하는 Amazon S3 버킷입니다`Restore`. 지정된 작업이 `Contain` 이고 실행서가 버킷에 액세스할 수 없거나 값이 제공되지 않은 경우 계정에 이름이 인 새 버킷이 생성됩니다`awssupport-containiamprincipal-<random-string>`. DryRun이 로 설정된 경우 `true`이 파라미터가 필요합니다.
     + 유형: `AWS::S3::Bucket::Name`
   + **BackupS3KeyName(조건부):**
     + 설명: (조건부) 작업이 로 설정된 경우 자동화가 IAM 보안 주체 구성을 복원하는 데 사용할 Amazon S3 키를 `Restore`지정합니다. Amazon S3 키는 일반적으로 형식을 따릅니다`{year}/{month}/{day}/{hour}/{minute}/{automation_execution_id}.json`. 키는 이전 억제 자동화 실행의 출력에서 가져올 수 있습니다.
     + 유형: 문자열
     + 허용된 패턴: `^[a-zA-Z0-9\\.\\-_\\\\!*'()/]{0,1024}$`
   + **BackupS3BucketAccess(조건부):**
     + 설명: (조건부) 억제 작업을 실행한 후 백업 Amazon S3 버킷에 대한 액세스가 허용되는 IAM 사용자 또는 역할의 ARN입니다. 이 파라미터는 작업이 일 때 필요합니다`Contain`. AutomationAssumeRole 또는 Automation이 실행 중인 컨텍스트의 사용자가 없는 경우 목록에 자동으로 추가됩니다.
     + 유형: 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 역할 또는 Identity Center 사용자)과 `DryRun` 모드에서 실행 중인지 여부에 따라 자동화를 분기합니다.
   + **BranchOnPrincipalTypeForContain**

     `Contain` 작업 기반 및 입력에 지정된 IAM 보안 주체 유형(IAM 사용자, IAM 역할 또는 Identity Center 사용자)에 대한 자동화를 분기합니다.
   + **GetIAMUser**

     대상 IAM 사용자의 생성 시간과 사용자 이름을 가져옵니다.
   + **GetIAMUserDetails**

     인라인 정책, 관리형 정책, 액세스 키, MFA 디바이스 및 로그인 프로필을 포함하여 대상 IAM 사용자의 구성을 가져오고 저장합니다.
   + **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**

     `Contain` 작업의 값과 IAM 보안 주체 유형을 기반으로 자동화`DryRun`를 분기합니다.
   + **BranchOnDisableAccessKeys**

     IAM 사용자에게 비활성화해야 하는 액세스 키가 있는지 여부에 따라 자동화를 분기합니다.
   + **DisableAccessKeys**

     활성 IAM 사용자 액세스 키를 비활성화합니다.
   + **BranchOnDisableConsoleAccess**

     IAM 사용자에게 AWS Management Console 액세스가 활성화되어 있는지 여부에 따라 분기합니다.
   + **DisableConsoleAccess**

      AWS 관리 콘솔에 대한 IAM 사용자의 암호 기반 액세스를 제거합니다.
   + **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이 거짓으로 설정될 때 수행되는 억제 작업에 대한 자세한 정보를 제공합니다. 백업 위치, 적용된 거부 정책 및 수정된 구성에 대한 정보를 포함합니다.
   + **RestoreIAMPrincipal.Output**

     작업이 복원으로 설정되고 DryRun이 거짓으로 설정될 때 수행되는 복원 작업에 대한 자세한 정보를 제공합니다. 복원된 구성 및 복원 중에 발생하는 모든 문제에 대한 정보를 포함합니다.
   + **ReportContain.Output**

     작업이 포함으로 설정되고 DryRun이 True로 설정될 때 수행할 억제 작업에 대한 세부 정보를 출력합니다. 현재 및 컨테이너 후 구성의 비교를 포함합니다.
   + **ReportRestore.Output**

     작업이 복원으로 설정되고 DryRun이 True로 설정될 때 수행되는 복원 작업에 대한 세부 정보를 출력합니다. 복원할 현재 구성과 원래 구성을 표시합니다.
   + **ReportContainFailure.Output**

     억제 워크플로 실패 시나리오 중에 IAM 보안 주체의 원래 구성을 수동으로 복원하는 포괄적인 지침을 제공합니다.
   + **ReportRestoreFailure.Output**

     복원 워크플로 실패 시나리오 중에 IAM 보안 주체의 원래 구성 복원을 수동으로 완료하기 위한 자세한 지침을 제공합니다.

 **출력** 

실행이 완료되면 출력 섹션에서 자세한 결과를 검토합니다.
+ **ContainIAMPrincipal.Output**

  작업이 포함으로 설정되고 DryRun이 거짓으로 설정될 때 수행되는 억제 작업에 대한 자세한 정보를 제공합니다. 백업 위치, 적용된 거부 정책 및 수정된 구성에 대한 정보를 포함합니다.
+ **RestoreIAMPrincipal.Output**

  작업이 복원으로 설정되고 DryRun이 거짓으로 설정될 때 수행되는 복원 작업에 대한 자세한 정보를 제공합니다. 복원된 구성 및 복원 중에 발생하는 모든 문제에 대한 정보를 포함합니다.
+ **ReportContain.Output**

  작업이 포함으로 설정되고 DryRun이 True로 설정될 때 수행할 억제 작업에 대한 세부 정보를 출력합니다. 현재 및 컨테이너 후 구성의 비교를 포함합니다.
+ **ReportRestore.Output**

  작업이 복원으로 설정되고 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>

 **설명** 

 **AWSSupport-TroubleshootSAMLIssues ** 자동화 실행서는 Amazon Simple Storage Service(Amazon S3)에 저장된 SAML 응답 파일을 분석하여 SAML(Security Assertion Markup Language) 관련 문제를 진단하는 데 도움이 됩니다. 스키마 확인, 서명 검증, 대상 제한 확인 및 만료 시간 확인을 포함한 포괄적인 검증을 수행합니다. 실행서는 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. 이 실행서를 사용하기 전에 Base64-encoded SAML 응답(txt 파일)을 캡처하여 S3 버킷에 저장해야 합니다. SAML 응답 캡처 지침은 [이 문서에서](https://docs.aws.amazon.com//IAM/latest/UserGuide/troubleshoot_saml_view-saml-response.html) 확인할 수 있습니다.

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 리소스 이름(ARN)입니다. 역할을 지정하지 않은 경우, Systems Manager Automation에서는 이 실행서를 시작하는 사용자의 권한을 사용합니다.
     + 유형: `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(선택 사항):**
     + 설명: (선택 사항) 분석 출력 파일은 입력 버킷에 'saml\$1analysis\$1<executionID of the runbook>.json' 이름으로 저장됩니다. 특정 접두사가 있는 파일을 출력하려는 경우이 파라미터를 사용할 수 있습니다. 기본값은 'output/'이며,이 경우 결과를 출력하는 파일 URI는 's3://bucket-name/output/saml\$1analysis\$1<executionID of the runbook>.json'이 됩니다.
     + 유형: 문자열
     + 패턴 허용: `^[a-zA-Z0-9+=,.@\\-_/]*/$`
   + **ExpectedAudience(선택 사항):**
     + 설명: (선택 사항) SAML 응답의 예상 대상 값입니다. 지정하지 않으면를 사용합니다`urn:amazon:webservices`. IdP 및 SP 설정에서 특정 대상 값을 구성한 경우 정확한 형식(예: , `urn:amazon:webservices``https://signin.aws.amazon.com/saml`)을 제공하세요.
     + 유형: 문자열
     + 기본값: urn:amazon:webservices
   + **IamIdProviderArn(선택 사항):**
     + 설명: (선택 사항) IAM ID 공급자 엔터티를 사용하여 IdP를 AWS IAM과 직접 연결하는 경우 해당 ARN(예: `arn:aws:iam::<account-id>:saml-provider/<provider-name>`)을 제공하세요.
     + 유형: 문자열
     + 패턴 허용: `^$|^arn:aws:iam::[0-9]{12}:saml-provider/[a-zA-Z0-9_-]+$`
   + **SAMLAuthenticationTime(선택 사항):**
     + 설명: (선택 사항) SAML 인증이 수행된 날짜 및 시간입니다. 시간대는 UTC여야 합니다. YYYY-MM-DDThh:mm:ss 형식이어야 합니다(예: 2025-02-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. 문서는 다음 단계를 수행합니다.
   + **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**: 보다 자세한 진단 결과를 제공합니다.
     + **서명**: 서명 확인 결과입니다.
     + **audience**: 대상 제한 검증의 결과입니다.
     + **expiration**: 만료 시간 확인 결과입니다.

 **참조** 

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)
+ [Automation 설정](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup.html)
+ [Support Automation Workflows 랜딩 페이지](https://aws.amazon.com/premiumsupport/technology/saw/)