

# AWS리소스에 대한 액세스 관리
<a name="access"></a>

AWS Identity and Access Management(IAM)은 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스입니다. [보안 주체](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html?icmpid=docs_homepage_addtlrcs#principal)가 AWS에 요청하면 AWS 적용 코드는 해당 보안 주체가 인증(로그인) 및 권한 부여(권한 있음)되었는지 확인합니다. 정책을 생성하고 IAM 자격 증명 또는 AWS 리소스에 연결하여 AWS 액세스를 관리합니다. 정책은 자격 증명 또는 리소스에 연결될 때 해당 권한을 정의하는 AWS의 JSON 정책 문서입니다. 정책 유형 및 활용에 대한 자세한 정보는 [AWS Identity and Access Management의 정책 및 권한](access_policies.md) 섹션을 참조하세요.

인증 및 권한 부여 프로세스의 나머지 부분에 대한 자세한 정보는 [IAM 작동 방식](intro-structure.md) 섹션을 참조하세요.

![\[AccessManagement_Diagram\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/access-diagram_800.png)


권한 부여 중 AWS 적용 코드는 [요청 콘텍스트](intro-structure.md#intro-structure-request)의 값을 사용하여 일치하는 정책을 확인하고 요청을 허용할지 거부할지 여부를 결정합니다.

AWS은 요청 콘텍스트에 적용되는 각 정책을 확인합니다. 단일 정책이 요청을 거부한 경우 AWS는 전체 요청을 거부하고 정책 평가를 중지합니다. 이를 *명시적 거부*라고 합니다. 요청은 *기본적으로 거부되므로* IAM은 사용 가능한 정책이 요청의 모든 부분을 허용하는 경우에만 요청에 권한을 부여합니다. 단일 계정 내 요청 [평가 로직](reference_policies_evaluation-logic.md)은 다음 규칙을 따릅니다.
+ 기본적으로 모든 요청이 묵시적으로 거부됩니다. 또는 기본적으로 AWS 계정 루트 사용자에 모든 권한이 부여됩니다.
+ 자격 증명 기반 또는 리소스 기반 정책에 포함된 명시적 허용은 이 기본 작동을 재정의합니다.
+ 권한 경계, AWS Organizations SCP 또는 세션 정책이 있는 경우 이러한 정책 유형이 명시적 거부로 허용을 재정의할 수도 있습니다.
+ 어떠한 정책의 명시적 거부도 허용을 무시합니다.

요청이 인증 및 권한 부여된 후 AWS이 요청을 승인합니다. 다른 계정에서 요청해야 하는 경우 다른 계정의 정책에서 요청자에게 해당 리소스에 대한 액세스를 허용해야 합니다. 또한 요청하는 데 사용하는 IAM 엔터티에 해당 요청을 허용하는 자격 증명 기반 정책이 있어야 합니다.

## 액세스 관리 리소스
<a name="access_resources"></a>

권한 및 정책 생성에 대한 자세한 정보는 다음 리소스를 참조하세요.

AWS 보안 블로그의 다음 게시물에서는 Amazon S3 버킷과 객체에 액세스하기 위한 정책을 작성하는 일반적인 방법을 소개합니다.
+ [IAM 정책 작성: Amazon S3 버킷에 대한 액세스 권한을 부여하는 방법](https://aws.amazon.com/blogs/security/writing-iam-policies-how-to-grant-access-to-an-amazon-s3-bucket/)
+ [IAM 정책 작성: Amazon S3 버킷의 사용자별 폴더에 대한 액세스 권한 부여](https://aws.amazon.com/blogs/security/writing-iam-policies-grant-access-to-user-specific-folders-in-an-amazon-s3-bucket/)
+ [IAM 정책 및 버킷 정책과 ACLs\$1 ACL (S3 리소스에 대한 액세스 제어)](https://aws.amazon.com/blogs/security/iam-policies-and-bucket-policies-and-acls-oh-my-controlling-access-to-s3-resources/)
+ [RDS 리소스 수준 권한에 대한 소개](https://aws.amazon.com/blogs/security/a-primer-on-rds-resource-level-permissions)
+ [EC2 리소스 수준 권한 설명](https://aws.amazon.com/blogs/security/demystifying-ec2-resource-level-permissions/)

# AWS Identity and Access Management의 정책 및 권한
<a name="access_policies"></a>

정책을 생성하고 IAM 자격 증명(사용자, 사용자 그룹 또는 역할) 또는 AWS 리소스에 연결하여 AWS에서 액세스를 관리합니다. 정책은 자격 증명이나 리소스와 연결될 때 해당 권한을 정의하는 AWS의 객체입니다. AWS는 IAM 보안 주체(사용자 또는 역할)가 요청을 보낼 때 이러한 정책을 평가합니다. 정책에서 권한은 요청이 허용되거나 거부되는 지를 결정합니다. 대부분의 정책은 AWS에 JSON 문서로 저장됩니다. AWS에서는 ID 기반 정책, 리소스 기반 정책, 권한 경계, AWS Organizations 서비스 제어 정책(SCP), AWS Organizations 리소스 제어 정책(RCP), 액세스 제어 목록(ACL), 세션 정책의 7가지 정책 유형을 지원합니다.

IAM 정책은 작업을 수행하기 위해 사용하는 방법과 상관없이 작업에 대한 권한을 정의합니다. 예를 들어, 정책이 [GetUser](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUser.html) 작업을 허용한다면 이 정책이 있는 사용자는 AWS Management Console, AWS CLI, 또는 AWS API에서 사용자 정보를 얻을 수 있습니다. IAM 사용자를 생성할 경우 콘솔 또는 프로그래밍 방식 액세스를 허용하도록 선택할 수 있습니다. 콘솔 액세스가 허용되는 경우 IAM 사용자는 로그인 보안 인증 정보를 사용하여 콘솔에 로그인할 수 있습니다. 프로그래밍 방식의 액세스가 허용되는 경우 사용자는 액세스 키를 사용하여 CLI 또는 API로 작업할 수 있습니다.

## 정책 유형
<a name="access_policy-types"></a>

다음의 정책 유형은 AWS에서 사용할 수 있으며 가장 자주 사용하는 정책 유형에서 빈도가 낮은 정책 유형순으로 나열됩니다. 자세한 정보는 각 정책 유형에 따른 섹션을 참조하세요.
+ **[아이덴티티 기반 정책](#policies_id-based)** - [관리형](#managedpolicy) 및 [인라인](#inline) 정책을 IAM 아이덴티티(사용자, 사용자가 속한 그룹 또는 역할)에 연결합니다. 자격 증명 기반 정책은 자격 증명에 권한을 부여합니다.
+ **[리소스 기반 정책](#policies_resource-based)** - 인라인 정책을 리소스에 연결합니다. 리소스 기반 정책의 가장 일반적인 예제는 Amazon S3 버킷 정책 및 IAM 역할 신뢰 정책입니다. 리소스 기반 정책은 정책에 지정된 보안 주체에 권한을 부여합니다. 보안 주체는 리소스와 동일한 계정 또는 다른 계정에 있을 수 있습니다.
+ **[권한 경계](#policies_bound)** - 관리형 정책을 IAM 엔터티(사용자 또는 역할)에 대한 권한 경계로 사용합니다. 해당 정책은 자격 증명 기반 정책을 통해 엔터티에 부여할 수 있는 최대 권한을 정의하지만, 권한을 부여하지는 않습니다. 권한 경계는 리소스 기반 정책을 통해 엔터티에 부여할 수 있는 최대 권한을 정의하지 않습니다.
+ **[AWS Organizations SCP](#policies_scp)** - AWS Organizations 서비스 제어 정책(SCP)을 사용하여 조직 또는 조직 단위(OU)의 계정 내에서 IAM 사용자와 IAM 역할에 대한 최대 권한을 정의합니다. SCP는 ID 기반 정책 또는 리소스 기반 정책이 계정 내 IAM 사용자 또는 IAM 역할에 부여하는 권한을 제한합니다. SCP는 권한을 부여하지 않습니다.
+ **[AWS Organizations RCP](#policies_rcp)** - AWS Organizations 리소스 제어 정책(RCP)을 사용하여 조직 또는 조직 단위(OU)의 계정 내에서 리소스에 대한 최대 권한을 정의합니다. RCP는 ID 기반 정책과 리소스 기반 정책이 조직 내 계정의 리소스에 부여할 수 있는 권한을 제한합니다. RCP는 권한을 부여하지 않습니다.
+ **[액세스 제어 목록(ACL)](#policies_acl)** - ACL을 사용하여 ACL이 연결된 리소스에 액세스할 수 있는 다른 계정의 보안 주체를 제어합니다. ACL는 리소스 기반 정책과 비슷합니다. 다만 JSON 정책 문서 구조를 사용하지 않은 유일한 정책 유형입니다. ACL은 지정된 보안 주체에 권한을 부여하는 크로스 계정 권한 정책입니다. ACL은 동일 계정 내 엔터티에 권한을 부여할 수 없습니다.
+ **[세션 정책](#policies_session)** - AWS CLI 또는 AWS API를 사용하여 역할이나 페더레이션 사용자를 수임할 때 고급 세션 정책을 전달합니다. 세션 정책은 역할이나 사용자의 자격 증명 기반 정책을 통해 세션에 부여하는 권한을 제한합니다. 세션 정책은 생성된 세션에 대한 권한을 제한하지 않지만, 권한을 부여하지도 않습니다. 자세한 정보는 [세션 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)을 참조하세요.

### ID 기반 정책
<a name="policies_id-based"></a>

자격 증명 기반 정책은 자격 증명(사용자, 사용자 그룹 및 역할)이 무슨 작업을 어느 리소스에서 어떤 조건에서 수행할 수 있는지를 제어하는 JSON 권한 정책 문서입니다. 자격 증명 기반 정책을 추가로 분류할 수 있습니다.
+ **관리형 정책** - AWS 계정에 속한 다수의 사용자, 그룹 및 역할에 독립적으로 연결할 수 있는 자격 증명 기반 정책입니다. 두 가지 유형의 관리형 정책이 있습니다.
  + **AWS 관리형 정책** - AWS에서 생성 및 관리하는 관리형 정책입니다.
  + **고객 관리형 정책** - 사용자가 자신의 AWS 계정에서 생성 및 관리하는 관리형 정책입니다. 고객 관리형 정책은 AWS 관리형 정책보다 정책에 대해 더욱 정밀하게 제어할 수 있습니다.
+ **인라인 정책** - 단일 사용자, 그룹 또는 역할에 직접 추가하는 정책입니다. 인라인 정책은 정책과 자격 증명을 정확히 1대 1 관계로 유지합니다. 이는 자격 증명을 삭제하면 삭제됩니다.

관리형 정책을 사용할지 아니면 인라인 정책을 사용할지를 선택하는 방법은 [관리형 정책 및 인라인 정책 중에서 선택](access_policies-choosing-managed-or-inline.md) 섹션을 참조하세요.

### 리소스 기반 정책
<a name="policies_resource-based"></a>

리소스 기반 정책은 Amazon S3 버킷과 같은 리소스에 연결하는 JSON 정책 문서입니다. 이 정책은 지정된 보안 주체에 해당 리소스에 대한 특정 작업을 수행할 수 있는 권한을 부여하고 이 권한이 적용되는 조건을 정의합니다. 리소스 기반 정책은 인라인 정책입니다. 관리형 리소스 기반 정책은 없습니다.

크로스 계정 액세스를 활성화하려는 경우 전체 계정이나 다른 계정의 IAM 개체를 리소스 기반 정책의 보안 주체로 지정할 수 있습니다. 리소스 기반 정책에 크로스 계정 보안 주체를 추가하는 것은 트러스트 관계 설정의 절반밖에 되지 않는다는 것을 유념하세요. 또한 보안 주체와 리소스가 별도의 AWS 계정에 있는 경우 자격 증명 기반 정책을 사용하여 보안 주체에 리소스에 대한 액세스 권한을 부여해야 합니다. 하지만 리소스 기반 정책이 동일 계정의 위탁자에 액세스를 부여하는 경우 추가 자격 증명 기반 정책이 필요하지 않습니다. 교차 서비스 액세스 권한을 부여하기 위한 단계별 지침은 [튜토리얼: IAM 역할을 사용한 AWS 계정 간 액세스 권한 위임](tutorial_cross-account-with-roles.md) 섹션을 참조하세요.

IAM 서비스는 역할 *신뢰 정책*이라고 하는 리소스 기반 정책 유형 하나만 지원하며, 이 유형은 IAM 역할에 연결됩니다. IAM 역할은 자격 증명이기도 하고 리소스 기반 정책을 지원하는 리소스이기도 합니다. 그러므로 IAM 역할에 신뢰 정책과 자격 증명 기반 정책을 모두 연결해야 합니다. 신뢰 정책은 역할을 수임할 수 있는 보안 주체 엔터티(계정, 사용자, 역할 및 페더레이션 사용자)를 정의합니다. IAM 역할과 다른 리소스 기반 정책 간의 차이에 대해 알아보려면 [IAM의 크로스 계정 리소스 액세스](access_policies-cross-account-resource-access.md) 섹션을 참조하세요.

리소스 기반 정책을 지원하는 다른 서비스를 확인하려면 [AWS IAM으로 작업하는 서비스](reference_aws-services-that-work-with-iam.md) 섹션을 참조하세요. 리소스 기반 정책에 대해 자세히 알아보려면 [자격 증명 기반 정책 및 리소스 기반 정책](access_policies_identity-vs-resource.md) 섹션을 참조하세요. 해당 신뢰 영역(신뢰할 수 있는 조직 또는 계정) 외의 계정 내 보안 주체가 역할을 수임하는 권한이 있는지 자세히 알고 싶다면, [IAM Access Analyzer란 무엇일까요?](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html)를 참조하세요.

### IAM 권한 경계
<a name="policies_bound"></a>

권한 경계는 자격 증명 기반 정책을 통해 IAM 엔터티에 부여할 수 있는 최대 권한을 설정하는 고급 기능입니다. 엔터티에 대한 권한 경계를 설정할 경우 해당 엔터티는 ID 기반 정책 및 관련 권한 경계 모두에서 허용되는 작업만 수행할 수 있습니다. 리소스 기반 정책의 위탁자 요소에 역할 세션이나 사용자를 지정하는 경우 권한 경계에서 명시적 허용이 필요하지 않습니다. 그러나 리소스 기반 정책의 위탁자 요소에 역할 ARN을 지정하는 경우 권한 경계에서 명시적 허용이 필요합니다. 두 경우 모두 권한 경계에서 명시적 거부가 유효합니다. 이러한 정책 중 하나에 포함된 명시적 거부는 허용을 재정의합니다. 권한 경계에 대한 자세한 정보는 [IAM 엔터티의 권한 범위](access_policies_boundaries.md) 섹션을 참조하세요.

### AWS Organizations 서비스 제어 정책(SCP)
<a name="policies_scp"></a>

조직에서 모든 기능을 활성화할 경우, 서비스 제어 정책(SCP)을 임의의 또는 모든 계정에 적용할 수 있습니다. SCP는 조직 또는 조직 단위(OU)의 계정 내 IAM 사용자와 IAM 역할에 대한 최대 권한을 지정하는 JSON 정책입니다. SCP는 각 AWS 계정 루트 사용자를 비롯하여 멤버 계정의 위탁자에 대한 권한을 제한합니다. 이러한 정책의 명시적 거부는 다른 정책의 허용을 재정의합니다.

AWS Organizations 및 SCP에 대한 자세한 내용은 *AWS Organizations 사용 설명서*의 [서비스 제어 정책(SCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)을 참조하세요.

### AWS Organizations 리소스 제어 정책(RCP)
<a name="policies_rcp"></a>

조직의 모든 기능을 활성화하면 리소스 제어 정책(RCP)을 사용하여 중앙에서 여러 AWS 계정의 리소스에 액세스 제어를 적용할 수 있습니다. RCP는 소유한 각 리소스에 연결된 IAM 정책을 업데이트하지 않고 계정의 리소스에 대해 사용 가능한 최대 권한을 설정하는 데 사용할 수 있는 JSON 정책입니다. RCP는 멤버 계정의 리소스에 대한 권한을 제한하며 조직에 속하는지 여부에 관계없이 AWS 계정 루트 사용자를 포함한 ID에 대한 유효 권한에 영향을 줄 수 있습니다. 해당 RCP의 명시적 거부는 개별 ID 또는 리소스에 연결될 수 있는 다른 정책의 허용을 재정의합니다.

RCP를 지원하는 AWS 서비스 목록을 포함하여 AWS Organizations 및 RCP에 대한 자세한 내용은 *AWS Organizations 사용 설명서*의 [리소스 제어 정책(RCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html)을 참조하세요.

### 액세스 제어 목록(ACL)
<a name="policies_acl"></a>

ACL(액세스 제어 목록)은 리소스에 액세스할 수 있는 다른 계정의 보안 주체를 제어할 수 있는 서비스 정책입니다. ACL은 동일 계정 내에서 보안 주체에 대한 액세스를 제어하는 데 사용할 수 없습니다. ACL는 리소스 기반 정책과 비슷합니다. 다만 JSON 정책 문서 형식을 사용하지 않은 유일한 정책 유형입니다. Amazon S3, AWS WAF 및 Amazon VPC는 ACL을 지원하는 대표적인 서비스입니다. ACL에 대해 자세히 알아보려면 **Amazon Simple Storage Service 개발자 안내서의 [액세스 제어 목록(ACL) 개요](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html)를 참조하십시오.

### 세션 정책
<a name="policies_session"></a>

세션 정책은 역할 또는 AWS STS 페더레이션 사용자 보안 주체에 대해 임시 세션을 프로그래밍 방식으로 생성할 때 파라미터로 전달하는 고급 정책입니다. 세션에 대한 권한은 세션을 생성하는 데 사용되는 IAM 엔터티(사용자 또는 역할)에 대한 자격 증명 기반 정책과 세션 정책의 교집합입니다. 또한 권한을 리소스 기반 정책에서 가져올 수도 있습니다. 이러한 정책 중 하나에 포함된 명시적 거부는 허용을 재정의합니다.

`AssumeRole`, `AssumeRoleWithSAML` 또는 `AssumeRoleWithWebIdentity` API 작업을 사용하여 프로그래밍 방식으로 역할 세션을 생성하고 세션 정책을 전달할 수 있습니다. `Policy` 파라미터를 사용하여 단일 JSON 인라인 세션 정책 문서를 전달할 수 있습니다. `PolicyArns` 파라미터를 사용하여 최대 10개까지 관리형 세션 정책을 지정할 수 있습니다. 역할 세션 생성에 대한 자세한 정보는 [임시 보안 자격 증명에 대한 권한](id_credentials_temp_control-access.md) 섹션을 참조하세요.

AWS STS 페더레이션 사용자 보안 주체 세션을 생성할 경우 IAM 사용자의 액세스 키를 사용하여 `GetFederationToken` API 작업을 프로그래밍 방식으로 호출할 수 있습니다. 또한 세션 정책도 전달해야 합니다. 결과적으로 얻는 세션의 권한은 자격 증명 기반 정책과 세션 정책의 교집합입니다. 페더레이션 사용자 생성에 대한 자세한 정보는 [사용자 지정 ID 브로커를 통해 자격 증명 요청](id_credentials_temp_request.md#api_getfederationtoken) 단원을 참조하십시오.

리소스 기반 정책에서 사용자 또는 역할의 ARN을 보안 주체로 지정할 수 있습니다. 이 경우, 세션이 생성되기 전에 리소스 기반 정책의 권한이 역할 또는 사용자의 자격 증명 기반 정책에 추가됩니다. 이 세션 정책은 리소스 기반 정책 및 자격 증명 기반 정책을 통해 부여되는 모든 권한을 제한합니다. 결과적으로 얻는 세션의 권한은 세션 정책과 리소스 기반 정책에 추가로 자격 증명 기반 정책의 교집합입니다.

![\[엔터티 ARN을 지정하는 리소스 기반 정책과 함께 세션 정책 평가\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/EffectivePermissions-session-rbp-id.png)


리소스 기반 정책에서 세션의 ARN을 보안 주체로 지정할 수 있습니다. 이 경우, 세션이 생성된 후 리소스 기반 정책의 권한이 추가됩니다. 리소스 기반 정책 권한은 세션 정책에 제한을 받지 않습니다. 결과 세션에는 리소스 기반 정책의 모든 권한 *\$1* 자격 증명 기반 정책과 세션 정책의 권한 교집합이 부여됩니다.

![\[세션 ARN을 지정하는 리소스 기반 정책과 함께 세션 정책 평가\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/EffectivePermissions-session-rbpsession-id.png)


권한 경계를 사용하여 세션을 생성하는 데 사용되는 사용자 또는 역할의 최대 권한 설정할 수 있습니다. 이 경우, 결과적으로 얻는 세션의 권한은 세션 정책, 권한 경계 및 자격 증명 기반 정책의 교집합입니다. 단, 권한 경계는 결과 세션의 ARN을 지정하는 리소스 기반 정책이 부여하는 권한을 제한할 수 없습니다.

![\[권한 경계와 함께 세션 정책 평가\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/EffectivePermissions-session-boundary-id.png)


## 정책 및 루트 사용자
<a name="access_policies-root"></a>

AWS 계정 루트 사용자는 어떤 정책에는 영향을 받지만 이외의 정책에는 영향을 받지 않습니다. 자격 증명 기반 정책을 루트 사용자로 연결할 수 없고 루트 사용자에 대한 권한 경계를 설정할 수 없습니다. 그러나, 루트 사용자를 리소스 기반 정책 또는 ACL의 보안 주체로 지정할 수 있습니다. 루트 사용자는 여전히 계정의 멤버입니다. 계정이 AWS Organizations의 조직 멤버인 경우 루트 사용자는 계정의 SCP와 RCP에 의해 영향을 받습니다.

## JSON 정책 개요
<a name="access_policies-json"></a>

대부분의 정책은 AWS에 JSON 문서로 저장됩니다. 자격 증명 기반 정책, 경계를 설정할 수 있는 정책은 사용자 또는 역할에 연결할 수 있는 JSON 정책 문서입니다. 리소스 기반 정책은 리소스에 연결하는 JSON 정책 설명서입니다. SCP와 RCP는 AWS Organizations 조직 루트, 조직 단위(OU) 또는 계정에 연결하는 제한된 구문이 있는 JSON 정책 문서입니다. ACL은 리소스에도 연결되지만 다른 구문을 사용해야 합니다. 세션 정책은 역할 또는 페더레이션 사용자 세션을 수임할 때 제공하는 JSON 정책입니다.

JSON 구문을 이해할 필요가 없습니다. AWS Management Console의 시각적 편집기를 사용하면 JSON을 사용하지 않고 고객 관리형 정책을 생성하고 편집할 수 있습니다. 그러나 그룹 또는 복잡한 정책에 대해 인라인 정책을 사용하는 경우에는 콘솔을 사용하여 JSON 편집기에서 해당 정책을 생성하고 편집해야 합니다. 시각적 편집기 사용에 대한 자세한 정보는 [고객 관리형 정책으로 사용자 지정 IAM 권한 정의](access_policies_create.md) 및 [IAM 정책 편집](access_policies_manage-edit.md) 섹션을 참조하세요.

 JSON 정책을 생성하거나 편집할 때 IAM은 효과적인 정책을 생성하는 데 도움이 되는 정책 검증을 수행할 수 있습니다. IAM은 JSON 구문 오류를 식별하는 반면, IAM Access Analyzer는 정책을 더욱 구체화하는 데 도움이 되는 권장 사항과 함께 추가 정책 검사를 제공합니다. 정책 검증에 대한 자세한 내용은 [IAM 정책 검증](access_policies_policy-validator.md) 섹션을 참조하세요. IAM Access Analyzer 정책 확인 및 실행 가능한 권장 사항에 대한 자세한 내용은 [ IAM Access Analyzer 정책 검증](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html)을 참조하세요.

### JSON 정책 문서 구조
<a name="policies-introduction"></a>

다음 그림처럼 JSON 정책 문서는 이러한 요소를 포함합니다.
+ 문서 상단에 위치하는 정책 전반의 선택적 정보
+ 하나 이상의 개별 문**

각 설명문에는 단일 권한에 대한 정보가 포함되어 있습니다. 정책에 설명문이 여러 개 포함되어 있는 경우, AWS는 설명문을 평가하는 동안 전체에 대해 논리 `OR`을 적용합니다. 요청 하나에 적용되는 정책이 여럿인 경우, AWS는 정책을 평가하는 동안 전체에 걸쳐 논리 `OR`을 적용합니다.

![\[JSON 정책 문서 구조\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/AccessPolicyLanguage_General_Policy_Structure.diagram.png)


문의 정보는 일련의 요소 안에 포함되어 있습니다.
+ **Version** - 사용하고자 하는 정책 언어의 버전을 지정합니다. 최신 `2012-10-17 ` 버전을 사용하는 것이 좋습니다. 자세한 내용은 [IAM JSON 정책 요소: Version](reference_policies_elements_version.md) 섹션을 참조하세요.
+ **Statement** - 이 주요 정책 요소를 다음 요소의 컨테이너로 사용합니다. 정책에 설명문 둘 이상을 포함할 수 있습니다.
+ **Sid**(선택 사항) - 선택 설명문 ID를 포함하여 설명문들을 구분합니다.
+ **Effect** - `Allow` 또는 `Deny`를 사용하여 정책에서 액세스를 허용하는지 또는 거부하는지 여부를 설명합니다.
+ ****Principal(일부 상황에서 필요) - 리소스 기반 정책을 생성하는 경우 액세스를 허용하거나 거부할 계정, 사용자, 역할 또는 AWS STS 페더레이션 사용자 보안 주체를 표시해야 합니다. 사용자 또는 역할에 연결할 IAM 권한 정책을 생성하면 이 요소를 포함할 수 없습니다. 보안 주체는 사용자 또는 역할을 의미합니다.
+ **Action** - 정책이 허용하거나 거부하는 작업 목록을 포함합니다.
+ **Resource**(일부 상황에서 필요) - IAM 권한 정책을 생성하는 경우 작업이 적용되는 리소스 목록을 지정해야 합니다. 리소스 기반 정책을 생성하는 경우 해당 요소가 필요한지의 여부는 사용 중인 리소스에 따라 달라집니다.
+ **Condition**(선택 사항) - 정책에서 권한을 부여하는 상황을 지정합니다.

이러한 요소와 기타 더 고급 정책 요소에 대한 자세한 정보는 [IAM JSON 정책 요소 참조](reference_policies_elements.md) 섹션을 참조하세요.

### 복수의 문 및 복수의 정책
<a name="policies-syntax-multiples"></a>

엔터티(사용자 또는 역할)에 부여할 권한을 하나 이상 정의하고자 할 경우, 단일 정책에 여러 설명문을 사용할 수 있습니다. 여러 정책을 연결할 수도 있습니다. 단일한 설명문에 여러 권한을 정의하고자 할 경우, 정책이 기대하는 액세스를 보장하지 않을 수 있습니다. 리소스 유형에 따라 정책을 나누는 것이 좋습니다.

[정책의 제한된 크기](reference_iam-quotas.md)로 인해 더 복잡한 권한에 대해서는 여러 정책을 사용해야 할 수도 있습니다. 개별 사용자 관리형 정책에 권한의 기능적 그룹화를 만드는 방법이 좋습니다. 예를 들어, IAM 사용자 관리용 정책 하나, 자기 관리용 하나 및 S3 버킷 관리용 기타 정책 하나를 생성합니다. 여러 설명문과 여러 정책의 조합과 상관없이 AWS는 동일한 방식으로 정책을 [평가](reference_policies_evaluation-logic.md)합니다.

예를 들어, 다음 정책에는 설명문이 세 개 있으며 각 설명문은 단일 계정에 별도의 권한 세트를 부여합니다. 설명문은 다음을 정의합니다.
+ `Sid`(설명문 ID)의 `FirstStatement` 첫 번째 설명문은 연결된 정책으로 사용자가 자체 암호를 변경하도록 허용합니다. 이 문에서 `Resource` 요소는 “`*`”(“모든 리소스”를 의미)이지만 실제로 `ChangePassword` API 작업(또는 동등한 `change-password` CLI 명령)은 요청을 수행한 사용자의 암호에만 영향을 미칩니다.
+ 두 번째 문은 사용자가 자신의 AWS 계정에 있는 모든 Amazon S3 버킷을 나열할 수 있도록 합니다. 이 문에서 `Resource` 요소는 `"*"`("모든 리소스"를 의미)이지만 정책에서 다른 계정의 리소스에 대한 액세스 권한을 부여하지 않으므로 사용자는 자신의 AWS 계정에 있는 버킷만 나열할 수 있습니다.
+ 세 번째 설명문은 사용자가 `amzn-s3-demo-bucket-confidential-data`라는 버킷에 있는 객체를 나열 및 검색할 수 있도록 하지만, 이는 사용자가 멀티 팩터 인증(MFA)에서 인증한 경우에 한합니다. 정책의 `Condition` 요소는 MFA 인증을 수행합니다.

  정책 문에 `Condition` 요소가 포함된 경우, `Condition` 요소가 true로 평가된 경우에만 해당 문이 유효합니다. 이때 `Condition`은 사용자가 MFA 인증된 경우 true로 평가됩니다. 사용자가 MFA 인증되지 않은 경우, 이 `Condition`은 false로 평가됩니다. 이 경우 이 정책의 세 번째 설명문과 사용자는 `amzn-s3-demo-bucket-confidential-data` 버킷을 적용하지 않고 이에 액세스할 수 없습니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "FirstStatement",
      "Effect": "Allow",
      "Action": ["iam:ChangePassword"],
      "Resource": "*"
    },
    {
      "Sid": "SecondStatement",
      "Effect": "Allow",
      "Action": "s3:ListAllMyBuckets",
      "Resource": "*"
    },
    {
      "Sid": "ThirdStatement",
      "Effect": "Allow",
      "Action": [
        "s3:List*",
        "s3:Get*"
      ],
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket-confidential-data",
        "arn:aws:s3:::amzn-s3-demo-bucket-confidential-data/*"
      ],
      "Condition": {"Bool": {"aws:MultiFactorAuthPresent": "true"}}
    }
  ]
}
```

------

### JSON 정책 구문 예제
<a name="policies-syntax-examples"></a>

다음 자격 증명 기반 정책은 `amzn-s3-demo-bucket`이라는 하나의 Amazon S3 버킷 목록에 암시된 보안 주체를 허용합니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": "s3:ListBucket",
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket"
  }
}
```

------

다음 리소스 기반 정책은 Amazon S3 버킷에 연결될 수 있습니다. 이 정책에서는 특정 AWS 계정 구성원이 `amzn-s3-demo-bucket`라는 버킷의 모든 Amazon S3 작업을 수행할 수 있도록 합니다. 작업 내 버킷 또는 객체에 수행될 수 있는 모든 작업을 허용합니다. (이 정책은 계정에만 신뢰를 부여하므로, 해당 계정의 개별 사용자는 지정된 Amazon S3 작업에 대한 권한을 다시 부여받아야 합니다.) 

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "1",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:root"
                ]
            },
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket",
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ]
        }
    ]
}
```

------

공통 시나리오가 포함되는 예제 정책은 [IAM 자격 증명 기반 정책의 예](access_policies_examples.md) 섹션을 참조하세요.

## 최소 권한 적용
<a name="grant-least-priv"></a>

IAM 정책을 생성할 때는 최소 권한 부여의 표준 보안 조언을 따르거나, 작업 수행에 필요한 *최소한의 권한*만 부여합니다. 사용자(역할)가 수행해야 하는 작업을 파악한 후 사용자들이 *해당 작업만* 수행하도록 사용자에 대한 정책을 작성합니다.

최소한의 권한 조합으로 시작하여 필요에 따라 추가 권한을 부여합니다. 처음부터 권한을 많이 부여한 후 나중에 줄이는 방법보다 이 방법이 안전합니다.

최소 권한의 대안으로 [AWS 관리형 정책](access_policies_managed-vs-inline.md#aws-managed-policies) 또는 와일드카드(`*`)를 사용하는 정책 권한을 사용하여 정책을 시작할 수 있습니다. 보안 주체가 작업을 수행하는 데 필요한 것보다 더 많은 권한을 부여할 경우 보안 위험을 고려하세요. 이러한 보안 주체를 모니터링하여 사용 중인 권한을 확인합니다. 그런 다음 최소 권한 정책을 작성합니다.

IAM에서는 부여하는 권한을 구체화하는 데 도움이 되는 몇 가지 옵션을 제공합니다.
+ **액세스 수준 그룹화 이해** - 액세스 수준 그룹화를 사용하면 정책이 부여하는 액세스 수준을 이해할 수 있습니다. [정책 작업](reference_policies_elements_action.md)은 `List`, `Read`, `Write`, `Permissions management` 또는 `Tagging`으로 분류됩니다. 예를 들어 `List` 및 `Read` 액세스 레벨에서 작업을 선택하여 사용자에게 읽기 전용 액세스 권한을 부여할 수 있습니다. 정책 요약을 사용하여 액세스 레벨 권한을 이해하는 방법에 대해 알아보려면 [정책 요약 내 액세스 수준](access_policies_understand-policy-summary-access-level-summaries.md) 섹션을 참조하세요.
+ **정책 검증** - JSON 정책을 생성 및 편집할 때 IAM Access Analyzer를 사용하여 정책 검증을 수행할 수 있습니다. 기존 정책을 모두 검토하고 검증하는 것이 좋습니다. IAM Access Analyzer는 정책 검증을 위해 100개 이상의 정책 확인 항목을 제공합니다. 정책의 문이 지나치게 허용적이라고 생각되는 액세스를 허용하는 경우 보안 경고를 생성합니다. 최소 권한을 부여하기 위해 작업할 때 보안 경고를 통해 제공되는 실행 가능한 권장 사항을 사용할 수 있습니다. IAM Access Analyzer가 제공하는 정책 확인 사항에 대한 자세한 내용은 [IAM Access Analyzer 정책 검증](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html)을 참조하세요.
+ **액세스 활동에 기반한 정책 생성** - 부여하는 권한을 세분화할 수 있도록 IAM 엔터티(사용자 또는 역할)의 액세스 활동을 기반으로 IAM 정책을 생성할 수 있습니다. IAM Access Analyzer는 사용자의 AWS CloudTrail 로그를 검토하고 지정된 기간에 역할에 의해 사용된 권한이 포함된 정책 템플릿을 생성합니다. 이 템플릿을 사용하여 세분화된 권한이 포함된 관리형 정책을 생성한 다음 IAM 엔터티에 연결할 수 있습니다. 이렇게 하면 특정 사용 사례에 사용자나 역할이 AWS 리소스와 상호 작용하는 데 필요한 권한만 부여됩니다. 자세한 내용은 [IAM Access Analyzer 정책 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-generation.html)을 참조하세요.
+ **마지막으로 액세스한 정보 사용** - 최소 권한으로 도울 수 있는 또 다른 기능은 *마지막으로 액세스한 정보*입니다. IAM 사용자, 그룹, 역할 또는 정책에 대한 IAM 콘솔 세부 정보 페이지의 **액세스 관리자(Access Advisor)** 탭에서 이 정보를 확인합니다. 마지막으로 액세스한 정보에는 Amazon EC2, IAM, Lambda, Amazon S3와 같은 일부 서비스에 마지막으로 액세스하여 작업한 정보가 포함됩니다. AWS Organizations 관리 계정 자격 증명을 사용하여 로그인하는 경우 IAM 콘솔의 **AWS Organizations** 섹션에서 마지막으로 액세스한 서비스 정보를 볼 수 있습니다. 또한 AWS CLI 또는 AWS API를 사용하여 IAM 또는 AWS Organizations의 엔터티 또는 정책에 대해 마지막으로 액세스한 정보 보고서를 검색할 수 있습니다. 이 정보를 사용하여 불필요한 권한을 확인할 수 있으므로 IAM 또는 AWS Organizations 정책을 미세 조정함으로써 최소 권한의 원칙을 보다 잘 준수할 수 있습니다. 자세한 내용은 [마지막으로 액세스한 정보를 사용하여 AWS에서 권한 재정의](access_policies_last-accessed.md) 섹션을 참조하세요.
+ **AWS CloudTrail에서 계정 이벤트 검토** - 권한을 추가로 줄이려면 AWS CloudTrail **이벤트 기록**의 계정 이벤트를 볼 수 있습니다. CloudTrail 이벤트 로그에는 정책의 권한을 줄이는 데 사용할 수 있는 자세한 이벤트 정보가 포함되어 있습니다. 로그에는 IAM 엔터티에 필요한 작업 및 리소스만 포함되어 있습니다. 자세한 내용은 *AWS CloudTrail 사용 설명서*의 [CloudTrail 콘솔에서 CloudTrail 이벤트 보기](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events-console.html)를 참조하세요.



자세한 내용은 서비스별 리소스에 대해 정책을 작성하는 방법의 예제를 제공하는 각 서비스의 다음 정책 주제를 참조하세요.
+ **Amazon DynamoDB 개발자 안내서의 [DynamoDB에서 리소스 기반 정책 사용](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html)
+ **Amazon Simple Storage Service 사용 설명서의 [Amazon S3의 버킷 정책](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-policies.html)
+ **Amazon Simple Storage Service 사용 설명서의 [액세스 제어 목록(ACL) 개요](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html)

# 관리형 정책과 인라인 정책
<a name="access_policies_managed-vs-inline"></a>

IAM에서 자격 증명에 대한 권한을 설정하는 경우 AWS 관리형 정책, 고객 관리형 정책 또는 인라인 정책 중 어느 것을 사용할지를 결정해야 합니다. 다음 주제에서는 각 자격 증명 기반 정책 유형과 사용 시기에 대한 자세한 정보를 제공합니다.

다음 표에는 이러한 정책이 요약되어 있습니다.


| 정책 유형 | 설명 | 정책 관리자 | 권한 수정 여부 | 정책에 적용된 위탁자 수 | 
| --- | --- | --- | --- | --- | 
| [AWS 관리형 정책](#aws-managed-policies) | AWS에서 생성하고 관리하는 독립 실행형 정책. | AWS | 아니요 | 다수 | 
| [고객 관리형 정책](#customer-managed-policies) | 특정 사용 사례에 맞게 생성한 정책. 이러한 생성하고, 원하는 만큼 자주 변경 및 업데이트할 수 있습니다. | 사용자 | 예 | 다수 | 
| [인라인 정책](#inline-policies) | 정책과 자격 증명 간 엄격한 일대일 관계를 유지하는 단일 IAM 자격 증명(사용자, 그룹 또는 역할)에 대해 생성된 정책. | 사용자 | 예 | 1개 | 

**Topics**
+ [

## AWS 관리형 정책
](#aws-managed-policies)
+ [

## 고객 관리형 정책
](#customer-managed-policies)
+ [

## 인라인 정책
](#inline-policies)
+ [

# 관리형 정책 및 인라인 정책 중에서 선택
](access_policies-choosing-managed-or-inline.md)
+ [

# 인라인 정책을 관리형 정책으로 변환
](access_policies-convert-inline-to-managed.md)
+ [

# 사용되지 않는 AWS 관리형 정책
](access_policies_managed-deprecated.md)

## AWS 관리형 정책
<a name="aws-managed-policies"></a>

*AWS 관리형 정책*은 AWS에서 생성 및 관리하는 독립적인 정책입니다. 여기에서 **독립형 정책은 정책 스스로 정책 이름이 포함된 Amazon 리소스 이름(ARN)을 갖고 있다는 것을 의미합니다. 예를 들어 `arn:aws:iam::aws:policy/IAMReadOnlyAccess`는 AWS 관리형 정책입니다. ARN에 대한 자세한 내용은 [IAM ARN](reference_identifiers.md#identifiers-arns) 섹션을 참조하세요. AWS에 대한 AWS 서비스 관리형 정책의 목록은 [AWS 관리형 정책](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/policy-list.html)을 참조하세요.

AWS 관리형 정책을 사용하면 사용자, IAM 그룹 및 역할에 적절한 권한을 손쉽게 할당할 수 있습니다. 정책을 직접 작성하는 것보다 빠르고, 여러 가지 일반 사용 사례에 맞는 권한이 포함되어 있습니다.

AWS 관리형 정책에 정의되어 있는 권한은 변경할 수 없습니다. AWS가 AWS 관리형 정책에서 정의한 권한을 간혹 업데이트합니다. AWS에서 업데이트할 경우 정책이 연결되어 있는 모든 위탁자 엔터티(IAM 사용자, IAM 그룹 및 IAM 역할)에게도 업데이트가 적용됩니다. 새로운 AWS 서비스를 시작하거나 새로운 API 직접 호출을 기존 서비스에 이용하는 경우 AWS가 AWS 관리형 정책을 업데이트할 가능성이 높습니다. 예를 들어 **ReadOnlyAccess**라는 이름의 AWS 관리형 정책은 모든 AWS 서비스 및 리소스에 대한 읽기 전용 액세스 권한을 제공합니다. AWS에서 새로운 서비스가 실행될 때는 AWS가 **ReadOnlyAccess** 정책을 업데이트하여 새로운 서비스에 대한 읽기 전용 권한을 추가합니다. 이렇게 업데이트된 권한은 정책이 추가되는 모든 보안 주체 엔터티에게 적용됩니다.

**전체 액세스 AWS 관리형 정책: 서비스에 대한 전체 액세스 권한을 부여하여 서비스 관리자에 대한 권한을 정의합니다. 그러한 예는 다음과 같습니다.
+ [AmazonDynamoDBFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonDynamoDBFullAccess.html)
+ [IAMFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/IAMFullAccess.html)

*파워 유저 AWS 관리형 정책*: AWS 서비스 및 리소스에 대한 모든 액세스 권한을 제공하지만 사용자 및 IAM 그룹을 관리하도록 허용하지는 않습니다. 그러한 예는 다음과 같습니다.
+ [AWSCodeCommitPowerUser](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSCodeCommitPowerUser.html) 
+ [AWSKeyManagementServicePowerUser](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSKeyManagementServicePowerUser.html)

**부분 액세스 AWS 관리형 정책: [권한 관리](access_policies_understand-policy-summary-access-level-summaries.md#access_policies_access-level) 액세스 수준 권한을 허용하지 않고 AWS 서비스에 대한 특정 수준의 액세스를 제공합니다. 그러한 예는 다음과 같습니다.
+ [AmazonMobileAnalyticsWriteOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonMobileAnalyticsWriteOnlyAccess.html)
+ [AmazonEC2ReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2ReadOnlyAccess.html) 

**직능 AWS 관리형 정책: 이러한 정책은 IT 업계에서 일반적으로 사용되는 직능과 밀접한 관련이 있으며, 그러한 직능에 필요한 권한을 손쉽게 부여하도록 해줍니다. 직무 정책을 사용하는 큰 장점 중 하나는 새로운 서비스와 API 작업이 도입될 때마다 AWS가 이를 유지하고 업데이트할 수 있다는 점입니다. 예를 들어 [AdministratorAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AdministratorAccess.html) 직무는 AWS의 모든 서비스 및 리소스에 대한 모든 액세스 권한 및 작업 권한을 위임합니다. 계정 관리자에게만 이 정책을 사용하는 것이 좋습니다. IAM 및 AWS Organizations에 대해서는 제한적인 액세스 권한만 있으면 되지만 그 밖의 모든 서비스에 대해 모든 액세스 권한이 필요한 고급 사용자의 경우, [PowerUserAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/PowerUserAccess.html) 직무를 사용하세요. 직무 정책의 목록과 설명은 [직무에 관한 AWS 관리형 정책](access_policies_job-functions.md) 섹션을 참조하세요.

다음은 AWS 관리형 정책을 나타낸 다이어그램입니다. 다이어그램을 보면 **AdministratorAccess**, **PowerUserAccess**, 그리고 **AWSCloudTrail\$1ReadOnlyAccess** 등 3개의 AWS 관리형 정책이 있습니다. 다이어그램에도 나와 있지만 단일 AWS 관리형 정책을 다른 AWS 계정의 보안 주체 엔터티에 추가할 수도 있고, 단일 AWS 계정의 다른 보안 주체 엔터티에 추가할 수도 있습니다.

![\[AWS 관리형 정책의 다이어그램\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/policies-aws-managed-policies.diagram.png)


## 고객 관리형 정책
<a name="customer-managed-policies"></a>

자체 AWS 계정에서 위탁자 엔터티(IAM 사용자, IAM 그룹 및 IAM 역할)에 연결할 수 있는 독립형 정책을 생성할 수 있습니다. 특정 사용 사례에 맞게 이러한 *고객 관리형 정책*을 생성하고, 원하는 만큼 자주 변경 및 업데이트할 수 있습니다. AWS 관리형 정책과 마찬가지로, 정책을 보안 주체 엔터티에 추가할 경우 정책에서 정의한 권한까지 엔터티에게 부여하게 됩니다. 정책의 권한을 업데이트할 경우, 정책이 추가되어 있는 모든 보안 주체 엔터티에 변경 사항이 적용됩니다.

고객이 관리하는 정책을 생성하는 좋은 방법은 AWS에서 관리하는 기존의 정책을 복사하여 시작하는 것입니다. 이렇게 하면 시작 시 올바른 정책으로 시작하므로 해당 환경에 맞게 사용자 지정만 하면 됩니다.

다음은 고객 관리형 정책을 나타낸 다이어그램입니다. 각 정책은 자체적으로 정책 이름이 포함된 [Amazon 리소스 이름(ARN)](reference_identifiers.md#identifiers-arns)을 갖고 있는 IAM 엔터티입니다. 다이어그램을 보면 동일한 정책을 여러 보안 주체 엔터티에 추가할 수 있습니다. 예를 들어 동일한 **DynamoDB-books-app** 정책이 두 개의 다른 IAM 역할에 추가됩니다.

자세한 내용은 [고객 관리형 정책으로 사용자 지정 IAM 권한 정의](access_policies_create.md) 섹션을 참조하세요.

![\[고객 관리형 정책의 다이어그램\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/policies-customer-managed-policies.diagram.png)


## 인라인 정책
<a name="inline-policies"></a>

인라인 정책은 단일 IAM ID(사용자, 사용자 그룹 또는 역할)에 대해 생성되는 정책입니다. 인라인 정책은 정책과 자격 증명을 정확히 1대 1 관계로 유지합니다. 이는 자격 증명을 삭제하면 삭제됩니다. 자격 증명을 생성하거나 이후에 생성할 때 정책을 생성하여 자격 증명에 삽입할 수 있습니다. 정책이 둘 이상의 엔터티에 적용될 수 있는 경우 관리형 정책을 사용하는 것이 좋습니다.

다음은 인라인 정책을 나타낸 다이어그램입니다. 각 정책은 사용자, 그룹 또는 역할에서 내재된 부분입니다. 다이어그램을 보면 2개의 역할에 동일한 정책(the **DynamoDB-books-app** 정책)이 추가되어 있지만, 단 하나의 정책도 공유하지 않습니다. 각 역할에는 고유한 정책 사본이 있습니다.

![\[인라인 정책의 다이어그램\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/policies-inline-policies.diagram.png)


# 관리형 정책 및 인라인 정책 중에서 선택
<a name="access_policies-choosing-managed-or-inline"></a>

관리형 정책과 인라인 정책 중 하나를 결정할 때는 사용 사례를 고려합니다. 대부분 경우 인라인 정책보다는 관리형 정책의 사용을 권장합니다.

**참고**  
관리형 정책과 인라인 정책을 함께 사용하여 보안 주체 엔터티에 대한 공통 및 고유 권한을 정의할 수 있습니다.

관리형 정책은 다음과 같은 기능을 제공합니다.

**재사용성**  
단일 관리형 정책은 다수의 보안 주체 개체(사용자, 그룹 및 역할)에 추가할 수 있습니다. 정책 라이브러리를 생성하여 AWS 계정에 유용한 권한을 정의한 다음 필요에 따라 생성한 정책을 보안 주체 엔터티에 추가할 수 있습니다.

**중앙 변경 관리**  
관리형 정책 변경 시 정책이 추가되어 있는 모든 보안 주체 엔터티에 변경 사항이 적용됩니다. 예를 들어 AWS API 권한을 추가할 경우 고객 관리형 정책을 업데이트하거나 AWS 관리형 정책을 연결하여 권한을 추가할 수 있습니다. AWS 관리형 정책을 사용하는 경우 AWS가 정책을 업데이트합니다. 관리형 정책이 업데이트되면 관리형 정책이 추가되어 있는 모든 보안 주체 엔터티에 변경 사항이 적용됩니다. 이와는 대조적으로 인라인 정책을 변경하려면 인라인 정책이 추가되어 있는 자격 증명을 일일이 편집해야 합니다. 예를 들어 그룹과 역할에 모두 동일한 인라인 정책이 추가되어 있더라도 정책을 변경하기 위해서는 두 보안 주체 개체를 개별적으로 편집해야만 합니다.

**버전 관리 및 롤백**  
고객 관리 정책을 변경할 경우 변경된 정책은 기존 정책을 덮어쓰지 않습니다. 대신 IAM에서 관리형 정책의 새 버전을 생성합니다. IAM은 고객 관리형 정책을 최대 5개 버전까지 저장합니다. 정책 버전은 필요에 따라 정책을 이전 버전으로 되돌리는 데도 사용됩니다.  
정책 버전은 `Version` 정책 요소와 다릅니다. `Version` 정책 요소는 정책 내에서 사용되며 정책 언어의 버전을 정의합니다. 정책 버전에 대한 자세한 정보는 [IAM 정책 버전 관리](access_policies_managed-versioning.md) 섹션을 참조하세요. `Version` 정책 요소에 대한 자세한 정보는 [IAM JSON 정책 요소: Version](reference_policies_elements_version.md)을 참조하세요.

**권한 위임 관리**  
정책으로 정의한 권한을 지속적으로 제어하면서 AWS 계정에 속한 사용자가 정책을 추가 및 분리하도록 허용할 수 있습니다. 이렇게 하려면 일부 사용자에게는 전체 관리자 권한을 위임합니다. 다시 말해, 전체 관리자란 정책을 생성, 업데이트 및 삭제할 수 있는 것을 말합니다. 제한된 관리자로서 다른 사용자를 지정할 수 있습니다. 그러한 제한된 관리자는 다른 보안 주체 엔터티에 정책을 연결할 수 있지만 이때 정책은 연결하도록 허용된 정책으로 제한됩니다.  
권한 위임 관리에 대한 자세한 내용은 [정책에 대한 액세스 제어](access_controlling.md#access_controlling-policies) 섹션을 참조하세요.

**더 큰 정책 문자 제한**  
관리형 정책의 최대 문자 크기 제한이 그룹 인라인 정책의 문자 제한보다 큽니다. 인라인 정책의 문자 크기 제한에 도달하면 더 많은 IAM 그룹을 생성하고 관리형 정책을 그룹에 연결할 수 있습니다.  
할당량과 제한에 대한 자세한 내용은 [IAM 및 AWS STS 할당량](reference_iam-quotas.md) 섹션을 참조하세요.

**AWS 관리형 정책의 자동 업데이트**  
AWS는 AWS 관리형 정책을 유지하면서 필요에 따라 자동으로 업데이트하기 때문에(예를 들어 새로운 AWS 서비스 권한을 추가하기 위해) 직접 변경할 필요가 없습니다. 업데이트는 AWS 관리형 정책을 추가한 보안 주체 엔터티에게 자동으로 적용됩니다.

## 관리형 정책 시작하기
<a name="access_policies-get-started-managed-policy"></a>

[최소 권한 부여](access_policies.md#grant-least-priv) 또는 작업 수행에 요구되는 권한만 부여하는 정책을 사용하는 것이 좋습니다. 최소 권한을 부여하는 가장 안전한 방법은 팀에 필요한 권한만 있는 고객 관리형 정책을 작성하는 것입니다. 필요한 경우 팀에서 추가 권한을 요청할 수 있는 프로세스를 만들어야 합니다. 팀에 필요한 권한만 제공하는 [IAM 고객 관리형 정책을 생성](access_policies_create-console.md)하기 위해서는 시간과 전문 지식이 필요합니다.

IAM 자격 증명(사용자, 사용자 그룹 및 역할)에 대한 권한을 추가하려면 [AWS 관리형 정책](access_policies_managed-vs-inline.md#aws-managed-policies)을 사용할 수 있습니다. AWS 관리형 정책은 최소 권한을 부여하지 않습니다. 보안 주체가 작업을 수행하는 데 필요한 것보다 더 많은 권한을 부여할 경우 보안 위험을 고려해야 합니다.

AWS 관리형 정책(작업 기능 포함)을 모든 IAM 자격 증명에 연결할 수 있습니다. 자세한 내용은 [IAM 자격 증명 권한 추가 및 제거](access_policies_manage-attach-detach.md) 섹션을 참조하세요.

최소 권한으로 전환하려면 AWS Identity and Access Management 및 Access Analyzer를 실행하여 AWS 관리형 정책으로 보안 주체를 모니터링합니다. 사용 권한을 학습한 후 팀에 필요한 권한만 있는 고객 관리형 정책을 작성하거나 생성할 수 있습니다. 이는 덜 안전하지만 팀에서 AWS를 어떻게 사용하는지 학습할수록 더 많은 유연성을 제공합니다. 자세한 내용은 [IAM Access Analyzer 정책 생성](access-analyzer-policy-generation.md) 섹션을 참조하세요.

AWS 관리형 정책은 여러 가지 일반 사용 사례에서 권한을 제공할 목적으로 설계되었습니다. 특정 작업 기능을 위해 설계된 AWS 관리형 정책에 대한 자세한 내용은 [직무에 관한 AWS 관리형 정책](access_policies_job-functions.md) 섹션을 참조하세요.

AWS 관리형 정책의 목록은 [AWS 관리형 정책 참조 가이드](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/about-managed-policy-reference.html)를 참조하세요.

## 인라인 정책 사용
<a name="policies-using-inline-policies"></a>

인라인 정책은 정책과 정책이 추가된 자격 증명을 정확히 1대 1 관계로 유지할 때 유용합니다. 정책 권한을 의도하지 않은 자격 증명에 실수로 할당하는 일을 배제하려고 하는 경우를 예로 들어 보겠습니다. 이때 인라인 정책을 사용하면 정책 권한이 잘못된 자격 증명에 실수로 추가되는 일이 사라집니다. 그 밖에도 AWS Management Console을 사용하여 자격 증명을 삭제할 경우 자격 증명에 삽입된 정책 역시 삭제됩니다. 해당 정책은 보안 주체 엔터티의 일부이기 때문입니다.

# 인라인 정책을 관리형 정책으로 변환
<a name="access_policies-convert-inline-to-managed"></a>

계정에 인라인 정책이 있는 경우 이를 관리형 정책으로 변환할 수 있습니다. 이렇게 하려면 정책을 새 관리형 정책에 복사합니다. 그런 다음 인라인 정책이 있는 자격 증명에 새 정책을 연결합니다. 그런 다음 인라인 정책을 삭제합니다.

## 인라인 정책을 관리형 정책으로 변환하기
<a name="access_policies-convert-inline-to-managed-procedure"></a>

**인라인 정책을 관리형 정책으로 변환하려면**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 탐색 창에서 **사용자 그룹**, **사용자** 또는 **역할**을 선택합니다.

1. 목록에서 제거할 정책이 있는 사용자 그룹, 사용자 또는 역할 이름을 선택합니다.

1. **권한** 탭을 선택합니다.

1. IAM 그룹의 경우 제거할 인라인 정책의 이름을 선택합니다. 사용자 및 역할에 대해 필요한 경우 ***n*개 더 표시**를 선택한 다음 제거할 인라인 정책 옆에 있는 화살표를 선택합니다.

1. 정책에 대한 JSON 정책 문서를 **복사**합니다.

1. 탐색 창에서 **Policies**를 선택합니다.

1. **정책 생성**을 선택한 후 **JSON** 옵션을 선택합니다.

1. 기존 텍스트를 JSON 정책 텍스트로 바꾸고 **다음**을 선택합니다.

1. 정책의 이름과 설명(선택 사항)을 입력한 다음에 **정책 생성**을 선택합니다.

1. 탐색 창에서 **사용자 그룹**, **사용자** 또는 **역할**을 선택한 다음 제거하려는 정책이 있는 사용자 그룹, 사용자 또는 역할의 이름을 다시 선택합니다.

1. **권한** 탭을 선택한 다음 **권한 추가**를 선택합니다.

1. IAM 그룹에서 새 정책 이름 옆의 확인란을 선택하고 **권한 추가**와 **정책 연결**을 차례로 선택하세요. 사용자 또는 역할의 경우 **권한 추가**를 선택합니다. 다음 페이지에서 **기존 정책 직접 연결**을 선택하고 새 정책 이름 옆의 확인란을 선택한 다음, **다음**을 선택하고 **권한 추가**를 선택하세요.

   사용자 그룹, 사용자 또는 역할에 대한 **요약** 페이지로 돌아갑니다.

1. 제거할 인라인 정책 옆의 확인란을 선택한 다음, **제거**를 선택하세요.

# 사용되지 않는 AWS 관리형 정책
<a name="access_policies_managed-deprecated"></a>

사용 권한 할당을 단순화하기 위해 AWS가 제공하는 [관리형 정책](access_policies_managed-vs-inline.md) - IAM 사용자, 그룹 및 역할에 연결하도록 준비된 사전 정의된 정책입니다.

새로운 서비스가 나왔을 때와 같이 AWS는 때때로 기존 정책에 새 권한을 추가해야 합니다. 기존 정책에 새 권한을 추가해도 특성이나 권한이 제거되거나 방해를 받지는 않습니다.

하지만 AWS는 필요한 변경이 기존 정책에 적용될 경우 고객에게 영향을 줄 수 있기 때문에 *새로* 정책을 만듭니다. 예를 들어 기존 정책에서 권한을 제거하면 이 정책을 사용하는 IAM 주체나 애플리케이션의 권한이 손상되어 중요한 작업에 방해가 될 수 있습니다.

따라서 이러한 변경이 필요할 경우 AWS는 해당 사항을 변경한 정책을 새로 만들어서 고객에게 제공합니다. 기존 정책은 *사용되지 않음*으로 표시됩니다. 자세한 내용은 *AWS 관리형 정책 참조 가이드*의 [Deprecated AWS managed policies](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/about-managed-policy-reference.html#deprecated-managed-policies)를 참조하세요.

# 데이터 경계를 사용하여 권한 가드레일 설정
<a name="access_policies_data-perimeters"></a>

데이터 경계 가드레일은 광범위한 AWS 계정 및 리소스 전반에서 데이터를 보호하는 데 도움이 되는 상시 경계 역할을 하는 것입니다. 데이터 경계는 IAM 보안 모범 사례에 따라 [여러 계정에 권한 가드레일을 설정](best-practices.md#bp-permissions-guardrails)합니다. 이러한 조직 차원의 권한 가드레일은 기존의 세분화된 액세스 제어를 대체하지 않습니다. 대신 사용자, 역할, 리소스가 일련의 정의된 보안 표준을 준수하도록 보장함으로써 보안 전략을 개선하는 데 도움이 되는 **대략적인 액세스 제어** 역할을 합니다.

데이터 경계는 신뢰할 수 있는 ID만 예상 네트워크에서 신뢰할 수 있는 리소스에 액세스하도록 하는 AWS 환경의 권한 가드레일 세트입니다.
+ 신뢰할 수 있는 ID: 사용자의 AWS 계정 보안 주체(IAM 역할 또는 사용자) 및 사용자를 대신하는 AWS 서비스입니다.
+ 신뢰할 수 있는 리소스: 사용자의 AWS 계정 또는 사용자를 대신하는 AWS 서비스가 소유한 리소스입니다.
+ 예상 네트워크: 온프레미스 데이터 센터 및 Virtual Private Cloud(VPC) 또는 사용자를 대신하는 AWS 서비스 네트워크입니다.

**참고**  
경우에 따라 신뢰할 수 있는 비즈니스 파트너의 액세스도 포함하도록 데이터 경계를 확장해야 할 수 있습니다. 신뢰할 수 있는 ID, 신뢰할 수 있는 리소스, 회사와 AWS 서비스 용도에 맞는 예상 네트워크에 대한 정의를 생성할 때 의도된 모든 데이터 액세스 패턴을 고려해야 합니다.

데이터 경계 제어는 정보 보안 및 위험 관리 프로그램 내의 다른 보안 제어와 마찬가지로 취급해야 합니다. 즉, 위협 분석을 수행하여 클라우드 환경 내의 잠재적 위험을 식별한 다음, 자체 위험 수용 기준에 따라 적절한 데이터 경계 제어를 선택하고 구현합니다. 데이터 경계 구현에 대한 반복적인 위험 기반 접근 방식에 더 나은 정보를 제공하려면 데이터 경계 제어를 통해 해결되는 보안 위험 및 위협 벡터뿐만 아니라 보안 우선 순위도 이해해야 합니다.

## 데이터 경계 제어
<a name="access_policies_data-perimeters-controls"></a>

대략적인 데이터 경계 제어를 통해 [정책 유형](access_policies.md#access_policy-types) 및 [조건 키](reference_policies_condition-keys.md)의 다양한 조합을 구현하고 세 가지 데이터 경계에 걸쳐 여섯 가지 뚜렷한 보안 목표를 달성할 수 있습니다.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/access_policies_data-perimeters.html)

데이터 경계는 의도하지 않은 액세스 패턴을 방지하기 위해 데이터 주변에 확고한 경계를 생성하는 것이라고 생각할 수 있습니다. 데이터 경계는 의도하지 않은 광범위한 액세스를 방지할 수 있지만 여전히 세분화된 액세스 제어 결정을 내려야 합니다. 데이터 경계를 설정하더라도 [최소 권한](best-practices.md#grant-least-privilege)을 위한 여정의 일환으로 [IAM Access Analyzer](what-is-access-analyzer.md)와 같은 도구를 사용하여 권한을 지속적으로 미세 조정해야 합니다.

현재 RCP에서 지원하지 않는 리소스에 데이터 경계 제어를 적용하려면 리소스에 직접 연결된 리소스 기반 정책을 사용합니다. RCP와 리소스 기반 정책을 지원하는 서비스 목록은 [Resource control policies (RCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html) 및 [AWS IAM으로 작업하는 서비스](reference_aws-services-that-work-with-iam.md) 섹션을 참조하세요.

네트워크 경계 제어를 적용하려면 액세스를 제한하려는 모든 서비스가 현재 지원되는 경우에만 `aws:VpceOrgID`, `aws:VpceOrgPaths`, `aws:VpceAccount`를 사용하는 것이 좋습니다. 지원되지 않는 서비스와 함께 이러한 조건 키를 사용하면 의도하지 않은 권한 부여 결과가 발생할 수 있습니다. 키를 지원하는 서비스 목록을 보려면 [AWS 글로벌 조건 컨텍스트 키](reference_policies_condition-keys.md) 단원을 참조하세요. 더 광범위한 서비스에 제어를 적용해야 하는 경우 `aws:SourceVpce` 대신 `aws:SourceVpc`를 사용하는 방법을 고려해 보세요.

## ID 경계
<a name="access_policies_data-perimeters-identity"></a>

ID 경계는 신뢰할 수 있는 ID만 리소스에 액세스하고 네트워크에서는 신뢰할 수 있는 ID만 허용하는 일련의 세밀한 예방적 액세스 제어입니다. 신뢰할 수 있는 ID에는 일반적으로 사용자의 AWS 계정 및 사용자를 대신하는 AWS 서비스의 보안 주체(역할 또는 사용자)가 포함됩니다. 다른 모든 ID는 신뢰할 수 없는 것으로 간주되며 명시적인 예외가 부여되지 않는 한 ID 경계에 의해 차단됩니다.

다음과 같은 전역 조건 키는 신뢰할 수 있는 ID에 대한 정의를 기준으로 ID 경계 제어를 적용하는 데 도움이 됩니다. 리소스 제어 정책에서 이러한 키를 사용하여 리소스에 대한 액세스를 제한하거나 [VPC 엔드포인트 정책](https://docs.aws.amazon.com//vpc/latest/privatelink/vpc-endpoints-access.html)에서 네트워크에 대한 액세스를 제한할 수 있습니다.

### 사용자가 소유한 ID
<a name="data-perimeters-identity-owned-by-you"></a>

다음과 같은 조건 키를 사용하여 AWS 계정에서 생성하고 관리하는 IAM 보안 주체를 정의할 수 있습니다.
+ [aws:PrincipalOrgID](reference_policies_condition-keys.md#condition-keys-principalorgid)-이 조건 키를 사용하여 요청하는 IAM 보안 주체가 AWS Organizations의 지정된 조직에 속하도록 할 수 있습니다.
+ [aws:PrincipalOrgPaths](reference_policies_condition-keys.md#condition-keys-principalorgpaths) - 이 조건 키를 사용하여 요청하는 IAM 사용자, IAM 역할, AWS STS페더레이션 사용자 보안 주체, SAML 페더레이션 보안 주체, OIDC 페더레이션 보안 주체 또는 AWS 계정 루트 사용자가 AWS Organizations의 지정된 조직 단위(OU)에 속하도록 할 수 있습니다.
+ [aws:PrincipalAccount](reference_policies_condition-keys.md#condition-keys-principalaccount)-이 조건 키를 사용하여 정책에서 지정한 보안 주체 계정만 리소스에 액세스하도록 할 수 있습니다.

### 사용자를 대신하여 작동하는 AWS 서비스의 ID
<a name="data-perimeters-identity-owned-by-service"></a>

다음과 같은 조건 키를 사용하여 AWS 서비스가 사용자 대신 작업할 경우 고유한 ID를 사용하여 리소스에 액세스하도록 허용할 수 있습니다.
+ [aws:PrincipalIsAWSService](reference_policies_condition-keys.md#condition-keys-principalisawsservice) 및 [aws:SourceOrgID](reference_policies_condition-keys.md#condition-keys-sourceorgid)(또는 [aws:SourceOrgPaths](reference_policies_condition-keys.md#condition-keys-sourceorgpaths) 및 [aws:SourceAccount](reference_policies_condition-keys.md#condition-keys-sourceaccount)) - 이 조건 키를 사용하여 [AWS 서비스 보안 주체](reference_policies_elements_principal.md#principal-services)가 리소스에 액세스할 때 지정된 조직, 조직 구성 단위 또는 AWS Organizations의 계정에 있는 리소스를 대신해서만 액세스하도록 할 수 있습니다.

자세한 내용은 [AWS에 데이터 경계 설정: 신뢰할 수 있는 ID만 회사 데이터에 액세스하도록 허용](https://aws.amazon.com/blogs/security/establishing-a-data-perimeter-on-aws-allow-only-trusted-identities-to-access-company-data/)을 참조하세요.

## 리소스 경계
<a name="access_policies_data-perimeters-resource"></a>

리소스 경계는 사용자 ID가 신뢰할 수 있는 리소스에만 액세스하고 네트워크에서 신뢰할 수 있는 리소스에만 액세스할 수 있는 일련의 대략적인 예방적 액세스 제어입니다. 신뢰할 수 있는 리소스에는 일반적으로 사용자의 AWS 계정 또는 사용자를 대신하는 AWS 서비스가 소유한 리소스가 포함됩니다.

다음과 같은 전역 조건 키는 신뢰할 수 있는 리소스에 대한 정의를 기준으로 리소스 경계 제어를 적용하는 데 도움이 됩니다. [서비스 제어 정책(SCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)에서 이러한 키를 사용하여 사용자의 ID로 액세스할 수 있는 리소스를 제한하거나 [VPC 엔드포인트 정책](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html)에서 네트워크를 통해 액세스할 수 있는 리소스를 제한할 수 있습니다.

### 내 소유의 리소스
<a name="data-perimeters-resource-owned-by-you"></a>

다음과 같은 조건 키를 사용하여 AWS에서 생성하고 관리하는 AWS 계정 리소스를 정의할 수 있습니다.
+ [aws:ResourceOrgID](reference_policies_condition-keys.md#condition-keys-resourceorgid)-이 조건 키를 사용하여 액세스 중인 리소스가 AWS Organizations의 지정된 조직에 속하도록 할 수 있습니다.
+ [aws:ResourceOrgPaths](reference_policies_condition-keys.md#condition-keys-resourceorgpaths)-이 조건 키를 사용하여 액세스 중인 리소스가 AWS Organizations의 지정된 조직 단위(OU)에 속하도록 할 수 있습니다.
+ [aws:ResourceAccount](reference_policies_condition-keys.md#condition-keys-resourceaccount) - 이 조건 키를 사용하여 액세스 중인 리소스가 지정된 AWS 계정에 속하도록 할 수 있습니다.

### 사용자를 대신하여 작동하는 AWS 서비스의 리소스
<a name="data-perimeters-resource-owned-by-service"></a>

경우에 따라 AWS가 소유한 리소스, 즉 사용자의 조직에 속하지 않고 보안 주체 또는 사용자를 대신하는 AWS 서비스가 액세스하는 리소스에 대한 액세스를 허용해야 할 수도 있습니다. 이러한 시나리오에 대한 자세한 내용은 [AWS에 데이터 경계 설정: 내 조직의 신뢰할 수 있는 리소스만 허용](https://aws.amazon.com/blogs/security/establishing-a-data-perimeter-on-aws-allow-only-trusted-resources-from-my-organization/)을 참조하세요.

## 네트워크 경계
<a name="access_policies_data-perimeters-network"></a>

네트워크 경계는 사용자 ID가 예상 네트워크에서만 리소스에 액세스하고 리소스는 예상 네트워크에서만 액세스할 수 있는 일련의 대략적인 예방적 액세스 제어입니다. 예상 네트워크에는 일반적으로 온프레미스 데이터 센터 및 Virtual Private Cloud(VPC) 그리고 사용자를 대신하는 AWS 서비스 네트워크가 포함됩니다.

다음과 같은 전역 조건 키는 예상 네트워크에 대한 정의를 기준으로 네트워크 경계 제어를 적용하는 데 도움이 됩니다. [서비스 제어 정책(SCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)에서 이러한 키를 사용하여 ID가 통신할 수 있는 네트워크를 제한하거나 [리소스 제어 정책(RCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html)에서 예상 네트워크에 대한 리소스 액세스를 제한할 수 있습니다.

### 사용자가 소유한 네트워크
<a name="data-perimeters-network-owned-by-you"></a>

다음과 같은 조건 키를 사용하여 직원 및 애플리케이션이 리소스(예: 회사 IP CIDR 범위 및 VPC)에 액세스하는 데 사용할 것으로 예상되는 네트워크를 정의할 수 있습니다.
+ [aws:SourceIp](reference_policies_condition-keys.md#condition-keys-sourceip)-이 조건 키를 사용하여 요청자의 IP 주소가 지정된 IP 범위 내에 있는지 확인할 수 있습니다.
+ [aws:SourceVpc](reference_policies_condition-keys.md#condition-keys-sourcevpc)-이 조건 키를 사용하여 요청이 통과하는 VPC 엔드포인트가 지정된 VPC에 속하는지 확인할 수 있습니다.
+ [aws:SourceVpce](reference_policies_condition-keys.md#condition-keys-sourcevpce)-이 조건 키를 사용하여 요청이 지정된 VPC 엔드포인트를 통과하도록 할 수 있습니다.
+ [aws:VpceAccount](reference_policies_condition-keys.md#condition-keys-vpceaccount) - 이 조건 키를 사용하면 지정된 AWS 계정이 소유한 VPC 엔드포인트를 요청이 이루어지도록 할 수 있습니다.
+ [aws:VpceOrgPaths](reference_policies_condition-keys.md#condition-keys-vpceorgpaths) - 이 조건 키를 사용하면 요청을 하는 IAM 보안 주체가 AWS Organizations의 지정된 조직 단위(OU)에 속하도록 할 수 있습니다.
+ [aws:VpceOrgID](reference_policies_condition-keys.md#condition-keys-vpceorgid) - 이 조건 키를 사용하면 AWS Organizations에 있는 지정된 조직의 계정이 소유한 VPC 엔드포인트를 통해 요청이 이루어지도록 할 수 있습니다.

`aws:VpceAccount`, `aws:VpceOrgPaths`, `aws:VpceOrgID`는 새 엔드포인트를 생성할 때 정책을 업데이트할 필요 없이 VPC 엔드포인트 사용량에 따라 자동으로 규모가 조정되는 네트워크 경계 제어를 구현하는 데 특히 유용합니다. 이러한 키를 지원하는 AWS 서비스 목록을 보려면 [AWS 글로벌 조건 컨텍스트 키](reference_policies_condition-keys.md) 단원을 참조하세요.

### 사용자를 대신하여 작동하는 AWS 서비스 네트워크
<a name="data-perimeters-network-owned-by-service"></a>

다음과 같은 조건 키를 사용하여 AWS 서비스가 사용자 대신 작업할 경우 네트워크에서 리소스에 액세스하도록 허용할 수 있습니다.
+ [aws:ViaAWSService](reference_policies_condition-keys.md#condition-keys-viaawsservice)-이 조건 키를 사용하여 AWS 서비스가 [전달 액세스 세션](access_forward_access_sessions.md)(FAS)를 통해 주체를 대신하여 요청을 보내도록 할 수 있습니다.
+ [aws:PrincipalIsAWSService](reference_policies_condition-keys.md#condition-keys-principalisawsservice)-이 조건 키를 사용하여 AWS 서비스가 [AWS 서비스 보안 주체](reference_policies_elements_principal.md#principal-services)를 통해 리소스에 액세스하도록 할 수 있습니다.

 네트워크 외부에서 해당 리소스에 액세스할 수 있도록 AWS 서비스에 액세스 권한을 부여해야 하는 추가 시나리오가 있습니다. 자세한 내용은 [AWS에 데이터 경계 설정: 예상 네트워크에서만 회사 데이터 액세스 허용](https://aws.amazon.com/blogs/security/establishing-a-data-perimeter-on-aws-allow-access-to-company-data-only-from-expected-networks/)을 참조하세요.

## 데이터 경계를 자세히 알아보기 위한 리소스
<a name="access_policies_data-perimeters-resources"></a>

다음 리소스는 AWS 전반의 데이터 경계를 자세히 알아보는 데 도움이 됩니다.
+ [AWS의 데이터 경계](https://aws.amazon.com/identity/data-perimeters-on-aws/)-데이터 경계와 그 이점 및 사용 사례에 대해 알아봅니다.
+  [블로그 게시물 시리즈: AWS에 데이터 경계 설정](https://aws.amazon.com/identity/data-perimeters-blog-post-series/)-이 블로그 게시물에서는 주요 보안 및 구현 고려 사항을 포함하여 대규모로 데이터 경계를 설정하는 방법에 대한 규범적 지침을 다룹니다.
+  [데이터 경계 정책 예제](https://github.com/aws-samples/data-perimeter-policy-examples/tree/ce06665ca8b2f07debee7bed5153c3be0f31c73c)-이 GitHub 리포지토리에는 AWS에서 데이터 경계를 구현하는 데 도움이 되는 몇 가지 일반적인 패턴을 다루는 예제 정책이 포함되어 있습니다.
+ [데이터 경계 도우미](https://github.com/aws-samples/data-perimeter-helper/tree/main?tab=readme-ov-file)-이 도구를 사용하면 [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) 로그의 액세스 활동을 분석하여 데이터 경계 제어의 영향을 설계하고 예측할 수 있습니다.

# IAM 엔터티의 권한 범위
<a name="access_policies_boundaries"></a>

에서는 IAM 엔터티(사용자 또는 역할)에 대한 *권한 경계*를 AWS지원합니다. 권한 경계는 관리형 정책을 사용하여 자격 증명 기반 정책을 통해 IAM 엔터티에 부여할 수 있는 최대 권한을 설정하는 고급 기능입니다. 엔터티의 권한 경계는 자격 증명 기반 정책 및 관련 권한 경계 모두에서 허용되는 작업만 수행하도록 허용합니다.

정책 유형에 대한 자세한 정보는 [정책 유형](access_policies.md#access_policy-types) 섹션을 참조하세요.

**중요**  
권한 경계 정책이 연결된 IAM 사용자 또는 역할에는 `Deny` 효과를 포함하는 `NotPrincipal` 정책 요소가 있는 리소스 기반 정책 문을 사용하지 않도록 합니다. `Deny` 효과를 포함하는 `NotPrincipal` 요소는 `NotPrincipal` 요소에 지정된 값에 관계없이 권한 경계 정책이 연결된 IAM 보안 주체를 항상 거부합니다. 이로 인해 원래 리소스에 액세스할 수 있는 일부 IAM 사용자 또는 역할이 해당 리소스에 더 이상 액세스할 수 없습니다. `NotPrincipal` 요소 대신 액세스를 제한하기 위해 [`ArnNotEquals`](reference_policies_elements_condition_operators.md#Conditions_ARN) 조건 연산자를 [`aws:PrincipalArn`](reference_policies_condition-keys.md#condition-keys-principalarn) 컨텍스트 키와 함께 사용하도록 리소스 기반 정책 문을 변경하는 것이 좋습니다. `NotPrincipal` 요소에 대한 자세한 내용은 [AWS JSON 정책 요소: NotPrincipal](reference_policies_elements_notprincipal.md) 섹션을 참조하세요.

AWS 관리형 정책 또는 고객 관리형 정책을 사용하여 IAM 엔터티(사용자 또는 역할) 경계를 설정할 수 있습니다. 이 정책은 사용자 또는 역할에 대해 최대 권한을 제한합니다.

예를 들어, `Shirley`라는 이름의 IAM 사용자는 Amazon S3, Amazon CloudWatch 및 Amazon EC2만 관리할 수 있어야 합니다. 이 규칙을 시행하려면 다은 정책을 사용하여 `Shirley` 사용자의 권한 경계를 설정합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:*",
                "cloudwatch:*",
                "ec2:*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

정책을 사용하여 사용자 권한 경계를 설정하면 이 정책은 사용자 권한을 제한하지만 자체적으로 권한을 제공하지 않습니다. 이 예제에서 정책은 `Shirley`의 최대 권한을 Amazon S3, CloudWatch 및 Amazon EC2의 모든 작업으로 설정합니다. Shirley가 작업을 허용하는 권한 정책이 있다고 해도 IAM을 포함한 다른 서비스에서는 이 작업을 절대 수행할 수 없습니다. 예를 들어 다음 정책을 `Shirley` 사용자에게 추가할 수 있습니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": "iam:CreateUser",
    "Resource": "*"
  }
}
```

------

이 정책은 IAM에서 사용자 생성을 허용합니다. 이 권한 정책을 `Shirley` 사용자에 연결하고 Shirley가 사용자를 생성하고자 할 경우 작업은 실패합니다. 그 이유는 권한 경계가 `iam:CreateUser` 작업을 허용하지 않기 때문입니다. 이 두 가지 정책을 감안할 때 Shirley는 AWS에서 작업을 수행할 권한이 없습니다. 다른 서비스(예: Amazon S3)에서 작업을 허용하려면 다른 권한 정책을 추가해야 합니다. 또는 권한 경계를 업데이트하여 그녀에게 IAM에서 사용자를 생성하도록 허용할 수도 있습니다.

## 경계가 있는 효과적인 권한 평가
<a name="access_policies_boundaries-eval-logic"></a>

IAM 엔터티(사용자 또는 역할)에 대한 권한 경계는 엔터티에 부여할 수 있는 최대 권한을 설정합니다. 사용자 또는 역할에 대한 효과적 권한을 변경할 수 있습니다. 사용자 또는 역할에 영향을 주는 모든 정책을 통해 부여되는 권한이 개체에 대한 유효 권한입니다. 계정 내에서 엔터티에 대한 권한은 자격 증명 기반 정책, 리소스 기반 정책, 권한 경계, AWS Organizations SCP 또는 세션 정책에 영향을 받을 수 있습니다. 다양한 유형의 정책에 대한 자세한 정보는 [AWS Identity and Access Management의 정책 및 권한](access_policies.md) 섹션을 참조하세요.

이러한 정책 유형 중 하나에서 작업에 대한 액세스가 명시적으로 거부된 경우 해당 요청이 거부됩니다. 여러 권한 유형에 의해 엔터티에 부여된 권한은 훨씬 더 복잡합니다. AWS의 정책 평가에 대한 자세한 정보는 [정책 평가 로직](reference_policies_evaluation-logic.md) 섹션을 참조하세요.

**자격 증명 기반 정책과 경계** - 자격 증명 기반 정책은 사용자, 사용자 그룹 또는 역할에 연결된 인라인 또는 관리형 정책입니다. 자격 증명 기반 정책은 엔터티에 권한을 부여하며, 권한 경계는 이러한 권한을 제한합니다. 유효 권한은 두 정책 유형의 교집합입니다. 이들 정책 중 하나에 포함된 명시적 거부는 허용을 재정의합니다.

![\[자격 증명 기반 정책 및 권한 경계 평가\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/permissions_boundary.png)


**리소스 기반 정책** - 리소스 기반 정책은 지정된 보안 주체가 정책이 연결된 리소스에 액세스하는 방식을 제어합니다.

*IAM 사용자를 위한 리소스 기반 정책*  
동일한 계정 내에서 IAM 사용자 ARN(AWS STS 페더레이션 사용자 보안 주체 세션이 아님)에게 권한을 부여하는 리소스 기반 정책은 ID 기반 정책 또는 권한 경계의 암시적 거부에 의해 제한되지 않습니다.  

![\[리소스 기반 정책, 권한 경계 및 자격 증명 기반 정책 평가\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/EffectivePermissions-rbp-boundary-id.png)


*IAM 역할에 대한 리소스 기반 정책 *  
**IAM 역할** - IAM 역할 ARN에 권한을 부여하는 리소스 기반 정책은 권한 경계 또는 세션 정책의 암시적 거부에 의해 제한됩니다.  
**IAM 역할 세션** - 동일한 계정 내에서 IAM 역할 세션 ARN에 권한을 부여하는 리소스 기반 정책은 수임된 역할 세션에 직접 권한을 부여합니다. 세션에 직접 부여된 사용 권한은 자격 증명 기반 정책, 권한 경계 또는 세션 정책의 암시적 거부에 의해 제한되지 않습니다. 역할을 맡고 요청을 할 때 요청을 수행하는 보안 주체는 역할 자체의 ARN이 아니라 IAM 역할 세션 ARN입니다.

**AWS STS 페더레이션 사용자 보안 주체 세션에 대한 리소스 기반 정책  
****AWS STS 페더레이션 사용자 보안 주체 세션 - AWS STS 페더레이션 사용자 보안 주체 세션은 [`GetFederationToken`](id_credentials_temp_request.md#api_getfederationtoken) 호출을 통해 생성된 세션입니다. 페더레이션 사용자가 요청을 할 때 요청을 수행하는 보안 주체는 페더레이션된 IAM 사용자의 ARN이 아니라 페더레이션 사용자 ARN입니다. 동일한 계정 내에서 페더레이션 사용자 ARN에게 권한을 부여하는 리소스 기반 정책은 세션에 직접 권한을 부여합니다. 세션에 직접 부여된 사용 권한은 자격 증명 기반 정책, 권한 경계 또는 세션 정책의 암시적 거부에 의해 제한되지 않습니다.  
하지만 리소스 기반 정책이 페더레이션한 IAM 사용자의 ARN에 권한을 부여하는 경우, 세션 중에 AWS STS 페더레이션 사용자 보안 주체가 요청한 요청은 권한 경계 또는 세션 정책의 암시적 거부에 의해 제한됩니다.

**AWS Organizations SCP** – SCP는 전체 AWS 계정 계정에 적용됩니다. SCP는 해당 계정 내 보안 주체가 보낸 모든 요청에 대한 권한을 제한합니다. IAM 엔터티(사용자 또는 역할)는 SCP, 권한 경계 및 자격 증명 기반 정책의 영향을 받는 요청을 수행할 수 있습니다. 이 경우, 세 정책 유형 모두에서 허용하는 경우에만 해당 요청이 허용됩니다. 유효 권한은 세 정책 유형 모두의 교집합입니다. 이러한 정책 중 하나에 포함된 명시적 거부는 허용을 재정의합니다.

![\[SCP, 권한 경계 및 자격 증명 기반 정책 평가\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/EffectivePermissions-scp-boundary-id.png)


AWS Organizations에서 [계정이 조직의 멤버인지 여부](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_details.html#orgs_view_account)를 알아볼 수 있습니다. 조직 멤버가 SCP의 영향을 받을 수 있습니다. AWS CLI 명령 또는 AWS API 작업을 사용하여 이 데이터를 보려면 AWS Organizations 엔터티에 대해 `organizations:DescribeOrganization` 작업 권한이 있어야 합니다. AWS Organizations 콘솔에서 작업을 수행할 추가 권한이 있어야 합니다. SCP가 특정 요청에 대한 액세스를 거부하는지 여부를 확인하거나 유효 권한을 변경하려면 AWS Organizations 관리자에게 문의하세요.

**세션 정책** - 세션 정책은 역할 또는 페더레이션 사용자에 대해 임시 세션을 프로그래밍 방식으로 생성할 때 파라미터로 전달하는 고급 정책입니다. 세션에 대한 권한은 세션을 생성하는 데 사용되는 IAM 엔터티(사용자 또는 역할)와 세션 정책에서 가져옵니다. 엔터티의 자격 증명 기반 정책 권한은 세션 정책과 권한 경계에 제한을 받습니다. 이 정책 유형 집합의 유효 권한은 세 정책 유형 모두의 교집합입니다. 이러한 정책 중 하나에 포함된 명시적 거부는 허용을 재정의합니다. 세션 정책에 대한 자세한 정보는 [세션 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)을 참조하세요.

![\[세션 정책, 권한 경계 및 자격 증명 기반 정책 평가\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/EffectivePermissions-session-boundary-id.png)


## 권한 경계를 사용하여 다른 사용자에게 책임 위임
<a name="access_policies_boundaries-delegate"></a>

권한 경계를 사용하여 사용자 생성과 같은 권한 관리 작업을 계정의 IAM 사용자에 위임할 수 있습니다. 이로써 권한의 특정 경계 내에서 다른 사용자가 작업을 대신 수행할 수 있는 권한이 부여됩니다.

예를 들어, María가 X-Company AWS 계정 관리자라고 가정하세요. Maria가 Zhang에게 사용자 생성 업무를 위임하고자 합니다. 하지만 Zhang이 다음 회사 규칙에 따라 사용자를 생성하는지 확신해야 합니다.
+ 사용자는 IAM을 사용하여 사용자, 그룹, 역할 또는 정책을 생성하고 관리할 수 없습니다.
+ 사용자의 Amazon S3 `logs` 버킷 액세스가 거부되고 사용자가 `i-1234567890abcdef0` Amazon EC2 인스턴스로 액세스할 수 없습니다.
+ 사용자는 사용자 자체 경계 정책을 제거할 수 없습니다.

이런 규칙을 시행하기 위해서는 María는 아래와 같은 세부 정보가 포함된 작업을 완료합니다.

1. María는 `XCompanyBoundaries` 관리형 정책을 생성하여 계정의 모든 새로운 사용자에 대한 권한 경계로서 사용할 수 있습니다.

1. María는 `DelegatedUserBoundary` 관리형 정책을 생성하여 Zhang에 대한 권한 경계로서 할당합니다. Maria는 관리자 사용자의 ARN을 기록하고 정책에서 사용하여 Zhang이 해당 ARN에 액세스하지 못하도록 합니다.

1. María는 `DelegatedUserPermissions` 관리형 정책을 생성하여 Zhang에 대한 권한 정책으로서 연결합니다.

1. María가 Zhang에서 그의 새로운 책임과 제한을 알려줍니다.

**작업 1:** María는 먼저 관리형 정책을 생성하여 새로운 사용자에 대한 경계를 정의해야 합니다. María는 Zhang이 사용자에게 필요한 권한 정책을 사용자에게 부여할 수 있도록 허용하지만 사용자를 제한하고자 합니다. 이렇게 하기 위해서는 마리아는 `XCompanyBoundaries`라는 다음 고객 관리형 정책을 생성합니다. 이 정책은 다음을 수행합니다.
+ 사용자에게 여러 서비스에 대한 전체 액세스 권한을 부여
+ IAM 콘솔에서 제한된 자체 관리 액세스 허용 즉, 콘솔에 로그인한 후 암호를 변경할 수 있습니다. 초기 암호를 설정할 수 없습니다. 이 작업을 허용하려면 `"*LoginProfile"` 작업을 `AllowManageOwnPasswordAndAccessKeys` 문에 추가합니다.
+ Amazon S3 로그 버킷 또는 `i-1234567890abcdef0` Amazon EC2 인스턴스로의 사용자 액세스 거부

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ServiceBoundaries",
            "Effect": "Allow",
            "Action": [
                "s3:*",
                "cloudwatch:*",
                "ec2:*",
                "dynamodb:*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowIAMConsoleForCredentials",
            "Effect": "Allow",
            "Action": [
                "iam:ListUsers",
                "iam:GetAccountPasswordPolicy"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowManageOwnPasswordAndAccessKeys",
            "Effect": "Allow",
            "Action": [
                "iam:*AccessKey*",
                "iam:ChangePassword",
                "iam:GetUser",
                "iam:*ServiceSpecificCredential*",
                "iam:*SigningCertificate*"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "DenyS3Logs",
            "Effect": "Deny",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::logs",
                "arn:aws:s3:::logs/*"
            ]
        },
        {
            "Sid": "DenyEC2Production",
            "Effect": "Deny",
            "Action": "ec2:*",
            "Resource": "arn:aws:ec2:*:*:instance/i-1234567890abcdef0"
        }
    ]
}
```

------

각 설명문은 다른 목적이 있습니다.

1. 이 정책의 `ServiceBoundaries` 설명문은 지정된 AWS 서비스에 대한 완전한 액세스를 허용합니다. 이런 서비스의 새로운 사용자 작업이 사용자에 연결된 권한 정책에 따라서만 제한된다는 의미입니다.

1. `AllowIAMConsoleForCredentials` 문에서 모든 IAM 사용자를 나열할 수 있는 액세스를 허용합니다. 이 액세스는 AWS Management Console의 **사용자** 페이지를 탐색하는 데 필요합니다. 또한 계정의 암호 요구 사항을 확인하도록 허용합니다. 이 액세스는 자신의 고유 암호를 변경할 때 필요합니다.

1. `AllowManageOwnPasswordAndAccessKeys` 문을 통해 사용자가 고유한 콘솔 암호와 프로그래밍 방식의 액세스 키만 관리할 수 있습니다. 이는 Zhang 또는 다른 관리자가 새로운 사용자에게 전체 IAM 액세스를 포함하는 권한 정책을 할당할 때 중요합니다. 이 경우, 해당 사용자가 자신 또는 다른 사용자의 권한을 변경할 수 있습니다. 이 설명문은 이런 상황을 방지할 수 있습니다.

1. `DenyS3Logs` 설명문은 `logs` 버킷 액세스를 명시적으로 거부합니다.

1. `DenyEC2Production` 설명문은 `i-1234567890abcdef0` 인스턴스 액세스를 명시적으로 거부합니다.

**작업 2:** María는 Zhang이 모든 X-Company 사용자를 생성하도록 허용하지만 `XCompanyBoundaries` 권한 경계를 통해서만 허용하고자 합니다. 마리아는 `DelegatedUserBoundary`라는 다음 고객 관리형 정책을 생성합니다. 이런 정책은 Zhang이 가질 수 있는 최대 권한을 정의합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CreateOrChangeOnlyWithBoundary",
            "Effect": "Allow",
            "Action": [
                "iam:AttachUserPolicy",
                "iam:CreateUser",
                "iam:DeleteUserPolicy",
                "iam:DetachUserPolicy",
                "iam:PutUserPermissionsBoundary",
                "iam:PutUserPolicy"
            ],
            "Resource": "*",
            "Condition": {
               "StringEquals": {
                 "iam:PermissionsBoundary": "arn:aws:iam::123456789012:policy/XCompanyBoundaries"
                }
            }
        },
        {
            "Sid": "CloudWatchAndOtherIAMTasks",
            "Effect": "Allow",
            "Action": [
              "cloudwatch:*",
              "iam:CreateAccessKey",
              "iam:CreateGroup",
              "iam:CreateLoginProfile",
              "iam:CreatePolicy",
              "iam:DeleteGroup",
              "iam:DeletePolicy",
              "iam:DeletePolicyVersion",
              "iam:DeleteUser",
              "iam:GetAccountPasswordPolicy",
              "iam:GetGroup",
              "iam:GetLoginProfile",
              "iam:GetPolicy",
              "iam:GetPolicyVersion",
              "iam:GetRolePolicy",
              "iam:GetUser",
              "iam:GetUserPolicy",
              "iam:ListAccessKeys",
              "iam:ListAttachedRolePolicies",
              "iam:ListAttachedUserPolicies",
              "iam:ListEntitiesForPolicy",
              "iam:ListGroups",
              "iam:ListGroupsForUser",
              "iam:ListMFADevices",
              "iam:ListPolicies",
              "iam:ListPolicyVersions",
              "iam:ListRolePolicies",
              "iam:ListSSHPublicKeys",
              "iam:ListServiceSpecificCredentials",
              "iam:ListSigningCertificates",
              "iam:ListUserPolicies",
              "iam:ListUsers",
              "iam:SetDefaultPolicyVersion",
              "iam:SimulateCustomPolicy",
              "iam:SimulatePrincipalPolicy",
              "iam:UpdateGroup",
              "iam:UpdateLoginProfile",
              "iam:UpdateUser"
            ],
            "NotResource": "arn:aws:iam::123456789012:user/Maria"
        },
        {
            "Sid": "NoBoundaryPolicyEdit",
            "Effect": "Deny",
            "Action": [
                "iam:CreatePolicyVersion",
                "iam:DeletePolicy",
                "iam:DeletePolicyVersion",
                "iam:SetDefaultPolicyVersion"
            ],
            "Resource": [
                "arn:aws:iam::123456789012:policy/XCompanyBoundaries",
                "arn:aws:iam::123456789012:policy/DelegatedUserBoundary"
            ]
        },
        {
            "Sid": "NoBoundaryUserDelete",
            "Effect": "Deny",
            "Action": "iam:DeleteUserPermissionsBoundary",
            "Resource": "*"
        }
    ]
}
```

------

각 설명문은 다른 목적이 있습니다.

1. `CreateOrChangeOnlyWithBoundary` 설명문은 Zhang이 IAM 사용자를 생성하도록 허용하지만 Zhang이 권한 경계를 설정할 때 `XCompanyBoundaries` 정책을 사용할 경우에만 가능합니다. 이 설명문은 또한 장이 기존 사용자에 대한 권한 경계를 설정하도록 허용하지만 장이 동일한 정책을 사용할 때만 가능합니다. 마지막으로, 이 설명문은 Zhang이 이 권한 경계 설정을 통해 사용자에 대한 권한 정책을 관리하도록 허용합니다.

1. `CloudWatchAndOtherIAMTasks` 설명문은 Zhang이 사용자, 그룹 및 정책 관리 작업을 완료하도록 허용합니다. 그는 `NotResource` 정책 요소에 나열되지 않은 IAM 사용자의 암호를 재설정하고 액세스 키를 생성할 수 있는 권한이 있습니다. 따라서 그는 사용자가 로그인 문제를 해결하도록 지원할 수 있습니다.

1. `NoBoundaryPolicyEdit` 설명문은 Zhang이 `XCompanyBoundaries` 정책을 업데이트할 수 있는 액세스를 거부합니다. 장은 자신 또는 다른 사용자에 대한 권한 경계를 설정하는 데 사용되는 어떤 정책도 변경할 수 없습니다.

1. `NoBoundaryUserDelete` 문에서는 Zhang이 자신 또는 다른 사용자에 대해 권한 경계를 삭제하기 위해 액세스할 때 이를 거부합니다.

그런 다음 María는 `Zhang` 사용자에 대한 [권한 경계로서](id_users_change-permissions.md#users_change_permissions-set-boundary-console) `DelegatedUserBoundary` 정책을 할당합니다.

**작업 3:** 권한 경계가 최대 권한을 제한하지만 자체 액세스를 허용하지 않기 때문에 Maria는 Zhang에 대한 권한 정책을 생성해야 합니다. 마리아는 `DelegatedUserPermissions`라는 다음 정책을 생성합니다. 이 정책은 정의된 경계 내에서 Zhang이 수행할 수 있는 작업을 정의합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "IAM",
            "Effect": "Allow",
            "Action": "iam:*",
            "Resource": "*"
        },
        {
            "Sid": "CloudWatchLimited",
            "Effect": "Allow",
            "Action": [
                "cloudwatch:GetDashboard",
                "cloudwatch:GetMetricData",
                "cloudwatch:ListDashboards",
                "cloudwatch:GetMetricStatistics",
                "cloudwatch:ListMetrics"
            ],
            "Resource": "*"
        },
        {
            "Sid": "S3BucketContents",
            "Effect": "Allow",
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::ZhangBucket"
        }
    ]
}
```

------

각 설명문은 다른 목적이 있습니다.

1. 정책의 `IAM` 설명문은 IAM에 대한 Zhang의 완전한 액세스를 허용합니다. 그러나, Zhang 권한 경계가 몇 가지 IAM 작업만 허용하기 때문에 Zhang의 효과적인 IAM 권한은 그의 권한 경계에 의해서만 제한됩니다.

1. `CloudWatchLimited` 설명문은 Zhang이 CloudWatch에서 5가지 작업을 수행할 수 있도록 허용합니다. Zhang 권한 경계는 CloudWatch의 모든 작업을 허용하기 때문에 그의 효과적인 CloudWatch 권한은 그의 권한 정책에 의해서만 제한됩니다.

1. `S3BucketContents` 설명문은 Zhang이 `ZhangBucket` Amazon S3 버킷을 나열할 수 있도록 허용합니다. 그러나, Zhang 권한 경계는 어떠한 Amazon S3 작업도 허용하지 않기 때문에 Zhang은 그의 권한 정책과 상관없이 어떠한 S3 작업도 수행할 수 없습니다.
**참고**  
Zhang의 정책을 통해 자신은 액세스할 수 없는 Amazon S3 리소스에 액세스할 수 있는 사용자를 생성할 수 있습니다. Maria는 이러한 관리 작업을 위임하여 Amazon S3에 대한 액세스 권한이 있는 Zhang을 효과적으로 신뢰합니다.

그러면 María는 `DelegatedUserPermissions` 정책을 `Zhang` 사용자에 대한 권한 정책으로서 연결합니다.

**작업 4:** María는 새로운 사용자를 생성하도록 Zhang에게 지침을 내립니다. María는 Zhang에게 새로운 사용자가 원하는 모든 권한을 통해 새로운 사용자를 생성할 수 있지만 `XCompanyBoundaries` 정책을 권한 경계로서 할당해야 한다고 말합니다.

Zhang은 다음 작업을 완료합니다.

1. Zhang은 AWS Management Console에서 사용자를 생성합니다. 그는 사용자 이름 `Nikhil`를 입력하고 사용자에 대한 콘솔 액세스를 가능하게 합니다. 위의 정책에서는 사용자가 IAM 콘솔에 로그인한 후에만 암호를 변경할 수 있으므로 **암호 재설정 필요** 옆의 확인란 선택을 취소합니다.

1. **권한 설정** 페이지에서 Zhang은 Nikhil가 업무를 할 수 있도록 허용하는 **IAMFullAccess** 및 **AmazonS3ReadOnlyAccess** 권한 정책을 선택합니다.

1. Zhang은 María의 지침을 잊고 **Set permissions boundary(권한 경계 설정)** 섹션을 넘깁니다.

1. Zhang은 사용자 세부 정보를 검토하고 **사용자 생성**을 선택합니다.

   작업은 실패하고 액세스는 거부됩니다. Zhang의 `DelegatedUserBoundary` 권한 경계는 그가 생성하는 어떠한 사용자도`XCompanyBoundaries` 정책을 권한 경계로서 가지고 있어야 합니다.

1. Zhang은 이전 페이지로 돌아갑니다. 그는 **권한 경계 설정** 페이지에서 `XCompanyBoundaries` 정책을 선택합니다.

1. Zhang은 사용자 세부 정보를 검토하고 **사용자 생성**을 선택합니다.

   사용자가 생성됩니다.

Nikhil이 로그인할 경우, 그는 권한 경계에 의해 거부된 작업 이외의 IAM 및 Amazon S3에 액세스할 수 있습니다. 예를 들어, 그는 IAM에 자신의 암호를 변경할 수 있지만 다른 사용자를 생성하거나 그의 정책을 편집할 수 없습니다. Nikhil은 Amazon S3에 대한 읽기 전용 액세스 권한이 있습니다.

누군가가 `logs` 버킷에 Nikhil이 버킷에 객체를 넣을 수 있도록 허용하는 리소스 기반 정책을 추가하더라도 그는 여전히 이 버킷에 액세스할 수 없습니다 `logs` 버킷에 대한 작업이 권한 경계에 의해 명시적으로 거부되었기 때문입니다. 정책 유형에 포함된 명시적 거부로 인해 요청이 거부됩니다. 하지만 Secrets Manager 암호에 연결된 리소스 기반 정책이 Nikhil이 `secretsmanager:GetSecretValue` 작업을 수행하도록 허용하는 경우 Nikhil은 암호를 불러와서 암호화를 해제할 수 있습니다. 그 이유는 Secrets Manager 작업이 Nikhill의 권한 경계에 의해 명시적으로 거부되지 않았고 권한 경계에서의 묵시적 거부가 리소스 기반 정책을 제한하지 않기 때문입니다.

# 자격 증명 기반 정책 및 리소스 기반 정책
<a name="access_policies_identity-vs-resource"></a>

정책은 자격 증명 또는 리소스에 연결될 때 해당 권한을 정의하는 AWS의 객체입니다. 리소스에 대한 액세스를 제한하는 권한 정책을 생성할 때 *자격 증명 기반 정책* 또는 *리소스 기반 정책*을 선택할 수 있습니다.

**자격 증명 기반 정책**은 IAM 사용자, 그룹 또는 역할에 연결됩니다. 이러한 정책으로 자격 증명이 수행할 수 있는 작업(권한)을 지정할 수 있습니다. 예를 들어, John이라는 IAM 사용자에게 Amazon EC2 `RunInstances` 작업을 수행하도록 허용하는 정책을 연결할 수 있습니다. 이 정책은 John이 `MyCompany`이라는 Amazon DynamoDB 테이블에서 항목을 가져오도록 허용되었다는 내용도 명시할 수 있습니다. 또한 John에게 자신의 IAM 보안 자격 증명을 관리하도록 허용할 수도 있습니다. 자격 증명 기반 정책은 [관리형 권한 또는 인라인 권한](access_policies_managed-vs-inline.md)이 될 수 있습니다.

**리소스 기반 정책**은 리소스에 연결됩니다. 예를 들어, 리소스 기반 정책을 Amazon S3 버킷, Amazon SQS 대기열, VPC 엔드포인트, AWS Key Management Service 암호화 키, Amazon DynamoDB 테이블 및 스트림에 연결할 수 있습니다. 리소스 기반 정책을 지원하는 서비스 목록은 [AWS IAM으로 작업하는 서비스](reference_aws-services-that-work-with-iam.md) 섹션을 참조하세요.

리소스 기반 정책을 사용하면 이러한 리소스에 액세스할 수 있는 대상 및 해당 대상이 리소스에서 수행할 수 있는 작업을 지정할 수 있습니다. 해당 신뢰 영역(신뢰할 수 있는 조직 또는 계정) 외의 계정 내 보안 주체가 역할을 수임하는 권한이 있는지 자세히 알고 싶다면, [IAM Access Analyzer란 무엇일까요?](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html)를 참조하세요. 리소스 기반 정책은 인라인만 있고 관리형은 없습니다.

**참고**  
*리소스 기반* 정책은 *리소스 수준* 권한과 다릅니다. 이 주제에서 설명한 바와 같이 리소스 기반 정책을 리소스에 직접 연결할 수 있습니다. 리소스 수준 권한이란 [ARN](reference_identifiers.md#identifiers-arns)을 사용하여 정책에서 개별 리소스를 지정하는 기능을 말합니다. 리소스 기반 정책은 일부 AWS 서비스에서만 지원됩니다. 리소스 기반 정책 및 리소스 수준 권한을 지원하는 서비스 목록은 [AWS IAM으로 작업하는 서비스](reference_aws-services-that-work-with-iam.md) 섹션을 참조하세요.

자격 증명 기반 정책 및 리소스 기반 정책이 동일한 계정 내에서 상호 작용하는 방법을 알아보려면 [단일 계정 내 요청에 대한 정책 평가](reference_policies_evaluation-logic_policy-eval-basics.md) 섹션을 참조하세요.

정책이 계정 간에 상호 작용하는 방식을 알아보려면 [Cross-account policy evaluation logic](reference_policies_evaluation-logic-cross-account.md) 섹션을 참조하세요.

이러한 개념에 대한 이해도를 높이려면 다음 그림 섹션을 참조하세요. `123456789012` 계정의 관리자는 *자격 증명 기반 정책*을 `John`, `Carlos` 및 `Mary` 사용자에게 연결합니다. 이 정책의 일부 작업은 특정 리소스에서 수행할 수 있습니다. 예를 들어 사용자 `John`는 `Resource X`에 대해 일부 작업을 수행할 수 있습니다. 이는 자격 증명 기반 정책에서 *리소스 수준 권한*입니다. 관리자는 또한 *리소스 기반 정책*을 `Resource X`, `Resource Y` 및 `Resource Z`에 추가했습니다. 리소스 기반 정책을 통해 해당 리소스에 액세스할 수 있는 사용자를 지정할 수 있습니다. 예를 들어 `Resource X`의 리소스 기반 정책은 `John` 및 `Mary` 사용자 목록을 표시하고 리소스에 대한 읽기 권한을 허용합니다.

![\[자격 증명 기반 정책과 리소스 기반 정책\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/Types_of_Permissions.diagram.png)


`123456789012` 계정의 예를 사용하면 다음 사용자가 나열된 작업을 수행할 수 있습니다.
+ **John** - John은 `Resource X`에서 나열 및 읽기 작업을 수행할 수 있습니다. John은 사용자에 대한 자격 증명 기반 정책과 `Resource X`에 대한 리소스 기반 정책을 통해 이 권한을 부여 받습니다.
+ **Carlos** - Carlos는 `Resource Y`에서 나열, 읽기 및 쓰기 작업을 수행할 수 있지만 `Resource Z`에 대한 액세스는 거부됩니다. Carlos의 자격 증명 기반 정책을 통해 `Resource Y`에서 나열 및 읽기 작업을 수행할 수 있습니다. `Resource Y` 리소스 기반 정책을 사용하면 Carlos에게 쓰기 권한도 허용됩니다. 그러나 자격 증명 기반 정책을 통해 `Resource Z`에 대한 액세스가 허용되더라도 `Resource Z` 리소스 기반 정책으로 인해 해당 액세스가 거부됩니다. 명시적 `Deny`는 `Allow`를 재정의하므로 Carlos의 `Resource Z`에 대한 액세스가 거부됩니다. 자세한 내용은 [정책 평가 로직](reference_policies_evaluation-logic.md) 섹션을 참조하세요.
+ **Mary** - Mary는 `Resource X`, `Resource Y` 및 `Resource Z`에 대해 나열, 읽기 및 쓰기 작업을 수행할 수 있습니다. Mary의 자격 증명 기반 정책을 통해 리소스 기반 정책보다 더 많은 리소스에 대해 더 많은 작업을 수행할 수 있지만 액세스를 거부하는 정책은 없습니다.
+ **Zhang** - Zhang에게는 `Resource Z`에 대한 모든 액세스 권한이 있습니다. Zhang은 자격 증명 기반 정책이 없지만 `Resource Z` 리소스 기반 정책을 사용하면 리소스에 대한 전체 액세스 권한을 가질 수 있습니다. Zhang은 `Resource Y`에서 나열 및 읽기 작업을 수행할 수도 있습니다.

자격 증명 기반 정책과 리소스 기반 정책은 모두 권한 정책이며 함께 평가됩니다. 권한 정책만 적용되는 요청의 경우 AWS는 먼저 모든 정책에서 `Deny`를 확인합니다. 이 정책이 존재하는 경우 요청이 거부됩니다. 그런 다음 AWS는 각 `Allow`를 확인합니다. 적어도 하나의 정책 설명이 요청의 작업을 허용하는 경우 요청이 허용됩니다. `Allow`가 자격 증명 기반 정책인지 리소스 기반 정책인지는 중요하지 않습니다.

**중요**  
이 논리는 요청이 하나의 AWS 계정에서 이루어진 경우에만 적용됩니다. 하나의 계정에서 다른 계정으로 요청한 경우 `Account A`의 요청자는 `Account B`의 리소스에 대한 요청을 허용하는 자격 증명 기반 정책을 가지고 있어야 합니다. 또한 `Account B`의 리소스 기반 정책은 `Account A`의 요청자가 리소스에 액세스할 수 있도록 허용해야 합니다. 두 계정 모두에 작업을 허용하는 정책이 있어야 합니다. 그렇지 않으면 요청이 실패합니다. 크로스 계정 액세스에 대해 리소스 기반 정책을 사용하는 방법에 대한 자세한 정보는 [IAM의 크로스 계정 리소스 액세스](access_policies-cross-account-resource-access.md) 섹션을 참조하세요.

특정 권한이 있는 사용자는 해당 권한에 연결된 권한 정책이 있는 리소스를 요청할 수 있습니다. 이 경우 AWS는 해당 리소스에 대한 액세스 권한을 부여할지 여부를 결정할 때 두 권한 세트를 모두 평가합니다. 정책이 평가되는 방식에 대한 자세한 정보는 [정책 평가 로직](reference_policies_evaluation-logic.md) 섹션을 참조하세요.

**참고**  
Amazon S3는 자격 증명 기반 정책 및 리소스 기반 정책(*버킷 정책이라고 함*)을 지원합니다. 또한 Amazon S3는 IAM 정책 및 권한과 무관한, *액세스 제어 목록(ACL)*으로 알려진 권한 메커니즘을 지원합니다. IAM 정책을 Amazon S3 ACL과 함께 사용할 수 있습니다. 자세한 내용은 *Amazon Simple Storage Service 사용 설명서*의 [액세스 제어](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingAuthAccess.html)를 참조하세요.

# 정책을 사용하여 AWS 리소스에 대한 액세스 제어
<a name="access_controlling"></a>

정책을 사용하여 IAM 또는 모든 AWS 내 리소스에 대한 액세스를 제어할 수 있습니다.

[정책](access_policies.md)을 사용하여 AWS에서 액세스를 제어하려면 AWS이 액세스를 부여하는 방식을 이해해야 합니다. AWS는 *리소스* 모음으로 구성되어 있습니다. IAM 사용자는 리소스입니다. Amazon S3 버킷은 리소스입니다. AWS API, AWS CLI 또는 AWS Management Console을 사용하여 작업을 수행할 경우(예: 사용자 생성) 해당 작업에 대한 *요청*을 전송합니다. 이 요청은 작업, 리소스, *보안 주체 엔터티*(사용자 또는 역할), *보안 주체 계정* 및 필요한 요청 정보를 지정합니다. 이러한 모든 정보는 *콘텍스트*를 제공합니다.

그런 다음 AWS은 사용자(보안 주체)가 지정된 리소스에 대해 지정된 작업을 수행할 수 있도록 인증(로그인) 및 권한 부여(권한 있음)되었는지 확인합니다. 권한을 부여하는 동안 AWS는 요청 콘텍스트에 적용되는 모든 정책을 확인합니다. 대부분의 정책은 AWS에 [JSON 문서](access_policies.md#access_policies-json)로 저장되며 보안 주체 엔터티에 대한 권한을 지정합니다. 정책 유형 및 활용에 대한 자세한 정보는 [AWS Identity and Access Management의 정책 및 권한](access_policies.md) 섹션을 참조하세요.

AWS는 정책이 요청의 각 부분을 허용한 경우에만 요청에 권한을 부여합니다. 이러한 프로세스의 다이어그램을 보려면 [IAM 작동 방식](intro-structure.md) 섹션을 참조하세요. AWS가 요청이 허용되는지 여부를 결정하는 방법에 대한 자세한 내용은 [정책 평가 로직](reference_policies_evaluation-logic.md) 섹션을 참조하세요.

IAM 정책을 생성하면 다음에 대한 액세스를 제어할 수 있습니다.
+ **[보안 주체](#access_controlling-principals)** - 요청하는 사용자([보안 주체](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html?icmpid=docs_homepage_addtlrcs#principal))가 수행하도록 허용된 사항을 제어합니다.
+ **[IAM ID](#access_controlling-identities)** - 어떤 IAM ID(IAM 그룹, 사용자 및 역할)에 액세스할 수 있는지 및 그 방법을 제어합니다.
+ **[IAM 정책](#access_controlling-policies)** - 고객 관리형 정책을 생성, 편집 및 삭제할 수 있는 대상과 모든 관리형 정책을 연결하고 분리할 수 있는 대상을 제어합니다.
+ **[AWS 리소스](#access_controlling-resources)** - 자격 증명 기반 정책 또는 리소스 기반 정책을 사용하여 리소스에 액세스할 수 있는 대상을 제어합니다.
+ **[AWS 계정](#access_controlling-principal-accounts)** - 요청이 특정 계정의 멤버에만 허용되는지 여부를 제어합니다.

이러한 정책을 사용하여 AWS 리소스에 액세스할 수 있는 대상과 액세스한 대상이 리소스에서 수행할 수 있는 작업을 지정할 수 있습니다. 모든 IAM 사용자는 처음에 권한이 없습니다. 다시 말해, 기본적으로 사용자는 아무 작업도 할 수 없으며, 심지어 자신의 액세스 키를 볼 수도 없습니다. 사용자에게 작업을 수행할 권한을 부여하기 위해 사용자에게 권한을 추가(즉 사용자에게 정책 연결)하거나 의도한 권한을 보유한 사용자 그룹에 사용자를 추가할 수 있습니다.

예를 들어, 자신의 액세스 키를 나열할 사용자 권한을 부여할 수 있습니다. 해당 권한을 확장하여 각 사용자가 자신의 키를 생성, 업데이트 및 삭제하도록 할 수도 있습니다.

사용자 그룹에 권한을 부여하면 사용자 그룹에 속한 모든 사용자가 해당 권한을 얻습니다. 예를 들어, Administrators 사용자그룹에 AWS 계정 리소스에서 IAM 작업을 수행할 권한을 부여할 수 있습니다. 또 다른 예로 Managers 사용자 그룹에 AWS 계정의 Amazon EC2 인스턴스를 설명할 권한을 부여할 수 있습니다.

사용자, IAM 그룹 및 역할에 기본 권한을 위임하는 방법에 대한 자세한 정보는 [IAM 리소스에 액세스하는 데 필요한 권한](access_permissions-required.md) 섹션을 참조하세요. 기본 권한을 보여주는 정책의 예를 더 보려면 [IAM 리소스를 관리하기 위한 정책의 예](id_credentials_delegate-permissions_examples.md) 섹션을 참조하세요.

## 보안 주체에 대한 액세스 제어
<a name="access_controlling-principals"></a>

정책을 사용하여 요청하는 사용자(보안 주체)가 수행하도록 허용된 사항을 제어할 수 있습니다. 이렇게 하려면 자격 증명 기반 정책을 해당 사용자의 자격 증명(사용자, 사용자 그룹 또는 역할)에 연결해야 합니다. 또한 [권한 경계](access_policies_boundaries.md)를 사용하여 엔터티(사용자 또는 역할)에 부여할 수 있는 최대 권한을 설정할 수 있습니다.

예를 들어 사용자 Zhang Wei의 CloudWatch, Amazon DynamoDB, Amazon EC2 및 Amazon S3에 대한 완전한 액세스를 허용하고자 한다고 가정해 봅시다. 다른 사용자에 대해 권한 세트 한 개가 필요한 경우 나중에 분리할 수 있도록 두 가지 다른 정책을 생성할 수 있습니다. 또는 모든 권한을 단일 정책으로 모은 다음 이 정책을 이름이 Zhang Wei인 IAM 사용자에게 연결할 수 있습니다. 정책을 Zhang Wei가 속한 사용자 그룹 또는 Zhang Wei가 수임하는 역할에 연결할 수도 있습니다. 그 결과, Zhang이 S3 버킷의 내용을 볼 경우 해당 요청이 허용됩니다. 새 IAM 사용자를 생성하려고 시도할 경우에는 권한이 없으므로 요청이 거부됩니다.

Zhang의 권한 경계를 사용하여 Zhang에게 `amzn-s3-demo-bucket1` S3 버킷으로의 액세스 권한을 부여해야 합니다. 이렇게 하기 위해서는 Zhang에게 부여하고자 하는 *최대* 권한을 결정합니다. 이런 경우, Zhang이 그의 권한 정책으로 하는 일을 제어합니다. 여기서는 Zhang이 기밀 버킷으로 액세스하지만 않도록 신경 씁니다. 따라서 다음 정책을 사용하여 Zhang의 경계를 정의하여 Amazon S3에 대한 모든 AWS 작업 및 몇 가지 기타 서비스를 허용하지만 `amzn-s3-demo-bucket1` S3 버킷으로의 액세스는 거부합니다. 권한 경계가 모든 IAM 작업을 허용하지 않기 때문에 권한 경계는 Zhang이 그의(또는 어떠한 사람의) 경계를 삭제하지 못하도록 방지합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "PermissionsBoundarySomeServices",
            "Effect": "Allow",
            "Action": [
                "cloudwatch:*",
                "dynamodb:*",
                "ec2:*",
                "s3:*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "PermissionsBoundaryNoConfidentialBucket",
            "Effect": "Deny",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket1",
                "arn:aws:s3:::amzn-s3-demo-bucket1/*"
            ]
        }
    ]
}
```

------

이 사용자에 대한 권한 경계처럼 정책을 할당할 경우 어떠한 권한도 허용하지 않는다는 점을 유의하세요. 권한 경계는 자격 증명 기반 정책에서 IAM 엔터티에 부여할 수 있는 최대 권한을 설정합니다. 권한 경계에 대한 자세한 정보는 [IAM 엔터티의 권한 범위](access_policies_boundaries.md) 섹션을 참조하세요.

이전 절차에 대한 자세한 정보는 이러한 리소스 섹션을 참조하세요.
+ 보안 주체에 연결할 수 있는 IAM 정책의 생성에 대해 자세히 알아보려면 [고객 관리형 정책으로 사용자 지정 IAM 권한 정의](access_policies_create.md) 섹션을 참조하세요.
+ 보안 주체에 IAM 정책을 연결하는 방법에 대해 자세히 알아보려면 [IAM 자격 증명 권한 추가 및 제거](access_policies_manage-attach-detach.md) 섹션을 참조하세요.
+ EC2에 전체 액세스 권한을 부여하는 예시 정책을 보려면 [Amazon EC2: 특정 리전 내에서의 모든 EC2 액세스를 프로그래밍 방식으로 콘솔에서 허용](reference_policies_examples_ec2_region.md) 섹션을 참조하세요.
+ S3 버킷에 읽기 전용 액세스를 허용하려면 [Amazon S3: S3 버킷에 있는 객체에 대한 읽기 및 쓰기 액세스 권한을 프로그래밍 방식으로 콘솔에서 허용](reference_policies_examples_s3_rw-bucket-console.md) 예시 정책의 첫 번째 두 설명문을 사용하세요.
+ 사용자에게 콘솔 암호, 프로그래밍 방식의 액세스 키, MFA 디바이스 등 사용자의 보안 인증을 설정하도록 허용하는 정책 예제는 [AWS: MFA 인증 IAM 사용자가 보안 인증 페이지에서 자신의 보안 인증을 관리할 수 있도록 허용](reference_policies_examples_aws_my-sec-creds-self-manage.md) 섹션을 참조하세요.

## 자격 증명에 대한 액세스 제어
<a name="access_controlling-identities"></a>

IAM 정책에서 사용자 그룹 전반의 모든 사용자에게 연결하는 정책을 생성함으로써 사용자가 자격 증명에 대해 수행할 수 있는 사항을 제어할 수 있습니다. 이렇게 하려면 자격 증명에 수행할 수 있는 사항 또는 자격 증명에 액세스할 수 있는 대상을 제어하는 정책을 생성합니다.

예를 들어, 이름이 **AllUsers**인 사용자 그룹을 생성한 다음 해당 사용자 그룹을 모든 사용자에 연결할 수 있습니다. 사용자 그룹을 생성할 때 이전 섹션에서 설명한 대로 모든 사용자에게 보안 인증을 설정하기 위한 액세스 권한을 부여할 수 있습니다. 그런 다음 정책 조건에 사용자 이름이 포함되지 않은 경우 사용자 그룹을 변경하는 액세스를 거부하는 정책을 생성할 수 있습니다. 그러나 정책에서 이 부분은 나열된 사용자를 제외한 모든 사용자의 액세스만 거부합니다. 또한 사용자 그룹 사용자 모두에 대한 모든 사용자 그룹 관리 작업을 허용하는 권한을 포함해야 합니다. 마지막으로, 모든 사용자에게 적용되도록 이 정책을 사용자 그룹에 연결합니다. 그 결과, 정책에 지정되지 않은 사용자가 사용자 그룹을 변경하려고 하면 해당 요청이 거부됩니다.

**시각적 편집기를 사용하여 이 정책을 생성하려면**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 왼쪽의 탐색 창에서 **정책**을 선택합니다.

   **정책**을 처음으로 선택하는 경우 **관리형 정책 소개** 페이지가 나타납니다. **시작**을 선택합니다.

1. **정책 생성**을 선택합니다.

1. **정책 편집기** 섹션에서 **시각적** 편집기 옵션을 선택합니다.

1. **서비스 선택**에서 **IAM**을 선택합니다.

1. **허용된 작업**에서 검색 상자에 **group**을 입력합니다. 시각적 편집기에 `group`이라는 단어가 포함된 모든 IAM 작업이 표시됩니다. 모든 확인란을 선택하세요.

1. **리소스**를 선택하여 정책에 대한 리소스를 지정합니다. 선택한 작업에 따라 **group**과 **user** 리소스 유형이 표시됩니다.
   + **그룹** - **ARN 추가**를 선택합니다. **리소스 내부**의 경우 **모든 계정** 옵션을 선택합니다. **경로를 포함하는 모든 그룹 이름** 확인란을 선택한 다음, 사용자 그룹 이름 **AllUsers**를 입력하세요. 그런 다음 **ARN 추가**를 선택합니다.
   + **사용자**-**이 계정에서 모두** 옆에 있는 확인란을 선택합니다.

   선택한 작업 중 하나인 `ListGroups`는 특정 리소스 사용을 지원하지 않습니다. 해당 작업에서 **All resources(모든 리소스)**를 선택할 필요가 없습니다. 정책을 저장하거나 **JSON** 편집기에서 정책을 보는 경우 이 모든 리소스에 대해 IAM이 작업 권한을 부여하는 새 권한 블록을 자동으로 생성하는 것을 확인할 수 있습니다.

1. 다른 권한 블록을 추가하려면 **더 많은 권한 추가**를 선택합니다.

1. **서비스 선택**을 선택한 다음 **IAM**을 선택합니다.

1. **허용된 작업**을 선택한 다음 **권한 거부로 전환**을 선택합니다. 이렇게 하면 권한을 거부할 때 전체 블록이 사용됩니다.

1. 검색 상자에 **group**을 입력합니다. 시각적 편집기에 `group`이라는 단어가 포함된 모든 IAM 작업이 표시됩니다. 다음 작업 옆에 있는 확인란을 선택합니다.
   + **CreateGroup**
   + **DeleteGroup**
   + **RemoveUserFromGroup**
   + **AttachGroupPolicy**
   + **DeleteGroupPolicy**
   + **DetachGroupPolicy**
   + **PutGroupPolicy**
   + **UpdateGroup**

1. **리소스**를 선택하여 정책에 대한 리소스를 지정합니다. 선택한 작업에 따라 **group** 리소스 유형이 표시됩니다. **ARN 추가**를 선택합니다. **리소스 내부**의 경우 **모든 계정** 옵션을 선택합니다. **그룹 이름과 경로**에서 사용자 그룹 이름 **AllUsers**를 입력합니다. 그런 다음 **ARN 추가**를 선택합니다.

1. **요청 조건 - *선택 사항***을 선택한 다음, **다른 조건 추가**를 선택합니다. 다음 값을 사용하여 양식 입력을 완료합니다.
   + **조건 키** — **aws:username** 선택
   + **한정어** - **기본값**을 선택합니다.
   + **연산자** - **StringNotEquals**를 선택합니다.
   + **값** - **srodriguez** 를 입력한 다음 **추가**를 선택합니다. **mjackson**를 입력한 다음, **추가**를 선택하여 다른 값을 추가합니다. **adesai**를 입력한 다음 **조건 추가**를 선택합니다.

   이 조건은 호출한 사용자가 목록에 포함되지 않은 경우 지정된 사용자 그룹 관리 작업 액세스가 거부됩니다. 이는 명시적으로 권한을 거부하므로 해당 사용자가 작업을 호출할 수 있도록 허용된 이전 블록을 무시합니다. 목록에 있는 사용자는 액세스가 거부되지 않으며 첫 번째 권한 블록의 권한이 부여되므로 사용자 그룹을 전체적으로 관리할 수 있습니다.

1. 마쳤으면 [**Next**]를 선택합니다.
**참고**  
언제든지 **시각적** 편집기 옵션과 **JSON** 편집기 옵션을 서로 전환할 수 있습니다. 그러나 변경을 적용하거나 **시각적** 편집기 옵션에서 **다음**을 선택한 경우 IAM은 시각적 편집기에 최적화되도록 정책을 재구성할 수 있습니다. 자세한 내용은 [정책 재구성](troubleshoot_policies.md#troubleshoot_viseditor-restructure) 섹션을 참조하세요.

1. **검토 및 생성** 페이지에서 **정책 이름**에 **LimitAllUserGroupManagement**를 입력합니다. **설명**에 **Allows all users read-only access to a specific user group, and allows only specific users access to make changes to the user group**을 입력합니다. **이 정책에 정의된 권한**을 검토하여 의도한 권한을 부여했는지 확인합니다. 그런 다음 **정책 생성**을 선택하여 새 정책을 저장합니다.

1. 사용자 그룹에 정책을 연결합니다. 자세한 내용은 [IAM 자격 증명 권한 추가 및 제거](access_policies_manage-attach-detach.md) 섹션을 참조하세요.

또는 이러한 예시 JSON 정책 문서를 사용하여 동일한 정책을 생성할 수 있습니다. 이 JSON 정책을 보려면 [IAM: 특정 IAM 사용자가 프로그래밍 방식으로, 그리고 콘솔에서 그룹을 관리하도록 허용](reference_policies_examples_iam_users-manage-group.md) 섹션을 참조하세요. JSON 문서를 사용하여 정책을 생성하는 자세한 지침은 [JSON 편집기를 사용하여 정책 생성](access_policies_create-console.md#access_policies_create-json-editor) 섹션을 참조하세요.

## 정책에 대한 액세스 제어
<a name="access_controlling-policies"></a>

사용자가 AWS 관리형 정책을 적용하는 방식을 제어할 수 있습니다. 이렇게 하려면 이 정책을 모든 사용자에게 연결합니다. 이 작업에 사용자 그룹을 사용하는 것이 좋습니다.

예를 들어, 사용자가 새 IAM 사용자, 사용자 그룹 또는 역할에 [IAMUserChangePassword](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/IAMUserChangePassword) 및 [PowerUserAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/PowerUserAccess) AWS 관리형 정책만 연결하도록 허용하는 정책을 생성할 수 있습니다.

고객 관리형 정책의 경우 이러한 정책을 생성, 업데이트 및 삭제할 수 있는 대상을 제어할 수 있습니다. 정책을 위탁자 엔터티(IAM 그룹, 사용자 및 역할)에 연결하고 해당 개체에서 분리할 수 있는 대상을 제어할 수 있습니다. 또한 사용자가 어떤 정책을 어떤 주체에 연결하거나 분리할지 제어할 수 있습니다.

예를 들어 계정 관리자에게 정책을 생성, 업데이트 및 삭제할 권한을 부여할 수 있습니다. 그런 다음 팀 리더 또는 기타 제한된 관리자에게 제한된 관리자가 관리하는 보안 주체 개체에 이러한 정책을 연결하고 분리할 권한을 부여합니다.

자세한 정보는 다음 리소스 섹션을 참조하세요.
+ 보안 주체에 연결할 수 있는 IAM 정책의 생성에 대해 자세히 알아보려면 [고객 관리형 정책으로 사용자 지정 IAM 권한 정의](access_policies_create.md) 섹션을 참조하세요.
+ 보안 주체에 IAM 정책을 연결하는 방법에 대해 자세히 알아보려면 [IAM 자격 증명 권한 추가 및 제거](access_policies_manage-attach-detach.md) 섹션을 참조하세요.
+ 관리형 정책 사용을 제한하는 예시 정책을 보려면 [IAM: IAM 사용자, 그룹 또는 역할에 적용 가능한 관리형 정책을 제한](reference_policies_examples_iam_limit-managed.md) 섹션을 참조하세요.

### 고객 관리형 정책을 생성, 업데이트 및 삭제할 권한 제어
<a name="policies-controlling-access-create-update-delete"></a>

[IAM 정책](access_policies.md)을 사용하여 AWS 계정에서 고객 관리형 정책을 생성, 업데이트 및 삭제할 수 있는 대상을 제어할 수 있습니다. 다음 목록에는 정책 또는 정책 버전을 생성, 업데이트 및 삭제하는 것과 직접적으로 관련된 API 작업이 포함되어 있습니다.
+ [CreatePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicy.html)
+ [CreatePolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicyVersion.html)
+ [DeletePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeletePolicy.html)
+ [DeletePolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeletePolicyVersion.html)
+ [SetDefaultPolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SetDefaultPolicyVersion.html)

위 목록의 API 작업은 IAM 정책을 사용하여 허용하거나 거부할 수 있는 작업, 즉 부여할 수 있는 권한에 해당합니다.

다음 예시 정책을 고려하세요. 사용자가 AWS 계정에서 모든 고객 관리형 정책의 기본 버전을 생성, 업데이트(즉, 새 정책 버전 생성), 삭제 및 설정하도록 허용합니다. 또한 이 정책 예에서는 사용자가 정책을 나열하고 가져오도록 허용합니다. 이 예시 JSON 정책 문서를 사용하여 정책을 생성하는 방법에 대해 자세히 알아보려면 [JSON 편집기를 사용하여 정책 생성](access_policies_create-console.md#access_policies_create-json-editor) 섹션을 참조하세요.

**Example 모든 정책의 기본 버전을 생성, 업데이트, 삭제, 나열, 가져오기 및 설정하도록 허용하는 정책 예**    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "iam:CreatePolicy",
      "iam:CreatePolicyVersion",
      "iam:DeletePolicy",
      "iam:DeletePolicyVersion",
      "iam:GetPolicy",
      "iam:GetPolicyVersion",
      "iam:ListPolicies",
      "iam:ListPolicyVersions",
      "iam:SetDefaultPolicyVersion"
    ],
    "Resource": "*"
  }
}
```

이러한 API 작업의 사용을 제한하는 정책을 생성하여 지정하는 관리형 정책에만 영향을 줄 수 있습니다. 예를 들어, 특정 고객 관리형 정책의 경우에만 사용자가 기본 버전을 설정하고 정책 버전을 삭제하도록 허용해야 할 수 있습니다. 이렇게 하려면 이러한 권한을 부여하는 정책의 `Resource` 요소에 정책 ARN을 지정합니다.

다음 예시는 사용자가 정책 버전을 삭제하고 기본 버전을 설정할 수 있는 정책을 보여줍니다. 이런 작업은 /TEAM-A/ 경로를 포함하는 고객 관리형 정책에만 허용됩니다. 고객 관리형 정책 ARN은 그 정책의 `Resource` 요소에 지정되어 있습니다. (이 예에서 ARN에는 경로와 와일드카드가 포함되어 있으므로 경로 /TEAM-A/를 포함하는 모든 고객 관리형 정책과 일치합니다.) 이 예시 JSON 정책 문서를 사용하여 정책을 생성하는 방법에 대해 자세히 알아보려면 [JSON 편집기를 사용하여 정책 생성](access_policies_create-console.md#access_policies_create-json-editor) 섹션을 참조하세요.

고객 관리형 정책 이름에서 경로를 사용하는 방법에 대한 자세한 정보는 [표시 이름 및 경로](reference_identifiers.md#identifiers-friendly-names) 섹션을 참조하세요.

**Example 특정 정책의 경우에만 정책 버전 삭제와 기본 버전 설정을 허용하는 정책 예**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": [
            "iam:DeletePolicyVersion",
            "iam:SetDefaultPolicyVersion"
        ],
        "Resource": "arn:aws:iam::111122223333:policy/TEAM-A/*"
    }
}
```

### 관리형 정책을 연결 및 분리하는 권한 제어
<a name="policies-controlling-access-attach-detach"></a>

IAM 정책을 사용하여 사용자가 특정 관리형 정책만 사용하도록 허용할 수도 있습니다. 사실상 사용자가 다른 보안 주체에 부여할 수 있는 권한을 제어할 수 있습니다.

다음은 보안 주체 개체에 관리형 정책을 연결하고 분리하는 것과 직접적으로 관련된 API 작업 목록입니다.
+  [AttachGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachGroupPolicy.html)
+ [AttachRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachRolePolicy.html)
+ [AttachUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachUserPolicy.html)
+ [DetachGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachGroupPolicy.html)
+ [DetachRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachRolePolicy.html)
+ [DetachUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachUserPolicy.html)

이러한 API 작업의 사용을 제한하는 정책을 생성하여 지정하는 특정 관리형 정책 및/또는 보안 주체 개체에만 영향을 줄 수 있습니다. 예를 들어, 사용자가 지정하는 관리형 정책에만 연결하도록 허용해야 할 수 있습니다. 또는 사용자가 지정하는 보안 주체 엔터티에만 관리형 정책을 연결하도록 허용해야 할 수 있습니다.

다음 정책 예에서는 사용자가 경로 /TEAM-A/를 포함하는 IAM 그룹 및 역할에만 관리형 정책을 연결하도록 허용합니다. 사용자 그룹 및 역할 ARN은 정책의 `Resource` 요소에서 지정됩니다. (이 예제에서 ARN에는 경로와 와일드카드 문자가 포함되어 있으므로 경로 /TEAM-A/를 포함하는 모든 IAM 그룹 및 역할과 일치합니다.) 이 예시 JSON 정책 문서를 사용하여 정책을 생성하는 방법에 대해 자세히 알아보려면 [JSON 편집기를 사용하여 정책 생성](access_policies_create-console.md#access_policies_create-json-editor) 섹션을 참조하세요.

**Example 특정 사용자 그룹 또는 역할에만 관리형 정책 연결을 허용하는 정책 예**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": [
            "iam:AttachGroupPolicy",
            "iam:AttachRolePolicy"
        ],
        "Resource": [
            "arn:aws:iam::111122223333:group/TEAM-A/*",
            "arn:aws:iam::111122223333:role/TEAM-A/*"
        ]
    }
}
```

앞 예에서 지정하는 정책에만 영향을 주도록 작업의 사용을 제한할 수 있습니다. 즉, 정책에 조건을 추가하여 사용자가 다른 보안 주체 엔터티에 연결하도록 허용할 권한을 제어할 수 있습니다.

다음 예에서 조건은 연결된 정책이 지정된 정책 가운데 하나와 일치하는 경우에만 `AttachGroupPolicy` 및 `AttachRolePolicy` 권한이 허용되도록 합니다. 이 조건은 `iam:PolicyARN` [조건 키](reference_policies_elements_condition.md)를 사용하여 연결할 수 있는 정책을 결정합니다. 다음은 위의 예시를 확장한 예시 정책입니다. 사용자가 경로 /TEAM-A/ 경로를 포함하는 IAM 그룹 및 역할에만 /TEAM-A/ 경로를 포함하는 관리형 정책만 연결하도록 허용합니다. 이 예시 JSON 정책 문서를 사용하여 정책을 생성하는 방법에 대해 자세히 알아보려면 [JSON 편집기를 사용하여 정책 생성](access_policies_create-console.md#access_policies_create-json-editor) 섹션을 참조하세요.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": [
            "iam:AttachGroupPolicy",
            "iam:AttachRolePolicy"
        ],
        "Resource": [
            "arn:aws:iam::111122223333:group/TEAM-A/*",
            "arn:aws:iam::111122223333:role/TEAM-A/*"
        ],
        "Condition": {
            "ArnLike": {
                "iam:PolicyARN": "arn:aws:iam::111122223333:policy/TEAM-A/*"
            }
        }
    }
}
```

------

이 정책은 `ArnLike` 조건 연산자를 사용하지만 두 조건 연산자가 동일하게 작동하므로 `ArnEquals` 조건 연산자도 사용할 수 있습니다. `ArnLike` 및 `ArnEquals`에 대한 자세한 내용은 *정책 요소 참조*의 *조건 유형*에서 [Amazon 리소스 이름(ARN) 조건 연산자](reference_policies_elements_condition_operators.md#Conditions_ARN) 섹션을 참조하세요.

예를 들어, 지정하는 관리형 정책만 포함하도록 작업 사용을 제한할 수 있습니다. 이렇게 하려면 이러한 권한을 부여하는 정책의 `Condition` 요소에 정책 ARN을 지정합니다. 예를 들어, 고객 관리형 정책의 ARN을 지정하려면:

```
"Condition": {"ArnEquals": 
  {"iam:PolicyARN": "arn:aws:iam::123456789012:policy/POLICY-NAME"}
}
```

AWS 관리형 정책의 `Condition` 요소에서도 정책의 ARN을 지정할 수 있습니다. AWS 관리형 정책의 ARN은 다음 예와 같이 정책 ARN에 계정 ID 대신 `aws`라는 특별한 별칭을 사용합니다.

```
"Condition": {"ArnEquals": 
  {"iam:PolicyARN": "arn:aws:iam::aws:policy/AmazonEC2FullAccess"}
}
```

## 리소스에 대한 액세스 제어
<a name="access_controlling-resources"></a>

자격 증명 기반 정책 또는 리소스 기반 정책을 사용하여 리소스에 대한 액세스를 제어할 수 있습니다. 자격 증명 기반 정책에서 자격 증명에 정책을 연결하고 자격 증명이 액세스할 수 있는 리소스를 지정합니다. 리소스 기반 정책에서 제어하려는 리소스에 정책을 연결합니다. 정책에서 해당 리소스에 액세스할 수 있는 보안 주체를 지정합니다. 두 정책 유형에 대한 자세한 정보는 [자격 증명 기반 정책 및 리소스 기반 정책](access_policies_identity-vs-resource.md) 섹션을 참조하세요.

자세한 정보는 다음 리소스 섹션을 참조하세요.
+ 보안 주체에 연결할 수 있는 IAM 정책의 생성에 대해 자세히 알아보려면 [고객 관리형 정책으로 사용자 지정 IAM 권한 정의](access_policies_create.md) 섹션을 참조하세요.
+ 보안 주체에 IAM 정책을 연결하는 방법에 대해 자세히 알아보려면 [IAM 자격 증명 권한 추가 및 제거](access_policies_manage-attach-detach.md) 섹션을 참조하세요.
+ Amazon S3는 해당 버킷의 리소스 기반 정책 사용을 지원합니다. 자세한 정보는 [버킷 정책 예시](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html) 섹션을 참조하세요.
<a name="NoDefaultPermissions"></a>
**리소스 생성자에게 권한이 자동으로 부여되지는 않음**  
AWS 계정 루트 사용자 자격 증명을 사용하여 로그인한 경우 해당 계정에 속한 리소스에서 모든 작업을 수행할 수 있는 권한이 부여됩니다. 그러나 IAM 사용자의 경우에는 그렇지 않습니다. IAM 사용자는 리소스를 생성할 권한을 받을 수 있지만, 그러한 리소스에 대한 권한은 명시적으로 부여받은 권한으로 제한됩니다. 즉, IAM 역할과 같은 리소스를 생성했다는 이유만으로 해당 역할을 편집 또는 삭제할 권한이 자동으로 부여되지는 않습니다. 또한 사용자의 권한은 계정 소유자 또는 해당 권한을 관리할 권한이 있는 다른 사용자가 언제든지 취소할 수 있습니다.

## 특정 계정에서 보안 주체에 대한 액세스 제어
<a name="access_controlling-principal-accounts"></a>

계정의 IAM 사용자에게 리소스에 대한 액세스 권한을 직접 부여할 수 있습니다. 다른 계정의 사용자가 리소스에 액세스할 필요가 있다면 IAM 역할을 생성합니다. 역할은 권한을 포함한 개체이지만 특정 사용자와 관련이 없습니다. 다른 계정의 사용자는 해당 역할을 수임하여 해당 역할에 할당된 권한에 따라 리소스에 액세스할 수 있습니다. 자세한 내용은 [소유한 다른 AWS 계정의 IAM 사용자에 대한 액세스](id_roles_common-scenarios_aws-accounts.md) 섹션을 참조하세요.

**참고**  
일부 서비스만이 [자격 증명 기반 정책 및 리소스 기반 정책](access_policies_identity-vs-resource.md)(예: Amazon S3, Amazon SNS, Amazon SQS)에 설명된 리소스 기반 정책을 지원합니다. 그런 서비스의 역할 사용 대안은 공유할 리소스(버킷, 주제 또는 대기열)에 정책을 연결하는 것입니다. 리소스 기반 정책은 리소스에 대한 액세스 허가를 받은 AWS 계정을 지정할 수 있습니다.

# 태그를 사용하여 IAM 사용자 및 역할에 대한 액세스 제어
<a name="access_iam-tags"></a>

다음 섹션의 정보를 사용하여 IAM 사용자 및 역할에 액세스할 수 있는 사람과 사용자 및 역할이 액세스할 수 있는 리소스를 제어합니다. 다른 IAM 리소스를 비롯하여, 다른 AWS 리소스에 대한 액세스 제어와 관련한 자세한 일반 정보 및 예는 [AWS Identity and Access Management 리소스용 태그](id_tags.md) 섹션을 참조하세요.

**참고**  
태그 키 및 태그 키 값의 대소문자 구분에 대한 자세한 내용은 [Case sensitivity](id_tags.md#case-sensitivity)을(를) 참조하세요.

태그는 IAM *리소스*에 연결하거나 *요청*에 전달하거나 요청을 하는 *보안 주체*에 연결할 수 있습니다. IAM 사용자 또는 역할은 리소스 및 보안 주체 둘 다일 수 있습니다. 예를 들어 사용자가 사용자 그룹을 나열하도록 허용하는 정책을 작성할 수 있습니다. 이 작업은 요청을 하는 사용자(보안 주체)가 보려는 사용자와 동일한 `project=blue` 태그를 갖고 있는 경우에만 허용됩니다. 이 예에서 사용자는 동일한 프로젝트에서 작업하는 동안 자신을 비롯하여 모든 사용자에 대한 그룹 구성원 자격을 볼 수 있습니다.

태그를 기반으로 액세스를 제어하려면 정책의 [조건 요소](reference_policies_elements_condition.md)에 태그 정보를 제공하세요. IAM 정책을 생성할 때 IAM 태그 및 연관된 태그 조건 키를 사용하여 다음 중 하나에 대한 액세스를 제어할 수 있습니다.
+ **[리소스](access_tags.md#access_tags_control-resources)** - 태그를 기반으로 사용자 또는 역할 리소스에 대한 액세스를 제어합니다. 이를 위해 **aws:ResourceTag/*key-name*** 조건 키를 사용하여 리소스에 연결해야 하는 태그 키 값 페어를 지정합니다. 자세한 내용은 [AWS 리소스에 대한 액세스 제어](access_tags.md#access_tags_control-resources) 섹션을 참조하세요.
+ **[요청](access_tags.md#access_tags_control-requests)** – IAM 요청에 어떤 태그가 전달될 수 있는지를 제어합니다. 이를 수행하려면 **aws:RequestTag/*key-name*** 조건 키를 사용하여 어떤 태그를 IAM 사용자 또는 역할에서 추가, 변경 또는 제거할 수 있는지 지정합니다. 이 키는 IAM 리소스 및 기타 AWS 리소스에서 동일한 방식으로 사용됩니다. 자세한 내용은 [AWS 요청 중 액세스 제어](access_tags.md#access_tags_control-requests) 섹션을 참조하세요.
+ **[보안 주체](#access_iam-tags_control-principals)** - 요청을 하는 사람(보안 주체)이 자신의 IAM 사용자 또는 역할에 연결된 태그를 기반으로 수행할 수 있는 권한을 제어합니다. 이를 위해 **aws:PrincipalTag/*key-name*** 조건 키를 사용하여 요청이 허용되기 전에 IAM 사용자 또는 역할에 연결해야 하는 태그를 지정합니다.
+ **[권한 부여 프로세스의 일부](#access_iam-tags_control-tag-keys)** - **aws:TagKeys** 조건 키를 사용하여 특정 태그 키를 요청 또는 보안 주체에서 사용할 수 있는지 여부를 제어합니다. 이 경우 키 값은 중요하지 않습니다. 이 키는 IAM 및 기타 AWS 서비스에 대해서도 유사하게 동작합니다. 그러나 IAM에서 사용자를 태그 지정하면 보안 주체가 모든 서비스에 대한 요청을 할 수 있는지 여부도 제어할 수 있습니다. 자세한 내용은 [태그 키를 기반으로 액세스 제어](access_tags.md#access_tags_control-tag-keys) 섹션을 참조하세요.

시각적 편집기를 사용하거나 JSON을 사용하거나 기존 관리형 정책을 가져와서 IAM 정책을 생성할 수 있습니다. 자세한 내용은 섹션을 참조하세요[고객 관리형 정책으로 사용자 지정 IAM 권한 정의](access_policies_create.md)

**참고**  
IAM 역할을 맡거나 사용자를 연동할 때 [세션 태그](id_session-tags.md)를 전달할 수도 있습니다. 세션 중에만 유효합니다.

## IAM 보안 주체에 대한 액세스 제어
<a name="access_iam-tags_control-principals"></a>

보안 주체가 자신의 자격 증명에 연결된 태그를 기반으로 수행할 수 있는 권한을 제어할 수 있습니다.

이 예제는 이 계정의 모든 사용자가 동일한 프로젝트에서 작업하는 동안 자신을 포함한 모든 사용자의 그룹 멤버십을 볼 수 있도록 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 이 작업은 사용자의 리소스 태그와 보안 주체의 태그가 태그 키 `project`와 동일한 값을 가질 경우에만 허용됩니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체하세요. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "iam:ListGroupsForUser",
            "Resource": "arn:aws:iam::111222333444:user/*",
            "Condition": {
                "StringEquals": {"aws:ResourceTag/project": "${aws:PrincipalTag/project}"}
            }
        }]
}
```

------

## 태그 키를 기반으로 액세스 제어
<a name="access_iam-tags_control-tag-keys"></a>

IAM 정책에서 태그를 사용하여 요청 또는 보안 주체에 특정 태그 키를 사용할 수 있는지 여부를 제어할 수 있습니다.

이 예제는 사용자의 `temporary` 키를 포함한 태그만 제거할 수 있는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체합니다. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Effect": "Allow",
        "Action": "iam:UntagUser",
        "Resource": "*",
        "Condition": {"ForAllValues:StringEquals": {"aws:TagKeys": ["temporary"]}}
    }]
}
```

------

# 태그를 사용한 AWS 리소스 액세스 제어
<a name="access_tags"></a>

태그를 사용하여, IAM 리소스를 비롯한 태깅을 지원하는 AWS 리소스에 대한 액세스를 제어할 수 있습니다. IAM 사용자 및 역할을 태깅하여 액세스할 수 있는 권한을 제어할 수 있습니다. IAM 사용자 및 역할을 태그 지정하는 방법을 알아보려면 [AWS Identity and Access Management 리소스용 태그](id_tags.md) 섹션을 참조하세요. 또한 고객 관리형 정책, IAM 자격 증명 공급자, 인스턴스 프로파일, 서버 인증서, 가상 MFA 디바이스 등의 IAM 리소스에 대한 액세스를 제어할 수 있습니다. 보안 주체 태그가 있는 IAM 역할이 일치하는 태그가 있는 리소스에 액세스할 수 있도록 허용하는 정책을 만들고 테스트하는 자습서를 보려면 [IAM 튜토리얼: 태그를 기반으로 AWS 리소스에 액세스할 수 있는 권한 정의](tutorial_attribute-based-access-control.md) 섹션을 참조하세요. 다음 섹션의 정보를 사용하여 IAM 사용자 또는 역할을 태깅하지 않고 IAM 리소스를 비롯한 다른 AWS 리소스에 대한 액세스를 제어합니다.

태그를 사용하여 AWS 리소스에 대한 액세스를 제어하기 전에 AWS의 액세스 허용 방식을 이해해야 합니다. 또한 AWS는 *리소스*의 컬렉션으로 구성되어 있습니다. Amazon EC2 인스턴스는 리소스입니다. Amazon S3 버킷은 리소스입니다. AWS API, AWS CLI 또는 AWS Management Console을 사용하여 작업(예: Amazon S3에서 버킷 생성)을 수행할 수 있습니다. 그렇게 하면 해당 작업에 대한 *요청*을 보냅니다. 이 요청은 작업, 리소스, *보안 주체 엔터티*(사용자 또는 역할), *보안 주체 계정* 및 필요한 요청 정보를 지정합니다. 이러한 모든 정보는 *콘텍스트*를 제공합니다.

그런 다음 AWS은 사용자(보안 주체 엔터티)가 지정된 리소스에 대해 지정된 작업을 수행할 수 있도록 인증(로그인) 및 권한 부여(권한 있음)되었는지 확인합니다. 권한을 부여하는 동안 AWS는 요청 콘텍스트에 적용되는 모든 정책을 확인합니다. 대부분의 정책은 AWS에 [JSON 문서](access_policies.md#access_policies-json)로 저장되며 보안 주체 엔터티에 대한 권한을 지정합니다. 정책 유형 및 활용에 대한 자세한 정보는 [AWS Identity and Access Management의 정책 및 권한](access_policies.md) 섹션을 참조하세요.

AWS는 정책이 요청의 각 부분을 허용한 경우에만 요청에 권한을 부여합니다. 다이어그램을 보고 IAM 인프라에 대해 자세히 알아보려면 [IAM 작동 방식](intro-structure.md) 섹션을 참조하세요. IAM 요청이 허용되는지 여부를 결정하는 방법에 대한 자세한 내용은 [정책 평가 로직](reference_policies_evaluation-logic.md) 섹션을 참조하세요.

태그는 이 프로세스에서 고려해야 할 또 다른 요소인데, *리소스*에 태그가 연결되거나 태그 지정을 지원하는 서비스에 대한 *요청*에 전달될 수 있기 때문입니다. 태그를 기반으로 액세스를 제어하려면 정책의 [조건 요소](reference_policies_elements_condition.md)에 태그 정보를 제공하세요. AWS 서비스에서 태그를 사용한 액세스 제어를 지원하는지 여부를 알아보려면 [AWS IAM으로 작업하는 서비스](reference_aws-services-that-work-with-iam.md) 섹션을 참조하고, **ABAC** 열이 **예**인 서비스를 찾아보세요. 서비스의 이름을 선택하여 해당 서비스에 대한 권한 부여 및 액세스 제어 문서를 봅니다.

그러면 리소스의 태그를 기반으로 리소스에 대한 액세스를 허용하거나 거부하는 IAM 정책을 생성할 수 있습니다. 해당 정책에서는 태그 조건 키를 사용하여 다음 중 하나에 대한 액세스를 제어할 수 있습니다.
+ **[리소스](#access_tags_control-resources)** - 리소스에 대한 태그를 기반으로 AWS 서비스 리소스에 대한 액세스를 제어합니다. 이를 수행하려면 **aws:ResourceTag/*key-name*** 조건 키를 사용하여 리소스에 연결된 태그를 기반으로 리소스에 대한 액세스를 허용할지 여부를 결정합니다.
+ **[요청](#access_tags_control-requests)** - 어떤 태그가 요청에 전달될 수 있는지 제어합니다. 이를 수행하려면 **aws:RequestTag/*key-name*** 조건 키를 사용하여 AWS 리소스에 태그를 지정하는 요청에서 어떤 태그 키 값 페어를 전달할 수 있는지 지정합니다.
+ **[권한 부여 프로세스의 일부](#access_tags_control-tag-keys)** - **aws:TagKeys** 조건 키를 사용하여 특정 태그 키를 요청에서 사용할 수 있는지 여부를 제어합니다.

JSON을 사용하거나 기존 관리형 정책을 가져와서 시각적으로 IAM 정책을 생성할 수 있습니다. 자세한 내용은 섹션을 참조하세요[고객 관리형 정책으로 사용자 지정 IAM 권한 정의](access_policies_create.md)

**참고**  
일부 서비스에서는 사용자가 리소스를 생성하는 작업을 사용할 권한이 있는 경우 리소스 생성 시 태그를 지정할 수 있도록 허용합니다.

## AWS 리소스에 대한 액세스 제어
<a name="access_tags_control-resources"></a>

IAM 정책의 조건을 사용하여 해당 리소스의 태그를 기반으로 AWS 리소스에 대한 액세스를 제어할 수 있습니다. 전역 `aws:ResourceTag/tag-key` 조건 키 또는 서비스별 키를 사용하여 이 작업을 수행할 수 있습니다. 일부 서비스는 이 키의 서비스별 버전만 지원하며 전역 버전은 지원하지 않습니다.

**주의**  
역할에 태그를 지정한 다음 `iam:PassRole` 작업과 함께 정책의 `ResourceTag` 조건 키를 사용하는 것으로 역할을 전달할 수 있는 사람을 제어하려고 하지 마십시오. 이 접근법은 신뢰할 수 있는 결과를 가져오지 못합니다. 서비스로 역할을 전달하는 데 필요한 권한에 대한 자세한 내용은 [사용자에게 AWS 서비스에 역할을 전달할 권한 부여](id_roles_use_passrole.md) 섹션을 참조하세요.

 이 예제는 Amazon EC2 인스턴스의 시작 또는 중지를 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 이러한 작업은 인스턴스 태그 `Owner`가 사용자 이름 값을 포함한 경우에만 허용됩니다. 이 정책은 프로그래밍 방식 및 콘솔 액세스에 대한 권한을 정의합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:StartInstances",
                "ec2:StopInstances"
            ],
            "Resource": "arn:aws:ec2:*:*:instance/*",
            "Condition": {
                "StringEquals": {"aws:ResourceTag/Owner": "${aws:username}"}
            }
        },
        {
            "Effect": "Allow",
            "Action": "ec2:DescribeInstances",
            "Resource": "*"
        }
    ]
}
```

------

이 정책을 계정의 IAM 사용자에게 연결할 수 있습니다. 이름이 `richard`인 사용자가 Amazon EC2 인스턴스를 시작하려 하는 경우 인스턴스에 `Owner=richard` 또는 `owner=richard` 태그가 지정되어야 합니다. 그렇지 않은 경우 액세스가 거부됩니다. 태그 키 `Owner`는 `Owner` 및 `owner` 모두와 일치하는데, 조건 키가 대/소문자를 구분하지 않기 때문입니다. 자세한 내용은 [IAM JSON 정책 요소: Condition](reference_policies_elements_condition.md) 섹션을 참조하세요.

이 예제는 리소스 ARN에 `team` 보안 주체 태그를 사용하는 ID 기반 정책을 생성하는 방법을 보여줍니다. 정책은 Amazon Simple Queue Service 대기열을 삭제할 수 있는 권한을 부여하지만, 팀 이름으로 시작하고 뒤에 `-queue`이 붙은 대기열 이름에만 해당됩니다. 예를 들어, `qa`가 `team` 보안 주체 태그의 팀 이름인 경우의 `qa-queue`입니다.

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

****  

```
{
      "Version":"2012-10-17",		 	 	 
      "Statement": {
        "Sid": "AllQueueActions",
        "Effect": "Allow",
        "Action": "sqs:DeleteQueue",
        "Resource": "arn:aws:sqs:us-east-2:111122223333:${aws:PrincipalTag/team}-queue"
      }
}
```

------

## AWS 요청 중 액세스 제어
<a name="access_tags_control-requests"></a>

IAM 정책의 조건을 사용하여 AWS 리소스에 태그를 적용하는 요청에서 어떤 태그 키 값 페어를 전달할 수 있는지를 제어할 수 있습니다.

이 예제는 태그를 인스턴스에 연결하는 Amazon EC2 `CreateTags` 작업 사용을 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 태그에 `environment` 키 및 `preprod` 또는 `production` 값이 포함된 경우에만 태그를 연결할 수 있습니다. 원하는 경우 `ForAllValues` 변경자를 `aws:TagKeys` 조건 키와 함께 사용하여 요청에서 키 `environment`만 허용됨을 표시할 수 있습니다. 이를 통해 사용자가 `environment` 대신 `Environment`를 실수로 사용하는 것과 같이 다른 키를 포함시키는 것을 방지합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": "ec2:CreateTags",
        "Resource": "arn:aws:ec2:*:*:instance/*",
        "Condition": {
            "StringEquals": {
                "aws:RequestTag/environment": [
                    "preprod",
                    "production"
                ]
            },
            "ForAllValues:StringEquals": {"aws:TagKeys": "environment"}
        }
    }
}
```

------

## 태그 키를 기반으로 액세스 제어
<a name="access_tags_control-tag-keys"></a>

IAM 정책에서 조건을 사용하여 요청에 특정 태그 키를 사용할 수 있는지 여부를 제어할 수 있습니다.

정책을 사용하여 태그를 사용한 액세스를 제어할 때 [`aws:TagKeys` 조건 키](reference_policies_condition-keys.md#condition-keys-tagkeys)를 사용하는 것이 좋습니다. 태그를 지원하는 AWS 서비스를 통해 대소문자만 다른 여러 태그 키 이름을 생성할 수 있습니다(예: Amazon EC2 인스턴스에 `stack=production` 및 `Stack=test` 태그 지정). 정책 조건에서 키 이름은 대/소문자를 구분하지 않습니다. 따라서 정책의 조건 요소에서 `"aws:ResourceTag/TagKey1": "Value1"` 지정을 완료한 경우 조건은 이름이 `TagKey1` 또는 `tagkey1`인 리소스 태그 키와 일치하지만 두 가지 모두와 일치하지는 않습니다. 대소문자만 다른 키를 포함한 중복 태그를 방지하려면 `aws:TagKeys` 조건을 사용하여 사용자가 적용할 수 있는 태그 키를 정의하거나 AWS Organizations과(와) 함께 사용할 수 있는 태그 정책을 사용합니다. 자세한 내용은 *AWS Organizations 사용 설명서*의 [태그 정책](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies.html)을 참조하세요.

이 예제에서는 Secrets Manager 비밀 생성 태그 지정을 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다(태그 키가 `environment` 또는 `cost-center`인 경우만). `Null` 조건은 요청에 태그가 없는 경우 조건이 `false`로 평가되도록 합니다.

```
{
        "Effect": "Allow",
        "Action": [
            "secretsmanager:CreateSecret",
            "secretsmanager:TagResource"
        ],
        "Resource": "*",
        "Condition": {
            "Null": {
                "aws:TagKeys": "false"
            },
            "ForAllValues:StringEquals": {
                "aws:TagKeys": [
                    "environment",
                    "cost-center"
                ]
            }
        }
}
```

# IAM의 크로스 계정 리소스 액세스
<a name="access_policies-cross-account-resource-access"></a>

일부 AWS 서비스의 경우, IAM을 사용하여 리소스에 대한 크로스 계정 액세스 권한을 부여할 수 있습니다. 이렇게 하려면 공유하려는 리소스에 리소스 정책을 직접 연결하거나 역할을 프록시로 사용하면 됩니다.

리소스를 직접 공유하려면, 공유하려는 리소스가 반드시 [리소스 기반 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_access-management.html#intro-access-resource-based-policies)을 지원해야 합니다. 역할의 ID 기반 정책과 달리 리소스 기반 정책은 해당 리소스에 액세스할 수 있는 사용자(보안 주체)를 지정합니다.

리소스 기반 정책을 지원하지 않는 다른 계정의 리소스에 액세스하려는 경우, 역할을 프록시로 사용합니다.

이러한 정책 유형 간의 차이에 대한 자세한 내용은 [자격 증명 기반 정책 및 리소스 기반 정책](access_policies_identity-vs-resource.md) 섹션을 참조하세요.

**참고**  
IAM 역할 및 리소스 기반 정책은 단일 파티션 내에서만 계정 간에 액세스 권한을 위임합니다. 미국 서부(캘리포니아 북부)의 표준 `aws` 파티션에 계정이 있는 경우를 예로 들어보겠습니다. 중국의 `aws-cn` 파티션에도 계정이 있습니다. 이 경우 중국의 계정에서 리소스 기반 정책을 사용하여 AWS 표준 계정의 사용자에 대한 액세스를 허용할 수 없습니다.

## 역할을 사용한 크로스 계정 액세스
<a name="access_policies-cross-account-using-roles"></a>

모든 AWS 서비스에서 리소스 기반 정책을 지원하는 것은 아닙니다. 이러한 서비스의 경우 여러 서비스에 대한 크로스 계정 액세스를 제공할 때 크로스 계정 IAM 역할을 사용하여 권한 관리를 중앙 집중화할 수 있습니다. 크로스 계정 IAM 역할은 다른 AWS 계정의 IAM 보안 주체가 역할을 수임할 수 있도록 하는 [신뢰 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#term_trust-policy)을 포함하는 IAM 역할입니다. 간단히 설명하자면, 특정 권한을 다른 AWS 계정에 위임하는 역할을 단일 AWS 계정에 생성할 수 있습니다.

IAM 자격 증명에 정책을 연결하는 방법에 대한 자세한 내용은 [IAM 정책 관리](access_policies_manage.md) 섹션을 참조하세요.

**참고**  
보안 주체가 역할의 권한을 일시적으로 사용하기 위해 특정 역할로 전환하면, 원래 권한을 포기하고 수임하는 역할에 할당된 권한을 갖게 됩니다.

고객 계정에 액세스해야 하는 APN 파트너 소프트웨어에 적용되는 전체 프로세스를 살펴보겠습니다.

1. 고객이 자신의 계정에 APN 파트너가 요구하는 Amazon S3 리소스에 대한 액세스를 허용하는 정책을 포함하여 IAM 역할을 생성합니다. 이 예에서 역할의 이름은 `APNPartner`입니다.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "s3:*",
               "Resource": [
                   "arn:aws:s3:::bucket-name"
               ]
           }
       ]
   }
   ```

------

1. 이후 고객은 `APNPartner` 역할에 대한 [신뢰 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html)에 APN 파트너의 AWS 계정 ID를 제공하여 파트너의 AWS 계정에서 역할을 수임할 수 있도록 지정합니다.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:role/APN-user-name"
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

1. 고객이 역할의 Amazon 리소스 이름(ARN)을 APN 파트너에게 제공합니다. ARN은 역할의 정규화된 이름입니다.

   ```
   arn:aws:iam::Customer-Account-ID:role/APNPartner
   ```
**참고**  
멀티 테넌트 상황에서는 외부 ID를 사용하는 것이 좋습니다. 자세한 내용은 [타사가 소유한 AWS 계정에 액세스](id_roles_common-scenarios_third-party.md)을 참조하세요.

1. APN 파트너의 소프트웨어가 고객 계정에 액세스해야 하는 경우, 해당 소프트웨어는 고객 계정 내 역할의 ARN을 사용하여 AWS Security Token Service에서 [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) API를 호출합니다. STS는 소프트웨어가 작업을 수행할 수 있도록 하는 임시 AWS 보안 인증 정보를 반환합니다.

역할을 사용하여 크로스 계정 액세스 권한을 부여하는 또 다른 예는 [소유한 다른 AWS 계정의 IAM 사용자에 대한 액세스](id_roles_common-scenarios_aws-accounts.md) 섹션을 참조하세요. [튜토리얼: IAM 역할을 사용한 AWS 계정 간 액세스 권한 위임](tutorial_cross-account-with-roles.md)에 접속해도 됩니다.

## 리소스 기반 정책을 사용한 크로스 계정 액세스
<a name="access_policies-cross-account-using-resource-based-policies"></a>

계정에서 리소스 기반 정책을 사용하여 다른 계정을 통해 리소스에 액세스할 경우, 보안 주체는 여전히 신뢰할 수 있는 계정에서 작업을 할 수 있고, 역할 권한을 수신하기 위해 자신의 권한을 포기할 필요가 없습니다. 즉, 보안 주체는 신뢰하는 계정의 리소스에 대한 액세스 권한을 유지하면서 신뢰할 수 있는 계정의 리소스에 계속 액세스할 수 있습니다. 다른 계정의 공유 리소스로 정보를 복사하거나 공유 리소스의 정보를 복사하는 등의 작업에서 이는 특히 유용합니다.

리소스 기반 정책에서 지정할 수 있는 보안 주체에는 계정, IAM 사용자, AWS STS 페더레이션 사용자 보안 주체, SAML 페더레이션 보안 주체, OIDC 페더레이션 보안 주체, IAM 역할, 수임된 역할 세션 또는 AWS 서비스가 포함됩니다. 자세한 내용은 [보안 주체 지정](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_elements_principal.html#Principal_specifying)을 참조하세요.

해당 신뢰 영역(신뢰할 수 있는 조직 또는 계정) 외의 계정 내 보안 주체가 역할을 수임하는 권한이 있는지 자세히 알고 싶다면, [외부 엔티티와 공유되는 리소스 식별](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html#what-is-access-analyzer-resource-identification)을 참조하세요.

다음 목록에는 리소스 기반 정책을 지원하는 일부 AWS 서비스가 나와 있습니다. 보안 주체 대신 리소스에 권한 정책을 연결할 수 있도록 지원하는 AWS 서비스는 늘어나고 있습니다. 해당 서비스의 전체 목록은 [AWS IAM으로 작업하는 서비스](reference_aws-services-that-work-with-iam.md) 섹션을 참조하고 **리소스 기반** 열의 값이 **예**인 서비스를 찾아보세요.
+ **Amazon S3 버킷** - 정책은 버킷과 연결되지만, 버킷과 그 안에 포함된 객체에 대한 액세스를 모두 제어합니다. 자세한 내용은 **Amazon Simple Storage Service 사용 설명서의 [Amazon S3의 버킷 정책](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-policies.html)을 참조하세요. 일부의 경우, Amazon S3의 크로스 계정 액세스를 위한 역할을 사용하는 것이 최선일 수 있습니다. 자세한 내용은 *Amazon Simple Storage Service 사용 설명서*의 [연습 예제](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-walkthroughs-managing-access.html)를 참조하세요.
+ **Amazon Simple Notification Service(SNS) 주제** - 자세한 내용은 [Amazon Simple Notification Service 개발자 안내서](https://docs.aws.amazon.com//sns/latest/dg/sns-access-policy-use-cases.html)에서 *Amazon SNS 액세스 제어 사례*를 참조하세요.
+ **Amazon Simple Queue Service(Amazon SQS) 대기열** - 자세한 내용은 [Amazon Simple Queue Service 개발자 안내서](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-creating-custom-policies.html)의 *부록: 액세스 정책 언어*를 참조하세요.

## AWS 권한 위임을 위한 리소스 기반 정책
<a name="access_policies-cross-account-delegating-resource-based-policies"></a>

리소스가 계정의 보안 주체에 권한을 부여하는 경우 이러한 권한을 특정 IAM 자격 증명에 위임할 수 있습니다. 자격 증명은 사용자, 사용자 그룹 또는 계정의 역할입니다. 자격 증명에 정책을 연결하여 권한을 위임합니다. 리소스 소유 계정에서 허용하는 최대 권한을 부여할 수 있습니다.

**중요**  
크로스 계정 액세스에서 보안 주체는 ID 정책 **및** 리소스 기반 정책에 `Allow` 항목이 있어야 합니다.

리소스 기반 정책에서는 계정의 모든 보안 주체에게 리소스에 대한 전체 관리 액세스 권한을 허용한다고 가정합니다. 이제 AWS 계정의 보안 주체에게 전체 액세스 권한, 읽기 전용 액세스 권한 또는 기타 부분적 액세스 권한을 위임할 수 있습니다. 또는 리소스 기반 정책에서 목록 액세스 권한만 허용하는 경우에는 목록 액세스 권한만 위임할 수 있습니다. 계정에 부여된 것보다 더 많은 권한을 위임하려고 해도 보안 주체는 목록 액세스 권한만 갖게 됩니다.

이러한 결정을 내리는 방법에 대한 자세한 내용은 [계정 내에서 요청 허용 여부 결정](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic_policy-eval-denyallow.html)을 참조하세요.

**참고**  
IAM 역할 및 리소스 기반 정책은 단일 파티션 내에서만 계정 간에 액세스 권한을 위임합니다. 예를 들어 표준 `aws` 파티션의 계정과 `aws-cn` 파티션의 계정 간에 크로스 계정 액세스를 추가할 수 없습니다.

예를 들어 `AccountA` 및 `AccountB`를 관리한다고 가정합니다. AccountA에 `BucketA`라는 Amazon S3 버킷이 있습니다.

![\[Amazon S3 버킷용으로 생성된 리소스 기반 정책에서 AccountB에 대한 권한을 AccountA에 제공합니다.\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/access_policies-cross-account.png)


1. AccountB의 모든 보안 주체에게 버킷의 객체에 대한 전체 액세스 권한을 허용하는 리소스 기반 정책을 `BucketA`에 연결합니다. 해당 버킷의 모든 객체를 생성, 읽기 또는 삭제할 수 있습니다.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "PrincipalAccess",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:root"
               },
               "Action": "s3:*",
               "Resource": "arn:aws:s3:::BucketA/*"
           }
       ]
   }
   ```

------

   AccountA는 리소스 기반 정책에서 보안 주체로서 AccountB를 명명하여 AccountB에게 BucketA에 대한 전체 액세스 권한을 제공합니다. 그 결과 AccountB는 계정 BucketA에 대해 모든 작업을 수행할 권한이 있으며, AccountB 관리자는 AccountB에 속한 사용자에게 액세스 권한을 위임할 수 있습니다.

    AccountB 루트 사용자는 계정에 부여된 모든 권한을 가집니다. 따라서 루트 사용자는 BucketA에 대한 전체 액세스 권한을 가집니다.

1. AccountB에서 User2라는 IAM 사용자에게 정책을 연결합니다. 이 정책은 사용자에게 BucketA의 객체에 대한 읽기 전용 액세스를 허용합니다. 즉, User2는 객체를 볼 수 있지만 객체를 생성, 편집 또는 삭제할 수는 없습니다.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect" : "Allow", 
               "Action" : [ 
                   "s3:Get*", 
                   "s3:List*" ], 
                   "Resource" : "arn:aws:s3:::BucketA/*" 
           } 
       ]
   }
   ```

------

   AccountB가 위임할 수 있는 최대 액세스 수준은 계정에 부여된 액세스 수준입니다. 이 경우 리소스 기반 정책에서는 AccountB에 대한 전체 액세스 권한을 부여하지만 User2에는 읽기 전용 액세스 권한만 부여됩니다.

   AccountB 관리자는 User1에게 액세스 권한을 부여하지 않습니다. 기본적으로 사용자는 명시적으로 부여된 권한을 제외하고는 어떤 권한도 없으므로 User1은 BucketA에 대한 액세스 권한이 없습니다.

IAM은 보안 주체가 요청을 할 때 보안 주체의 권한을 평가합니다. 와일드카드(\$1)를 사용하여 사용자에게 리소스에 대한 전체 액세스 권한을 부여하면 보안 주체는 AWS 계정이 액세스 권한을 가지고 있는 모든 리소스에 액세스할 수 있습니다. 사용자 정책을 생성한 이후에 추가하거나 액세스 권한을 획득한 리소스의 경우에도 마찬가지입니다.

앞의 예에서 AccountB가 모든 계정의 모든 리소스에 대한 전체 액세스 권한을 허용하는 정책을 User2에 연결했다면 User2는 AccountB에 액세스 권한이 있는 모든 리소스에 자동으로 액세스할 수 있었을 것입니다. 여기에는 BucketA 액세스 권한과 AccountA의 리소스 기반 정책에서 부여한 다른 리소스에 대한 액세스 권한이 포함됩니다 .

애플리케이션 및 서비스에 대한 액세스 권한 부여 등, 역할의 복잡한 사용 사례에 대한 자세한 내용은 [IAM 역할 관련 일반 시나리오](id_roles_common-scenarios.md) 섹션을 참조하세요.

**중요**  
신뢰 관계가 설정된 엔터티에만 액세스 권한을 부여하고 필요한 최소 수준의 액세스 권한만 부여합니다. 신뢰할 수 있는 엔터티가 다른 AWS 계정인 경우에는 어떠한 IAM 보안 주체에게든 리소스에 대한 액세스 권한을 부여할 수 있습니다. 신뢰하는 AWS 계정은 권한이 부여된 액세스 범위 내에서만 권한을 위임할 수 있으며, 계정에 부여된 권한보다 더 많은 액세스 권한을 위임할 수 없습니다.

권한, 정책 및 정책 작성에 사용하는 권한 정책 언어에 대한 자세한 내용은 [AWS리소스에 대한 액세스 관리](access.md) 섹션을 참조하세요.

# 전달 액세스 세션
<a name="access_forward_access_sessions"></a>

FAS(전달 액세스 세션)는 AWS 서비스가 사용자를 대신하여 요청할 때 ID, 권한 및 세션 속성을 전달하는 데 사용하기 위해 AWS 서비스에서 사용하는 IAM 기술입니다. FAS는 AWS 서비스를 직접적으로 호출하는 ID의 권한을 AWS 서비스의 ID와 결합하여 사용해 다운스트림 서비스에 대한 요청을 수행합니다. FAS 요청은 서비스에서 완료를 위해 다른 AWS 서비스 또는 리소스와의 상호 작용이 필요한 요청을 받은 이후 IAM 보안 주체를 대신하여 AWS 서비스에 이루어집니다. FAS 요청이 이루어진 경우:
+ IAM 보안 주체로부터 최초 요청을 받는 서비스는 IAM 보안 주체의 권한을 확인합니다.
+ 후속 FAS 요청을 받는 서비스는 동일한 IAM 보안 주체의 권한도 확인합니다.

예를 들어, [SSE-KMS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)를 사용하여 암호화되었을 때 Amazon S3에서 객체 암호 해독을 위해 AWS Key Management Service 직접 호출 시 FAS가 사용됩니다. SSE-KMS 암호화 객체를 다운로드할 때 **data-reader**라는 역할은 Amazon S3에 대해 객체에서 GetObject를 직접 호출하고, AWS KMS를 직접 호출하지는 않습니다. GetObject 요청을 수신하고 data-reader를 승인한 후 Amazon S3는 Amazon S3 객체의 암호를 해독하기 위해 AWS KMS에 FAS 요청을 보냅니다. KMS가 FAS 요청을 받으면 역할의 권한을 확인하고 data-reader에 KMS 키에 대한 올바른 권한을 가진 경우에만 암호 해독 요청을 승인합니다. Amazon S3와 AWS KMS 모두에 대한 요청은 역할의 권한을 사용하여 승인되고, data-reader가 Amazon S3 객체와 AWS KMS 키 모두에 대한 권한을 보유한 경우에만 성공합니다.

![\[Amazon S3에, 그리고 AWS KMS에 보안 주체로 전달되는 IAM 역할의 흐름 다이어그램.\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/access-fas-example.png)


**참고**  
FAS 요청을 받은 서비스에 의해 추가 FAS 요청이 이루어질 수 있습니다. 이 경우 요청 보안 주체에 FAS에서 호출한 모든 서비스에 대한 권한이 있어야 합니다.

## FAS 요청 및 IAM 정책 조건
<a name="access_fas_policy_conditions"></a>

FAS 요청이 이루어졌을 때 [aws:CalledVia](reference_policies_condition-keys.md#condition-keys-calledvia), [aws:CalledViaFirst](reference_policies_condition-keys.md#condition-keys-calledviafirst) 및 [aws:CalledViaLast](reference_policies_condition-keys.md#condition-keys-calledvialast) 조건 키는 FAS 직접 호출을 시작한 서비스의 서비스 보안 주체로 채워집니다. [aws:ViaAWSService](reference_policies_condition-keys.md#condition-keys-viaawsservice) 조건 키 값은 FAS 요청이 이루어질 때마다 `true`로 설정됩니다. 다음 다이어그램에서 CloudFormation에 대한 요청에는 직접적으로 `aws:CalledVia` 또는 `aws:ViaAWSService` 조건 키가 설정되어 있지 않습니다. CloudFormation 및 DynamoDB에서 역할을 대신하여 다운스트림 FAS 요청을 보내면 이러한 조건 키의 값이 채워집니다.

![\[CloudFormation에 보안 주체로 전달된 후 조건 키 값을 DynamoDB 및 AWS KMS에 전달하는 IAM 역할의 흐름 다이어그램.\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/access-fas-example2.png)


조건 키 테스트 소스 IP 주소 또는 소스 VPC가 포함된 거부 정책 설명에 의해 FAS 요청이 거부될 때 FAS 요청을 허용하려면 조건 키를 사용하여 거부 정책에서 FAS 요청에 예외를 제공해야 합니다. 이는 `aws:ViaAWSService` 조건 키를 사용하여 모든 FAS 요청에 대해 가능합니다. 특정 AWS 서비스에서만 FAS 요청을 허용하려면 `aws:CalledVia`를 사용합니다.

**중요**  
VPC 엔드포인트를 통해 최초 요청이 이루어진 후 FAS 요청이 이루어지면 최초 요청의 `aws:SourceVpce`, `aws:SourceVpc`, `aws:VpcSourceIp`에 대한 조건 키 값은 FAS 요청에서 사용되지 않습니다. `aws:VPCSourceIP` 또는 `aws:SourceVPCE`를 사용하여 조건부 액세스 권한을 부여하는 정책을 작성할 때 `aws:ViaAWSService` 또는 `aws:CalledVia`를 사용하여 FAS 요청도 허용해야 합니다. 퍼블릭 AWS 서비스 엔드포인트에서 최초 요청을 수신한 후 FAS 요청이 이루어지면 후속 FAS 요청은 동일한 `aws:SourceIP` 조건 키 값으로 이루어집니다.

## 예: VPC에서 또는 FAS를 사용하여 Amazon S3 액세스 허용
<a name="access_fas_example"></a>

다음 IAM 정책 예시에서 Amazon S3 GetObject 및 Athena 요청은 *example\$1vpc*에 연결된 VPC 엔드포인트에서 시작되거나 Athena에서 이루어진 FAS 요청인 경우에만 허용됩니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "OnlyAllowMyIPs",
      "Effect": "Allow",
      "Action": [
        "s3:GetObject*",
        "athena:StartQueryExecution",
        "athena:GetQueryResults",
        "athena:GetWorkGroup",
        "athena:StopQueryExecution",
        "athena:GetQueryExecution"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:SourceVPC": [
          "vpc-111bbb22"
          ]
        }
      }
    },
    {
      "Sid": "OnlyAllowFAS",
      "Effect": "Allow",
      "Action": [
        "s3:GetObject*"
      ],
      "Resource": "*",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "aws:CalledVia": "athena.amazonaws.com"
        }
      }
    }
  ]
}
```

------

조건 키를 사용하여 FAS 액세스를 허용하는 추가 예시는 [데이터 경계 예시 정책 리포지토리](https://github.com/aws-samples/data-perimeter-policy-examples)를 참조하세요.

# IAM 자격 증명 기반 정책의 예
<a name="access_policies_examples"></a>

[정책](access_policies.md)은 자격 증명이나 리소스와 연결될 때 해당 권한을 정의하는 AWS의 객체입니다. AWS는 IAM 보안 주체(사용자 또는 역할)가 요청을 보낼 때 이러한 정책을 평가합니다. 정책에서 권한은 요청이 허용되거나 거부되는 지를 결정합니다. 대부분의 정책은 IAM 자격 증명(사용자, 사용자 그룹 또는 역할)에 연결되는 JSON 문서로서 AWS에 저장됩니다. 자격 증명 기반 정책에는 AWS 관리형 정책, 고객 관리형 정책 및 인라인 정책이 포함됩니다. 이러한 예제 JSON 정책 문서를 사용하여 IAM 정책을 생성하는 방법에 대해 자세히 알아보려면 [JSON 편집기를 사용하여 정책 생성](access_policies_create-console.md#access_policies_create-json-editor) 섹션을 참조하세요.

기본적으로 모든 요청이 거부되기 때문에 ID가 액세스하려는 서비스, 작업 및 리소스에 대한 액세스 권한을 제공해야 합니다. 또한 IAM 콘솔에서 지정된 작업을 완료하기 위해 액세스를 허용하려면 추가 권한을 제공해야 합니다.

다음의 정책 라이브러리가 IAM ID에 대한 권한을 정의하는 데 도움이 될 수 있습니다. 필요로 하는 정책을 찾은 다음에 **View this policy(이 정책 보기)**를 선택하여 해당 정책의 JSON을 확인합니다. JSON 정책 문서를 자체 정책의 템플릿으로 활용할 수 있습니다.

**참고**  
이 참조 설명에 포함시킬 정책을 제출하고자 하는 경우 이 페이지의 하단에 있는 **의견** 버튼을 사용합니다.

## AWS 정책의 예
<a name="policy_library_AWS"></a>
+ 특정 날짜 범위 동안 액세스를 허용합니다. ([이 정책 보기](reference_policies_examples_aws-dates.md).)
+ AWS 리전 활성화 및 비활성화를 허용합니다. ([이 정책 보기](reference_policies_examples_aws-enable-disable-regions.md).)
+ MFA 인증 사용자가 **보안 인증** 페이지에서 자신의 보안 인증을 관리할 수 있도록 허용합니다. ([이 정책 보기](reference_policies_examples_aws_my-sec-creds-self-manage.md).)
+ 특정 날짜 범위 동안 MFA를 사용하는 경우 특정 액세스를 허용합니다. ([이 정책 보기](reference_policies_examples_aws_mfa-dates.md).)
+ 사용자가 **보안 인증** 페이지에서 자신의 보안 인증을 관리할 수 있도록 허용합니다. ([이 정책 보기](reference_policies_examples_aws_my-sec-creds-self-manage-no-mfa.md).)
+ 사용자가 **보안 인증** 페이지에서 자신의 MFA 디바이스를 관리할 수 있도록 허용합니다. ([이 정책 보기](reference_policies_examples_aws_my-sec-creds-self-manage-mfa-only.md).)
+ 사용자가 **보안 인증** 페이지에서 자신의 암호를 관리할 수 있도록 허용합니다. ([이 정책 보기](reference_policies_examples_aws_my-sec-creds-self-manage-password-only.md).)
+ 사용자가 **보안 인증** 페이지에서 자신의 암호, 액세스 키 및 SSH 퍼블릭 키를 관리할 수 있도록 허용합니다. ([이 정책 보기](reference_policies_examples_aws_my-sec-creds-self-manage-pass-accesskeys-ssh.md).)
+ 요청된 리전에 따라 AWS에 대한 액세스를 거부합니다. ([이 정책 보기](reference_policies_examples_aws_deny-requested-region.md).)
+ 소스 IP 주소를 기반으로 AWS에 대한 액세스를 거부합니다. ([이 정책 보기](reference_policies_examples_aws_deny-ip.md).)

## 예제 정책: AWS Data Exchange
<a name="policy_data_exchange"></a>
+ AWS Data Exchange를 제외한 계정 외부의 Amazon S3 리소스에 대한 액세스를 거부합니다. ([이 정책 보기](reference_policies_examples_resource_account_data_exch.md).)

## AWS Data Pipeline 정책의 예
<a name="policy_library_DataPipeline"></a>
+ 사용자가 생성하지 않은 파이프라인에 대한 액세스를 거부합니다. ([이 정책 보기](reference_policies_examples_datapipeline_not-owned.md).)

## 정책 예: Amazon DynamoDB
<a name="policy_library_DynamoDB"></a>
+ 특정 Amazon DynamoDB 테이블에 대한 액세스를 허용합니다([이 정책 보기](reference_policies_examples_dynamodb_specific-table.md)).
+ 특정 Amazon DynamoDB 속성에 대한 액세스를 허용합니다([이 정책 보기](reference_policies_examples_dynamodb_attributes.md).)
+ Amazon Cognito ID를 기준으로 Amazon DynamoDB에 대한 항목 수준 액세스를 허용합니다([이 정책 보기](reference_policies_examples_dynamodb_items.md)).

## 정책의 예제: Amazon EC2
<a name="policy_library_ec2"></a>
+ 태그를 기준으로 Amazon EBS 볼륨을 Amazon EC2 인스턴스에 연결 또는 분리하도록 허용합니다([이 정책 보기](reference_policies_examples_ec2_ebs-owner.md)).
+ 특정 서브넷에 있는 Amazon EC2 인스턴스를 프로그래밍 방식 및 콘솔에서 시작할 수 있도록 허용합니다([이 정책 보기](reference_policies_examples_ec2_instances-subnet.md)).
+ 특정 VPC와 관련된 Amazon EC2 보안 그룹을 프로그래밍 방식 및 콘솔에서 관리할 수 있도록 허용합니다([이 정책 보기](reference_policies_examples_ec2_securitygroups-vpc.md)).
+ 사용자가 태그를 지정한 Amazon EC2 인스턴스를 프로그래밍 방식 및 콘솔에서 시작 또는 중지할 수 있도록 허용합니다([이 정책 보기](reference_policies_examples_ec2_tag-owner.md)).
+ 리소스 및 보안 주체 태그 기반의 Amazon EC2 인스턴스를 프로그래밍 방식 및 콘솔에서 시작 또는 중지할 수 있도록 허용합니다([이 정책 보기](reference_policies_examples_ec2-start-stop-tags.md)).
+ 리소스 및 주요 태그가 일치할 때 Amazon EC2 인스턴스를 시작 또는 중지할 수 있도록 허용합니다([이 정책 보기](reference_policies_examples_ec2-start-stop-match-tags.md)).
+ 특정 리전 내에서의 모든 Amazon EC2 액세스를 프로그래밍 방식으로 콘솔에서 허용 ([이 정책 보기](reference_policies_examples_ec2_region.md).)
+ 프로그래밍 방식 및 콘솔에서 특정 Amazon EC2 인스턴스를 시작 또는 중지하고 특정 보안 그룹을 수정할 수 있도록 허용합니다([이 정책 보기](reference_policies_examples_ec2_instance-securitygroup.md)).
+ MFA 없이 특정 Amazon EC2 작업에 대한 액세스를 거부합니다([이 정책 보기](reference_policies_examples_ec2_require-mfa.md)).
+ Amazon EC2 인스턴스 종료를 특정 IP 주소 범위로 제한합니다([이 정책 보기](reference_policies_examples_ec2_terminate-ip.md)).

## 예제 정책 AWS Identity and Access Management(IAM)
<a name="policy_library_IAM"></a>
+ 정책 시뮬레이터 API에 대한 액세스를 허용합니다. ([이 정책 보기](reference_policies_examples_iam_policy-sim.md).)
+ 정책 시뮬레이터 콘솔에 대한 액세스를 허용합니다. ([이 정책 보기](reference_policies_examples_iam_policy-sim-console.md).)
+ 프로그래밍 방식 및 콘솔에서 특정 태그를 갖는 규칙을 수임하도록 허용합니다. ([이 정책 보기](reference_policies_examples_iam-assume-tagged-role.md).)
+ 프로그래밍 방식 및 콘솔에서 여러 서비스에 대한 액세스를 허용 및 거부합니다. ([이 정책 보기](reference_policies_examples_iam_multiple-services-console.md).)
+ 프로그래밍 방식 및 콘솔에서 특정 태그가 있는 IAM 사용자에게 또 다른 특정 태그를 추가할 수 있도록 허용합니다([이 정책 보기](reference_policies_examples_iam-add-tag.md)).
+ 프로그래밍 방식 및 콘솔에서 IAM 사용자 또는 역할에 대해 특정 태그를 추가할 수 있도록 허용합니다([이 정책 보기](reference_policies_examples_iam-add-tag-user-role.md)).
+ 특정 태그가 있는 새 사용자만 만들 수 있도록 허용합니다. ([이 정책 보기](reference_policies_examples_iam-new-user-tag.md).)
+ IAM 자격 증명 보고서 생성 및 검색을 허용합니다([이 정책 보기](reference_policies_examples_iam-credential-report.md)).
+ 프로그래밍 방식 및 콘솔에서 그룹의 멤버십을 관리하도록 허용합니다. ([이 정책 보기](reference_policies_examples_iam_manage-group-membership.md).)
+ 특정 태그를 관리하도록 허용합니다. ([이 정책 보기](reference_policies_examples_iam-manage-tags.md).)
+ IAM 역할을 특정 서비스로 전달하도록 허용합니다([이 정책 보기](reference_policies_examples_iam-passrole-service.md)).
+ 보고 없이 IAM 콘솔에 대한 읽기 전용 액세스를 허용합니다([이 정책 보기](reference_policies_examples_iam_read-only-console-no-reporting.md)).
+ IAM 콘솔에 대한 읽기 전용 액세스를 허용합니다([이 정책 보기](reference_policies_examples_iam_read-only-console.md)).
+ 특정 사용자가 프로그래밍 방식 및 콘솔에서 그룹을 관리하도록 허용합니다. ([이 정책 보기](reference_policies_examples_iam_users-manage-group.md).)
+ 프로그래밍 방식 및 콘솔에서 계정 암호 요구 사항을 설정하도록 허용합니다. ([이 정책 보기](reference_policies_examples_iam_set-account-pass-policy.md).)
+ 특정 경로를 지닌 사용자에 대해 정책 시뮬레이터 API의 사용을 허용합니다. ([이 정책 보기](reference_policies_examples_iam_policy-sim-path.md).)
+ 특정 경로를 지닌 사용자에 대해 정책 시뮬레이터 콘솔의 사용을 허용합니다. ([이 정책 보기](reference_policies_examples_iam_policy-sim-path-console.md).)
+ IAM 사용자가 MFA 디바이스를 스스로 관리하도록 허용 ([이 정책 보기](reference_policies_examples_iam_mfa-selfmanage.md).)
+ 프로그래밍 방식을 사용하거나 콘솔에서 IAM 사용자가 자신의 보안 인증을 설정하도록 허용합니다. ([이 정책 보기](reference_policies_examples_iam_credentials_console.md).)
+ IAM 콘솔에서 AWS Organizations 정책에 대해 마지막으로 액세스한 서비스 정보를 보도록 허용합니다. ([이 정책 보기](reference_policies_examples_iam_service-accessed-data-orgs.md).)
+ IAM 사용자, 그룹 또는 역할에 적용할 수 있는 관리형 정책을 제한합니다([이 정책 보기](reference_policies_examples_iam_limit-managed.md)).
+ 계정의 IAM 정책에 대한 액세스만 허용합니다([이 정책 보기](resource_examples_iam_policies_resource_account.md)).

## AWS Lambda 정책의 예
<a name="policy_library_Lambda"></a>
+ AWS Lambda 함수가 Amazon DynamoDB 테이블에 액세스하도록 허용합니다([이 정책 보기](reference_policies_examples_lambda-access-dynamodb.md)).

## 정책 예: Amazon RDS
<a name="policy_library_RDS"></a>
+ 특정 리전에 있는 Amazon RDS 데이터베이스에 대한 완전한 액세스를 허용합니다. ([이 정책 보기](reference_policies_examples_rds_region.md).)
+ 프로그래밍 방식 및 콘솔에서 Amazon RDS 데이터베이스를 복원하도록 허용합니다([이 정책 보기](reference_policies_examples_rds_db-console.md)).
+ 태그 소유자가 자신이 태그를 지정한 Amazon RDS 리소스에 대한 모든 액세스 권한을 가지도록 허용합니다([이 정책 보기](reference_policies_examples_rds_tag-owner.md)).

## 정책 예: Amazon S3
<a name="policy_library_S3"></a>
+ Amazon Cognito 사용자가 자신의 Amazon S3 버킷에 있는 객체에 액세스하도록 허용합니다([이 정책 보기](reference_policies_examples_s3_cognito-bucket.md)).
+ 임시 자격 증명을 보유한 사용자가 프로그래밍 방식 및 콘솔에서 Amazon S3에 있는 자신의 홈 디렉터리에 액세스하도록 허용합니다([이 정책 보기](reference_policies_examples_s3_federated-home-directory-console.md)).
+ 전체 S3 액세스를 허용하지만 관리자가 직전 30분 이내에 MFA를 사용하여 로그인하지 않은 경우 프로덕션 버킷에 대한 액세스를 명시적으로 거부합니다. ([이 정책 보기](reference_policies_examples_s3_full-access-except-production.md).)
+ IAM 사용자가 프로그래밍 방식 및 콘솔에서 Amazon S3에 있는 자신의 홈 디렉터리에 액세스하도록 허용합니다([이 정책 보기](reference_policies_examples_s3_home-directory-console.md)).
+ 사용자가 하나의 Amazon S3 버킷을 관리하고 다른 모든 AWS 작업 및 리소스를 거부하도록 허용합니다([이 정책 보기](reference_policies_examples_s3_deny-except-bucket.md)).
+ 특정 Amazon S3 버킷에 대한 `Read` 및 `Write` 액세스를 허용합니다([이 정책 보기](reference_policies_examples_s3_rw-bucket.md)).
+ 프로그래밍 방식 및 콘솔에서 특정 Amazon S3 버킷에 대한 `Read` 및 `Write` 액세스를 허용합니다([이 정책 보기](reference_policies_examples_s3_rw-bucket-console.md)).

# AWS: 날짜 및 시간에 따라 액세스 허용
<a name="reference_policies_examples_aws-dates"></a>

이 예제는 날짜 및 시간을 기준으로 작업에 대한 액세스를 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 이 정책은 2020년 4월 1일부터 2020년 6월 30일(UTC) 사이에 발생하는 작업에 대한 액세스를 제한합니다. 이 정책은 AWS API 또는 AWS CLI에서 이러한 작업을 프로그래밍 방식으로 완료하는 데 필요한 권한을 부여합니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체합니다. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다.

IAM 정책의 `Condition` 블록 내에서 복수 조건을 사용하는 방법에 관한 자세한 내용은 [다수의 조건 값](reference_policies_elements_condition.md#Condition-multiple-conditions) 섹션을 참조하세요.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "service-prefix:action-name",
            "Resource": "*",
            "Condition": {
                "DateGreaterThan": {"aws:CurrentTime": "2020-04-01T00:00:00Z"},
                "DateLessThan": {"aws:CurrentTime": "2020-06-30T23:59:59Z"}
            }
        }
    ]
}
```

------

**참고**  
정책 변수를 Date 조건 연산자와 함께 사용할 수 없습니다. 자세한 내용은 [조건 요소](reference_policies_variables.md#policy-vars-conditionelement) 섹션을 참조하세요.

# AWS: AWS 리전 활성화 및 비활성화 허용
<a name="reference_policies_examples_aws-enable-disable-regions"></a>

이 예제는 관리자가 아시아 태평양(홍콩) 리전(ap-east-1)을 활성화하고 비활성화할 수 있도록 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 이 정책은 프로그래밍 방식 및 콘솔 액세스에 대한 권한을 정의합니다. 이 설정은 AWS Management Console의 **계정 설정** 페이지에 표시됩니다. 이 페이지에는 계정 관리자만이 보고 관리해야 하는 민감한 계정 수준 정보가 포함되어 있습니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체하세요. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다.

**중요**  
기본적으로 활성화되는 리전은 활성화하거나 비활성화할 수 없습니다. 기본적으로 *비활성화되는* 리전만 추가할 수 있습니다. 자세한 내용은 AWS 일반 참조**의 [AWS 리전 관리](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html)를 참조하세요.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "EnableDisableHongKong",
            "Effect": "Allow",
            "Action": [
                "account:EnableRegion",
                "account:DisableRegion"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {"account:TargetRegion": "ap-east-1"}
            }
        },
        {
            "Sid": "ViewConsole",
            "Effect": "Allow",
            "Action": [
                "account:ListRegions"
            ],
            "Resource": "*"
        }
    ]
}
```

------

# AWS: MFA 인증 IAM 사용자가 보안 인증 페이지에서 자신의 보안 인증을 관리할 수 있도록 허용
<a name="reference_policies_examples_aws_my-sec-creds-self-manage"></a>

이 예시는 [다중 인증(MFA)](id_credentials_mfa.md)을 사용하여 인증된 IAM 사용자가 **보안 인증** 페이지에서 자신의 보안 인증을 관리할 수 있도록 허용하는 자격 증명 기반 정책을 생성하는 방법을 보여줍니다. 이 AWS Management Console 페이지에는 계정 ID 및 정식 사용자 ID와 같은 계정 정보가 표시됩니다. 또한 사용자는 자신의 암호, 액세스 키, MFA 디바이스, X.509 인증서, SSH 키 및 Git 자격 증명을 보고 편집할 수 있습니다. 이 예제 정책에는 페이지에 있는 모든 정보를 보고 편집하는 데 필요한 권한이 포함되어 있습니다. 또한 사용자가 AWS에서 다른 작업을 수행하기 전에 MFA 사용을 설정하고 인증해야 합니다. 사용자가 MFA를 사용하지 않고 자신의 자격 증명을 관리하도록 허용하려면 [AWS: IAM 사용자가 보안 인증 페이지에서 자신의 보안 인증을 관리할 수 있도록 허용](reference_policies_examples_aws_my-sec-creds-self-manage-no-mfa.md) 섹션을 참조하세요.

사용자가 **보안 인증** 페이지에 액세스할 수 있는 방법을 알아보려면 [IAM 사용자가 자신의 암호를 변경하는 방법(콘솔)](id_credentials_passwords_user-change-own.md#ManagingUserPwdSelf-Console) 섹션을 참조하세요.

**참고**  
이 정책 예제에서는 사용자가 처음으로 AWS Management Console에 로그인하는 동안 암호 재설정을 허용하지 않습니다. 새 사용자가 로그인할 때까지 새 사용자에게 권한을 부여하지 않는 것이 좋습니다. 자세한 내용은 [IAM 사용자를 안전하게 생성하려면 어떻게 해야 하나요?](troubleshoot.md#troubleshoot_general_securely-create-iam-users) 단원을 참조하세요. 이렇게 하면 암호가 만료된 사용자가 로그인 중 암호를 재설정할 수 없습니다. `iam:ChangePassword` 및 `iam:GetAccountPasswordPolicy`을 `DenyAllExceptListedIfNoMFA` 문에 추가하여 이를 허용할 수 있습니다. 그러나 사용자가 MFA 없이 암호를 변경하도록 허용하면 보안 위험이 발생할 수 있으므로 이는 권장되지 않습니다.
프로그래밍 방식의 액세스에 이 정책을 사용하려면 [https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html)을 호출하여 MFA로 인증해야 합니다. 자세한 내용은 [MFA를 통한 보안 API 액세스](id_credentials_mfa_configure-api-require.md) 단원을 참조하세요.

**이 정책이 하는 일은 무엇입니까?**
+ `AllowViewAccountInfo` 문은 사용자가 계정 수중 정보를 볼 수 있도록 허용합니다. 이러한 권한은 리소스 ARN을 지원하지 않거나 리소스 ARN을 지정하는 데 필요하지 않기 때문에 자신의 문에 포함되어 있어야 합니다. 권한 대신 `"Resource" : "*"`를 지정합니다. 이 문에는 사용자가 특정 정보를 볼 수 있도록 허용하는 다음 작업이 포함되어 있습니다.
  + `GetAccountPasswordPolicy` - 자신의 IAM 사용자 암호를 변경하는 동안 계정 암호 요구 사항을 봅니다.
  + `ListVirtualMFADevices` - 사용자에 대해 활성화된 가상 MFA 디바이스에 대한 세부 정보를 봅니다.
+ `AllowManageOwnPasswords` 문은 사용자가 자신의 암호를 변경할 수 있도록 허용합니다. 또한 이 문에는 **My security credentials**(내 보안 자격 증명) 페이지에 있는 대부분의 정보를 보는 데 필요한 `GetUser` 작업도 포함되어 있습니다.
+ `AllowManageOwnAccessKeys` 문은 사용자가 자신의 액세스 키를 생성, 업데이트 및 삭제할 수 있도록 허용합니다. 사용자가 지정된 액세스 키가 마지막으로 사용된 시간에 대한 정보를 검색할 수도 있습니다.
+ `AllowManageOwnSigningCertificates` 문은 사용자가 자신의 서명 인증서를 업로드, 업데이트 및 삭제할 수 있도록 허용합니다.
+ `AllowManageOwnSSHPublicKeys` 문은 사용자가 CodeCommit에 대한 자신의 SSH 퍼블릭 키를 업로드, 업데이트 및 삭제할 수 있도록 허용합니다.
+ `AllowManageOwnGitCredentials` 문은 사용자가 CodeCommit에 대한 자신의 Git 자격 증명을 생성, 업데이트 및 삭제할 수 있도록 허용합니다.
+ `AllowManageOwnVirtualMFADevice` 문은 사용자가 자신의 가상 MFA 디바이스를 생성할 수 있도록 허용합니다. 이 문의 리소스 ARN은 사용자가 임의의 이름으로 MFA 디바이스를 생성할 수 있도록 허용하지만 정책의 다른 문은 사용자가 현재 로그인한 사용자에게만 디바이스를 연결할 수 있도록 허용합니다.
+ `AllowManageOwnUserMFA` 문은 사용자가 자신의 사용자에 대해 가상, U2F 또는 하드웨어 MFA 디바이스를 보거나 관리할 수 있도록 허용합니다. 이 문의 리소스 ARN은 사용자 자신의 IAM 사용자에 대한 액세스만 허용합니다. 사용자는 다른 사용자의 MFA 디바이스를 보거나 관리할 수 없습니다.
+ `DenyAllExceptListedIfNoMFA` 문은 사용자가 MFA를 사용하여 로그인하지 않은 ***경우에만*** 몇 가지 나열된 작업을 제외한 모든 AWS의 모든 작업에 대한 액세스를 거부합니다. 이 문은 `"Deny"` 및 `"NotAction"`의 조합을 사용하여 나열되지 않은 모든 작업에 대한 액세스를 명시적으로 거부합니다. 나열된 항목은 이 문에 따라 거부되거나 허용되지 않습니다. 하지만 정책의 다른 문에서 작업이 허용됩니다. 이 문의 로직에 대한 자세한 내용은 [NotAction 및 Deny](reference_policies_elements_notaction.md) 섹션을 참조하세요. 사용자가 MFA를 사용하여 로그인한 경우 `Condition` 테스트가 실패하며 이 문은 어떠한 작업도 거부하지 않습니다. 이 경우 사용자에 대한 다른 정책 또는 문에 따라 사용자의 권한이 결정됩니다.

  이 문을 사용하면 MFA를 사용하여 로그인하지 않은 사용자는 나열된 작업만 수행할 수 있습니다. 또한 사용자는 다른 문 또는 정책이 해당 작업에 대한 액세스를 허용하는 경우에만 나열된 작업을 수행할 수 있습니다. MFA 권한 부여가 없으면 `iam:ChangePassword` 작업이 허용되지 않기 때문에 사용자는 로그인 시 암호를 생성할 수 없습니다.

  `...IfExists` 키를 분실했을 경우 `Bool` 연산자의 `aws:MultiFactorAuthPresent` 버전은 조건이 true로 반환됩니다. 즉, 액세스 키와 같은 장기 자격 증명으로 API를 액세스하는 사용자는 비 IAM API 작업에 대한 액세스가 거부됩니다.

이 정책은 사용자가 IAM 콘솔에서 **사용자** 페이지를 보거나 이 페이지를 사용하여 자신의 사용자 정보에 액세스할 수 있도록 허용합니다. 이 작업을 허용하려면 `iam:ListUsers` 작업을 `AllowViewAccountInfo` 문과 `DenyAllExceptListedIfNoMFA` 문에 추가합니다. 또한 이 문은 사용자가 자신의 사용자 페이지에서 암호를 변경하도록 허용하지 않습니다. 이 작업을 허용하려면 `iam:GetLoginProfile` 및 `iam:UpdateLoginProfile` 작업을 `AllowManageOwnPasswords` 문에 추가합니다. 또한 사용자가 MFA를 사용하여 로그인하지 않고 자신의 사용자 페이지에서 자신의 암호를 변경할 수 있도록 허용하려면 `iam:UpdateLoginProfile` 작업을 `DenyAllExceptListedIfNoMFA` 문에 추가합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowViewAccountInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetAccountPasswordPolicy",
                "iam:ListVirtualMFADevices"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowManageOwnPasswords",
            "Effect": "Allow",
            "Action": [
                "iam:ChangePassword",
                "iam:GetUser"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "AllowManageOwnAccessKeys",
            "Effect": "Allow",
            "Action": [
                "iam:CreateAccessKey",
                "iam:DeleteAccessKey",
                "iam:ListAccessKeys",
                "iam:UpdateAccessKey",
                "iam:GetAccessKeyLastUsed"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "AllowManageOwnSigningCertificates",
            "Effect": "Allow",
            "Action": [
                "iam:DeleteSigningCertificate",
                "iam:ListSigningCertificates",
                "iam:UpdateSigningCertificate",
                "iam:UploadSigningCertificate"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "AllowManageOwnSSHPublicKeys",
            "Effect": "Allow",
            "Action": [
                "iam:DeleteSSHPublicKey",
                "iam:GetSSHPublicKey",
                "iam:ListSSHPublicKeys",
                "iam:UpdateSSHPublicKey",
                "iam:UploadSSHPublicKey"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "AllowManageOwnGitCredentials",
            "Effect": "Allow",
            "Action": [
                "iam:CreateServiceSpecificCredential",
                "iam:DeleteServiceSpecificCredential",
                "iam:ListServiceSpecificCredentials",
                "iam:ResetServiceSpecificCredential",
                "iam:UpdateServiceSpecificCredential"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "AllowManageOwnVirtualMFADevice",
            "Effect": "Allow",
            "Action": [
                "iam:CreateVirtualMFADevice"
            ],
            "Resource": "arn:aws:iam::*:mfa/*"
        },
        {
            "Sid": "AllowManageOwnUserMFA",
            "Effect": "Allow",
            "Action": [
                "iam:DeactivateMFADevice",
                "iam:EnableMFADevice",
                "iam:ListMFADevices",
                "iam:ResyncMFADevice"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "DenyAllExceptListedIfNoMFA",
            "Effect": "Deny",
            "NotAction": [
                "iam:CreateVirtualMFADevice",
                "iam:EnableMFADevice",
                "iam:GetUser",
                "iam:GetMFADevice",
                "iam:ListMFADevices",
                "iam:ListVirtualMFADevices",
                "iam:ResyncMFADevice",
                "sts:GetSessionToken"
            ],
            "Resource": "*",
            "Condition": {
                "BoolIfExists": {
                    "aws:MultiFactorAuthPresent": "false"
                }
            }
        }
    ]
}
```

------

# AWS: 지정된 기간 동안 MFA를 사용한 특정 액세스 허용
<a name="reference_policies_examples_aws_mfa-dates"></a>

이 예제는 논리 `AND`를 사용하여 평가되는 여러 조건을 사용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. `SERVICE-NAME-1`으로 명명된 서비스에 대해 모든 액세스를 허용하고 `ACTION-NAME-A`로 명명된 서비스에서 `ACTION-NAME-B` 및 `SERVICE-NAME-2` 작업에 대한 액세스를 허용합니다. 이들 작업은 사용자가 [멀티 팩터 인증(MFA)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html)을 통해 인증된 경우에만 허용됩니다. 액세스는 2017년 7월 1일과 2017년 12월 31일(UTC) 사이에 발생하는 작업으로 제한됩니다(7월 1일 및 12월 31일 포함). 이 정책은 AWS API 또는 AWS CLI에서 이러한 작업을 프로그래밍 방식으로 완료하는 데 필요한 권한을 부여합니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체합니다. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다.

IAM 정책의 `Condition` 블록 내에서 복수 조건을 사용하는 방법에 관한 자세한 내용은 [다수의 조건 값](reference_policies_elements_condition.md#Condition-multiple-conditions) 섹션을 참조하세요.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": [
            "service-prefix-1:*",
            "service-prefix-2:action-name-a",
            "service-prefix-2:action-name-b"
        ],
        "Resource": "*",
        "Condition": {
            "Bool": {"aws:MultiFactorAuthPresent": true},
            "DateGreaterThan": {"aws:CurrentTime": "2017-07-01T00:00:00Z"},
            "DateLessThan": {"aws:CurrentTime": "2017-12-31T23:59:59Z"}
        }
    }
}
```

------

# AWS: IAM 사용자가 보안 인증 페이지에서 자신의 보안 인증을 관리할 수 있도록 허용
<a name="reference_policies_examples_aws_my-sec-creds-self-manage-no-mfa"></a>

이 예시는 **보안 인증** 페이지에서 IAM 사용자가 모든 보안 인증을 관리할 수 있도록 허용하는 자격 증명 기반 정책을 생성하는 방법을 보여줍니다. 이 AWS Management Console 페이지에는 계정 ID 및 정식 사용자 ID와 같은 계정 정보가 표시됩니다. 또한 사용자는 자신의 암호, 액세스 키, X.509 인증서, SSH 키, Git 자격 증명을 보고 편집할 수 있습니다. 이 예제 정책에는 사용자의 MFA 디바이스를 *제외하고* 페이지에 있는 모든 정보를 보고 편집하는 데 필요한 권한이 포함되어 있습니다. 사용자가 MFA를 사용하여 자신의 자격 증명을 관리하도록 허용하려면 [AWS: MFA 인증 IAM 사용자가 보안 인증 페이지에서 자신의 보안 인증을 관리할 수 있도록 허용](reference_policies_examples_aws_my-sec-creds-self-manage.md) 섹션을 참조하세요.

사용자가 **보안 인증** 페이지에 액세스할 수 있는 방법을 알아보려면 [IAM 사용자가 자신의 암호를 변경하는 방법(콘솔)](id_credentials_passwords_user-change-own.md#ManagingUserPwdSelf-Console) 섹션을 참조하세요.

**이 정책이 하는 일은 무엇입니까?**
+ `AllowViewAccountInfo` 문은 사용자가 계정 수중 정보를 볼 수 있도록 허용합니다. 이러한 권한은 리소스 ARN을 지원하지 않거나 리소스 ARN을 지정하는 데 필요하지 않기 때문에 자신의 문에 포함되어 있어야 합니다. 권한 대신 `"Resource" : "*"`를 지정합니다. 이 문에는 사용자가 특정 정보를 볼 수 있도록 허용하는 다음 작업이 포함되어 있습니다.
  + `GetAccountPasswordPolicy` - 자신의 IAM 사용자 암호를 변경하는 동안 계정 암호 요구 사항을 봅니다.
  + `GetAccountSummary` - 계정 ID 및 계정 [정식 사용자 ID](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html#FindingCanonicalId)를 봅니다.
+ `AllowManageOwnPasswords` 문은 사용자가 자신의 암호를 변경할 수 있도록 허용합니다. 또한 이 문에는 **My security credentials**(내 보안 자격 증명) 페이지에 있는 대부분의 정보를 보는 데 필요한 `GetUser` 작업도 포함되어 있습니다.
+ `AllowManageOwnAccessKeys` 문은 사용자가 자신의 액세스 키를 생성, 업데이트 및 삭제할 수 있도록 허용합니다. 사용자가 지정된 액세스 키가 마지막으로 사용된 시간에 대한 정보를 검색할 수도 있습니다.
+ `AllowManageOwnSigningCertificates` 문은 사용자가 자신의 서명 인증서를 업로드, 업데이트 및 삭제할 수 있도록 허용합니다.
+ `AllowManageOwnSSHPublicKeys` 문은 사용자가 CodeCommit에 대한 자신의 SSH 퍼블릭 키를 업로드, 업데이트 및 삭제할 수 있도록 허용합니다.
+ `AllowManageOwnGitCredentials` 문은 사용자가 CodeCommit에 대한 자신의 Git 자격 증명을 생성, 업데이트 및 삭제할 수 있도록 허용합니다.

이 정책은 사용자가 자신의 MFA 디바이스를 보거나 관리하도록 허용하지 않습니다. 또한 사용자는 IAM 콘솔에서 **사용자** 페이지를 보거나 이 페이지를 사용하여 자신의 사용자 정보에 액세스할 수 없습니다. 이 작업을 허용하려면 `iam:ListUsers` 작업을 `AllowViewAccountInfo` 문에 추가합니다. 또한 이 문은 사용자가 자신의 사용자 페이지에서 암호를 변경하도록 허용하지 않습니다. 이 작업을 허용하려면 `iam:CreateLoginProfile`, `iam:DeleteLoginProfile`, `iam:GetLoginProfile` 및 `iam:UpdateLoginProfile` 작업을 `AllowManageOwnPasswords` 문에 추가합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowViewAccountInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetAccountPasswordPolicy",
                "iam:GetAccountSummary"       
            ],
            "Resource": "*"
        },       
        {
            "Sid": "AllowManageOwnPasswords",
            "Effect": "Allow",
            "Action": [
                "iam:ChangePassword",
                "iam:GetUser"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "AllowManageOwnAccessKeys",
            "Effect": "Allow",
            "Action": [
                "iam:CreateAccessKey",
                "iam:DeleteAccessKey",
                "iam:ListAccessKeys",
                "iam:UpdateAccessKey",
                "iam:GetAccessKeyLastUsed"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "AllowManageOwnSigningCertificates",
            "Effect": "Allow",
            "Action": [
                "iam:DeleteSigningCertificate",
                "iam:ListSigningCertificates",
                "iam:UpdateSigningCertificate",
                "iam:UploadSigningCertificate"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "AllowManageOwnSSHPublicKeys",
            "Effect": "Allow",
            "Action": [
                "iam:DeleteSSHPublicKey",
                "iam:GetSSHPublicKey",
                "iam:ListSSHPublicKeys",
                "iam:UpdateSSHPublicKey",
                "iam:UploadSSHPublicKey"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "AllowManageOwnGitCredentials",
            "Effect": "Allow",
            "Action": [
                "iam:CreateServiceSpecificCredential",
                "iam:DeleteServiceSpecificCredential",
                "iam:ListServiceSpecificCredentials",
                "iam:ResetServiceSpecificCredential",
                "iam:UpdateServiceSpecificCredential"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        }
    ]
}
```

------

# AWS: MFA 인증 IAM 사용자가 보안 인증 페이지에서 자신의 MFA 디바이스를 관리할 수 있도록 허용
<a name="reference_policies_examples_aws_my-sec-creds-self-manage-mfa-only"></a>

이 예시는 [다중 인증(MFA)](id_credentials_mfa.md)을 사용하여 인증된 IAM 사용자가 **보안 인증** 페이지에서 자신의 MFA 디바이스를 관리할 수 있도록 허용하는 자격 증명 기반 정책을 생성하는 방법을 보여줍니다. 이 AWS Management Console 페이지에는 계정 및 사용자 정보가 표시되지만, 사용자는 자신의 MFA 디바이스만 보고 편집할 수 있습니다. 사용자가 MFA를 사용하여 자신의 모든 자격 증명을 관리하도록 허용하려면 [AWS: MFA 인증 IAM 사용자가 보안 인증 페이지에서 자신의 보안 인증을 관리할 수 있도록 허용](reference_policies_examples_aws_my-sec-creds-self-manage.md) 섹션을 참조하세요.

**참고**  
이 정책을 가진 IAM 사용자가 MFA 인증을 받지 않은 경우 이 정책은 MFA를 사용하여 인증하는 데 필요한 AWS 작업을 제외한 모든 해당 작업에 대한 액세스를 거부합니다. AWS CLI 및 AWS API를 사용하려면 IAM 사용자가 먼저 AWS STS [GetSessionToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html) 작업을 사용하여 MFA 토큰을 검색한 다음 해당 토큰을 사용하여 원하는 작업을 인증해야 합니다. 리소스 기반 정책이나 기타 아이덴티티 기반 정책 등의 기타 정책은 다른 서비스의 작업을 허용할 수 있습니다. 이 정책은 IAM 사용자가 MFA 인증을 받지 않은 경우 해당 액세스를 거부합니다.

사용자가 **보안 인증** 페이지에 액세스할 수 있는 방법을 알아보려면 [IAM 사용자가 자신의 암호를 변경하는 방법(콘솔)](id_credentials_passwords_user-change-own.md#ManagingUserPwdSelf-Console) 섹션을 참조하세요.

**이 정책이 하는 일은 무엇입니까?**
+ `AllowViewAccountInfo` 문은 사용자가 사용자에 대해 활성화된 가상 MFA 디바이스에 대한 세부 정보를 볼 수 있도록 허용합니다. 이 권한은 리소스 ARN 지정을 지원하지 않으므로 자신의 문에 들어 있어야 합니다. 그 대신 `"Resource" : "*"`를 지정해야 합니다.
+ `AllowManageOwnVirtualMFADevice` 문은 사용자가 자신의 가상 MFA 디바이스를 생성할 수 있도록 허용합니다. 이 문의 리소스 ARN은 사용자가 임의의 이름으로 MFA 디바이스를 생성할 수 있도록 허용하지만 정책의 다른 문은 사용자가 현재 로그인한 사용자에게만 디바이스를 연결할 수 있도록 허용합니다.
+ `AllowManageOwnUserMFA` 문은 사용자가 자신의 가상, U2F 또는 하드웨어 MFA 디바이스를 보거나 관리할 수 있도록 허용합니다. 이 문의 리소스 ARN은 사용자 자신의 IAM 사용자에 대한 액세스만 허용합니다. 사용자는 다른 사용자의 MFA 디바이스를 보거나 관리할 수 없습니다.
+ `DenyAllExceptListedIfNoMFA` 문은 사용자가 MFA를 사용하여 로그인하지 않은 ***경우에만*** 몇 가지 나열된 작업을 제외한 모든 AWS의 모든 작업에 대한 액세스를 거부합니다. 이 문은 `"Deny"` 및 `"NotAction"`의 조합을 사용하여 나열되지 않은 모든 작업에 대한 액세스를 명시적으로 거부합니다. 나열된 항목은 이 문에 따라 거부되거나 허용되지 않습니다. 하지만 정책의 다른 문에서 작업이 허용됩니다. 이 문의 로직에 대한 자세한 내용은 [NotAction 및 Deny](reference_policies_elements_notaction.md) 섹션을 참조하세요. 사용자가 MFA를 사용하여 로그인한 경우 `Condition` 테스트가 실패하며 이 문은 어떠한 작업도 거부하지 않습니다. 이 경우 사용자에 대한 다른 정책 또는 문에 따라 사용자의 권한이 결정됩니다.

  이 문을 사용하면 MFA를 사용하여 로그인하지 않은 사용자는 나열된 작업만 수행할 수 있습니다. 또한 사용자는 다른 문 또는 정책이 해당 작업에 대한 액세스를 허용하는 경우에만 나열된 작업을 수행할 수 있습니다.

  `...IfExists` 키를 분실했을 경우 `Bool` 연산자의 `aws:MultiFactorAuthPresent` 버전은 조건이 true로 반환됩니다. 따라서 액세스 키와 같은 장기 자격 증명을 사용하여 API 작업에 액세스하는 사용자는 비 IAM API 작업에 대한 액세스가 거부됩니다.

이 정책은 사용자가 IAM 콘솔에서 **사용자** 페이지를 보거나 이 페이지를 사용하여 자신의 사용자 정보에 액세스할 수 있도록 허용합니다. 이 작업을 허용하려면 `iam:ListUsers` 작업을 `AllowViewAccountInfo` 문과 `DenyAllExceptListedIfNoMFA` 문에 추가합니다.

**주의**  
MFA 인증 없이 MFA 디바이스를 삭제할 수 있는 권한을 추가하지 마세요. 이 정책을 보유한 사용자는 스스로를 가상 MFA 디바이스로 지정하려 하고 `iam:DeleteVirtualMFADevice` 수행에 필요한 권한이 부여되지 않았다는 오류가 표시될 수 있습니다. 이 경우 `DenyAllExceptListedIfNoMFA` 문에 해당 권한을 추가하지 **마세요**. MFA를 사용하여 인증되지 않은 사용자에게 MFA 디바이스 삭제를 허용해서는 안 됩니다. 이전에 사용자에게 가상 MFA 디바이스를 할당하기 시작하고 프로세스를 취소한 경우 이 오류가 표시될 수 있습니다. 이 문제를 해결하려면 사용자 또는 다른 관리자가 AWS CLI 또는 AWS API를 사용하여 사용자의 기존 가상 MFA 디바이스를 삭제해야 합니다. 자세한 내용은 [iam:DeleteVirtualMFADevice를 수행할 권한이 없음](troubleshoot.md#troubleshoot_general_access-denied-delete-mfa) 단원을 참조하세요.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowViewAccountInfo",
            "Effect": "Allow",
            "Action": "iam:ListVirtualMFADevices",
            "Resource": "*"
        },
        {
            "Sid": "AllowManageOwnVirtualMFADevice",
            "Effect": "Allow",
            "Action": [
                "iam:CreateVirtualMFADevice"
            ],
            "Resource": "arn:aws:iam::*:mfa/*"
        },
        {
            "Sid": "AllowManageOwnUserMFA",
            "Effect": "Allow",
            "Action": [
                "iam:DeactivateMFADevice",
                "iam:EnableMFADevice",
                "iam:GetUser",
                "iam:GetMFADevice",
                "iam:ListMFADevices",
                "iam:ResyncMFADevice"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "DenyAllExceptListedIfNoMFA",
            "Effect": "Deny",
            "NotAction": [
                "iam:CreateVirtualMFADevice",
                "iam:EnableMFADevice",
                "iam:GetUser",
                "iam:ListMFADevices",
                "iam:ListVirtualMFADevices",
                "iam:ResyncMFADevice",
                "sts:GetSessionToken"
            ],
            "Resource": "*",
            "Condition": {
                "BoolIfExists": {"aws:MultiFactorAuthPresent": "false"}
            }
        }
    ]
}
```

------

# AWS: IAM 사용자가 보안 인증 페이지에서 자신의 콘솔 암호를 변경할 수 있도록 허용
<a name="reference_policies_examples_aws_my-sec-creds-self-manage-password-only"></a>

이 예시는 **보안 인증** 페이지에서 IAM 사용자가 모든 AWS Management Console 암호를 변경할 수 있도록 허용하는 자격 증명 기반 정책을 생성하는 방법을 보여줍니다. 이 AWS Management Console 페이지에는 계정 및 사용자 정보가 표시되지만, 사용자는 자신의 암호에만 액세스할 수 있습니다. 사용자가 MFA를 사용하여 자신의 모든 자격 증명을 관리하도록 허용하려면 [AWS: MFA 인증 IAM 사용자가 보안 인증 페이지에서 자신의 보안 인증을 관리할 수 있도록 허용](reference_policies_examples_aws_my-sec-creds-self-manage.md) 섹션을 참조하세요. 사용자가 MFA를 사용하지 않고 자신의 자격 증명을 관리하도록 허용하려면 [AWS: IAM 사용자가 보안 인증 페이지에서 자신의 보안 인증을 관리할 수 있도록 허용](reference_policies_examples_aws_my-sec-creds-self-manage-no-mfa.md) 섹션을 참조하세요.

사용자가 **보안 인증** 페이지에 액세스할 수 있는 방법을 알아보려면 [IAM 사용자가 자신의 암호를 변경하는 방법(콘솔)](id_credentials_passwords_user-change-own.md#ManagingUserPwdSelf-Console) 섹션을 참조하세요.

**이 정책이 하는 일은 무엇입니까?**
+ `ViewAccountPasswordRequirements` 문은 사용자가 자신의 IAM 사용자 암호를 변경하는 동안 계정 암호 요구 사항을 볼 수 있도록 허용합니다.
+ `ChangeOwnPassword` 문은 사용자가 자신의 암호를 변경할 수 있도록 허용합니다. 또한 이 문에는 **My security credentials**(내 보안 자격 증명) 페이지에 있는 대부분의 정보를 보는 데 필요한 `GetUser` 작업도 포함되어 있습니다.

이 정책은 사용자가 IAM 콘솔에서 **사용자** 페이지를 보거나 이 페이지를 사용하여 자신의 사용자 정보에 액세스할 수 있도록 허용합니다. 이 작업을 허용하려면 `iam:ListUsers` 작업을 `ViewAccountPasswordRequirements` 문에 추가합니다. 또한 이 문은 사용자가 자신의 사용자 페이지에서 암호를 변경하도록 허용하지 않습니다. 이 작업을 허용하려면 `iam:GetLoginProfile` 및 `iam:UpdateLoginProfile` 작업을 `ChangeOwnPasswords` 문에 추가합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewAccountPasswordRequirements",
            "Effect": "Allow",
            "Action": "iam:GetAccountPasswordPolicy",
            "Resource": "*"
        },
        {
            "Sid": "ChangeOwnPassword",
            "Effect": "Allow",
            "Action": [
                "iam:GetUser",
                "iam:ChangePassword"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        }
    ]
}
```

------

# AWS: IAM 사용자가 보안 인증 페이지에서 자신의 암호, 액세스 키 및 SSH 퍼블릭 키를 관리할 수 있도록 허용
<a name="reference_policies_examples_aws_my-sec-creds-self-manage-pass-accesskeys-ssh"></a>

이 예시는 **보안 인증** 페이지에서 IAM 사용자가 암호, 액세스 키, X.509 인증서를 관리할 수 있도록 허용하는 자격 증명 기반 정책을 생성하는 방법을 보여줍니다. 이 AWS Management Console 페이지에는 계정 ID 및 정식 사용자 ID와 같은 계정 정보가 표시됩니다. 또한 사용자는 자신의 암호, 액세스 키, MFA 디바이스, X.509 인증서, SSH 키 및 Git 자격 증명을 보고 편집할 수 있습니다. 이 예제 정책에는 자신의 암호, 액세스 키 및 X.509 인증서만 보고 편집하는 데 필요한 권한이 포함되어 있습니다. 사용자가 MFA를 사용하여 자신의 모든 자격 증명을 관리하도록 허용하려면 [AWS: MFA 인증 IAM 사용자가 보안 인증 페이지에서 자신의 보안 인증을 관리할 수 있도록 허용](reference_policies_examples_aws_my-sec-creds-self-manage.md) 섹션을 참조하세요. 사용자가 MFA를 사용하지 않고 자신의 자격 증명을 관리하도록 허용하려면 [AWS: IAM 사용자가 보안 인증 페이지에서 자신의 보안 인증을 관리할 수 있도록 허용](reference_policies_examples_aws_my-sec-creds-self-manage-no-mfa.md) 섹션을 참조하세요.

사용자가 **보안 인증** 페이지에 액세스할 수 있는 방법을 알아보려면 [IAM 사용자가 자신의 암호를 변경하는 방법(콘솔)](id_credentials_passwords_user-change-own.md#ManagingUserPwdSelf-Console) 섹션을 참조하세요.

**이 정책이 하는 일은 무엇입니까?**
+ `AllowViewAccountInfo` 문은 사용자가 계정 수중 정보를 볼 수 있도록 허용합니다. 이러한 권한은 리소스 ARN을 지원하지 않거나 리소스 ARN을 지정하는 데 필요하지 않기 때문에 자신의 문에 포함되어 있어야 합니다. 권한 대신 `"Resource" : "*"`를 지정합니다. 이 문에는 사용자가 특정 정보를 볼 수 있도록 허용하는 다음 작업이 포함되어 있습니다.
  + `GetAccountPasswordPolicy` - 자신의 IAM 사용자 암호를 변경하는 동안 계정 암호 요구 사항을 봅니다.
  + `GetAccountSummary` - 계정 ID 및 계정 [정식 사용자 ID](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html#FindingCanonicalId)를 봅니다.
+ `AllowManageOwnPasswords` 문은 사용자가 자신의 암호를 변경할 수 있도록 허용합니다. 또한 이 문에는 **My security credentials**(내 보안 자격 증명) 페이지에 있는 대부분의 정보를 보는 데 필요한 `GetUser` 작업도 포함되어 있습니다.
+ `AllowManageOwnAccessKeys` 문은 사용자가 자신의 액세스 키를 생성, 업데이트 및 삭제할 수 있도록 허용합니다. 사용자가 지정된 액세스 키가 마지막으로 사용된 시간에 대한 정보를 검색할 수도 있습니다.
+ `AllowManageOwnSSHPublicKeys` 문은 사용자가 CodeCommit에 대한 자신의 SSH 퍼블릭 키를 업로드, 업데이트 및 삭제할 수 있도록 허용합니다.

이 정책은 사용자가 자신의 MFA 디바이스를 보거나 관리하도록 허용하지 않습니다. 또한 사용자는 IAM 콘솔에서 **사용자** 페이지를 보거나 이 페이지를 사용하여 자신의 사용자 정보에 액세스할 수 없습니다. 이 작업을 허용하려면 `iam:ListUsers` 작업을 `AllowViewAccountInfo` 문에 추가합니다. 또한 이 문은 사용자가 자신의 사용자 페이지에서 암호를 변경하도록 허용하지 않습니다. 이 작업을 허용하려면 `iam:GetLoginProfile` 및 `iam:UpdateLoginProfile` 작업을 `AllowManageOwnPasswords` 문에 추가합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowViewAccountInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetAccountPasswordPolicy",
                "iam:GetAccountSummary"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowManageOwnPasswords",
            "Effect": "Allow",
            "Action": [
                "iam:ChangePassword",
                "iam:GetUser"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "AllowManageOwnAccessKeys",
            "Effect": "Allow",
            "Action": [
                "iam:CreateAccessKey",
                "iam:DeleteAccessKey",
                "iam:ListAccessKeys",
                "iam:UpdateAccessKey",
                "iam:GetAccessKeyLastUsed"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "AllowManageOwnSSHPublicKeys",
            "Effect": "Allow",
            "Action": [
                "iam:DeleteSSHPublicKey",
                "iam:GetSSHPublicKey",
                "iam:ListSSHPublicKeys",
                "iam:UpdateSSHPublicKey",
                "iam:UploadSSHPublicKey"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        }
    ]
}
```

------

# AWS: 요청된 리전에 따라 AWS에 대한 액세스를 거부
<a name="reference_policies_examples_aws_deny-requested-region"></a>

이 예에서는 `NotAction`을 사용하도록 지정된 서비스의 작업을 제외하고 [`aws:RequestedRegion` 조건 키](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requestedregion)를 사용하여 지정된 리전 외부의 작업에 대한 액세스를 거부하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 이 정책은 프로그래밍 방식 및 콘솔 액세스에 대한 권한을 정의합니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체하세요. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다.

이 정책은 `NotAction` 요소를 `Deny` 효과와 함께 사용하여 문에 나열되지 *않은* 모든 작업에 대한 액세스를 거부합니다. CloudFront, IAM, Route 53 및 지원 서비스의 작업은 거부되어서는 안 되는데, 이는 이러한 서비스가 물리적으로 `us-east-1` 리전에 위치한 단일 엔드포인트가 포함된 유명한 AWS 전역 서비스이기 때문입니다. 이러한 서비스에 대한 모든 요청이 `us-east-1` 리전으로 전달되기 때문에 `NotAction` 요소 없이 요청은 거부됩니다. 이 요소를 편집하여 `budgets`, `globalaccelerator`, `importexport`, `organizations` 또는 `waf` 등과 같이 기타 AWS 전역 서비스에 대한 작업을 포함합니다. 채팅 애플리케이션의 Amazon Q Developer 및 AWS Device Farm과 같은 일부 다른 전역 서비스는 물리적으로 `us-west-2` 리전에 위치한 엔드포인트를 포함한 전역 서비스입니다. 전역 엔드포인트를 보유한 모든 서비스에 대해 알아보려면 **AWS 일반 참조의 [AWS 리전 및 엔드포인트](https://docs.aws.amazon.com/general/latest/gr/rande.html)를 참조하세요. `NotAction` 효과와 `Deny` 요소의 사용에 대해 자세하 알아보려면 [IAM JSON 정책 요소: NotAction](reference_policies_elements_notaction.md) 섹션을 참조하세요.

**중요**  
이 정책은 어떤 작업도 허용하지 않습니다. 이 정책을 특정 작업을 허용하는 다른 정책과 함께 사용합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DenyAllOutsideRequestedRegions",
            "Effect": "Deny",
            "NotAction": [
                "cloudfront:*",
                "iam:*",
                "organizations:*",
                "route53:*",
                "support:*"
            ],
            "Resource": "*",
            "Condition": {
                "StringNotEquals": {
                    "aws:RequestedRegion": [
                        "eu-central-1",
                        "eu-west-1",
                        "eu-west-2",
                        "eu-west-3"
                    ]
                }
            }
        }
    ]
}
```

------

# AWS: 소스 IP를 바탕으로 AWS에 대한 액세스 거부
<a name="reference_policies_examples_aws_deny-ip"></a>

이 예제는 지정된 IP 범위 외부의 *보안 주체*로부터 요청이 온 경우 계정의 모든 AWS 작업에 대한 액세스를 거부하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 이 정책은 회사의 IP 주소가 지정된 범위 내에 있는 경우에 유용합니다. 이 예제에서는 CIDR 범위 192.0.2.0/24 또는 203.0.113.0/24에서 시작되지 않는 한 요청이 거부됩니다. 정책은 원래 요청자의 IP 주소가 보존되므로 [전달 액세스 세션](access_forward_access_sessions.md)를 사용하는 AWS 서비스에 의한 요청을 거부하지 않습니다.

`"Effect": "Deny"`와 동일한 정책 문에서 부정적인 조건을 사용해야 합니다. 이렇게 하면 정책 문에 지정된 작업이 지정된 조건을 *제외한* 모든 조건에서 명시적으로 거부됩니다.

**중요**  
이 정책은 어떤 작업도 허용하지 않습니다. 이 정책을 특정 작업을 허용하는 다른 정책과 함께 사용합니다.

다른 정책에서 작업을 허용하는 경우 보안 주체는 IP 주소 범위 내에서 요청을 할 수 있습니다. 또한 AWS 서비스는 보안 주체의 자격 증명을 사용하여 요청할 수도 있습니다. 보안 주체가 IP 범위 밖에서 요청을 하면 요청이 거부됩니다.

정책에서 `aws:SourceIp`가 작동하지 않는 경우를 포함해 `aws:SourceIp` 조건 키에 대한 자세한 내용은 [AWS 글로벌 조건 컨텍스트 키](reference_policies_condition-keys.md) 섹션을 참조하세요.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Deny",
        "Action": "*",
        "Resource": "*",
        "Condition": {
            "NotIpAddress": {
                "aws:SourceIp": [
                    "192.0.2.0/24",
                    "203.0.113.0/24"
                ]
            }
        }
    }
}
```

------

# AWS: AWS Data Exchange를 제외한 계정 외부의 Amazon S3 리소스에 대한 액세스 거부
<a name="reference_policies_examples_resource_account_data_exch"></a>

이 예제는 AWS Data Exchange이(가) 일반 작업에 필요한 리소스를 제외하고 계정에 속하지 않은 AWS의 모든 리소스에 대한 액세스를 거부하는 ID 기반 정책을 생성하는 방법을 보여줍니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체합니다. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다.

조건 키 `aws:ResourceOrgPaths` 및 `aws:ResourceOrgID`을(를) 사용하여 AWS Data Exchange 소유 리소스를 고려하면서 조직 또는 조직 단위 내 리소스에 대한 액세스를 제한하는 유사한 정책을 만들 수 있습니다.

환경에서 AWS Data Exchange를 사용하는 경우 서비스는 서비스 계정이 소유한 Amazon S3 버킷과 같은 리소스를 생성하고 상호 작용합니다. 예를 들어, AWS Data Exchange는 AWS Data Exchange API를 호출하는 IAM 보안 주체(사용자 또는 역할)를 대신하여 AWS Data Exchange 서비스가 소유한 Amazon S3 버킷에 요청을 전송합니다. 이 경우 AWS Data Exchange 소유 리소스를 고려하지 않고 정책에서 `aws:ResourceAccount`, `aws:ResourceOrgPaths` 또는`aws:ResourceOrgID`을(를) 사용하면 서비스 계정이 소유한 버킷에 대한 액세스가 거부됩니다.
+ `DenyAllAwsResourcesOutsideAccountExceptS3` 문은 문에 나열되지 않고 나열된 계정에도 속하지 않는 모든 작업에 대한 액세스를 명시적으로 거부하는 [Deny](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_effect.html) 효과와 함께 `NotAction` 요소를 사용합니다. `NotAction` 요소는 이 문의 예외를 나타냅니다. 이러한 작업은 이 문의 예외입니다. AWS Data Exchange에서 생성한 리소스에서 작업을 수행하는 경우 정책이 이를 거부하기 때문입니다.
+ `DenyAllS3ResoucesOutsideAccountExceptDataExchange` 문은 `ResourceAccount` 및 `CalledVia` 조건을 조합해서 사용하여 이전 문에서 제외된 세 가지 Amazon S3 작업에 대한 액세스를 거부합니다. 이 문은 리소스가 나열된 계정에 속하지 않는 경우 그리고 호출 서비스가 AWS Data Exchange이 아닌 경우 작업을 거부합니다. 이 문은 리소스가 나열된 계정에 속하거나 나열된 서비스 주체인 `dataexchange.amazonaws.com`이 작업을 수행하는 경우 작업을 거부하지 않습니다.

**중요**  
이 정책은 어떤 작업도 허용하지 않습니다. 이는 나열된 계정에 속하지 않는 문에 나열된 모든 리소스에 대한 액세스를 명시적으로 거부하는 `Deny` 효과를 사용합니다. 이 정책을 특정 리소스에 대한 액세스를 허용하는 다른 정책과 함께 사용합니다.

다음 예제는 필요한 Amazon S3 버킷에 대한 액세스를 허용하도록 정책을 구성하는 방법을 보여줍니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyAllAwsReourcesOutsideAccountExceptAmazonS3",
      "Effect": "Deny",
      "NotAction": [
        "s3:GetObject",
        "s3:PutObject",
        "s3:PutObjectAcl"
      ],
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "aws:ResourceAccount": [
            "111122223333"
          ]
        }
      }
    },
    {
      "Sid": "DenyAllS3ResourcesOutsideAccountExceptDataExchange",
      "Effect": "Deny",
      "Action": [
        "s3:GetObject",
        "s3:PutObject",
        "s3:PutObjectAcl"
      ],
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "aws:ResourceAccount": [
            "111122223333"
          ]
        },
        "ForAllValues:StringNotEquals": {
          "aws:CalledVia": [
            "dataexchange.amazonaws.com"
          ]
        }
      }
    }
  ]
}
```

------

# AWS Data Pipeline: 사용자가 생성하지 않은 DataPipeline 파이프라인에 대한 액세스 거부
<a name="reference_policies_examples_datapipeline_not-owned"></a>

이 예제는 사용자가 생성하지 않은 파이프라인에 대한 액세스를 거부하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. `PipelineCreator` 필드의 값이 IAM 사용자 이름과 일치하는 경우 지정된 작업이 거부되지 않습니다. 이 정책은 AWS API 또는 AWS CLI에서 이러한 작업을 프로그래밍 방식으로 완료하는 데 필요한 권한을 부여합니다.

**중요**  
이 정책은 어떤 작업도 허용하지 않습니다. 이 정책을 특정 작업을 허용하는 다른 정책과 함께 사용합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ExplicitDenyIfNotTheOwner",
            "Effect": "Deny",
            "Action": [
                "datapipeline:ActivatePipeline",
                "datapipeline:AddTags",
                "datapipeline:DeactivatePipeline",
                "datapipeline:DeletePipeline",
                "datapipeline:DescribeObjects",
                "datapipeline:EvaluateExpression",
                "datapipeline:GetPipelineDefinition",
                "datapipeline:PollForTask",
                "datapipeline:PutPipelineDefinition",
                "datapipeline:QueryObjects",
                "datapipeline:RemoveTags",
                "datapipeline:ReportTaskProgress",
                "datapipeline:ReportTaskRunnerHeartbeat",
                "datapipeline:SetStatus",
                "datapipeline:SetTaskStatus",
                "datapipeline:ValidatePipelineDefinition"
            ],
            "Resource": ["*"],
            "Condition": {
                "StringNotEquals": {"datapipeline:PipelineCreator": "${aws:userid}"}
            }
        }
    ]
}
```

------

# Amazon DynamoDB: 특정 테이블에 대한 액세스 허용
<a name="reference_policies_examples_dynamodb_specific-table"></a>

이 예제는 `MyTable` DynamoDB 테이블에 대한 모든 액세스를 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 이 정책은 AWS API 또는 AWS CLI에서 이러한 작업을 프로그래밍 방식으로 완료하는 데 필요한 권한을 부여합니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체합니다. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다.

**중요**  
이 정책은 DynamoDB 테이블에서 수행 가능한 모든 작업을 허용합니다. 이러한 작업을 검토하려면 *Amazon DynamoDB 개발자 안내서*의 [DynamoDB API 권한: 작업, 리소스 및 조건 참조](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/api-permissions-reference.html)를 참조하세요. 개별 작업 각각을 등록하여 동일한 권한을 제공할 수 있습니다. 그러나 `"dynamodb:List*"`와 같이 `Action` 요소에서 와일드카드(`*`)를 사용하는 경우, DynamoDB에서 새 목록 작업을 추가한다면 정책을 업데이트할 필요가 없습니다.

이 정책은 지정된 이름을 지닌 DynamoDB 테이블에 대해서만 작업을 허용합니다. DynamoDB에 있는 모든 것에 대한 `Read` 액세스 권한을 사용자에게 허용하려면 [AmazonDynamoDBReadOnlyAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AmazonDynamoDBReadOnlyAccess) AWS 관리형 정책을 연결할 수도 있습니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ListAndDescribe",
            "Effect": "Allow",
            "Action": [
                "dynamodb:List*",
                "dynamodb:DescribeReservedCapacity*",
                "dynamodb:DescribeLimits",
                "dynamodb:DescribeTimeToLive"
            ],
            "Resource": "*"
        },
        {
            "Sid": "SpecificTable",
            "Effect": "Allow",
            "Action": [
                "dynamodb:BatchGet*",
                "dynamodb:DescribeStream",
                "dynamodb:DescribeTable",
                "dynamodb:Get*",
                "dynamodb:Query",
                "dynamodb:Scan",
                "dynamodb:BatchWrite*",
                "dynamodb:CreateTable",
                "dynamodb:Delete*",
                "dynamodb:Update*",
                "dynamodb:PutItem"
            ],
            "Resource": "arn:aws:dynamodb:*:*:table/MyTable"
        }
    ]
}
```

------

# Amazon DynamoDB: 특정 속성에 대한 액세스 허용
<a name="reference_policies_examples_dynamodb_attributes"></a>

이 예제는 특정 DynamoDB 속성에 대한 액세스를 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 이 정책은 AWS API 또는 AWS CLI에서 이러한 작업을 프로그래밍 방식으로 완료하는 데 필요한 권한을 부여합니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체합니다. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다.

`dynamodb:Select` 요건을 설정하면 API 작업이 인덱스 프로젝션 등의 방법으로 허용되지 않는 속성을 반환할 수 없게 됩니다. DynamoDB 조건 키에 대한 자세한 정보는 * Amazon DynamoDB 개발자 안내서*의 [조건 지정: 조건 키 사용](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/specifying-conditions.html#FGAC_DDB.ConditionKeys) 섹션을 참조하세요. IAM 정책의 `Condition` 블록 내에서 복수 조건 또는 복수 조건 키를 사용하는 방법에 관한 자세한 내용은 [다수의 조건 값](reference_policies_elements_condition.md#Condition-multiple-conditions) 섹션을 참조하세요.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "dynamodb:GetItem",
                "dynamodb:BatchGetItem",
                "dynamodb:Query",
                "dynamodb:PutItem",
                "dynamodb:UpdateItem",
                "dynamodb:DeleteItem",
                "dynamodb:BatchWriteItem"
            ],
            "Resource": ["arn:aws:dynamodb:*:*:table/table-name"],
            "Condition": {
                "ForAllValues:StringEquals": {
                    "dynamodb:Attributes": [
                        "column-name-1",
                        "column-name-2",
                        "column-name-3"
                    ]
                },
                "StringEqualsIfExists": {"dynamodb:Select": "SPECIFIC_ATTRIBUTES"}
            }
        }
    ]
}
```

------

# Amazon DynamoDB: Amazon Cognito ID를 기준으로 DynamoDB에 대한 항목 수준 액세스 허용
<a name="reference_policies_examples_dynamodb_items"></a>

이 예제는 Amazon Cognito 자격 증명 풀 사용자 ID를 기준으로 `MyTable` DynamoDB 테이블에 대한 항목 수준 액세스를 허용하는 자격 증명 기반 정책을 생성하는 방법을 보여줍니다. 이 정책은 AWS API 또는 AWS CLI에서 이러한 작업을 프로그래밍 방식으로 완료하는 데 필요한 권한을 부여합니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체합니다. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다.

이 정책을 사용하려면 Amazon Cognito 자격 증명 풀 사용자 ID가 파티션 키가 되도록 DynamoDB 테이블을 구성해야 합니다. 자세한 내용은 *Amazon DynamoDB 개발자 안내서*의 [테이블 생성](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.Basics.html#WorkingWithTables.Basics.CreateTable)을 참조하세요.

DynamoDB 조건 키에 대한 자세한 정보는 * Amazon DynamoDB 개발자 안내서*의 [조건 지정: 조건 키 사용](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/specifying-conditions.html#FGAC_DDB.ConditionKeys) 섹션을 참조하세요.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "dynamodb:DeleteItem",
                "dynamodb:GetItem",
                "dynamodb:PutItem",
                "dynamodb:Query",
                "dynamodb:UpdateItem"
            ],
            "Resource": ["arn:aws:dynamodb:*:*:table/MyTable"],
            "Condition": {
                "ForAllValues:StringEquals": {
                    "dynamodb:LeadingKeys": ["${cognito-identity.amazonaws.com:sub}"]
                }
            }
        }
    ]
}
```

------

# Amazon EC2: 태그를 기준으로 Amazon EBS 볼륨을 EC2 인스턴스에 연결 또는 분리
<a name="reference_policies_examples_ec2_ebs-owner"></a>

이 예제는 EBS 볼륨 소유자가 태그 `VolumeUser`를 사용하여 정의한 자신의 EBS 볼륨을 개발 인스턴스(`Department=Development`)로 태그가 지정된 EC2 인스턴스에 연결하거나 분리할 수 있도록 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 이 정책은 AWS API 또는 AWS CLI에서 이러한 작업을 프로그래밍 방식으로 완료하는 데 필요한 권한을 부여합니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체합니다. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다.

Amazon EC2 리소스에 대한 액세스를 제어하는 IAM 정책을 생성하는 방법에 대한 자세한 내용은 *Amazon EC2 사용 설명서*의 [Amazon EC2 리소스에 대한 액세스 제어](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UsingIAM.html)를 참조하세요.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:AttachVolume",
                "ec2:DetachVolume"
            ],
            "Resource": "arn:aws:ec2:*:*:instance/*",
            "Condition": {
                "StringEquals": {"aws:ResourceTag/Department": "Development"}
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:AttachVolume",
                "ec2:DetachVolume"
            ],
            "Resource": "arn:aws:ec2:*:*:volume/*",
            "Condition": {
                "StringEquals": {"aws:ResourceTag/VolumeUser": "${aws:username}"}
            }
        }
    ]
}
```

------

# Amazon EC2: 특정 서브넷에 있는 EC2 인스턴스를 프로그래밍 방식으로 콘솔에서 시작할 수 있도록 허용
<a name="reference_policies_examples_ec2_instances-subnet"></a>

이 예제는 모든 EC2 객체에 대한 정보를 나열하고 특정 서브넷에서 EC2 인스턴스를 시작하는 것을 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 이 정책은 프로그래밍 방식 및 콘솔 액세스에 대한 권한을 정의합니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체하세요. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:Describe*",
                "ec2:GetConsole*"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:RunInstances",
            "Resource": [
                "arn:aws:ec2:*:*:subnet/subnet-subnet-id",
                "arn:aws:ec2:*:*:network-interface/*",
                "arn:aws:ec2:*:*:instance/*",
                "arn:aws:ec2:*:*:volume/*",
                "arn:aws:ec2:*::image/ami-*",
                "arn:aws:ec2:*:*:key-pair/*",
                "arn:aws:ec2:*:*:security-group/*"
            ]
        }
    ]
}
```

------

# Amazon EC2: 특정 태그 키 값 쌍이 있는 EC2 보안 그룹을 콘솔에서 프로그래밍 방식으로 관리할 수 있도록 허용
<a name="reference_policies_examples_ec2_securitygroups-vpc"></a>

이 예제는 동일한 태그가 있는 보안 그룹에 대해 특정 작업을 수행할 수 있는 권한을 사용자에게 부여하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 이 정책은 Amazon EC2 콘솔에서 보안 그룹을 조회하고, 인바운드 및 아웃바운드 규칙을 추가 및 제거하고, `Department=Test` 태그가 있는 기존 보안 그룹에 대한 규칙 설명을 나열하고 수정할 권한을 부여합니다. 이 정책은 프로그래밍 방식 및 콘솔 액세스에 대한 권한을 정의합니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체하세요. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [{
      "Effect": "Allow",
      "Action": [
         "ec2:DescribeSecurityGroups",
         "ec2:DescribeSecurityGroupRules",
         "ec2:DescribeTags"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
         "ec2:AuthorizeSecurityGroupIngress", 
         "ec2:RevokeSecurityGroupIngress", 
         "ec2:AuthorizeSecurityGroupEgress", 
         "ec2:RevokeSecurityGroupEgress", 
         "ec2:ModifySecurityGroupRules",
         "ec2:UpdateSecurityGroupRuleDescriptionsIngress", 
         "ec2:UpdateSecurityGroupRuleDescriptionsEgress"
      ],
      "Resource": [
         "arn:aws:ec2:us-east-1:111122223333:security-group/*"
      ],
      "Condition": {
         "StringEquals": {
            "aws:ResourceTag/Department": "Test"
         }
      }
     },     
     {
      "Effect": "Allow",
      "Action": [
         "ec2:ModifySecurityGroupRules"
      ],
      "Resource": [
         "arn:aws:ec2:us-east-1:111122223333:security-group-rule/*"
      ]
     }
   ]
}
```

------

# Amazon EC2: 프로그래밍 방식으로 콘솔에서 사용자가 태그를 지정한 EC2 인스턴스를 시작 또는 중지할 수 있도록 허용
<a name="reference_policies_examples_ec2_tag-owner"></a>

이 예제는 IAM 사용자가 EC2 인스턴스를 시작 또는 중지할 수 있도록 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 단, 인스턴스 태그 `Owner`에는 해당 사용자의 사용자 이름 값이 있어야 합니다. 이 정책은 프로그래밍 방식 및 콘솔 액세스에 대한 권한을 정의합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:StartInstances",
                "ec2:StopInstances"
            ],
            "Resource": "arn:aws:ec2:*:*:instance/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/Owner": "${aws:username}"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "ec2:DescribeInstances",
            "Resource": "*"
        }
    ]
}
```

------

# EC2: 태그를 기반으로 인스턴스 시작 또는 중지
<a name="reference_policies_examples_ec2-start-stop-tags"></a>

이 예제는 태그 키 값 페어 `Project = DataAnalytics`로 인스턴스를 시작 또는 중지할 수 있도록 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 단, 태그 키 값 페어 `Department = Data`가 있는 보안 주체만 가능합니다. 이 정책은 AWS API 또는 AWS CLI에서 이러한 작업을 프로그래밍 방식으로 완료하는 데 필요한 권한을 부여합니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체합니다. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다.

정책의 조건은 조건의 두 부분이 모두 true인 경우 true를 반환합니다. 인스턴스에 `Project=DataAnalytics` 태그가 있어야 합니다. 또한, 요청을 보내는 IAM 보안 주체(사용자나 역할)에 `Department=Data` 태그가 있어야 합니다.

**참고**  
가장 좋은 방법은 `aws:PrincipalTag` 조건 키가 있는 정책을 IAM 그룹에 연결하는 것입니다. 이 경우 일부 사용자는 지정된 태그가 있고 일부 사용자는 그렇지 않을 수 있습니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "StartStopIfTags",
            "Effect": "Allow",
            "Action": [
                "ec2:StartInstances",
                "ec2:StopInstances"
            ],
            "Resource": "arn:aws:ec2:us-east-1:123456789012:instance/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/Project": "DataAnalytics",
                    "aws:PrincipalTag/Department": "Data"
                }
            }
        }
    ]
}
```

------

# EC2: 일치하는 보안 주체 및 리소스 태그를 기반으로 인스턴스 시작 또는 중지
<a name="reference_policies_examples_ec2-start-stop-match-tags"></a>

이 예제는 인스턴스의 리소스 태그와 보안 주체 태그가 `CostCenter` 태그 키와 동일한 값을 가질 때 Amazon EC2 인스턴스를 시작하거나 중지할 수 있는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 이 정책은 AWS API 또는 AWS CLI에서 이러한 작업을 프로그래밍 방식으로 완료하는 데 필요한 권한을 부여합니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체합니다. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다.

**참고**  
가장 좋은 방법은 `aws:PrincipalTag` 조건 키가 있는 정책을 IAM 그룹에 연결하는 것입니다. 이 경우 일부 사용자는 지정된 태그가 있고 일부 사용자는 그렇지 않을 수 있습니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": [
            "ec2:startInstances",
            "ec2:stopInstances"
        ],
        "Resource": "*",
        "Condition": {"StringEquals": 
            {"aws:ResourceTag/CostCenter": "${aws:PrincipalTag/CostCenter}"}}
    }
}
```

------

# Amazon EC2: 특정 리전 내에서의 모든 EC2 액세스를 프로그래밍 방식으로 콘솔에서 허용
<a name="reference_policies_examples_ec2_region"></a>

이 예제는 특정 리전 내에서 모든 EC2 액세스를 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 이 정책은 프로그래밍 방식 및 콘솔 액세스에 대한 권한을 정의합니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체하세요. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다. 리전 코드 목록은 *Amazon EC2 사용 설명서*의 [사용 가능한 리전](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-available-regions)을 참조하세요.

또는 모든 Amazon EC2 API 작업에서 지원하는 글로벌 조건 키 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requestedregion](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requestedregion)을 사용할 수 있습니다. 자세한 내용은 *Amazon EC2 사용 설명서*의 [예제: 특정 리전으로 액세스 제한](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ExamplePolicies_EC2.html#iam-example-region)을 참조하세요.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": "ec2:*",
            "Resource": "*",
            "Effect": "Allow",
            "Condition": {
                "StringEquals": {
                    "ec2:Region": "us-east-2"
                }
            }
        }
    ]
}
```

------

# Amazon EC2: 프로그래밍 방식으로 콘솔에서 EC2 인스턴스를 시작 또는 중지하고 보안 그룹을 수정할 수 있도록 허용
<a name="reference_policies_examples_ec2_instance-securitygroup"></a>

이 예제는 특정 EC2 인스턴스를 시작 또는 중지하고 특정 보안 그룹을 수정할 수 있도록 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 이 정책은 프로그래밍 방식 및 콘솔 액세스에 대한 권한을 정의합니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체하세요. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
        "ec2:DescribeInstances",
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeSecurityGroupReferences",
        "ec2:DescribeStaleSecurityGroups"
      ],
      "Resource": "*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "ec2:AuthorizeSecurityGroupEgress",
        "ec2:AuthorizeSecurityGroupIngress",
        "ec2:RevokeSecurityGroupEgress",
        "ec2:RevokeSecurityGroupIngress",
        "ec2:StartInstances",
        "ec2:StopInstances"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:instance/i-instance-id",
        "arn:aws:ec2:*:*:security-group/sg-security-group-id"
      ],
      "Effect": "Allow"
    }
  ]
}
```

------

# Amazon EC2: 특정 EC2 작업에 대해 MFA(GetSessionToken)를 요구
<a name="reference_policies_examples_ec2_require-mfa"></a>

이 예제는 Amazon EC2 내에서 모든 AWS API 작업에 대한 액세스를 허용하는 아이덴티티 기반 정책을 작성하는 방법을 보여줍니다. 하지만 사용자가 [멀티 팩터 인증(MFA)](id_credentials_mfa.md)을 사용하여 인증되지 않은 경우 `StopInstances` 및 `TerminateInstances` API 작업에 대해 액세스는 명시적으로 거부합니다. 이를 프로그래밍 방식으로 수행하려면 사용자가 `GetSessionToken` 작업을 호출하는 동안 선택 사항인 `SerialNumber` 및 `TokenCode` 값을 포함해야 합니다. 이 작업은 MFA를 사용하여 인증된 임시 자격 증명을 반환합니다. GetSessionToken에 대해 자세히 알아보려면 [신뢰할 수 없는 환경의 사용자를 위한 자격 증명 요청](id_credentials_temp_request.md#api_getsessiontoken) 섹션을 참조하세요.

이 정책이 하는 일은 무엇입니까?
+ `AllowAllActionsForEC2` 문은 모든 Amazon EC2 작업을 허용합니다.
+ `DenyStopAndTerminateWhenMFAIsNotPresent` 문은 MFA 컨텍스트가 누락된 경우 `StopInstances` 및 `TerminateInstances` 작업을 거부합니다. 따라서 Multi-Factor Authentication(MFA) 컨텍스트가 누락된 경우(MFA가 사용되지 않은 경우) 작업이 거부됩니다. 거부는 허용을 무시합니다.

**참고**  
MFA를 사용하지 않을 때는 키가 없어 키를 평가할 수 없기 때문에 `Deny` 문의 `MultiFactorAuthPresent`에 대한 조건 확인이 `{"Bool":{"aws:MultiFactorAuthPresent":false}}`이면 안 됩니다. 따라서 값을 확인하기 전에 `BoolIfExists`를 사용하여 키가 있는지 확인해야 합니다. 자세한 내용은 […IfExists 조건 연산자](reference_policies_elements_condition_operators.md#Conditions_IfExists) 섹션을 참조하세요.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowAllActionsForEC2",
            "Effect": "Allow",
            "Action": "ec2:*",
            "Resource": "*"
        },
        {
            "Sid": "DenyStopAndTerminateWhenMFAIsNotPresent",
            "Effect": "Deny",
            "Action": [
                "ec2:StopInstances",
                "ec2:TerminateInstances"
            ],
            "Resource": "*",
            "Condition": {
                "BoolIfExists": {"aws:MultiFactorAuthPresent": false}
            }
        }
    ]
}
```

------

# Amazon EC2: EC2 인스턴스 종료를 IP 주소 범위로 제한
<a name="reference_policies_examples_ec2_terminate-ip"></a>

이 예제는 작업을 허용하지만 요청이 지정된 IP 범위를 벗어나는 곳에서 오는 경우 액세스를 명시적으로 거부함으로써 EC2 인스턴스를 제한하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 이 정책은 회사의 IP 주소가 지정된 범위 내에 있는 경우에 유용합니다. 이 정책은 AWS API 또는 AWS CLI에서 이러한 작업을 프로그래밍 방식으로 완료하는 데 필요한 권한을 부여합니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체합니다. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다.

이 정책을 `ec2:TerminateInstances` 작업을 허용하는 다른 정책(예: [AmazonEC2FullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AmazonEC2FullAccess) AWS 관리형 정책)과 조합하여 사용하는 경우 액세스가 거부됩니다. 이는 명시적 거부문이 허용문보다 우선 적용되기 때문입니다. 자세한 내용은 [AWS 적용 코드 로직이 액세스 허용 또는 거부 요청을 평가하는 방법](reference_policies_evaluation-logic_policy-eval-denyallow.md) 섹션을 참조하세요.

**중요**  
`aws:SourceIp` 조건 키는 사용자 대신하여 직접적으로 호출하는 AWS CloudFormation과 같은 AWS 서비스에 대한 액세스를 거부합니다. `aws:SourceIp` 조건 키 사용에 관한 자세한 내용은 [AWS 글로벌 조건 컨텍스트 키](reference_policies_condition-keys.md) 섹션을 참조하세요.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": ["ec2:TerminateInstances"],
            "Resource": ["*"]
        },
        {
            "Effect": "Deny",
            "Action": ["ec2:TerminateInstances"],
            "Condition": {
                "NotIpAddress": {
                    "aws:SourceIp": [
                        "192.0.2.0/24",
                        "203.0.113.0/24"
                    ]
                }
            },
            "Resource": ["*"]
        }
    ]
}
```

------

# IAM: 정책 시뮬레이터 API에 액세스
<a name="reference_policies_examples_iam_policy-sim"></a>

이 예제는 현재 AWS 계정에서 사용자, 그룹 또는 역할에 연결된 정책에 대해 정책 시뮬레이터 API의 사용을 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 또한 이 정책은 API에 문자열로 전달되는 덜 민감한 정책을 시뮬레이션할 수 있도록 액세스를 허용합니다. 이 정책은 AWS API 또는 AWS CLI에서 이러한 작업을 프로그래밍 방식으로 완료하는 데 필요한 권한을 부여합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "iam:GetContextKeysForCustomPolicy",
                "iam:GetContextKeysForPrincipalPolicy",
                "iam:SimulateCustomPolicy",
                "iam:SimulatePrincipalPolicy"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
```

------

**참고**  
사용자가 정책 시뮬레이터 콘솔에 액세스하여 현재 AWS 계정의 사용자, 그룹 또는 역할에 연결된 정책을 시뮬레이션하도록 허용하는 방법은 [IAM: 정책 시뮬레이터 콘솔 액세스](reference_policies_examples_iam_policy-sim-console.md) 섹션을 참조하세요.

# IAM: 정책 시뮬레이터 콘솔 액세스
<a name="reference_policies_examples_iam_policy-sim-console"></a>

이 예제는 현재 AWS 계정에서 사용자, 그룹 또는 역할에 연결된 정책에 대해 정책 시뮬레이터 콘솔의 사용을 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 이 정책은 AWS API 또는 AWS CLI에서 이러한 작업을 프로그래밍 방식으로 완료하는 데 필요한 권한을 부여합니다.

[https://policysim.aws.amazon.com/](https://policysim.aws.amazon.com/)에서 IAM 정책 시뮬레이터 콘솔에 액세스할 수 있습니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "iam:GetGroup",
                "iam:GetGroupPolicy",
                "iam:GetPolicy",
                "iam:GetPolicyVersion",
                "iam:GetRole",
                "iam:GetRolePolicy",
                "iam:GetUser",
                "iam:GetUserPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListAttachedRolePolicies",
                "iam:ListAttachedUserPolicies",
                "iam:ListGroups",
                "iam:ListGroupPolicies",
                "iam:ListGroupsForUser",
                "iam:ListRolePolicies",
                "iam:ListRoles",
                "iam:ListUserPolicies",
                "iam:ListUsers"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
```

------

# IAM: 특정 태그가 있는 역할 수임
<a name="reference_policies_examples_iam-assume-tagged-role"></a>

이 예제는 IAM 사용자가 태그 키 값 페어가 `Project = ExampleCorpABC`인 역할을 수임할 수 있도록 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 이 정책은 AWS API 또는 AWS CLI에서 이러한 작업을 프로그래밍 방식으로 완료하는 데 필요한 권한을 부여합니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체합니다. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다.

이 태그가 포함된 역할이 사용자와 동일한 계정에 존재하는 경우 사용자는 해당 역할을 수임할 수 있습니다. 이 태그가 포함된 역할이 사용자가 아닌 다른 계정에 존재하는 경우 추가 권한이 필요합니다. 교차 계정 역할의 신뢰 정책에서 사용자 또는 사용자 계정의 모든 멤버가 역할을 수임하도록 허용해야 합니다. 교차 계정 액세스에 대한 역할 사용에 대한 자세한 정보는 [소유한 다른 AWS 계정의 IAM 사용자에 대한 액세스](id_roles_common-scenarios_aws-accounts.md) 섹션을 참조하세요.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AssumeTaggedRole",
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": "*",
            "Condition": {
                "StringEquals": {"iam:ResourceTag/Project": "ExampleCorpABC"}
            }
        }
    ]
}
```

------

# IAM: 프로그래밍 방식에서, 그리고 콘솔에서 여러 서비스에 대한 액세스를 허용 및 거부
<a name="reference_policies_examples_iam_multiple-services-console"></a>

이 예제는 IAM에서 여러 서비스에 대한 전체 액세스 및 제한적 자체 관리 액세스를 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. Amazon S3 `logs` 버킷 또는 Amazon EC2 `i-1234567890abcdef0` 인스턴스로의 액세스도 거부합니다. 이 정책은 프로그래밍 방식 및 콘솔 액세스에 대한 권한을 정의합니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체하세요. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다.

**주의**  
이 정책은 여러 서비스의 모든 작업 및 리소스에 대한 전체 액세스를 허용합니다. 이 정책은 신뢰할 수 있는 관리자에게만 적용되어야 합니다.

이 정책을 권한 경계로 사용하여 자격 증명 기반 정책이 IAM 사용자에게 부여할 수 있는 최대 권한을 정의할 수 있습니다. 자세한 내용은 [권한 경계를 사용하여 다른 사용자에게 책임 위임](access_policies_boundaries.md#access_policies_boundaries-delegate) 섹션을 참조하세요. 정책이 사용자에 대한 권한 경계로 사용되는 경우 문에서 다음 경계를 정의합니다.
+ `AllowServices` 문은 지정된 AWS 서비스에 대한 완전한 액세스를 허용합니다. 이런 서비스의 사용자 작업이 사용자에 연결된 권한 정책에 따라서만 제한된다는 의미입니다.
+ `AllowIAMConsoleForCredentials` 문에서 모든 IAM 사용자를 나열할 수 있는 액세스를 허용합니다. 이 액세스는 AWS Management Console의 **사용자** 페이지를 탐색하는 데 필요합니다. 또한 계정의 암호 요구 사항을 확인하도록 허용합니다. 이 액세스는 사용자가 자신의 고유 암호를 변경할 때 필요합니다.
+ `AllowManageOwnPasswordAndAccessKeys` 문은 사용자가 자신의 고유 콘솔 암호와 프로그래밍 방식의 액세스 키만 관리하도록 허용합니다. 이런 점은 중요합니다. 또 다른 정책에서 사용자에게 전체 IAM 액세스가 되는 권한 정책을 부여한다면 사용자 자신 또는 다른 사용자 권한을 변경할 수 있기 때문입니다. 이 설명문은 이런 상황을 방지할 수 있습니다.
+ `DenyS3Logs` 설명문은 `logs` 버킷 액세스를 명시적으로 거부합니다. 이 정책은 사용자의 회사 제한을 적용합니다.
+ `DenyEC2Production` 설명문은 `i-1234567890abcdef0` 인스턴스 액세스를 명시적으로 거부합니다.

이 정책은 다른 서비스 또는 작업에 대한 액세스를 허용하지 않습니다. 정책이 사용자에 대한 권한 경계로 사용되는 경우 사용자와 연결된 다른 정책에서 이러한 작업을 허용하더라도 AWS에서는 요청을 거부합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowServices",
            "Effect": "Allow",
            "Action": [
                "s3:*",
                "cloudwatch:*",
                "ec2:*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowIAMConsoleForCredentials",
            "Effect": "Allow",
            "Action": [
                "iam:ListUsers",
                "iam:GetAccountPasswordPolicy"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowManageOwnPasswordAndAccessKeys",
            "Effect": "Allow",
            "Action": [
                "iam:*AccessKey*",
                "iam:ChangePassword",
                "iam:GetUser",
                "iam:*LoginProfile*"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "DenyS3Logs",
            "Effect": "Deny",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::logs",
                "arn:aws:s3:::logs/*"
            ]
        },
        {
            "Sid": "DenyEC2Production",
            "Effect": "Deny",
            "Action": "ec2:*",
            "Resource": "arn:aws:ec2:*:*:instance/i-1234567890abcdef0"
        }
    ]
}
```

------

# IAM: 특정 태그가 있는 사용자에게 특정 태그 추가
<a name="reference_policies_examples_iam-add-tag"></a>

이 예제는 태그 키 `Department`를 태그 값 `Marketing`, `Development` 또는 `QualityAssurance`와 함께 IAM 사용자에게 추가할 수 있는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 사용자가 이미 태그 키 값 페어 `JobFunction = manager`를 포함해야 합니다. 이 정책을 사용하여 관리자가 세 부서 중 하나에 속하도록 요구할 수 있습니다. 이 정책은 프로그래밍 방식 및 콘솔 액세스에 대한 권한을 정의합니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체하세요. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다.

`ListTagsForAllUsers` 문을 사용하면 계정의 모든 사용자에 대한 태그를 볼 수 있습니다.

`TagManagerWithSpecificDepartment` 문의 첫 번째 조건에는 `StringEquals` 조건 연산자가 사용됩니다. 이 조건은 조건의 두 부분이 모두 true인 경우 true를 반환합니다. 태그 지정될 사용자에게 이미 `JobFunction=Manager` 태그가 있어야 합니다. 나열된 태그 값 중 하나가 지정된 `Department` 태그 키가 요청에 포함되어야 합니다.

두 번째 조건에는 `ForAllValues:StringEquals` 조건 연산자가 사용됩니다. 이 조건은 요청의 모든 태그 키가 정책의 키와 일치하는 경우 true를 반환합니다. 즉 `Department`가 요청의 유일한 태그 키여야 합니다. `ForAllValues` 사용에 관한 자세한 내용은 [다중 값 컨텍스트 키에 대한 연산자 설정](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys) 섹션을 참조하세요.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ListTagsForAllUsers",
            "Effect": "Allow",
            "Action": [
                "iam:ListUserTags",
                "iam:ListUsers"
            ],
            "Resource": "*"
        },
        {
            "Sid": "TagManagerWithSpecificDepartment",
            "Effect": "Allow",
            "Action": "iam:TagUser",
            "Resource": "*",
            "Condition": {"StringEquals": {
                "iam:ResourceTag/JobFunction": "Manager",
                "aws:RequestTag/Department": [
                    "Marketing",
                    "Development",
                    "QualityAssurance"
                    ]
                },
                "ForAllValues:StringEquals": {"aws:TagKeys": "Department"}
            }
        }
    ]
}
```

------

# IAM: 특정 값이 있는 특정 태그 추가
<a name="reference_policies_examples_iam-add-tag-user-role"></a>

이 예제는 태그 키 `CostCenter` 및 태그 값 `A-123` 또는 태그 값 `B-456`을 가진 경우에만 IAM 사용자 또는 역할에 추가하도록 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 이 정책을 사용하여 특정 태그 키 및 태그 값 세트로 태그 지정을 제한할 수 있습니다. 이 정책은 프로그래밍 방식 및 콘솔 액세스에 대한 권한을 정의합니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체하세요. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다.

`ConsoleDisplay` 문을 사용하면 계정의 모든 사용자 및 역할에 대한 태그를 볼 수 있습니다.

`AddTag` 문의 첫 번째 조건에는 `StringEquals` 조건 연산자가 사용됩니다. 이 조건은 나열된 태그 값 중 하나가 지정된 `CostCenter` 태그 키가 요청에 포함된 경우 true를 반환합니다.

두 번째 조건에는 `ForAllValues:StringEquals` 조건 연산자가 사용됩니다. 이 조건은 요청의 모든 태그 키가 정책의 키와 일치하는 경우 true를 반환합니다. 즉 `CostCenter`가 요청의 유일한 태그 키여야 합니다. `ForAllValues` 사용에 관한 자세한 내용은 [다중 값 컨텍스트 키에 대한 연산자 설정](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys) 섹션을 참조하세요.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ConsoleDisplay",
            "Effect": "Allow",
            "Action": [
                "iam:GetRole",
                "iam:GetUser",
                "iam:ListRoles",
                "iam:ListRoleTags",
                "iam:ListUsers",
                "iam:ListUserTags"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AddTag",
            "Effect": "Allow",
            "Action": [
                "iam:TagUser",
                "iam:TagRole"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/CostCenter": [
                        "A-123",
                        "B-456"
                    ]
                },
                "ForAllValues:StringEquals": {"aws:TagKeys": "CostCenter"}
            }
        }
    ]
}
```

------

# IAM: 특정 태그가 있는 새 사용자만 생성
<a name="reference_policies_examples_iam-new-user-tag"></a>

이 예제는 IAM 사용자를 생성할 수 있도록 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 단, `Department` 및 `JobFunction` 태그 키를 하나 이상 사용해야 합니다. `Department` 태그 키에는 `Development` 또는 `QualityAssurance` 태그 값이 지정되어야 합니다. `JobFunction` 태그 키에는 `Employee` 태그 값이 지정되어야 합니다. 새 사용자가 특정 업무 기능 및 부서를 갖도록 하려면 이 정책을 사용하세요. 이 정책은 AWS API 또는 AWS CLI에서 이러한 작업을 프로그래밍 방식으로 완료하는 데 필요한 권한을 부여합니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체합니다. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다.

이 설명문의 첫 번째 조건에는 `StringEqualsIfExists` 조건 연산자가 사용됩니다. 요청에 키가 `Department` 또는 `JobFunction`인 태그가 있는 경우 태그에 지정된 값이 있어야 합니다. 두 키가 모두 없으면 이 조건은 true로 평가됩니다. 조건이 false로 평가되는 유일한 경우는 지정된 조건 키 중 하나가 요청에 있지만 허용된 값이 아닌 다른 값이 지정된 경우뿐입니다. `IfExists` 사용에 관한 자세한 내용은 […IfExists 조건 연산자](reference_policies_elements_condition_operators.md#Conditions_IfExists) 섹션을 참조하세요.

두 번째 조건에는 `ForAllValues:StringEquals` 조건 연산자가 사용됩니다. 이 조건은 요청에서 지정한 각 태그 키 하나하나와 정책의 값 중 적어도 하나 이상이 일치하는 경우에만 true를 반환합니다. 즉 요청의 모든 태그가 이 목록에 있어야 합니다. 하지만 요청은 목록에 있는 태그 중 하나만 포함할 수 있습니다. 예를 들면 `Department=QualityAssurance` 태그만 지정된 IAM 사용자를 생성할 수 있습니다. 하지만 `JobFunction=employee` 태그와 `Project=core` 태그가 지정된 IAM 사용자는 생성할 수 없습니다. `ForAllValues` 사용에 관한 자세한 내용은 [다중 값 컨텍스트 키에 대한 연산자 설정](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys) 섹션을 참조하세요.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "TagUsersWithOnlyTheseTags",
            "Effect": "Allow",
            "Action": [
                "iam:CreateUser",
                "iam:TagUser"
            ],
            "Resource": "*",
            "Condition": {
                "StringEqualsIfExists": {
                    "aws:RequestTag/Department": [
                        "Development",
                        "QualityAssurance"
                    ],
                    "aws:RequestTag/JobFunction": "Employee"
                },
                "ForAllValues:StringEquals": {
                    "aws:TagKeys": [
                        "Department",
                        "JobFunction"
                    ]
                }
            }
        }
    ]
}
```

------

# IAM: IAM 자격 증명 보고서 생성 및 검색
<a name="reference_policies_examples_iam-credential-report"></a>

이 예제는 사용자가 자신의 AWS 계정에 있는 모든 IAM 사용자를 나열한 보고서를 생성 및 다운로드하도록 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 이 보고서에는 암호, 액세스 키, MFA 디바이스, 서명 인증서를 포함한 사용자 자격 증명의 상태가 포함됩니다. 이 정책은 AWS API 또는 AWS CLI에서 이러한 작업을 프로그래밍 방식으로 완료하는 데 필요한 권한을 부여합니다.

자격 증명 보고서에 대한 자세한 정보는 섹션을 참조하세요[AWS 계정의 자격 증명 보고서 생성](id_credentials_getting-report.md).

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": [
            "iam:GenerateCredentialReport",
            "iam:GetCredentialReport"
        ],
        "Resource": "*"
    }
}
```

------

# IAM: 프로그래밍 방식으로, 그리고 콘솔에서 그룹의 멤버십을 관리하도록 허용
<a name="reference_policies_examples_iam_manage-group-membership"></a>

이 예제는 `MarketingTeam`이라는 그룹의 멤버십을 업데이트할 수 있는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 이 정책은 프로그래밍 방식 및 콘솔 액세스에 대한 권한을 정의합니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체하세요. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다.

이 정책이 하는 일은 무엇입니까?
+ `ViewGroups` 문은 사용자에게 AWS Management Console의 모든 사용자와 그룹을 목록으로 나열하도록 허용합니다. 또한 사용자가 계정 내 사용자의 기본 정보를 볼 수 있도록 허용합니다. 이러한 권한은 리소스 ARN을 지원하지 않거나 리소스 ARN을 지정하는 데 필요하지 않기 때문에 자신의 문에 포함되어 있어야 합니다. 권한 대신 `"Resource" : "*"`를 지정합니다.
+ `ViewEditThisGroup` 문은 사용자가 `MarketingTeam` 그룹에 대한 정보를 보고 해당 그룹에서 사용자를 제거할 수 있도록 허용합니다.

이 정책은 사용자가 사용자 또는 `MarketingTeam` 그룹의 권한을 보거나 편집하도록 허용하지 않습니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewGroups",
            "Effect": "Allow",
            "Action": [
                "iam:ListGroups",
                "iam:ListUsers",
                "iam:GetUser",
                "iam:ListGroupsForUser"
            ],
            "Resource": "*"
        },
        {
            "Sid": "ViewEditThisGroup",
            "Effect": "Allow",
            "Action": [
                "iam:AddUserToGroup",
                "iam:RemoveUserFromGroup",
                "iam:GetGroup"
            ],
            "Resource": "arn:aws:iam::*:group/MarketingTeam"
        }
    ]
}
```

------

# IAM: 특정 태그 관리
<a name="reference_policies_examples_iam-manage-tags"></a>

이 예제는 IAM 엔터티(사용자 및 역할)의 태그 키 `Department`를 포함한 태그를 추가 및 제거할 수 있는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 이 정책은 `Department` 태그의 값을 제한하지 않습니다. 이 정책은 AWS API 또는 AWS CLI에서 이러한 작업을 프로그래밍 방식으로 완료하는 데 필요한 권한을 부여합니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체합니다. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": [
            "iam:TagUser",
            "iam:TagRole",
            "iam:UntagUser",
            "iam:UntagRole"

        ],
        "Resource": "*",
        "Condition": {"ForAllValues:StringEquals": {"aws:TagKeys": "Department"}}
    }
}
```

------

# IAM: IAM 역할을 특정 AWS 서비스로 전달
<a name="reference_policies_examples_iam-passrole-service"></a>

이 예제는 IAM 서비스 역할을 Amazon CloudWatch 서비스로 전달하도록 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 이 정책은 AWS API 또는 AWS CLI에서 이러한 작업을 프로그래밍 방식으로 완료하는 데 필요한 권한을 부여합니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체합니다. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다.

서비스 역할은 AWS 서비스를 역할을 수임할 수 있는 보안 주체로 지정하는 IAM 역할입니다. 이를 사용하면 서비스는 역할을 수임하고 사용자를 대신해 다른 서비스의 리소스에 액세스할 수 있습니다. Amazon CloudWatch에서 전달한 역할을 수임하도록 허용하려면 `cloudwatch.amazonaws.com` 서비스 보안 주체를 역할의 신뢰 정책 내 보안 주체로 지정해야 합니다. 서비스 보안 주체는 서비스가 정의합니다. 서비스의 보안 주체를 확인하려면 해당 서비스의 설명서를 참조하세요. 일부 서비스에서는 [AWS IAM으로 작업하는 서비스](reference_aws-services-that-work-with-iam.md)를 참조하고 **서비스 연결 역할** 열에 **예**라고 표시된 서비스를 찾습니다. 해당 서비스에 대한 서비스 연결 역할 설명서를 보려면 **예(Yes)** 링크를 선택합니다. `amazonaws.com` 검색을 통해 서비스 보안 주체를 확인합니다.

서비스 역할을 서비스로 전달하는 것에 대해 자세히 알아보려면 [사용자에게 AWS 서비스에 역할을 전달할 권한 부여](id_roles_use_passrole.md) 섹션을 참조하세요.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "*",
            "Condition": {
                "StringEquals": {"iam:PassedToService": "cloudwatch.amazonaws.com"}
            }
        }
    ]
}
```

------

# IAM: 보고 없이 IAM 콘솔에 대한 읽기 전용 액세스 허용
<a name="reference_policies_examples_iam_read-only-console-no-reporting"></a>

이 예제는 IAM 사용자가 `Get` 또는 `List` 문자열로 시작하는 IAM 작업을 수행하도록 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 사용자가 콘솔에서 작업할 경우 콘솔은 그룹, 사용자, 역할 및 정책 나열과 이러한 리소스에 대한 보고서 생성을 IAM에 요청합니다.

별표(\$1)는 와일드카드 역할을 합니다. 정책에서 `iam:Get*`을 사용할 때 결과 권한에는 으로 시작하는 모든 IAM 작업(예:`Get` `GetUser` 및 `GetRole`)이 포함됩니다. 와일드카드는 향후 새로운 유형의 엔터티가 IAM에 추가되는 경우 유용합니다. 이러한 경우 정책에서 부여한 권한은 자동으로 사용자가 새로운 엔터티에 대한 세부 정보를 나열하고 가져오도록 허용합니다.

이 정책은 보고서 또는 서비스에 마지막으로 액세스한 세부 정보를 생성하는 데 사용할 수 없습니다. 이를 허용하는 다른 정책에 대해서는 [IAM: 콘솔에 대한 읽기 전용 액세스 허용](reference_policies_examples_iam_read-only-console.md) 섹션을 참조하세요.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": [
            "iam:Get*",
            "iam:List*"
        ],
        "Resource": "*"
    }
}
```

------

# IAM: 콘솔에 대한 읽기 전용 액세스 허용
<a name="reference_policies_examples_iam_read-only-console"></a>

이 예제는 IAM 사용자가 `Get`, `List` 또는 `Generate` 문자열로 시작하는 IAM 작업을 수행하도록 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 사용자가 IAM 콘솔에서 작업할 경우 콘솔은 그룹, 사용자, 역할 및 정책 나열과 이러한 리소스에 대한 보고서 생성을 요청합니다.

별표(\$1)는 와일드카드 역할을 합니다. 정책에서 `iam:Get*`을 사용할 때 결과 권한에는 으로 시작하는 모든 IAM 작업(예:`Get` `GetUser` 및 `GetRole`)이 포함됩니다. 향후 새로운 유형의 엔터티가 IAM에 추가되는 경우 와일드카드를 사용하는 것이 이롭습니다. 이러한 경우 정책에서 부여한 권한은 자동으로 사용자가 새로운 엔터티에 대한 세부 정보를 나열하고 가져오도록 허용합니다.

보고서 또는 서비스에 마지막으로 액세스한 세부 정보를 생성할 수 있는 권한이 포함된 콘솔 액세스에 이 정책을 사용합니다. 작업 생성을 허용하지 않는 다른 정책에 대해서는 [IAM: 보고 없이 IAM 콘솔에 대한 읽기 전용 액세스 허용](reference_policies_examples_iam_read-only-console-no-reporting.md) 섹션을 참조하세요.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": [
            "iam:Get*",
            "iam:List*",
            "iam:Generate*"
        ],
        "Resource": "*"
    }
}
```

------

# IAM: 특정 IAM 사용자가 프로그래밍 방식으로, 그리고 콘솔에서 그룹을 관리하도록 허용
<a name="reference_policies_examples_iam_users-manage-group"></a>

이 예제는 특정 IAM 사용자가 `AllUsers` 그룹을 관리하도록 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 이 정책은 프로그래밍 방식 및 콘솔 액세스에 대한 권한을 정의합니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체하세요. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다.

이 정책이 하는 일은 무엇입니까?
+ `AllowAllUsersToListAllGroups` 문은 모든 그룹의 표시를 허용합니다. 이는 콘솔 액세스에 대해 필수입니다. 이 권한은 리소스 ARN을 지원하지 않으므로 자신의 문에 들어 있어야 합니다. 권한 대신 `"Resource" : "*"`를 지정합니다.
+ `AllowAllUsersToViewAndManageThisGroup` 문은 그룹 리소스 유형에서 수행할 수 있는 모든 그룹 작업을 허용합니다. 사용자 리소스 유형에서는 수행할 수 있지만 그룹 리소스 유형에서 수행할 수 없는 `ListGroupsForUser` 작업은 허용하지 않습니다. IAM 작업에 지정할 수 있는 리소스 유형에 대한 자세한 내용은[AWS Identity and Access Management 에서 사용되는 작업, 리소스 및 조건 키](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_identityandaccessmanagement.html#identityandaccessmanagement-actions-as-permissions)를 참조하세요.
+ `LimitGroupManagementAccessToSpecificUsers` 문은 이름이 지정된 사용자의 쓰기 액세스와 그룹 작업 관리 권한을 거부합니다. 정책에 지정된 사용자가 그룹을 변경하려는 경우 문에서 이 요청을 거부합니다. 해당 요청은 `AllowAllUsersToViewAndManageThisGroup` 문에서 허용합니다. 다른 사용자가 이 작업을 수행하려는 경우 요청은 거부됩니다. IAM 콘솔에서 이 정책을 생성하는 동안 **쓰기** 또는 **권한 관리**로 정의된 IAM 작업을 볼 수 있습니다. 이를 수행하려면 **JSON** 탭에서 **시각적 편집기** 탭으로 전환합니다. 액세스 수준에 대한 자세한 내용은 [AWS Identity and Access Management에서 사용되는 작업, 리소스 및 조건 키](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_identityandaccessmanagement.html#identityandaccessmanagement-actions-as-permissions)를 참조하세요.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowAllUsersToListAllGroups",
            "Effect": "Allow",
            "Action": "iam:ListGroups",
            "Resource": "*"
        },
        {
            "Sid": "AllowAllUsersToViewAndManageThisGroup",
            "Effect": "Allow",
            "Action": "iam:*Group*",
            "Resource": "arn:aws:iam::*:group/AllUsers"
        },
        {
            "Sid": "LimitGroupManagementAccessToSpecificUsers",
            "Effect": "Deny",
            "Action": [
                "iam:AddUserToGroup",
                "iam:CreateGroup",
                "iam:RemoveUserFromGroup",
                "iam:DeleteGroup",
                "iam:AttachGroupPolicy",
                "iam:UpdateGroup",
                "iam:DetachGroupPolicy",
                "iam:DeleteGroupPolicy",
                "iam:PutGroupPolicy"
            ],
            "Resource": "arn:aws:iam::*:group/AllUsers",
            "Condition": {
                "StringNotEquals": {
                    "aws:username": [
                        "srodriguez",
                        "mjackson",
                        "adesai"
                    ]
                }
            }
        }
    ]
}
```

------

# IAM: 프로그래밍 방식으로, 그리고 콘솔에서 계정 암호 요구 사항을 설정하도록 허용
<a name="reference_policies_examples_iam_set-account-pass-policy"></a>

이 예제는 사용자가 계정의 암호 요구 사항을 보고 업데이트하도록 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 암호 요구 사항은 계정 멤버의 암호에 대한 복잡성 요구 사항 및 필수 교체 기산을 지정합니다. 이 정책은 프로그래밍 방식 및 콘솔 액세스에 대한 권한을 정의합니다.

계정에 대해 암호 요구 사항 정책을 설정하는 방법을 알아보려면 [IAM 사용자의 계정 암호 정책 설정](id_credentials_passwords_account-policy.md) 섹션을 참조하세요.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": [
            "iam:GetAccountPasswordPolicy",
            "iam:UpdateAccountPasswordPolicy"
        ],
        "Resource": "*"
    }
}
```

------

# IAM: 사용자 경로를 바탕으로 정책 시뮬레이터 API 액세스
<a name="reference_policies_examples_iam_policy-sim-path"></a>

이 예제는 경로 `Department/Development`를 가진 사용자에 대해서만 정책 시뮬레이터 콘솔의 사용을 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 이 정책은 AWS API 또는 AWS CLI에서 이러한 작업을 프로그래밍 방식으로 완료하는 데 필요한 권한을 부여합니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체합니다. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "iam:GetContextKeysForPrincipalPolicy",
                "iam:SimulatePrincipalPolicy"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:iam::*:user/Department/Development/*"
        }
    ]
}
```

------

**참고**  
경로 `Department/Development`을 지닌 사용자에 대해 정책 시뮬레이터 콘솔의 사용을 허용하는 정책을 생성하는 방법은 [IAM: 사용자 경로를 바탕으로 정책 시뮬레이터 콘솔 액세스](reference_policies_examples_iam_policy-sim-path-console.md) 섹션을 참조하세요.

# IAM: 사용자 경로를 바탕으로 정책 시뮬레이터 콘솔 액세스
<a name="reference_policies_examples_iam_policy-sim-path-console"></a>

이 예제는 경로 `Department/Development`를 가진 사용자에 대해서만 정책 시뮬레이터 콘솔의 사용을 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 이 정책은 AWS API 또는 AWS CLI에서 이러한 작업을 프로그래밍 방식으로 완료하는 데 필요한 권한을 부여합니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체합니다. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다.

[https://policysim.aws.amazon.com/](https://policysim.aws.amazon.com/)에서 IAM 정책 시뮬레이터에 액세스할 수 있습니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "iam:GetPolicy",
                "iam:GetUserPolicy"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": [
                "iam:GetUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListGroupsForUser",
                "iam:ListUserPolicies",
                "iam:ListUsers"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:iam::*:user/Department/Development/*"
        }
    ]
}
```

------

# IAM: IAM 사용자가 MFA 디바이스를 스스로 관리하도록 허용
<a name="reference_policies_examples_iam_mfa-selfmanage"></a>

이 예제는 IAM 사용자가 자신의 [다중 인증(MFA)](id_credentials_mfa.md) 디바이스를 자체 관리할 수 있도록 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 이 정책은 AWS API 또는 AWS CLI에서 이러한 작업을 프로그래밍 방식으로 완료하는 데 필요한 권한을 부여합니다.

**참고**  
이 정책을 가진 IAM 사용자가 MFA 인증을 받지 않은 경우 이 정책은 MFA를 사용하여 인증하는 데 필요한 AWS 작업을 제외한 모든 해당 작업에 대한 액세스를 거부합니다. AWS에 로그인되어 있는 사용자에게 이들 권한을 추가하는 경우 사용자가 로그아웃한 다음 변경을 확인해야 할 수 있습니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowListActions",
            "Effect": "Allow",
            "Action": [
                "iam:ListUsers",
                "iam:ListVirtualMFADevices"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowUserToCreateVirtualMFADevice",
            "Effect": "Allow",
            "Action": [
                "iam:CreateVirtualMFADevice"
            ],
            "Resource": "arn:aws:iam::*:mfa/*"
        },
        {
            "Sid": "AllowUserToManageTheirOwnMFA",
            "Effect": "Allow",
            "Action": [
                "iam:EnableMFADevice",
                "iam:GetMFADevice",
                "iam:ListMFADevices",
                "iam:ResyncMFADevice"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "AllowUserToDeactivateTheirOwnMFAOnlyWhenUsingMFA",
            "Effect": "Allow",
            "Action": [
                "iam:DeactivateMFADevice"
            ],
            "Resource": [
                "arn:aws:iam::*:user/${aws:username}"
            ],
            "Condition": {
                "Bool": {
                    "aws:MultiFactorAuthPresent": "true"
                }
            }
        },
        {
            "Sid": "BlockMostAccessUnlessSignedInWithMFA",
            "Effect": "Deny",
            "NotAction": [
                "iam:CreateVirtualMFADevice",
                "iam:EnableMFADevice",
                "iam:ListMFADevices",
                "iam:ListUsers",
                "iam:ListVirtualMFADevices",
                "iam:ResyncMFADevice"
            ],
            "Resource": "*",
            "Condition": {
                "BoolIfExists": {
                    "aws:MultiFactorAuthPresent": "false"
                }
            }
        }
    ]
}
```

------

# IAM: 프로그래밍 방식을 사용하거나 콘솔에서 IAM 사용자가 자신의 보안 인증을 업데이트하도록 허용
<a name="reference_policies_examples_iam_credentials_console"></a>

이 예제는 IAM 사용자가 자신의 액세스 키, 서명 인증서, 서비스별 보안 인증 및 암호를 업데이트하도록 허용하는 자격 증명 기반 정책을 생성하는 방법을 보여줍니다. 이 정책은 프로그래밍 방식 및 콘솔 액세스에 대한 권한을 정의합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:ListUsers",
                "iam:GetAccountPasswordPolicy"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:*AccessKey*",
                "iam:ChangePassword",
                "iam:GetUser",
                "iam:*ServiceSpecificCredential*",
                "iam:*SigningCertificate*"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        }
    ]
}
```

------

사용자가 콘솔에서 자신의 암호를 변경하는 방법에 대해서는 [IAM 사용자가 자신의 암호를 변경하는 방법](id_credentials_passwords_user-change-own.md) 섹션을 참조하세요.

# IAM: AWS Organizations 정책에 대해 마지막으로 액세스한 서비스 정보 보기
<a name="reference_policies_examples_iam_service-accessed-data-orgs"></a>

이 예제는 특정 AWS Organizations 정책에 대해 마지막으로 액세스한 서비스 정보를 볼 수 있도록 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 이 정책은 `p-policy123` ID가 포함된 서비스 제어 정책(SCP)에 대한 데이터 검색을 허용합니다. 보고서를 생성하고 보는 사람은 AWS Organizations 관리 계정 자격 증명을 사용하여 인증되어야 합니다. 이 정책은 요청자가 조직에 있는 AWS Organizations 엔터티에 대한 데이터를 검색하도록 허용합니다. 이 정책은 프로그래밍 방식 및 콘솔 액세스에 대한 권한을 정의합니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체하세요. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다.

필요 권한, 문제 해결, 지원되는 리전을 포함하여 마지막으로 액세스한 정보에 대한 중요 정보는 [마지막으로 액세스한 정보를 사용하여 AWS에서 권한 재정의](access_policies_last-accessed.md) 섹션을 참조하세요.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowOrgsReadOnlyAndIamGetReport",
            "Effect": "Allow",
            "Action": [
                "iam:GetOrganizationsAccessReport",
                "organizations:Describe*",
                "organizations:List*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowGenerateReportOnlyForThePolicy",
            "Effect": "Allow",
            "Action": "iam:GenerateOrganizationsAccessReport",
            "Resource": "*",
            "Condition": {
                "StringEquals": {"iam:OrganizationsPolicyId": "p-policy123"}
            }
        }
    ]
}
```

------

# IAM: IAM 사용자, 그룹 또는 역할에 적용 가능한 관리형 정책을 제한
<a name="reference_policies_examples_iam_limit-managed"></a>

이 예제는 IAM 사용자, 그룹 또는 역할에 적용할 수 있는 고객 관리형 및 AWS 관리형 정책을 제한하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 이 정책은 AWS API 또는 AWS CLI에서 이러한 작업을 프로그래밍 방식으로 완료하는 데 필요한 권한을 부여합니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체합니다. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": [
            "iam:AttachUserPolicy",
            "iam:DetachUserPolicy"
        ],
        "Resource": "*",
        "Condition": {
            "ArnEquals": {
                "iam:PolicyARN": [
                    "arn:aws:iam::*:policy/policy-name-1",
                    "arn:aws:iam::*:policy/policy-name-2"
                ]
            }
        }
    }
}
```

------

# AWS: AWS 관리형 IAM 정책을 제외한 계정 외부의 리소스에 대한 액세스 거부
<a name="resource_examples_iam_policies_resource_account"></a>

아이덴티티 기반 정책에서 `aws:ResourceAccount`를 사용하면 서비스가 소유한 계정의 리소스와 상호 작용해야 하는 일부 서비스를 활용하는 사용자 또는 역할의 기능에 영향이 있을 수 있습니다.

AWS 관리형 IAM 정책을 허용하는 예외가 있는 정책을 생성할 수 있습니다. AWS Organizations 외부의 서비스 관리형 계정은 관리형 IAM 정책을 소유합니다. AWS 관리형 정책을 나열하고 검색하는 네 가지 IAM 작업이 있습니다. 정책에서 `AllowAccessToS3ResourcesInSpecificAccountsAndSpecificService1` 문의 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_notaction.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_notaction.html) 요소에 이러한 작업을 사용합니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowAccessToResourcesInSpecificAccountsAndSpecificService1",
      "Effect": "Deny",
      "NotAction": [
        "iam:GetPolicy",
        "iam:GetPolicyVersion",
        "iam:ListEntitiesForPolicy",
        "iam:ListPolicies"
      ],
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "aws:ResourceAccount": [
            "111122223333"
          ]
        }
      }
    }
  ]
}
```

------

# AWS Lambda: Lambda 함수가 Amazon DynamoDB 테이블에 액세스할 수 있도록 허용합니다.
<a name="reference_policies_examples_lambda-access-dynamodb"></a>

이 예제는 특정 Amazon DynamoDB 테이블에 대한 읽기 및 쓰기 액세스를 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 이 정책은 또한 CloudWatch Logs에 대한 로그 파일 쓰기를 허용합니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체하세요. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다.

이 정책을 사용하려면 정책을 Lambda [서비스 역할](id_roles_create_for-service.md)에 연결합니다. 서비스 역할은 서비스가 사용자를 대신하여 작업을 수행하도록 계정에 생성한 역할입니다. 이 서비스 역할에는 AWS Lambda가 신뢰 정책의 보안 주체로 포함되어야 합니다. 이 정책을 사용하는 방법에 대한 자세한 내용은 AWS 보안 블로그의 [Amazon DynamoDB 테이블에 대한 AWS Lambda 액세스 권한을 부여하는 AWS IAM 정책을 생성하는 방법](https://aws.amazon.com/blogs/security/how-to-create-an-aws-iam-policy-to-grant-aws-lambda-access-to-an-amazon-dynamodb-table/)을 참조하세요.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ReadWriteTable",
            "Effect": "Allow",
            "Action": [
                "dynamodb:BatchGetItem",
                "dynamodb:GetItem",
                "dynamodb:Query",
                "dynamodb:Scan",
                "dynamodb:BatchWriteItem",
                "dynamodb:PutItem",
                "dynamodb:UpdateItem"
            ],
            "Resource": "arn:aws:dynamodb:*:*:table/SampleTable"
        },
        {
            "Sid": "GetStreamRecords",
            "Effect": "Allow",
            "Action": "dynamodb:GetRecords",
            "Resource": "arn:aws:dynamodb:*:*:table/SampleTable/stream/* "
        },
        {
            "Sid": "WriteLogStreamsAndGroups",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": "*"
        },
        {
            "Sid": "CreateLogGroup",
            "Effect": "Allow",
            "Action": "logs:CreateLogGroup",
            "Resource": "*"
        }
    ]
}
```

------

# Amazon RDS: 특정 리전에 있는 RDS 데이터베이스에 대한 완전한 액세스 허용
<a name="reference_policies_examples_rds_region"></a>

이 예제는 특정 리전 내에서 모든 RDS 데이터베이스 액세스를 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 이 정책은 AWS API 또는 AWS CLI에서 이러한 작업을 프로그래밍 방식으로 완료하는 데 필요한 권한을 부여합니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체합니다. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "rds:*",
            "Resource": ["arn:aws:rds:us-east-1:*:*"]
        },
        {
            "Effect": "Allow",
            "Action": ["rds:Describe*"],
            "Resource": ["*"]
        }
    ]
}
```

------

# Amazon RDS: 프로그램 방식으로 콘솔에서 RDS 데이터베이스를 복원하도록 허용
<a name="reference_policies_examples_rds_db-console"></a>

이 예제는 RDS 데이터베이스 복원을 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 이 정책은 프로그래밍 방식 및 콘솔 액세스에 대한 권한을 정의합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:Describe*",
                "rds:CreateDBParameterGroup",
                "rds:CreateDBSnapshot",
                "rds:DeleteDBSnapshot",
                "rds:Describe*",
                "rds:DownloadDBLogFilePortion",
                "rds:List*",
                "rds:ModifyDBInstance",
                "rds:ModifyDBParameterGroup",
                "rds:ModifyOptionGroup",
                "rds:RebootDBInstance",
                "rds:RestoreDBInstanceFromDBSnapshot",
                "rds:RestoreDBInstanceToPointInTime"
            ],
            "Resource": "*"
        }
    ]
}
```

------

# Amazon RDS: 태그 소유자가 자신이 태그를 지정한 RDS 리소스에 대한 모든 액세스 권한을 가지도록 허용
<a name="reference_policies_examples_rds_tag-owner"></a>

이 예제는 태그가 지정된 RDS 리소스에 대한 모든 액세스를 태그 소유자에게 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 이 정책은 AWS API 또는 AWS CLI에서 이러한 작업을 프로그래밍 방식으로 완료하는 데 필요한 권한을 부여합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "rds:Describe*",
                "rds:List*"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": [
                "rds:DeleteDBInstance",
                "rds:RebootDBInstance",
                "rds:ModifyDBInstance"
            ],
            "Effect": "Allow",
            "Resource": "*",
            "Condition": {
                "StringEqualsIgnoreCase": {"rds:db-tag/Owner": "${aws:username}"}
            }
        },
        {
            "Action": [
                "rds:ModifyOptionGroup",
                "rds:DeleteOptionGroup"
            ],
            "Effect": "Allow",
            "Resource": "*",
            "Condition": {
                "StringEqualsIgnoreCase": {"rds:og-tag/Owner": "${aws:username}"}
            }
        },
        {
            "Action": [
                "rds:ModifyDBParameterGroup",
                "rds:ResetDBParameterGroup"
            ],
            "Effect": "Allow",
            "Resource": "*",
            "Condition": {
                "StringEqualsIgnoreCase": {"rds:pg-tag/Owner": "${aws:username}"}
            }
        },
        {
            "Action": [
                "rds:AuthorizeDBSecurityGroupIngress",
                "rds:RevokeDBSecurityGroupIngress",
                "rds:DeleteDBSecurityGroup"
            ],
            "Effect": "Allow",
            "Resource": "*",
            "Condition": {
                "StringEqualsIgnoreCase": {"rds:secgrp-tag/Owner": "${aws:username}"}
            }
        },
        {
            "Action": [
                "rds:DeleteDBSnapshot",
                "rds:RestoreDBInstanceFromDBSnapshot"
            ],
            "Effect": "Allow",
            "Resource": "*",
            "Condition": {
                "StringEqualsIgnoreCase": {"rds:snapshot-tag/Owner": "${aws:username}"}
            }
        },
        {
            "Action": [
                "rds:ModifyDBSubnetGroup",
                "rds:DeleteDBSubnetGroup"
            ],
            "Effect": "Allow",
            "Resource": "*",
            "Condition": {
                "StringEqualsIgnoreCase": {"rds:subgrp-tag/Owner": "${aws:username}"}
            }
        },
        {
            "Action": [
                "rds:ModifyEventSubscription",
                "rds:AddSourceIdentifierToSubscription",
                "rds:RemoveSourceIdentifierFromSubscription",
                "rds:DeleteEventSubscription"
            ],
            "Effect": "Allow",
            "Resource": "*",
            "Condition": {
                "StringEqualsIgnoreCase": {"rds:es-tag/Owner": "${aws:username}"}
            }
        }
    ]
}
```

------

# Amazon S3: Amazon Cognito 사용자가 버킷에 있는 객체에 액세스하도록 허용
<a name="reference_policies_examples_s3_cognito-bucket"></a>

이 예제는 Amazon Cognito 사용자가 특정 Amazon S3 버킷에 있는 객체에 액세스하도록 허용하는 ID 기반 정책을 생성하는 방법을 보여줍니다. 이 정책은 \$1\$1cognito-identity.amazonaws.com:sub\$1 변수로 표현되는 `cognito`, 애플리케이션 이름 및 페더레이션 보안 주체 ID를 포함하는 이름을 통해 객체에 대한 액세스만을 허용합니다. 이 정책은 AWS API 또는 AWS CLI에서 이러한 작업을 프로그래밍 방식으로 완료하는 데 필요한 권한을 부여합니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체합니다. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다.

**참고**  
객체 키에 사용된 '하위' 값은 사용자 풀의 사용자 하위 값이 아니라 자격 증명 풀의 사용자와 연결된 ID입니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "ListYourObjects",
      "Effect": "Allow",
      "Action": "s3:ListBucket",
      "Resource": [
        "arn:aws:s3:::bucket-name"
      ],
      "Condition": {
        "StringLike": {
          "s3:prefix": [
            "cognito/application-name/${cognito-identity.amazonaws.com:sub}/*"
          ]
        }
      }
    },
    {
      "Sid": "ReadWriteDeleteYourObjects",
      "Effect": "Allow",
      "Action": [
        "s3:DeleteObject",
        "s3:GetObject",
        "s3:PutObject"
      ],
      "Resource": [
        "arn:aws:s3:::bucket-name/cognito/application-name/${cognito-identity.amazonaws.com:sub}/*"
      ]
    }
  ]
}
```

------

Amazon Cognito는 웹 및 모바일 앱에 대한 인증, 권한 부여 및 사용자 관리를 제공합니다. 사용자는 사용자 이름과 암호를 사용하여 직접 로그인하거나 Facebook, Amazon, 또는 Google 같은 타사를 통해 로그인할 수 있습니다.

Amazon Cognito의 두 가지 주요 구성 요소는 사용자 풀과 자격 증명 풀입니다. 사용자 풀은 앱 사용자의 가입 및 로그인 옵션을 제공하는 사용자 디렉터리입니다. 자격 증명 풀을 통해 사용자에게 기타 AWS 서비스에 액세스할 수 있는 권한을 부여할 수 있습니다. 자격 증명 풀과 사용자 풀을 별도로 또는 함께 사용할 수 있습니다.

Amazon Cognito에 대한 자세한 내용은 [Amazon Cognito 사용자 안내서](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html)를 참조하세요.

# Amazon S3: 페더레이션 사용자가 프로그램 방식으로 콘솔에서 자신의 Amazon S3 홈 디렉터리에 액세스하도록 허용
<a name="reference_policies_examples_s3_federated-home-directory-console"></a>

이 예제는 페더레이션 보안 주체가 S3에 있는 자신의 홈 디렉터리 버킷 객체에 액세스하도록 허용하는 ID 기반 정책을 생성하는 방법을 보여줍니다. 홈 디렉터리는 개별 페더레이션 보안 주체의 `home` 폴더를 포함하는 버킷입니다. 이 정책은 프로그래밍 방식 및 콘솔 액세스에 대한 권한을 정의합니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체하세요. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다.

이 정책의 `${aws:userid}` 변수가 `role-id:specified-name`로 변환됩니다. 페더레이션 보안 주체 ID의 `role-id` 부분은 생성 중에 페더레이션 보안 주체의 역할에 할당된 고유한 식별자입니다. 자세한 내용은 [고유 식별자](reference_identifiers.md#identifiers-unique-ids) 섹션을 참조하세요. `specified-name`은 페더레이션 보안 주체가 역할을 수임했을 때 `AssumeRoleWithWebIdentity` 요청으로 전달된 [RoleSessionName 파라미터](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html#API_AssumeRoleWithWebIdentity_RequestParameters)입니다.

AWS CLI 명령 `aws iam get-role --role-name specified-name`.을 사용하여 역할 ID를 볼 수 있습니다. 예를 들어, 기억하기 쉬운 이름 `John`을 지정하고 CLI가 역할 ID `AROAXXT2NJT7D3SIQN7Z6`를 반환한다고 가정해 봅시다. 이 경우 페더레이션 보안 주체의 사용자 ID는 `AROAXXT2NJT7D3SIQN7Z6:John`입니다. 그러면 이 정책에서 페더레이션 보안 주체 John이 접두사 `AROAXXT2NJT7D3SIQN7Z6:John`로 시작하는 Amazon S3 버킷에 액세스할 수 있도록 허용합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "S3ConsoleAccess",
            "Effect": "Allow",
            "Action": [
                "s3:GetAccountPublicAccessBlock",
                "s3:GetBucketAcl",
                "s3:GetBucketLocation",
                "s3:GetBucketPolicyStatus",
                "s3:GetBucketPublicAccessBlock",
                "s3:ListAccessPoints",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "*"
        },
        {
            "Sid": "ListObjectsInBucket",
            "Effect": "Allow",
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
            "Condition": {
                "StringLike": {
                    "s3:prefix": [
                        "",
                        "home/",
                        "home/${aws:userid}/*"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/home/${aws:userid}",
                "arn:aws:s3:::amzn-s3-demo-bucket/home/${aws:userid}/*"
            ]
        }
    ]
}
```

------

# Amazon S3: S3 버킷 액세스, 하지만 프로덕션 버킷은 최근 MFA 없이 거부
<a name="reference_policies_examples_s3_full-access-except-production"></a>

이 예제는 Amazon S3 관리자가 객체 업데이트, 추가 및 삭제를 포함하여 모든 버킷에 액세스하도록 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 하지만 사용자가 지난 30분 내에 [멀티 팩터 인증(MFA)](id_credentials_mfa.md)을 사용하여 로그인하지 않은 경우 `amzn-s3-demo-bucket-production` 버킷에 대한 액세스를 명시적으로 거부합니다. 이 정책은 콘솔에서 또는 프로그래밍 방식으로 AWS CLI 또는 AWS API를 사용하여 이 작업을 수행하는 데 필요한 권한을 부여합니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체하세요. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다.

이 정책은 장기 사용자 액세스 키를 사용한 `amzn-s3-demo-bucket` 버킷에 대한 프로그래밍 방식 액세스를 허용하지 않습니다. 이 작업은 `NumericGreaterThanIfExists` 조건 연산자와 함께 `aws:MultiFactorAuthAge` 조건 키를 사용해 수행됩니다. 이 정책 조건은 MFA가 없거나 MFA 사용 기간이 30분 이상인 경우 `true`를 반환합니다. 이러한 상황에서는 액세스가 거부됩니다. 프로그래밍 방식으로 `amzn-s3-demo-bucket-production` 버킷에 액세스하려면 S3 관리자는 [GetSessionToken](id_credentials_temp_request.md#api_getsessiontoken) API 작업을 사용하여 지난 30분 동안 생성된 임시 자격 증명을 사용해야 합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ListAllS3Buckets",
            "Effect": "Allow",
            "Action": ["s3:ListAllMyBuckets"],
            "Resource": "arn:aws:s3:::*"
        },
        {
            "Sid": "AllowBucketLevelActions",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetBucketLocation"
            ],
            "Resource": "arn:aws:s3:::*"
        },
        {
            "Sid": "AllowBucketObjectActions",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:GetObject",
                "s3:GetObjectAcl",
                "s3:DeleteObject"
            ],
            "Resource": "arn:aws:s3:::*/*"
        },
        {
            "Sid": "RequireMFAForProductionBucket",
            "Effect": "Deny",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket-production/*",
                "arn:aws:s3:::amzn-s3-demo-bucket-production"
            ],
            "Condition": {
                "NumericGreaterThanIfExists": {"aws:MultiFactorAuthAge": "1800"}
            }
        }
    ]
}
```

------

# Amazon S3: IAM 사용자가 프로그램 방식으로 콘솔에서 자신의 S3 홈 디렉터리에 액세스하도록 허용
<a name="reference_policies_examples_s3_home-directory-console"></a>

이 예제는 IAM 사용자가 S3에 있는 자신의 홈 디렉터리 버킷 객체에 액세스하도록 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 홈 디렉터리는 개별 사용자의 `home` 폴더를 포함하는 버킷입니다. 이 정책은 프로그래밍 방식 및 콘솔 액세스에 대한 권한을 정의합니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체하세요. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다.

IAM 역할을 사용하는 경우 `aws:username` 변수를 사용할 수 없으므로 IAM 역할을 사용할 때는 이 정책이 작동하지 않습니다. 보안 주체 키 값에 대한 자세한 내용은 [보안 주체 키 값](reference_policies_variables.md#principaltable) 섹션을 참조하세요.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "S3ConsoleAccess",
            "Effect": "Allow",
            "Action": [
                "s3:GetAccountPublicAccessBlock",
                "s3:GetBucketAcl",
                "s3:GetBucketLocation",
                "s3:GetBucketPolicyStatus",
                "s3:GetBucketPublicAccessBlock",
                "s3:ListAccessPoints",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "*"
        },
        {
            "Sid": "ListObjectsInBucket",
            "Effect": "Allow",
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
            "Condition": {
                "StringLike": {
                    "s3:prefix": [
                        "",
                        "home/",
                        "home/${aws:username}/*"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/home/${aws:username}",
                "arn:aws:s3:::amzn-s3-demo-bucket/home/${aws:username}/*"
            ]
        }
    ]
}
```

------

# Amazon S3: 특정 S3 버킷으로 관리 제한
<a name="reference_policies_examples_s3_deny-except-bucket"></a>

이 예제는 Amazon S3 버킷의 관리를 해당 특정 버킷으로 제한하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 이 정책은 모든 Amazon S3 작업을 수행할 수 있는 권한을 부여하지만 Amazon S3를 제외한 모든 AWS 서비스에 대한 액세스는 거부합니다. 다음 예제를 참조하세요. 이 정책에 따르면 S3 버킷 또는 S3 객체 리소스에 대해 수행할 수 있는 Amazon S3 작업에만 액세스할 수 있습니다. 이 정책은 AWS API 또는 AWS CLI에서 이러한 작업을 프로그래밍 방식으로 완료하는 데 필요한 권한을 부여합니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체합니다. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다.

이 정책을 이 정책에서 거부하는 작업을 허용하는 다른 정책(예: [AmazonS3FullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AmazonS3FullAccess) 또는 [AmazonEC2FullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AmazonEC2FullAccess) AWS 관리형 정책)과 조합하여 사용하는 경우 액세스가 거부됩니다. 이는 명시적 거부문이 허용문보다 우선 적용되기 때문입니다. 자세한 내용은 [AWS 적용 코드 로직이 액세스 허용 또는 거부 요청을 평가하는 방법](reference_policies_evaluation-logic_policy-eval-denyallow.md) 섹션을 참조하세요.

**주의**  
[`NotAction`](reference_policies_elements_notaction.md) 및 [`NotResource`](reference_policies_elements_notresource.md)는 신중히 사용해야 하는 고급 정책 요소입니다. 이 정책에서는 Amazon S3를 제외한 모든 AWS 서비스에 대한 액세스를 거부합니다. 이 정책을 사용자에게 연결할 경우 다른 서비스에 대한 권한을 부여하는 다른 정책은 무시되거나 액세스가 거부됩니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::bucket-name",
                "arn:aws:s3:::bucket-name/*"
            ]
        },
        {
            "Effect": "Deny",
            "NotAction": "s3:*",
            "NotResource": [
                "arn:aws:s3:::bucket-name",
                "arn:aws:s3:::bucket-name/*"
            ]
        }
    ]
}
```

------

# Amazon S3 버킷 객체에 대한 읽기/쓰기 액세스 권한 부여
<a name="reference_policies_examples_s3_rw-bucket"></a>

이 예제는 `Read` 및 `Write`에서 특정 Amazon S3 버킷에 있는 객체에 대한 액세스를 허용하는 ID 기반 정책을 생성하는 방법을 보여줍니다. 이 정책은 AWS API 또는 AWS CLI에서 이러한 작업을 프로그래밍 방식으로 완료하는 데 필요한 권한을 부여합니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체합니다. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다.

`s3:*Object` 작업에서는 와일드카드를 작업 이름의 일부로 사용합니다. `AllObjectActions` 문은 'Object' 단어로 끝나는 `GetObject`, `DeleteObject`, `PutObject` 및 기타 Amazon S3 작업을 허용합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ListObjectsInBucket",
            "Effect": "Allow",
            "Action": ["s3:ListBucket"],
            "Resource": ["arn:aws:s3:::bucket-name"]
        },
        {
            "Sid": "AllObjectActions",
            "Effect": "Allow",
            "Action": "s3:*Object",
            "Resource": ["arn:aws:s3:::bucket-name/*"]
        }
    ]
}
```

------

**참고**  
Amazon S3 버킷에 있는 객체에 대한 `Read` 및 `Write` 액세스 권한을 허용하고 콘솔 액세스에 대한 추가 권한을 포함하려면 [Amazon S3: S3 버킷에 있는 객체에 대한 읽기 및 쓰기 액세스 권한을 프로그래밍 방식으로 콘솔에서 허용](reference_policies_examples_s3_rw-bucket-console.md) 섹션을 참조하세요.

# Amazon S3: S3 버킷에 있는 객체에 대한 읽기 및 쓰기 액세스 권한을 프로그래밍 방식으로 콘솔에서 허용
<a name="reference_policies_examples_s3_rw-bucket-console"></a>

이 예제는 `Read` 및 `Write`에서 특정 S3 버킷에 있는 객체에 대한 액세스를 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 이 정책은 프로그래밍 방식 및 콘솔 액세스에 대한 권한을 정의합니다. 이 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체하세요. 그런 다음 [정책 생성](access_policies_create.md) 또는 [정책 편집](access_policies_manage-edit.md)의 지침을 따릅니다.

`s3:*Object` 작업에서는 와일드카드를 작업 이름의 일부로 사용합니다. `AllObjectActions` 문은 'Object' 단어로 끝나는 `GetObject`, `DeleteObject`, `PutObject` 및 기타 Amazon S3 작업을 허용합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "S3ConsoleAccess",
            "Effect": "Allow",
            "Action": [
                "s3:GetAccountPublicAccessBlock",
                "s3:GetBucketAcl",
                "s3:GetBucketLocation",
                "s3:GetBucketPolicyStatus",
                "s3:GetBucketPublicAccessBlock",
                "s3:ListAccessPoints",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "*"
        },
        {
            "Sid": "ListObjectsInBucket",
            "Effect": "Allow",
            "Action": "s3:ListBucket",
            "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket"]
        },
        {
            "Sid": "AllObjectActions",
            "Effect": "Allow",
            "Action": "s3:*Object",
            "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket/*"]
        }
    ]
}
```

------

# IAM 정책 관리
<a name="access_policies_manage"></a>

IAM은 모든 유형의 IAM 정책(관리형 정책 및 인라인 정책)을 생성하고 관리하는 도구를 제공합니다. IAM 자격 증명(IAM 사용자, 그룹 또는 역할)에 권한을 추가하려면 정책을 생성하고 검증한 다음 정책을 자격 증명에 연결합니다. 다수의 정책을 자격 증명 하나에 연결하거나, 정책마다 다수의 권한이 포함될 수 있습니다.

**Topics**
+ [

## 추가 리소스
](#access_policies_manage-additional-resources)
+ [

# 고객 관리형 정책으로 사용자 지정 IAM 권한 정의
](access_policies_create.md)
+ [

# IAM 정책 검증
](access_policies_policy-validator.md)
+ [

# IAM 정책 시뮬레이터로 IAM 정책 테스트
](access_policies_testing-policies.md)
+ [

# IAM 자격 증명 권한 추가 및 제거
](access_policies_manage-attach-detach.md)
+ [

# IAM 정책 버전 관리
](access_policies_managed-versioning.md)
+ [

# IAM 정책 편집
](access_policies_manage-edit.md)
+ [

# IAM 정책 삭제
](access_policies_manage-delete.md)
+ [

# 마지막으로 액세스한 정보를 사용하여 AWS에서 권한 재정의
](access_policies_last-accessed.md)

## 추가 리소스
<a name="access_policies_manage-additional-resources"></a>

다음 리소스는 AWS 정책에 대해 자세히 알아보는 데 도움이 됩니다.
+ 다양한 유형의 IAM 정책에 대한 자세한 정보는 [AWS Identity and Access Management의 정책 및 권한](access_policies.md) 섹션을 참조하세요.
+ IAM 내에서 정책 사용에 대한 일반적인 내용은 [AWS리소스에 대한 액세스 관리](access.md) 섹션을 참조하세요.
+ IAM Access Analyzer을 사용하여 엔터티의 액세스 활동에 기반한 IAM 정책을 생성하는 방법에 대한 자세한 내용은 [IAM Access Analyzer 정책 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-generation.html)을 참조하세요.
+ 다수의 정책이 임의의 IAM 자격 증명 하나에 적용되는 경우 권한 평가 방법에 대한 자세한 내용은 [정책 평가 로직](reference_policies_evaluation-logic.md) 섹션을 참조하세요.
+ AWS 계정의 IAM 리소스 수와 크기는 제한되어 있습니다. 자세한 내용은 [IAM 및 AWS STS 할당량](reference_iam-quotas.md) 단원을 참조하십시오.

# 고객 관리형 정책으로 사용자 지정 IAM 권한 정의
<a name="access_policies_create"></a>

[정책](access_policies.md)은 AWS에서 ID 또는 리소스에 대한 권한을 정의합니다. AWS Management Console, AWS CLI 또는 AWS API를 사용하여 IAM에서 **고객 관리형 정책을 생성할 수 있습니다. 고객 관리형 정책은 자체 AWS 계정에서 관리하는 독립형 정책입니다. 그런 다음 정책을 AWS 계정의 자격 증명(사용자, 그룹, 역할)에 연결합니다.

**ID 기반 정책은 IAM의 ID에 연결되는 정책입니다. ID 기반 정책에는 AWS 관리형 정책, 고객 관리형 정책 및 인라인 정책이 포함될 수 있습니다. AWS 관리형 정책은 AWS에 의해 생성 및 관리되고, 사용자가 이를 사용할 수는 있지만 관리할 수는 없습니다. 인라인 정책은 사용자가 생성한 정책으로 IAM 사용자 그룹, 사용자 또는 역할에 직접 삽입할 수 있습니다. 인라인 정책은 다른 ID에서 재사용하거나 해당 ID 외부에서 관리할 수 없습니다. 자세한 내용은 [IAM 자격 증명 권한 추가 및 제거](access_policies_manage-attach-detach.md) 섹션을 참조하세요.

인라인 정책이나 AWS 관리형 정책 대신 고객 관리형 정책을 사용하는 것이 좋습니다. AWS 관리형 정책은 일반적으로 광범위한 관리 또는 읽기 전용 권한을 제공합니다. 보안을 극대화하려면 [최소 권한을 부여하세요](best-practices.md#grant-least-privilege). 즉, 특정 작업을 수행하는 데 필요한 권한만 부여해야 합니다.

IAM 정책을 생성하거나 편집할 때 AWS는 정책 검증을 자동으로 수행하여 최소 권한을 염두에 두고 효과적인 정책을 생성할 수 있습니다. AWS Management Console에서 IAM은 JSON 구문 오류를 식별하는 반면, IAM Access Analyzer는 정책을 더욱 구체화하는 데 도움이 되는 권장 사항과 함께 추가 정책 검사를 제공합니다. 정책 검증에 대한 자세한 내용은 [IAM 정책 검증](access_policies_policy-validator.md) 섹션을 참조하세요. IAM Access Analyzer 정책 확인 및 실행 가능한 권장 사항에 대한 자세한 내용은 [IAM Access Analyzer 정책 검증](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html)을 참조하세요.

AWS Management Console, AWS CLI 또는 AWS API를 사용하여 IAM에서 고객 관리형 정책을 생성할 수 있습니다. CloudFormation 템플릿을 사용하여 정책을 추가하거나 업데이트하는 방법에 대한 자세한 내용은 *CloudFormation 사용 설명서*의 [AWS Identity and Access Management resource type reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_IAM.html)(IAM 리소스 유형 참조)를 참조하세요.

**Topics**
+ [

# IAM 정책 생성(콘솔)
](access_policies_create-console.md)
+ [

# IAM 정책 생성(AWS CLI)
](access_policies_create-cli.md)
+ [

# IAM 정책 생성(AWS API)
](access_policies_create-api.md)

# IAM 정책 생성(콘솔)
<a name="access_policies_create-console"></a>

[정책](access_policies.md)은 자격 증명 또는 리소스에 연결될 때 해당 권한을 정의하는 개체입니다. AWS Management Console을 사용하여 IAM에서 *고객 관리형 정책*을 생성할 수 있습니다. 고객 관리형 정책은 자체 AWS 계정에서 관리하는 독립형 정책입니다. 그런 다음 정책을 AWS 계정의 자격 증명(사용자, 그룹, 역할)에 연결합니다.

AWS 계정의 IAM 리소스 수와 크기는 제한되어 있습니다. 자세한 내용은 [IAM 및 AWS STS 할당량](reference_iam-quotas.md) 섹션을 참조하세요.

**Topics**
+ [

## IAM 정책 생성
](#access_policies_create-start)
+ [

## JSON 편집기를 사용하여 정책 생성
](#access_policies_create-json-editor)
+ [

## 시각적 편집기를 사용하여 정책 생성
](#access_policies_create-visual-editor)
+ [

## 기존 관리형 정책 가져오기
](#access_policies_create-copy)

## IAM 정책 생성
<a name="access_policies_create-start"></a>

다음 방법 중 하나를 사용하여 AWS Management Console에서 고객 관리형 정책을 생성할 수 있습니다.
+ **[JSON](#access_policies_create-json-editor)** - 게시된 [예시 자격 증명 기반 정책](access_policies_examples.md)을 붙여넣고 사용자 지정합니다.
+ **[시각적 편집기](#access_policies_create-visual-editor)** - 시각적 편집기에서 정책을 새로 생성합니다. 시각적 편집기를 사용할 경우 JSON 구문을 이해할 필요가 없습니다.
+ **[가져오기](#access_policies_create-copy)** - 계정 내에서 관리형 정책을 가져오고 사용자 지정합니다. 이전에 생성한 AWS 관리형 정책 또는 고객 관리형 정책을 가져올 수 있습니다.

AWS 계정의 IAM 리소스 수와 크기는 제한되어 있습니다. 자세한 내용은 [IAM 및 AWS STS 할당량](reference_iam-quotas.md) 섹션을 참조하세요.

## JSON 편집기를 사용하여 정책 생성
<a name="access_policies_create-json-editor"></a>

**JSON** 옵션을 선택하여 JSON에 정책을 입력하거나 붙여 넣을 수 있습니다. 이 방법은 계정에서 사용하기 위해 [예시 정책](access_policies_examples.md)을 복사할 경우 유용합니다. 또는 JSON 편집기에 고유한 JSON 정책 문서를 입력할 수 있습니다. **JSON** 옵션을 통해 시각적 편집기와 JSON 간에 전환하여 보기를 비교할 수도 있습니다.

 JSON 편집기에서 정책을 생성하거나 편집할 때 IAM은 효과적인 정책을 생성하는 데 도움이 되는 정책 검증을 수행합니다. IAM은 JSON 구문 오류를 식별하는 반면, IAM Access Analyzer는 정책을 더욱 구체화하는 데 도움이 되는 실행 가능한 권장 사항과 함께 추가 정책 검사를 제공합니다.

JSON [정책](access_policies.md) 문서는 하나 이상의 문으로 구성되어 있습니다. 각 문에는 동일한 효과(`Allow` 또는 `Deny`)를 공유하며 동일한 리소스와 조건을 지원하는 모든 작업이 포함되어야 합니다. 한 작업에서 모든 리소스를 지정(`"*"`)하도록 요구하고 다른 작업에서 특정 리소스의 Amazon 리소스 이름(ARN)을 지원하는 경우 이들은 두 개의 별개 JSON 문에 있어야 합니다. ARN 형식에 대한 자세한 내용은 **AWS 일반 참조 안내서의 [Amazon 리소스 이름(ARN)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)을 참조하세요. IAM 정책에 대한 일반적인 내용은 [AWS Identity and Access Management의 정책 및 권한](access_policies.md) 섹션을 참조하세요. IAM 정책 언어에 대한 정보는 [IAM JSON 정책 참조](reference_policies.md) 섹션을 참조하세요.

**JSON 정책 편집기를 사용하여 정책을 생성하는 방법**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 에서 IAM 콘솔을 엽니다.

1. 왼쪽의 탐색 창에서 **정책**을 선택합니다.

1. **정책 생성**을 선택합니다.

1. **정책 편집기** 섹션에서 **JSON** 옵션을 선택합니다.

1. JSON 정책 문서를 입력하거나 붙여 넣습니다. IAM 정책 언어에 대한 자세한 정보는 [IAM JSON 정책 참조](reference_policies.md) 섹션을 참조하세요.

1.  [정책 검증](access_policies_policy-validator.md) 중에 생성되는 모든 보안 경고, 오류 또는 일반 경고를 해결하고 **다음**을 선택합니다.
**참고**  
언제든지 **시각적** 편집기 옵션과 **JSON** 편집기 옵션을 서로 전환할 수 있습니다. 그러나 변경을 적용하거나 **시각적** 편집기에서 **다음**을 선택한 경우 IAM은 시각적 편집기에 최적화되도록 정책을 재구성할 수 있습니다. 자세한 내용은 [정책 재구성](troubleshoot_policies.md#troubleshoot_viseditor-restructure) 섹션을 참조하세요.

1. (선택 사항) AWS Management Console에서 정책을 만들거나 편집할 때 CloudFormation 템플릿에서 사용할 수 있는 JSON 또는 YAML 정책 템플릿을 생성할 수 있습니다.

   이렇게 하려면 **정책 편집기**에서 **작업**을 선택한 다음, **CloudFormation 템플릿 생성**을 선택합니다. CloudFormation에 대한 자세한 내용은 AWS CloudFormation 사용 설명서의 [AWS Identity and Access Management리소스 유형 참조](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_IAM.html)를 참조하세요.

1. 정책에 권한 추가를 완료했으면 **다음**을 선택합니다.

1. **검토 및 생성** 페이지에서 생성하는 정책에 대한 **정책 이름**과 **설명**(선택 사항)을 입력합니다. **이 정책에 정의된 권한**을 검토하여 정책이 부여한 권한을 확인합니다.

1. (선택 사항) 태그를 키 값 페어로 연결하여 메타데이터를 정책에 추가합니다. IAM에서의 태그 사용에 대한 자세한 내용은 [AWS Identity and Access Management 리소스용 태그](id_tags.md) 섹션을 참조하세요.

1. **정책 생성**을 선택하고 새로운 정책을 저장합니다.

정책을 생성한 후 그룹, 사용자 또는 역할에 연결할 수 있습니다. 자세한 내용은 [IAM 자격 증명 권한 추가 및 제거](access_policies_manage-attach-detach.md) 섹션을 참조하세요.

## 시각적 편집기를 사용하여 정책 생성
<a name="access_policies_create-visual-editor"></a>

IAM 콘솔의 시각적 편집기는 JSON 구문을 작성하지 않고 정책을 생성하는 방법을 안내합니다. 시각적 편집기를 사용하여 정책을 생성하는 예시를 보려면 [자격 증명에 대한 액세스 제어](access_controlling.md#access_controlling-identities) 섹션을 참조하세요.

**시각적 편집기를 사용하여 정책을 생성하는 방법**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 왼쪽의 탐색 창에서 **정책**을 선택합니다.

1. **정책 생성**을 선택합니다.

1. **정책 편집기** 섹션에서 **서비스 선택** 섹션을 찾은 다음, AWS 서비스를 선택합니다. 상단의 검색 상자를 사용하여 서비스 목록 결과를 제한할 수 있습니다. 시각적 편집기 권한 블록 내에서 하나의 서비스만 선택할 수 있습니다. 둘 이상의 서비스에 액세스 권한을 부여하려면 **더 많은 권한 추가**를 선택하여 여러 개의 권한 블록을 추가합니다.

1. **허용된 작업**에서 정책에 추가할 작업을 선택합니다. 작업을 선택하는 방법은 다음과 같습니다.
   + 모든 작업에 대한 확인란을 선택하세요.
   + **Add actions(작업 추가)**를 선택하여 특정 작업의 이름을 입력합니다. 와일드카드(`*`)를 사용하여 여러 작업을 지정할 수 있습니다.
   + **액세스 수준** 그룹 중 하나를 선택하여 액세스 수준에 대한 모든 작업(예: **읽기**, **쓰기** 또는 **나열**)을 선택합니다.
   + 각 **액세스 수준** 그룹을 펼쳐서 개별 작업을 선택합니다.

   기본적으로 사용자가 생성하는 정책은 사용자가 선택하는 작업을 허용합니다. 대신 선택한 작업을 거부하려면 **권한 거부로 전환**을 선택합니다. [기본적으로 IAM은 거부](reference_policies_evaluation-logic.md)하기 때문에, 보안 모범 사례로 사용자에게 필요한 작업과 리소스에만 권한을 허용하는 것이 좋습니다. 다른 문 또는 정책에서 별도로 허용되는 권한을 재정의하려는 경우에만 권한을 거부하려면 JSON 문을 생성해야 합니다. 권한 거부의 수가 늘어나면 권한 문제를 해결하기가 더 어려워질 수 있기 때문에 그 수를 최소한으로 제한하는 것이 좋습니다.

1. **리소스**에서 이전 단계에서 선택한 서비스 및 작업이 [특정 리소스](access_controlling.md#access_controlling-resources) 선택을 지원하지 않는 경우에는 모든 리소스가 허용되며 이 섹션을 편집할 수 없습니다.

   [리소스 수준 권한](access_controlling.md#access_controlling-resources)을 지원하는 작업을 하나 이상 선택하면 시각적 편집기에 해당 리소스가 나열됩니다. 그러면 **리소스**를 펼쳐서 정책에 대한 리소스를 지정할 수 있습니다.

   다음과 같은 방법으로 리소스를 지정할 수 있습니다.
   + **ARN 추가**를 선택하여 Amazon 리소스 이름(ARN)별로 리소스를 지정합니다. 시각적 ARN 편집기를 사용하거나 ARN을 수동으로 나열할 수 있습니다. ARN 구문에 대한 자세한 내용은 **AWS 일반 참조 안내서의 [Amazon 리소스 이름(ARN)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)을 참조하세요. 정책의 `Resource` 요소에 ARN을 사용하는 방법에 대한 자세한 내용은 [IAM JSON 정책 요소: Resource](reference_policies_elements_resource.md) 섹션을 참조하세요.
   + 리소스 옆의 **이 계정에서 모두**를 선택하여 해당 유형의 모든 리소스에 권한을 부여합니다.
   + **모두**를 선택하여 해당 서비스에 대한 모든 리소스를 선택합니다.

1. (선택 사항) **요청 조건 - *선택 사항***을 선택하여 생성하는 정책에 조건을 추가합니다. 조건은 JSON 정책문의 결과를 제한합니다. 예를 들어 특정 시간 범위 내에 사용자의 요청이 발생하는 경우에만 사용자가 리소스에 대한 작업을 수행할 수 있도록 지정할 수 있습니다. 또한 일반적으로 사용되는 조건을 사용하여 사용자가 멀티 팩터 인증(MFA) 디바이스를 사용하여 인증받아야 하는지를 제한할 수 있습니다. 또는 요청이 특정 IP 주소 범위에서 발생하도록 요구할 수 있습니다. 정책 조건을 사용할 수 있는 컨텍스트 키의 전체 목록은 *서비스 승인 참조*의 [AWS 서비스에 대한 작업, 리소스 및 조건 키](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html)를 참조하세요.

   조건을 선택하는 방법은 다음과 같습니다.
   + 확인란을 사용하여 일반적으로 사용되는 조건을 선택하세요.
   + **다른 조건 추가**를 선택하여 다른 조건을 지정합니다. 조건의 **조건 키**, **한정어**, **연산자**를 선택한 후 **값**을 입력합니다. 값을 두 개 이상 추가하려면 **추가**를 선택합니다. 해당 값이 논리적 "OR" 연산자로 연결되는 것으로 생각할 수 있습니다. 마치면 **조건 추가**를 선택합니다.

   조건을 두 개 이상 추가하려면 다시 **다른 조건 추가**를 선택합니다. 필요에 따라 반복합니다. 각 조건은 이 시각적 편집기 권한 블록 하나에만 적용됩니다. 권한 블록이 일치하는 것으로 간주되려면 모든 조건이 true여야 합니다. 즉, 이들 조건이 논리적 "AND" 연산자로 연결되는 것으로 간주됩니다.

   **조건** 요소에 대한 자세한 정보는 [IAM JSON 정책 요소: Condition](reference_policies_elements_condition.md)에서 [IAM JSON 정책 참조](reference_policies.md) 섹션을 참조하세요.

1. 더 많은 권한 블록을 추가하려면 **더 많은 권한 추가**를 선택합니다. 각 블록에 대해 2\$15단계를 반복합니다.
**참고**  
언제든지 **시각적** 편집기 옵션과 **JSON** 편집기 옵션을 서로 전환할 수 있습니다. 그러나 변경을 적용하거나 **시각적** 편집기에서 **다음**을 선택한 경우 IAM은 시각적 편집기에 최적화되도록 정책을 재구성할 수 있습니다. 자세한 내용은 [정책 재구성](troubleshoot_policies.md#troubleshoot_viseditor-restructure) 섹션을 참조하세요.

1. (선택 사항) AWS Management Console에서 정책을 만들거나 편집할 때 CloudFormation 템플릿에서 사용할 수 있는 JSON 또는 YAML 정책 템플릿을 생성할 수 있습니다.

   이렇게 하려면 **정책 편집기**에서 **작업**을 선택한 다음, **CloudFormation 템플릿 생성**을 선택합니다. CloudFormation에 대한 자세한 내용은 AWS CloudFormation 사용 설명서의 [AWS Identity and Access Management리소스 유형 참조](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_IAM.html)를 참조하세요.

1. 정책에 권한 추가를 완료했으면 **다음**을 선택합니다.

1. **검토 및 생성** 페이지에서 생성하는 정책에 대한 **정책 이름**과 **설명**(선택 사항)을 입력합니다. **이 정책에 정의된 권한**을 검토하여 의도한 권한을 부여했는지 확인합니다.

1. (선택 사항) 태그를 키-값 페어로 연결하여 메타데이터를 정책에 추가합니다. IAM에서의 태그 사용에 대한 자세한 내용은 [AWS Identity and Access Management 리소스용 태그](id_tags.md) 섹션을 참조하세요.

1. **정책 생성**을 선택하고 새로운 정책을 저장합니다.

정책을 생성한 후 그룹, 사용자 또는 역할에 연결할 수 있습니다. 자세한 내용은 [IAM 자격 증명 권한 추가 및 제거](access_policies_manage-attach-detach.md) 섹션을 참조하세요.

## 기존 관리형 정책 가져오기
<a name="access_policies_create-copy"></a>

새 정책을 생성하는 쉬운 방법은 최소한으로 필요한 권한 중 일부가 이미 존재하는 계정으로 기존 관리형 정책을 가져오는 것입니다. 그런 다음, 새로운 요구 사항에 일치하도록 정책을 사용자 지정할 수 있습니다.

인라인 정책은 가져올 수 없습니다. 관리형 정책과 인라인 정책의 차이에 대해 자세히 알아보려면 [관리형 정책과 인라인 정책](access_policies_managed-vs-inline.md) 섹션을 참조하세요.

**시각적 편집기에서 기존 관리형 정책을 가져오려면**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 왼쪽의 탐색 창에서 **정책**을 선택합니다.

1. **정책 생성**을 선택합니다.

1. **정책 편집기**에서 **시각적** 편집기를 선택한 다음, 페이지 오른쪽에서 **작업**을 선택하고 **정책 가져오기**를 선택합니다.

1. **정책 가져오기** 창에서 새 정책에 포함할 정책과 가장 근접한 관리형 정책을 선택합니다. 상단의 검색 상자를 사용하여 정책 목록 결과를 제한할 수 있습니다.

1. **정책 가져오기**를 선택합니다.

   가져온 정책은 정책 하단의 새 권한 블록에 추가됩니다.

1. **Visual editor(시각적 편집기)**를 사용하거나 **JSON**을 선택하여 정책을 사용자 지정합니다. 그리고 **다음**을 선택합니다.
**참고**  
언제든지 **시각적** 편집기 옵션과 **JSON** 편집기 옵션을 서로 전환할 수 있습니다. 그러나 변경을 적용하거나 **시각적** 편집기에서 **다음**을 선택한 경우 IAM은 시각적 편집기에 최적화되도록 정책을 재구성할 수 있습니다. 자세한 내용은 [정책 재구성](troubleshoot_policies.md#troubleshoot_viseditor-restructure) 섹션을 참조하세요.

1. **검토 및 생성** 페이지에서 생성하는 정책에 대한 **정책 이름**과 **설명**(선택 사항)을 입력합니다. 이러한 설정은 나중에 편집할 수 없습니다. **이 정책에 정의된 권한**을 검토한 다음, **정책 생성**을 선택하여 작업을 저장합니다.

****JSON** 편집기에서 기존 관리형 정책을 가져오려면**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 왼쪽의 탐색 창에서 **정책**을 선택합니다.

1. **정책 생성**을 선택합니다.

1. **정책 편집기** 섹션에서 **JSON** 옵션을 선택한 다음, 페이지 오른쪽에서 **작업**을 선택하고 **정책 가져오기**를 선택합니다.

1. **정책 가져오기** 창에서 새 정책에 포함할 정책과 가장 근접한 관리형 정책을 선택합니다. 상단의 검색 상자를 사용하여 정책 목록 결과를 제한할 수 있습니다.

1. **정책 가져오기**를 선택합니다.

   가져온 정책의 문은 JSON 정책 하단에 추가됩니다.

1. JSON으로 정책을 사용자 지정합니다. [정책 검증](access_policies_policy-validator.md) 중에 생성되는 모든 보안 경고, 오류 또는 일반 경고를 해결하고 **다음**을 선택합니다. 또는 **시각적 편집기(Visual editor)**에서 정책을 사용자 지정합니다. 그리고 **다음**을 선택합니다.
**참고**  
언제든지 **시각적** 편집기 옵션과 **JSON** 편집기 옵션을 서로 전환할 수 있습니다. 그러나 변경을 적용하거나 **시각적** 편집기에서 **다음**을 선택한 경우 IAM은 시각적 편집기에 최적화되도록 정책을 재구성할 수 있습니다. 자세한 내용은 [정책 재구성](troubleshoot_policies.md#troubleshoot_viseditor-restructure) 섹션을 참조하세요.

1. **검토 및 생성** 페이지에서 생성하는 정책에 대한 **정책 이름**과 **설명**(선택 사항)을 입력합니다. 이러한 필드는 나중에 편집할 수 없습니다. **이 정책에 정의된 권한** 정책을 검토한 다음, **정책 생성**을 선택하여 작업을 저장합니다.

정책을 생성한 후 그룹, 사용자 또는 역할에 연결할 수 있습니다. 자세한 내용은 [IAM 자격 증명 권한 추가 및 제거](access_policies_manage-attach-detach.md) 섹션을 참조하세요.

# IAM 정책 생성(AWS CLI)
<a name="access_policies_create-cli"></a>

[정책](access_policies.md)은 자격 증명 또는 리소스에 연결될 때 해당 권한을 정의하는 개체입니다. AWS CLI을 사용하여 IAM에서 *고객 관리형 정책*을 생성할 수 있습니다. 고객 관리형 정책은 자체 AWS 계정에서 관리하는 독립형 정책입니다. [가장 좋은 방법](best-practices.md)은 IAM Access Analyzer를 사용하여 IAM 정책을 검증하여 안전하고 기능적인 권한을 보장하는 것입니다. [정책을 검증](access_policies_policy-validator.md)하면 정책을 AWS 계정의 자격 증명(사용자, 그룹, 역할)에 연결하기 전에 오류나 권장 사항을 해결할 수 있습니다.

AWS 계정의 IAM 리소스 수와 크기는 제한되어 있습니다. 자세한 내용은 [IAM 및 AWS STS 할당량](reference_iam-quotas.md) 단원을 참조하십시오.

## IAM 정책 생성(AWS CLI)
<a name="create-policies-cli-api"></a>

AWS Command Line Interface(AWS CLI)를 사용하여 IAM 고객 관리형 정책 또는 인라인 정책을 생성할 수 있습니다.

**고객 관리형 정책을 만들려면(AWS CLI)**  
다음 명령을 사용합니다.
+ [create-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/create-policy.html)

**IAM 자격 증명(그룹, 사용자 또는 역할)에 대한 인라인 정책을 만들려면(AWS CLI)**  
다음 명령 중 하나를 사용합니다.
+ [put-group-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/put-group-policy.html)
+ [put-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/put-role-policy.html)
+ [put-user-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/put-user-policy.html)

**참고**  
IAM을 사용하여 *[service-linked role](id_roles.md#iam-term-service-linked-role)*에 인라인 정책을 포함시킬 수 없습니다.

**고객 관리형 정책을 검증하려면(AWS CLI)**  
다음 IAM Access Analyzer 명령을 사용합니다.
+ [validate-policy](https://docs.aws.amazon.com/cli/latest/reference/accessanalyzer/validate-policy.html)

# IAM 정책 생성(AWS API)
<a name="access_policies_create-api"></a>

[정책](access_policies.md)은 자격 증명 또는 리소스에 연결될 때 해당 권한을 정의하는 개체입니다. AWS API를 사용하여 IAM에서 *고객 관리형 정책*을 생성할 수 있습니다. 고객 관리형 정책은 자체 AWS 계정에서 관리하는 독립형 정책입니다. [가장 좋은 방법](best-practices.md)은 IAM Access Analyzer를 사용하여 IAM 정책을 검증하여 안전하고 기능적인 권한을 보장하는 것입니다. [정책을 검증](access_policies_policy-validator.md)하면 정책을 AWS 계정의 자격 증명(사용자, 그룹, 역할)에 연결하기 전에 오류나 권장 사항을 해결할 수 있습니다.

AWS 계정의 IAM 리소스 수와 크기는 제한되어 있습니다. 자세한 내용은 [IAM 및 AWS STS 할당량](reference_iam-quotas.md) 섹션을 참조하세요.

## IAM 정책 생성(AWS API)
<a name="create-policies-api"></a>

AWS API를 사용하여 IAM 고객 관리형 정책 또는 인라인 정책을 생성할 수 있습니다.

**고객 관리형 정책을 만들려면(AWS API)**  
다음 작업을 직접 호출:
+ [CreatePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicy.html)

**IAM 자격 증명(그룹, 사용자 또는 역할)에 대한 인라인 정책을 만들려면(AWS API)**  
다음 작업 중 하나를 호출합니다.
+ [PutGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutGroupPolicy.html)
+ [PutRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutRolePolicy.html)
+ [PutUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutUserPolicy.html)

**참고**  
IAM을 사용하여 *[service-linked role](id_roles.md#iam-term-service-linked-role)*에 인라인 정책을 포함시킬 수 없습니다.

**고객 관리형 정책을 검증하려면(AWS API)**  
다음 IAM Access Analyzer 작업을 호출합니다.
+ [ValidatePolicy](https://docs.aws.amazon.com/access-analyzer/latest/APIReference/API_ValidatePolicy.html)

# IAM 정책 검증
<a name="access_policies_policy-validator"></a>

여기에서 [정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies_overview.html)이란 [IAM 정책 문법](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-grammar.html)을 사용한 JSON 문서를 말합니다. 정책을 IAM 엔터티(예: 사용자, 그룹 또는 역할)에 연결하면 해당 엔터티에 권한을 부여합니다.

AWS Management Console을 사용해 IAM 액세스 제어 정책을 생성하거나 편집하는 경우 AWS는 IAM 정책 문법을 준수하는지 확인하기 위해 해당 정책을 자동으로 검사합니다. AWS에서 정책 문법을 준수하지 않은 정책을 발견하면 해당 정책을 수정하라는 메시지가 표시됩니다.

IAM Access Analyzer는 정책을 더욱 구체화하는 데 도움이 되는 권장 사항과 함께 추가 정책 검사를 제공합니다. IAM Access Analyzer 정책 검사기 및 실행 가능한 권장 사항에 대한 자세한 내용은 [IAM Access Analyzer 정책 검증](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html)을 참조하세요. IAM Access Analyzer에서 반환된 경고, 오류 및 제안 사항 목록을 보려면 [IAM Access Analyzer 정책 확인 참조](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-reference-policy-checks.html)를 참조하세요.

**검증 대상**  
AWS에서는 JSON 정책 구문 및 문법을 검사합니다. 또한 ARN 형식이 올바른지와 작업 이름 및 조건 키가 올바른지도 확인합니다.

**정책 검증 액세스**  
JSON 정책을 생성하거나 AWS Management Console에서 기존 정책을 편집하면 정책이 자동으로 검증됩니다. 정책 구문이 유효하지 않으면 알림이 표시되고 계속 진행하기 전에 문제를 해결해야 합니다. IAM Access Analyzer 정책 검증 결과는 `access-analyzer:ValidatePolicy`에 대한 권한이 있는 경우 자동으로 AWS Management Console에 반환됩니다. 또한 AWS API 또는 AWS CLI를 사용하여 정책을 검증할 수도 있습니다.

**기존 정책**  
기존 정책이 정책 엔진에 대한 최신 업데이트 전에 생성되었거나 마지막으로 저장되었기 때문에 유효하지 않은 정책이 있을 수 있습니다. [가장 좋은 방법](best-practices.md)은 IAM Access Analyzer를 사용하여 IAM 정책을 검증하여 안전하고 기능적인 권한을 보장하는 것입니다. 기존 정책을 열고 생성된 정책 검증 결과를 검토하는 것이 좋습니다. 정책 구문 오류를 수정하지 않으면 기존 정책을 편집 및 저장할 수 없습니다.

# IAM 정책 시뮬레이터로 IAM 정책 테스트
<a name="access_policies_testing-policies"></a>

IAM 정책의 사용 방식과 이유에 대한 자세한 정보는 [AWS Identity and Access Management의 정책 및 권한](access_policies.md) 섹션을 참조하세요.

**[https://policysim.aws.amazon.com/](https://policysim.aws.amazon.com/)에서 IAM 정책 시뮬레이터 콘솔에 액세스할 수 있습니다.**

**중요**  
정책 시뮬레이터 결과는 실제 AWS 환경과 다를 수 있습니다. 정책 시뮬레이터를 사용하여 테스트 후 정책을 실제 AWS 환경과 비교하여 원하는 결과가 얻었는지 확인하는 것이 좋습니다. 자세한 내용은 [IAM 정책 시뮬레이터의 원리](#policies_policy-simulator-how-it-works) 섹션을 참조하세요.

 

IAM 정책 시뮬레이터를 사용하여 ID 기반 정책 및 IAM 권한 경계를 테스트하고 문제를 해결할 수 있습니다. 다음은 정책 시뮬레이터로 수행할 수 있는 몇 가지 일반적인 사항입니다.
+ AWS 계정의 IAM 사용자, IAM 그룹 또는 역할에 연결된 ID 기반 정책을 테스트합니다. 사용자, 사용자 그룹 또는 역할에 추가된 정책이 다수일 때는 모든 정책을 테스트하거나, 테스트할 정책만 따로 선택할 수 있습니다. 특정 리소스에 대해 선택한 정책에서 어떤 작업을 허용하거나 거부하는지 테스트할 수 있습니다.
+ IAM 엔터티 [권한 경계](access_policies_boundaries.md)의 테스트 및 문제 해결 효과 한 번에 하나의 권한 경계만 시뮬레이션할 수 있습니다.
+ Amazon S3 버킷, Amazon SQS 대기열, Amazon SNS 주제 또는 Amazon Glacier 볼트와 같은 AWS 리소스에 연결된 IAM 사용자에 대한 리소스 기반 정책의 영향을 테스트합니다. IAM 사용자를 위해 정책 시뮬레이터에서 리소스 기반 정책을 사용하려면 시뮬레이션에 리소스를 포함해야 합니다. 또한 해당 리소스의 정책을 시뮬레이션에 포함하려면 확인란을 선택해야 합니다.
**참고**  
IAM 역할에는 리소스 기반 정책의 시뮬레이션이 지원되지 않습니다.
+ AWS 계정이 [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/)의 조직에 속한 경우, 서비스 제어 정책(SCP)이 IAM 기반 정책에 미치는 영향을 테스트할 수 있습니다.
**참고**  
정책 시뮬레이터는 조건이 있는 SCP를 평가하지 않습니다.
+ 사용자, 사용자 그룹 또는 역할에 아직 추가되지 않은 새로운 ID 기반 정책을 정책 시뮬레이터에 입력 또는 복사하여 테스트합니다. 이는 시뮬레이션에서만 사용되며 저장되지 않습니다. 리소스 기반 정책을 시뮬레이터에 입력하거나 복사하지 마세요.
+ 선택한 서비스, 작업 및 리소스로 ID 기반 정책을 테스트합니다. 예를 들어 정책이 특정 버킷의 Amazon S3 서비스에서 주체가 `ListAllMyBuckets`, `CreateBucket` 및 `DeleteBucket` 작업을 수행할 수 있도록 허용하는지 확인하기 위해 테스트할 수 있습니다.
+ 테스트할 정책에서 키가 지정되어 있는 경우에는 테스트할 정책의 `Condition` 요소에 포함된 IP 주소나 날짜 같은 콘텍스트 키를 제공하여 실제 시나리오를 시뮬레이션합니다.
**참고**  
시뮬레이션의 ID 기반 정책에 태그를 명시적으로 확인하는 `Condition` 요소가 없는 경우 정책 시뮬레이터는 입력으로 제공된 태그를 시뮬레이션하지 않습니다.
+ ID 기반 정책에서 특정 리소스 또는 작업에 대한 액세스를 허용하거나 거부하는 특정 문을 식별합니다.

**Topics**
+ [

## IAM 정책 시뮬레이터의 원리
](#policies_policy-simulator-how-it-works)
+ [

## IAM 정책 시뮬레이터를 사용하는 데 필요한 권한
](#permissions-required_policy-simulator)
+ [

## IAM 정책 시뮬레이터 사용(콘솔)
](#policies_policy-simulator-using)
+ [

## IAM 정책 시뮬레이터의 사용(AWS CLI 및 AWS API)
](#policies-simulator-using-api)

## IAM 정책 시뮬레이터의 원리
<a name="policies_policy-simulator-how-it-works"></a>

정책 시뮬레이터는 ID 기반 정책의 문과 시뮬레이션 중 사용자가 제공하는 입력을 평가합니다. 정책 시뮬레이터 결과는 실제 AWS 환경과 다를 수 있습니다. 정책 시뮬레이터를 사용하여 테스트 후 정책을 실제 AWS 환경과 비교하여 원하는 결과가 얻었는지 확인하는 것이 좋습니다.

정책 시뮬레이터는 라이브 AWS 환경과 다음과 같은 점에서 다릅니다.
+ 정책 시뮬레이터는 실제로 AWS 서비스를 요청하는 것은 아니기 때문에 실행 중인 AWS 환경을 변경하지 않고 요청을 안전하게 테스트할 수 있습니다. 정책 시뮬레이터는 프로덕션에서 실제 컨텍스트 키 값을 고려하지 않습니다.
+ 정책 시뮬레이터는 선택한 작업 중 실행 중인 작업은 시뮬레이션하지 않기 때문에 시뮬레이션된 요청에 대한 응답을 보고하지 않습니다. 요청된 작업이 허용되는지 아니면 거부되는지 여부만 결과로 반환됩니다.
+ 정책 시뮬레이터에서 정책을 편집할 경우 이러한 변경은 정책 시뮬레이터에만 영향을 줍니다. AWS 계정의 해당 정책은 변함없이 그대로 유지됩니다.
+ 조건이 있는 서비스 제어 정책(SCP)은 테스트할 수 없습니다.
+ 정책 시뮬레이터는 리소스 제어 정책(RCP)에 대한 시뮬레이션을 지원하지 않습니다.
+ 정책 시뮬레이터는 크로스 계정 액세스를 위해 IAM 역할 및 사용자에 대한 시뮬레이션을 지원하지 않습니다.

**참고**  
IAM 정책 시뮬레이터는 권한 부여를 위해 [글로벌 조건 키](reference_policies_condition-keys.md)를 지원하는 서비스를 결정하지 않습니다. 예를 들어, 정책 시뮬레이터는 서비스가 [`aws:TagKeys`](reference_policies_condition-keys.md#condition-keys-tagkeys)를 지원하지 않는다는 것을 식별하지 못합니다.

## IAM 정책 시뮬레이터를 사용하는 데 필요한 권한
<a name="permissions-required_policy-simulator"></a>

정책 시뮬레이터 콘솔 또는 정책 시뮬레이터 API를 사용하여 정책을 테스트할 수 있습니다. 기본적으로 콘솔 사용자는 사용자, 사용자 그룹 또는 역할에 아직 연결되지 않은 정책을 정책 시뮬레이터에 입력하거나 복사하여 테스트할 수 있습니다. 이러한 정책은 시뮬레이션에만 사용되며 민감한 정보를 공개하지 않습니다. API 사용자가 연결되지 않은 정책을 테스트하려면 권한이 있어야 합니다. 콘솔 또는 API 사용자가 AWS 계정의 IAM 사용자, IAM 그룹 또는 역할에 연결된 정책을 테스트하도록 허용할 수 있습니다. 이렇게 하려면 해당 정책을 검색할 수 있는 권한을 제공해야 합니다. 리소스 기반 정책을 테스트하려면 사용자가 리소스의 정책을 검색할 수 있는 권한을 보유해야 합니다.

사용자가 시뮬레이션할 수 있는 콘솔 및 API 정책의 예시는 [예제 정책 AWS Identity and Access Management(IAM)](access_policies_examples.md#policy_library_IAM) 섹션을 참조하세요.

### 정책 시뮬레이터 콘솔을 사용하는 데 필요한 권한
<a name="permissions-required_policy-simulator-console"></a>

사용자가 AWS 계정의 IAM 사용자, IAM 그룹 또는 역할에 연결된 정책을 테스트하도록 허용할 수 있습니다. 이렇게 하려면 사용자에게 해당 정책을 검색할 수 있는 권한을 제공해야 합니다. 리소스 기반 정책을 테스트하려면 사용자가 리소스의 정책을 검색할 수 있는 권한을 보유해야 합니다.

사용자, 사용자 그룹 또는 역할에 연결된 정책에 대해 정책 시뮬레이터 콘솔의 사용을 허용하는 정책 예는 [IAM: 정책 시뮬레이터 콘솔 액세스](reference_policies_examples_iam_policy-sim-console.md) 섹션을 참조하세요.

특정 경로를 지닌 사용자에 대해서만 정책 시뮬레이터 콘솔의 사용을 허용하는 정책의 예시는 [IAM: 사용자 경로를 바탕으로 정책 시뮬레이터 콘솔 액세스](reference_policies_examples_iam_policy-sim-path-console.md) 섹션을 참조하세요.

한 가지 유형의 엔터티에 대해서만 정책 시뮬레이터 콘솔의 사용을 허용하는 정책을 만들려면 다음의 절차에 따릅니다.

**콘솔 사용자가 사용자를 위한 정책을 시뮬레이션하도록 허용하는 방법**  
정책에 다음의 작업을 포함시킵니다.
+ `iam:GetGroupPolicy`
+ `iam:GetPolicy`
+ `iam:GetPolicyVersion`
+ `iam:GetUser`
+ `iam:GetUserPolicy`
+ `iam:ListAttachedUserPolicies`
+ `iam:ListGroupsForUser`
+ `iam:ListGroupPolicies`
+ `iam:ListUserPolicies`
+ `iam:ListUsers`

**콘솔 사용자가 IAM 그룹을 위한 정책을 시뮬레이션하도록 허용하려면**  
정책에 다음의 작업을 포함시킵니다.
+ `iam:GetGroup`
+ `iam:GetGroupPolicy`
+ `iam:GetPolicy`
+ `iam:GetPolicyVersion`
+ `iam:ListAttachedGroupPolicies`
+ `iam:ListGroupPolicies`
+ `iam:ListGroups`

**콘솔 사용자가 역할에 대한 정책을 시뮬레이션하도록 허용하는 방법**  
정책에 다음의 작업을 포함시킵니다.
+ `iam:GetPolicy`
+ `iam:GetPolicyVersion`
+ `iam:GetRole`
+ `iam:GetRolePolicy`
+ `iam:ListAttachedRolePolicies`
+ `iam:ListRolePolicies`
+ `iam:ListRoles`

리소스 기반 정책을 테스트하려면 사용자가 리소스의 정책을 검색할 수 있는 권한을 보유해야 합니다.

**콘솔 사용자가 Amazon S3 버킷에서 리소스 기반 정책을 테스트하도록 허용하는 방법**  
정책에 다음의 작업을 포함시킵니다.
+ `s3:GetBucketPolicy`

예를 들어, 다음 정책에서 이 작업을 사용하여 특정 Amazon S3 버킷에서 콘솔 사용자가 리소스 기반 정책을 시뮬레이션하도록 허용합니다.

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

****  

```
{
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": "s3:GetBucketPolicy",
            "Resource":"arn:aws:s3:::bucket-name/*"
          }
        ]
      }
```

------

### API 정책 시뮬레이터를 사용하는 데 필요한 권한
<a name="permissions-required_policy-simulator-api"></a>

정책 시뮬레이터 API 작업 [GetContextKeyForCustomPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeyForCustomPolicy.html) 및 [SimulateCustomPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulateCustomPolicy.html)는 아직 사용자, 사용자 그룹 또는 역할에 연결되지 않은 정책을 테스트하도록 허용합니다. 이러한 정책을 테스트하려면 정책을 문자열로 API에 전달합니다. 이러한 정책은 시뮬레이션에만 사용되며 민감한 정보를 공개하지 않습니다. API를 사용하여 AWS 계정의 IAM 사용자, IAM 그룹 또는 역할에 연결된 정책을 테스트할 수도 있습니다. 이렇게 하려면 사용자에게 [GetContextKeyForPrincipalPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeyForPrincipalPolicy.html) 및 [SimulatePrincipalPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulatePrincipalPolicy.html)를 호출할 수 있는 권한을 제공해야 합니다.

현재 AWS 계정에 연결된 정책 및 연결되지 않은 정책에 대해 정책 시뮬레이터 API를 사용하도록 허용하는 예제 정책을 보려면 [IAM: 정책 시뮬레이터 API에 액세스](reference_policies_examples_iam_policy-sim.md) 섹션을 참조하세요.

한 가지 유형의 정책에 대해서만 정책 시뮬레이터 API의 사용을 허용하는 정책을 만들려면 다음의 절차에 따릅니다.

**API 사용자가 API에 문자열로 직접 전달되는 정책을 시뮬레이션하도록 허용하는 방법**  
정책에 다음의 작업을 포함시킵니다.
+ `iam:GetContextKeysForCustomPolicy`
+ `iam:SimulateCustomPolicy`

**API 사용자가 IAM 사용자, IAM 그룹 또는 역할에 연결된 정책을 시뮬레이션하도록 허용하려면**  
정책에 다음의 작업을 포함시킵니다.
+ `iam:GetContextKeysForPrincipalPolicy`
+ `iam:SimulatePrincipalPolicy`

예를 들어, Alice라는 사용자에게 할당된 정책을 시뮬레이션할 수 있는 권한을 Bob이라는 사용자에게 부여하려면, Bob에게 `arn:aws:iam::777788889999:user/alice`라는 리소스에 액세스할 수 있는 권한을 부여해야 합니다.

특정 경로를 지닌 사용자에 대해서만 정책 시뮬레이터 API의 사용을 허용하는 정책의 예시는 [IAM: 사용자 경로를 바탕으로 정책 시뮬레이터 API 액세스](reference_policies_examples_iam_policy-sim-path.md) 섹션을 참조하세요.

## IAM 정책 시뮬레이터 사용(콘솔)
<a name="policies_policy-simulator-using"></a>

기본적으로 사용자는 사용자, 사용자 그룹 또는 역할에 아직 연결되지 않은 정책을 정책 시뮬레이터 콘솔에 입력하거나 복사하여 테스트할 수 있습니다. 이러한 정책은 시뮬레이션에만 사용되며 민감한 정보를 공개하지 않습니다.

**사용자, 사용자 그룹 또는 역할에 연결되지 않은 정책을 테스트하려면(콘솔)**

1. [https://policysim.aws.amazon.com/](https://policysim.aws.amazon.com/)에서 IAM 정책 시뮬레이터 콘솔을 엽니다.

1. 페이지의 상단에 있는 **Mode:(모드:)** 메뉴에서 **New Policy(새 정책)**을 선택합니다.

1. **Policy Sandbox(정책 샌드박스)**에서 **새 정책 생성**을 선택합니다.

1. 정책 시뮬레이터에 입력하거나 복사하여 붙여 넣고, 다음 단계의 설명에 따라 정책 시뮬레이터를 사용합니다.

IAM 정책 시뮬레이터 콘솔을 사용할 권한이 있으면 정책 시뮬레이터를 사용하여 IAM 사용자, 사용자 그룹, 역할 또는 리소스 정책을 테스트할 수 있습니다.

**사용자, 사용자 그룹 또는 역할에 연결된 정책을 테스트하려면(콘솔)**

1. [https://policysim.aws.amazon.com/](https://policysim.aws.amazon.com/)에서 IAM 정책 시뮬레이터 콘솔을 엽니다.
**참고**  
IAM 사용자로 정책 시뮬레이터에 로그인하려면 고유의 로그인 URL을 사용하여 AWS Management Console에 로그인합니다. 그런 다음 [https://policysim.aws.amazon.com/](https://policysim.aws.amazon.com/)으로 이동합니다. IAM 사용자 권한의 로그인에 대한 자세한 정보는 [IAM 사용자가 AWS에 로그인하는 방법](id_users_sign-in.md) 섹션을 참조하세요.

   정책 시뮬레이터가 **Existing Policies**(기존 정책) 모드로 열리며 **Users, Groups, and Roles**(사용자, 그룹 및 역할) 아래 계정에 속한 IAM 사용자가 표시됩니다.

1. <a name="polsimstep-selectid"></a>작업에 적합한 옵션을 선택합니다.  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/access_policies_testing-policies.html)
**도움말**  
사용자 그룹에 연결된 정책을 테스트하려면 IAM 정책 시뮬레이터를 [IAM 콘솔](https://console.aws.amazon.com/iam/)에서 직접 실행한 후 탐색 창에서 **사용자 그룹**을 선택합니다. 정책을 테스트하려는 그룹 이름을 선택한 후 **권한** 탭을 선택합니다. **시뮬레이션**을 선택합니다.  
사용자에게 연결된 고객 관리형 정책을 테스트하려면 탐색 창에서 **사용자**를 선택합니다. 정책을 테스트하고자 하는 사용자의 이름을 선택합니다. 그런 다음 **권한** 탭을 선택하고 테스트할 정책을 확장합니다. 오른쪽 맨 끝에서 **Simulate Policy(정책 시뮬레이션)**를 선택합니다. **IAM 정책 시뮬레이터**가 새 창으로 열리면서 선택한 정책을 **정책** 창에 표시합니다.

1. (선택 사항) 계정이 [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/)의 조직 멤버인 경우 **AWS Organizations SCP** 옆에 있는 확인란을 선택하여 시뮬레이션 평가에 SCP를 포함할 수 있습니다. SCP는 조직 또는 조직 단위(OU)에 최대 권한을 지정하는 JSON 정책입니다. SCP는 멤버 계정의 엔터티에 대한 권한을 제한합니다. SCP가 서비스 또는 작업을 차단하는 경우 해당 계정에 있는 어떤 엔터티도 해당 서비스에 액세스하거나 해당 작업을 수행할 수 없습니다. 이는 관리자가 IAM 또는 리소스 정책을 통해 해당 서비스 또는 작업에 명시적으로 권한을 부여하는 경우에도 해당합니다.

   계정이 조직의 멤버가 아닌 경우 확인란이 나타나지 않습니다.

1. (선택 사항) IAM 엔터티(사용자 또는 역할. IAM 그룹은 제외)의 [권한 경계](access_policies_boundaries.md)로 설정된 정책을 테스트할 수 있습니다. 현재 엔터티에 대해 권한 경계 정책이 설정되어 있는 경우 **정책** 창에 표시됩니다. 한 엔터티에 대해 권한 경계 하나만 설정할 수 있습니다. 다른 권한 경계를 테스트하려면 사용자 지정 권한 경계를 만들면 됩니다. 이렇게 하려면 **새 정책 생성**을 선택합니다. 새 **정책** 창이 열립니다. 메뉴에서 **사용자 지정 IAM 권한 경계 정책**을 선택합니다. 새 정책의 이름을 입력하고 아래 공백에 정책을 입력하거나 복사합니다. **적용**을 선택하여 정책을 저장합니다. 그런 다음 **뒤로**를 선택하여 원래 **정책** 창으로 돌아갑니다. 그런 다음, 시뮬레이션에 사용하려는 권한 경계 옆의 확인란을 선택하세요.

1. <a name="polsimstep-polsubset"></a>(선택 사항) 사용자, 사용자 그룹 또는 역할에 연결된 정책의 하위 집합만 테스트할 수 있습니다. 이렇게 하려면 **정책** 창에서 제외하려는 각 정책 옆에 있는 확인란의 선택을 취소하세요.

1. <a name="polsimstep-service"></a>**Policy Simulator(정책 시뮬레이터)**에서 **Select service(서비스 선택)**를 선택한 후 테스트할 서비스를 선택합니다. 그런 다음 **Select actions(작업 선택)**을 선택하고 테스트할 작업을 한 개 이상 선택합니다. 메뉴에는 한 번에 한 서비스에 대해 가능한 선택만 표시되지만 선택한 모든 서비스와 작업이 **Action Settings and Results(작업 설정 및 결과)**에 나타납니다.

1. (선택 사항) [Step 2](#polsimstep-selectid) 및 [Step 5](#polsimstep-polsubset)에서 선택하는 정책 중 하나라도 [AWS*글로벌 조건 키*](reference_policies_condition-keys.md)를 지닌 조건을 포함하는 경우, 해당 키에 대한 값을 제공합니다. **글로벌 설정** 섹션을 확장하고 표시된 키 이름의 값을 입력하여 키에 대한 값을 제공할 수 있습니다.
**주의**  
조건 키의 값을 비워 놓으면 해당 키가 시뮬레이션 중에 무시됩니다. 이로 인해 오류가 발생하고 시뮬레이션이 실행되지 않는 경우가 있습니다. 또한 시뮬레이션은 실행되지만 결과를 신뢰할 수 없는 경우도 있습니다. 이 경우 조건 키에 대한 값이나 변수를 포함하는 실제 조건과 시뮬레이션이 일치하지 않습니다.

1. (선택 사항) 선택한 각 작업은 시뮬레이션을 실제로 실행할 때까지 **권한** 열에서 **시뮬레이트되지 않음**과 함께 **동작 설정 및 결과**에 나타납니다. 시뮬레이션을 실행하기 전에 리소스를 포함하는 각 작업을 구성할 수 있습니다. 특정 시나리오에 맞게 개별 작업을 구성하려면 화살표를 선택하여 작업 행을 확장합니다. 작업이 리소스 수준 권한을 지원할 경우 액세스를 테스트하려는 특정 리소스의 [Amazon 리소스 이름(ARN)](reference_identifiers.md#identifiers-arns)을 입력할 수 있습니다. 기본적으로 각 리소스는 와일드카드(\$1)로 설정됩니다. 또한 임의의 [조건 콘텍스트 키](reference_policies_actions-resources-contextkeys.html)에 대한 값을 지정할 수 있습니다. 앞에서도 설명했듯이 값이 비어 있는 키는 무시되며, 이로 인해 시뮬레이션이 실패하거나 신뢰할 수 없는 결과가 반환될 수 있습니다.

   1. 작업 이름 옆에 있는 화살표를 선택하여 각 행을 확장하고 해당 시나리오에 맞게 작업을 정확하게 시뮬레이션하는 데 필요한 추가 정보를 구성합니다. 작업에 리소스 수준 권한이 필요할 경우 액세스를 시뮬레이션하려는 특정 리소스의 [Amazon 리소스 이름(ARN)](reference_identifiers.md#identifiers-arns)을 입력할 수 있습니다. 기본적으로 각 리소스는 와일드카드(\$1)로 설정됩니다.

   1. 작업이 리소스 수준 권한을 지원하지만 그러한 권한이 필요하지 않을 경우 **리소스 추가**를 선택하여 시뮬레이션에 추가하려는 리소스 유형을 선택합니다.

   1. 선택한 정책이 해당 작업의 서비스에 대한 콘텍스트 키를 참조하는 `Condition` 요소를 포함할 경우 해당 키 이름이 작업 아래에 표시됩니다. 지정한 리소스에 대한 해당 작업의 시뮬레이션 중에 사용할 값을 지정할 수 있습니다.
<a name="resource-scenarios"></a>
**여러 리소스 유형 그룹이 필요한 작업**  
일부 작업은 서로 다른 환경에서 여러 리소스 유형이 필요합니다. 리소스 유형의 각 그룹은 시나리오와 관련이 있습니다. 이 중 하나가 시뮬레이션에 적용될 경우 리소스를 선택하면 정책 시뮬레이터가 해당 시나리오에 적합한 리소스 유형을 필요로 합니다. 다음 목록에는 지원되는 각 시나리오 옵션과 시뮬레이션을 실행하기 위해 정의해야 하는 리소스가 나와 있습니다.

   다음의 Amazon EC2 시나리오 각각에 대해 `instance`, `image`, `security-group` 리소스를 지정해야 합니다. 시나리오에 EBS 볼륨이 포함될 경우에는 해당 `volume`을 리소스로 지정해야 합니다. Amazon EC2 시나리오에 Virtual Private Cloud(VPC)가 포함될 경우에는 `network-interface` 리소스를 제공해야 합니다. IP 서브넷이 포함될 경우에는 `subnet` 리소스를 지정해야 합니다. Amazon EC2 시나리오 옵션에 대한 자세한 내용은 *Amazon EC2 사용 설명서*의 [지원되는 플랫폼](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html)을 참조하세요.
   + **EC2-VPC-InstanceStore**

     인스턴스, 이미지, 보안 그룹, 네트워크 인터페이스
   + **EC2-VPC-InstanceStore-Subnet**

     인스턴스, 이미지, 보안 그룹, 네트워크 인터페이스, 서브넷
   + **EC2-VPC-EBS**

     인스턴스, 이미지, 보안 그룹, 네트워크 인터페이스, 볼륨
   + **EC2-VPC-EBS-Subnet**

     인스턴스, 이미지, 보안 그룹, 네트워크 인터페이스, 서브넷, 볼륨

1. <a name="polsimstep-respol"></a>(선택 사항) 시뮬레이션에 리소스 기반 정책을 포함하려면 먼저 해당 리소스에 대해 시뮬레이션하려는 작업을 [Step 6](#polsimstep-service)에서 선택해야 합니다. 선택한 작업의 행을 확장하고 시뮬레이션하려는 정책을 포함하는 리소스의 ARN을 입력합니다. 그런 다음 **ARN** 텍스트 상자 옆의 **리소스 정책 포함(Include Resource Policy)**을 선택합니다. IAM 정책 시뮬레이터는 현재, Amazon S3(리소스 기반 정책만 해당. ACL은 현재 지원되지 않음), Amazon SQS, Amazon SNS, 잠겨 있지 않은 Amazon Glacier 볼트(잠겨 있는 볼트는 현재 지원되지 않음) 서비스의 리소스 기반 정책만 지원합니다.

1. 상단 오른쪽 모서리 부분에서 **Run Simulation(시뮬레이션 실행)**을 선택합니다.

   **동작 설정 및 결과** 행의 각 **권한** 열에 지정된 리소스에 대한 해당 작업의 시뮬레이션 결과를 표시합니다.

1. 정책에서 작업을 명시적으로 허용하거나 거부한 문을 보려면 **권한** 열의 ***N*개 일치하는 문** 링크를 선택하여 행을 확장합니다. **Show statement(문 표시)** 링크를 선택합니다. **정책** 창에 해당 정책이 표시되고 시뮬레이션 결과에 영향을 준 문이 강조 표시됩니다.
**참고**  
작업이 *암묵적으로* 거부됨(즉, 명시적으로 허용되지 않기 때문에 작업이 거부된 경우)인 경우 **나열(List)** 및 **문 표시(Show statement)** 옵션은 표시되지 않습니다.

### IAM 정책 시뮬레이터 콘솔 메시지 문제 해결
<a name="iam-policy-simulator-messages"></a>

다음 표에는 IAM 정책 시뮬레이터 사용 시 나타날 수 있는 정보 메시지와 경고 메시지가 나와 있습니다. 그 밖에 문제 해결에 필요한 단계도 나와 있습니다.


****  

| 메시지 | 문제 해결 단계 | 
| --- | --- | 
| This policy has been edited. Changes will not be saved to your account. |   **작업이 필요하지 않음**  이것은 정보 메시지입니다. IAM 정책 시뮬레이터에서 기존 정책을 편집하더라도 AWS 계정에서는 변경 사항이 적용되지 않습니다. 정책 시뮬레이터에서는 테스트 목적으로만 정책을 변경할 수 있습니다.  | 
| Cannot get the resource policy. 사유: 상세 오류 메시지 | 요청된 리소스 기반 정책에 정책 시뮬레이터가 액세스할 수 없습니다. 지정된 리소스 ARN이 정확하며, 시뮬레이션을 실행하는 사용자가 리소스의 정책을 읽을 수 있는 권한이 있는지 확인하세요. | 
| One or more policies require values in the simulation settings. The simulation might fail without these values. |  이 메시지는 테스트하려는 정책에 포함되어 있는 조건 키 또는 변수 값을 **Simulation Settings(시뮬레이션 설정)**에 입력하지 않은 경우 나타납니다. 이 메시지를 닫으려면 **Simulation Settings(시뮬레이션 설정)**를 선택한 다음 각 조건 키 또는 변수에 대한 값을 입력합니다.  | 
| You have changed policies. These results are no longer valid. |  이 메시지는 결과가 **Results** 창에 표시되는 중에 선택한 정책을 변경하였을 때 나타납니다. **Results** 창에 표시되는 결과는 동적으로 업데이트되지 않습니다. 이 메시지를 닫으려면 **시뮬레이션 실행**을 다시 선택하여 **정책** 창에서 변경한 내용을 기반으로 새로운 시뮬레이션 결과를 표시합니다.  | 
| The resource you typed for this simulation does not match this service. |  이 메시지는 현재 시뮬레이션에서 선택한 서비스와 일치하지 않는 Amazon 리소스 이름(ARN)을 **Simulation Settings(시뮬레이션 설정)** 창에 입력했을 때 나타납니다. 예를 들어, Amazon DynamoDB 리소스의 ARN을 지정하고 시뮬레이션할 서비스로 Amazon Redshift를 선택하면 이 메시지가 나타납니다. 이 메시지를 닫으려면 다음 중 한 가지를 실행합니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/access_policies_testing-policies.html)  | 
| 이 작업은 Amazon S3 ACL 또는 Amazon Glacier 볼트 잠금 정책 같은 리소스 기반 정책 외에 특수 액세스 제어 방식을 지원하는 서비스에 속합니다. The policy simulator does not support these mechanisms, so the results can differ from your production environment. |   **작업이 필요하지 않음**  이것은 정보 메시지입니다. 현재 버전에서 정책 시뮬레이터는 사용자 및 IAM 그룹에 연결된 정책을 평가하며, Amazon S3, Amazon SQS, Amazon SNS, Amazon Glacier에 대한 리소스 기반 정책을 평가할 수 있습니다. 정책 시뮬레이터가 다른 AWS 서비스에서 지원하는 액세스 제어 방식을 모두 지원하는 것은 아닙니다.  | 
| DynamoDB FGAC is currently not supported. |   **작업이 필요하지 않음**  이 정보 메시지는 *세분화된 액세스 제어*를 가리킵니다. 세분화된 액세스 제어는 IAM 정책 조건을 사용하여 DynamoDB 테이블 및 인덱스의 개별 데이터 항목과 속성에 액세스할 수 있는 사용자를 결정하는 기능입니다. 또한 이러한 테이블 및 인덱스에서 수행할 수 있는 작업을 나타내기도 합니다. 현재 버전의 IAM 정책 시뮬레이터는 이 유형의 정책 조건을 지원하지 않습니다. DynamoDB 세분화된 액세스 제어에 대한 자세한 정보는 [DynamoDB에 대한 세분화된 액세스 제어](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/FGAC_DDB.html)를 참조하세요.  | 
| You have policies that do not comply with the policy syntax. 정책 검증을 사용해 정책에 대한 권장 사항 업데이트를 검토하고 수락할 수 있습니다. |  이 메시지는 IAM 정책 문법을 위반하는 정책이 있는 경우 정책 목록 상단에 나타납니다. 이러한 정책을 시뮬레이션하려면 [IAM 정책 검증](access_policies_policy-validator.md)의 정책 검증 옵션을 검토하여 해당 정책을 식별하고 수정합니다.  | 
|  This policy must be updated to comply with the latest policy syntax rules. |  이 메시지는 IAM 정책 문법을 위반하는 정책이 있는 경우에 표시됩니다. 이러한 정책을 시뮬레이션하려면 [IAM 정책 검증](access_policies_policy-validator.md)의 정책 검증 옵션을 검토하여 해당 정책을 식별하고 수정합니다.  | 

## IAM 정책 시뮬레이터의 사용(AWS CLI 및 AWS API)
<a name="policies-simulator-using-api"></a>

정책 시뮬레이터 명령어는 다음의 2가지 작업을 수행하는 데 일반적으로 API 작업 호출이 필요합니다.

1. 정책을 평가하고 정책이 참조하는 콘텍스트 키 목록을 반환합니다. 어떤 콘텍스트 키가 참조되는지 알아야 다음 단계에서 콘텍스트 키에 값을 제공할 수 있습니다.

1. 시뮬레이션 중에 사용되는 작업, 리소스, 콘텍스트 키의 목록을 제공하여 정책을 시뮬레이션합니다.

보안 상의 이유로 API 작업은 2개의 그룹으로 나뉘어 있습니다.
+ API에 직접 문자열로 전달되는 정책만을 시뮬레이션하는 API 작업. 이 세트에는 [GetContextKeysForCustomPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForCustomPolicy.html) 및 [SimulateCustomPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulateCustomPolicy.html)가 포함됩니다.
+ 지정된 IAM 사용자, 사용자 그룹, 역할 또는 리소스에 연결된 정책을 시뮬레이션하는 API 작업. 이러한 API 작업은 다른 IAM 주체에 할당된 권한의 세부 정보를 알려주기 때문에 이 API 작업에 대한 액세스 제한을 고려해 보아야 합니다. 이 세트에는 [GetContextKeysForPrincipalPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForPrincipalPolicy.html) 및 [SimulatePrincipalPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulatePrincipalPolicy.html)가 포함됩니다. API 작업 액세스 제한에 대한 자세한 정보는 [예제 정책 AWS Identity and Access Management(IAM)](access_policies_examples.md#policy_library_IAM) 섹션을 참조하세요.

두 경우 모두 API 작업은 1개 이상의 정책들이 작업 및 리소스 목록에 미치는 영향을 시뮬레이션합니다. 각 작업은 각 리소스와 짝을 이루고, 시뮬레이션은 정책이 리소스에 대한 작업을 허용 또는 거부하는지 여부를 결정합니다. 또한, 정책이 참조하는 모든 콘텍스트 키에 대한 값을 제공할 수 있습니다. 정책이 참조하는 콘텍스트 키 목록은 [https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForCustomPolicy.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForCustomPolicy.html) 또는 [https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForPrincipalPolicy.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForPrincipalPolicy.html)를 호출하여 확인할 수 있습니다. 콘텍스트 키에 대한 값을 제공하지 않는다 해도 시뮬레이션은 여전히 실행되고 있지만, 정책 시뮬레이터가 평가 시에 컨텍스트 키를 포함할 수 없기 때문에 그 결과를 신뢰하지 못할 수 있습니다.

**조컨 키 목록을 확인하려면(AWS CLI, AWS API)**  
다음을 사용하여 정책 목록을 평가하고, 정책에 사용된 콘텍스트 키 목록을 반환합니다.
+ AWS CLI: [https://docs.aws.amazon.com/cli/latest/reference/iam/get-context-keys-for-custom-policy.html](https://docs.aws.amazon.com/cli/latest/reference/iam/get-context-keys-for-custom-policy.html) 및 [https://docs.aws.amazon.com/cli/latest/reference/iam/get-context-keys-for-principal-policy.html](https://docs.aws.amazon.com/cli/latest/reference/iam/get-context-keys-for-principal-policy.html)
+ AWS API: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForCustomPolicy.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForCustomPolicy.html) 및 [https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForPrincipalPolicy.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForPrincipalPolicy.html)

**IAM 정책을 시뮬레이션하려면(AWS CLI, AWS API)**  
다음을 통해 IAM 정책을 시뮬레이션하여 사용자의 유효 권한을 확인합니다.
+ AWS CLI: [https://docs.aws.amazon.com/cli/latest/reference/iam/simulate-custom-policy.html](https://docs.aws.amazon.com/cli/latest/reference/iam/simulate-custom-policy.html) 및 [https://docs.aws.amazon.com/cli/latest/reference/iam/simulate-principal-policy.html](https://docs.aws.amazon.com/cli/latest/reference/iam/simulate-principal-policy.html)
+ AWS API: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulateCustomPolicy.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulateCustomPolicy.html) 및 [https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulatePrincipalPolicy.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulatePrincipalPolicy.html)

# IAM 자격 증명 권한 추가 및 제거
<a name="access_policies_manage-attach-detach"></a>

정책을 사용하여 자격 증명(사용자, 사용자 그룹 또는 역할)에 대한 권한을 정의합니다. AWS Command Line Interface, AWS CLI(AWS Management Console) 또는 AWS API를 사용하여 자격 증명에 대한 IAM 정책을 첨부 및 분리하여 사용 권한을 추가 및 제거할 수 있습니다. 정책을 사용하여 동일한 방법을 사용하는 엔터티(사용자 또는 역할)에 대해서만 [권한 경계](access_policies_boundaries.md)를 설정할 수 있습니다. 권한 경계는 엔터티가 가질 수 있는 최대 권한을 제어하는 고급 AWS 기능입니다.

**Topics**
+ [

## 용어
](#attach-detach-etc-terminology)
+ [

## 자격 증명 작업 보기
](#attach-detach_prerequisites)
+ [

## IAM 자격 증명 권한 추가(콘솔)
](#add-policies-console)
+ [

## IAM 자격 증명 권한 제거(콘솔)
](#remove-policies-console)
+ [

## IAM 정책 추가(AWS CLI)
](#add-policy-cli)
+ [

## IAM 정책 제거(AWS CLI)
](#remove-policy-cli)
+ [

## IAM 정책 추가(AWS API)
](#add-policy-api)
+ [

## IAM 정책 제거(AWS API)
](#remove-policy-api)

## 용어
<a name="attach-detach-etc-terminology"></a>

권한 정책을 ID(IAM 사용자, IAM 그룹 및 IAM 역할)와 연결할 때 관리형 정책을 사용하는지 아니면 인라인 정책을 사용하는지에 따라 용어 및 절차가 달라집니다.
+ **연결** - 관리형 정책에 사용됩니다. 자격 증명(사용자, 사용자 그룹 또는 역할)에 관리형 정책을 연결합니다. 정책을 연결하면 정책의 해당 권한이 자격 증명에 적용됩니다.
+ **분리** - 관리형 정책에 사용됩니다. IAM 자격 증명(사용자, 사용자 그룹, 역할)에서 관리형 정책을 분리합니다. 정책을 분리하면 자격 증명에서 해당 권한이 제거됩니다.
+ **포함** - 인라인 정책에 사용됩니다. 자격 증명(사용자, 사용자 그룹 또는 역할)에 인라인 정책을 포함시킵니다. 정책을 포함하면 정책의 해당 권한이 자격 증명에 적용됩니다. 인라인 정책은 자격 증명에 저장되므로 결과는 비슷하지만 연결되지 않고 포함됩니다.
**참고**  
역할에 따라 달라지는 서비스에만 *[서비스 연결 역할](id_roles.md#iam-term-service-linked-role)*에 대한 인라인 정책을 포함할 수 있습니다. 서비스가 이 기능을 지원하는지 여부를 확인하려면 서비스에 대한 [AWS 설명서](https://docs.aws.amazon.com/)를 참조하세요.
+ **삭제** - 인라인 정책에 사용됩니다. IAM 자격 증명(사용자, 사용자 그룹, 역할)에서 인라인 정책을 삭제합니다. 정책을 삭제하면 자격 증명에서 해당 권한이 제거됩니다.
**참고**  
역할에 따른 서비스에서만 *[서비스 연결 역할](id_roles.md#iam-term-service-linked-role)*의 인라인 정책을 삭제할 수 있습니다. 서비스가 이 기능을 지원하는지 여부를 확인하려면 서비스에 대한 [AWS 설명서](https://docs.aws.amazon.com/)를 참조하세요.

콘솔, AWS CLI 또는 AWS API를 사용하여 다음과 같은 작업을 수행할 수 있습니다.

### 추가 정보
<a name="terminology-more-info-roles-policies"></a>
+ 관리형 정책과 인라인 정책의 차이점에 대한 자세한 정보는 [관리형 정책과 인라인 정책](access_policies_managed-vs-inline.md) 섹션을 참조하세요.
+ 권한 경계에 대한 자세한 정보는 [IAM 엔터티의 권한 범위](access_policies_boundaries.md) 섹션을 참조하세요.
+ IAM 정책에 대한 일반적인 내용은 [AWS Identity and Access Management의 정책 및 권한](access_policies.md) 섹션을 참조하세요.
+ IAM 검증 정책에 대한 자세한 내용은 [IAM 정책 검증](access_policies_policy-validator.md) 섹션을 참조하세요.
+ AWS 계정의 IAM 리소스 수와 크기는 제한되어 있습니다. 자세한 내용은 [IAM 및 AWS STS 할당량](reference_iam-quotas.md) 섹션을 참조하세요.

## 자격 증명 작업 보기
<a name="attach-detach_prerequisites"></a>

자격 증명(사용자, 사용자 그룹 또는 역할)에 대한 사용 권한을 변경하기 전에 최근 서비스 수준 활동을 검토해야 합니다. 이 기능은 사용 중인 보안 주체(사람 또는 애플리케이션)의 액세스 권한을 제거하지 않으려는 경우 중요합니다. 마지막으로 액세스한 정보 보기에 대한 자세한 내용은 [마지막으로 액세스한 정보를 사용하여 AWS에서 권한 재정의](access_policies_last-accessed.md) 섹션을 참조하세요.

## IAM 자격 증명 권한 추가(콘솔)
<a name="add-policies-console"></a>

AWS Management Console을 사용하여 자격 증명(사용자, 사용자 그룹 또는 역할)에 권한을 추가할 수 있습니다. 이렇게 하려면 권한을 제어하는 관리형 정책을 연결하거나 [권한 경계](access_policies_boundaries.md) 역할을 하는 정책을 지정하세요. 인라인 정책을 포함할 수도 있습니다.<a name="access_policies_manage-attach-detach-console"></a>

**자격 증명에 대한 권한 정책으로서 관리형 정책을 사용하려면(콘솔)**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 탐색 창에서 **정책**을 선택합니다.

1. 정책 목록에서 연결할 정책 이름 옆의 라디오 버튼을 선택합니다. 검색 상자를 사용하여 정책 목록을 필터링할 수 있습니다.

1. **작업**을 선택한 후 **연결**을 선택합니다.

1. 정책을 연결할 자격 증명을 하나 이상 선택합니다. 검색 상자를 사용하면 보안 주체 엔터티 목록을 필터링할 수 있습니다. 자격 증명을 선택한 후 **정책 연결**을 선택합니다.<a name="set-managed-policy-boundary-console"></a>

**보안 경계(콘솔)를 설정하기 위해서 관리형 정책을 사용하려면**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 탐색 창에서 **정책**을 선택합니다.

1. 정책 목록에서 설정할 정책 이름을 선택합니다. 검색 상자를 사용하여 정책 목록을 필터링할 수 있습니다.

1. 정책 세부 정보 페이지에서 **연결된 엔터티** 탭을 선택하고 필요하다면 **권한 경계로 연결** 섹션을 열고 **이 정책을 권한 경계로 설정**을 선택합니다.

1. 권한 경계에 대한 정책이 사용될 하나 이상의 사용자 또는 역할을 선택하세요. 검색 상자를 사용하면 보안 주체 엔터티 목록을 필터링할 수 있습니다. 보안 주체를 선택한 후 **권한 경계 설정**을 선택합니다.<a name="embed-inline-policy-console"></a>

**사용자 또는 역할의 인라인 정책을 포함하려면(콘솔)**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 탐색 창에서 **사용자** 또는 **역할**을 선택합니다.

1. 목록에서 정책을 삽입할 그룹, 사용자 또는 역할 이름을 선택합니다.

1. **권한** 탭을 선택합니다.

1. **권한 추가**를 선택하고 **인라인 정책 생성**을 선택합니다.

    
**참고**  
IAM의 *[서비스 연결 역할](id_roles.md#iam-term-service-linked-role)*에는 인라인 정책을 포함할 수 없습니다. 링크된 서비스가 역할 권한을 수정할 수 있는지 여부를 결정하기 때문에 서비스 콘솔이나 API 또는 AWS CLI에서 정책을 추가할 수 있습니다. 서비스에 대한 서비스 연결 역할 설명서를 보려면 [AWS IAM으로 작업하는 서비스](reference_aws-services-that-work-with-iam.md)을 참조하고 사용하는 서비스의 **서비스 연결 역할(Service-Linked Role)** 열에서 **예(Yes)**를 선택합니다.

1. 다음 방법 중에서 선택하여 정책을 생성하는 데 필요한 단계를 볼 수 있습니다.
   + [기존 관리형 정책 가져오기](access_policies_create-console.md#access_policies_create-copy) - 계정으로 관리형 정책을 가져온 다음 정책을 편집하여 특정 요구 사항에 맞게 사용자 지정할 수 있습니다. 관리형 정책은 사용자가 이전에 생성한 고객 관리형 정책이거나 AWS 관리형 정책일 수 있습니다.
   + [시각적 편집기를 사용하여 정책 생성](access_policies_create-console.md#access_policies_create-visual-editor) - 시각적 편집기에서 정책을 새로 생성할 수 있습니다. 시각적 편집기를 사용할 경우 JSON 구문을 이해할 필요가 없습니다.
   + [JSON 편집기를 사용하여 정책 생성](access_policies_create-console.md#access_policies_create-json-editor) - **JSON** 편집기 옵션에서 JSON 구문을 사용하여 정책을 생성할 수 있습니다. 새 JSON 정책 문서를 입력하거나 [예시 정책](access_policies_examples.md)을 붙여 넣을 수 있습니다.

1. 인라인 정책을 생성하고 나면 이 정책이 사용자나 역할에 자동으로 포함됩니다.

**사용자 그룹의 인라인 정책을 포함하려면(콘솔)**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 탐색 창에서 **사용자 그룹(User groups)**을 선택합니다.

1. 목록에서 정책을 삽입할 사용자 그룹 이름을 선택합니다.

1. **권한(Permissions)** 탭을 선택하고 **권한 추가(Add permissions)**, **인라인 정책 생성(Create inline policy)**을 차례로 선택합니다.

1. 다음 중 하나를 수행하세요.
   + **시각적** 편집기 옵션에서 정책을 생성하도록 선택합니다. 자세한 내용은 [시각적 편집기를 사용하여 정책 생성](access_policies_create-console.md#access_policies_create-visual-editor) 섹션을 참조하세요.
   + **JSON** 옵션에서 정책을 생성하도록 선택합니다. 자세한 내용은 [JSON 편집기를 사용하여 정책 생성](access_policies_create-console.md#access_policies_create-json-editor) 섹션을 참조하세요.

1. 정책이 마음에 들면 **정책 생성**를 선택합니다.<a name="replace-managed-policy-boundary-console"></a>

**하나 이상의 엔터티에 대한 권한 경계 설정을 변경하려면(콘솔)**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 탐색 창에서 **정책**을 선택합니다.

1. 정책 목록에서 설정할 정책 이름을 선택합니다. 검색 상자를 사용하여 정책 목록을 필터링할 수 있습니다.

1. 정책 세부 정보 페이지에서 **연결된 엔터티** 탭을 선택하고 필요하다면 **권한 경계로 연결** 섹션을 엽니다. 변경하려는 경계의 사용자 또는 역할 옆에 있는 확인란을 선택한 후 **변경**을 선택하세요.

1. 새로운 정책을 선택하여 권한 경계를 사용하세요. 검색 상자를 사용하여 정책 목록을 필터링할 수 있습니다. 정책을 선택한 후 **권한 경계 설정**을 선택합니다.

## IAM 자격 증명 권한 제거(콘솔)
<a name="remove-policies-console"></a>

AWS Management Console을 사용하여 자격 증명(사용자, 사용자 그룹 또는 역할)에서 권한을 제거할 수 있습니다. 이렇게 하려면 권한을 제어하는 관리형 정책을 분리하거나 [권한 경계](access_policies_boundaries.md) 역할을 하는 정책을 제거하세요. 인라인 정책을 삭제할 수도 있습니다.<a name="detach-managed-policy-console"></a>

**권한 정책(콘솔)으로서 사용된 관리형 정책을 분리하려면**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 탐색 창에서 **정책**을 선택합니다.

1. 정책 목록에서 분리할 정책 이름 옆의 라디오 버튼을 선택합니다. 검색 상자를 사용하여 정책 목록을 필터링할 수 있습니다.

1. **작업(Actions)**을 선택한 후 **분리(Detach)**를 선택합니다.

1. 정책을 분리할 자격 증명을 선택합니다. 검색 상자를 사용하여 자격 증명 목록을 필터링할 수 있습니다. 자격 증명을 선택한 후 **Detach policy(정책 분리)**를 선택합니다.<a name="remove-managed-policy-boundary-console"></a>

**권한 경계(콘솔)를 제거하려면**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 탐색 창에서 **정책**을 선택합니다.

1. 정책 목록에서 설정할 정책 이름을 선택합니다. 검색 상자를 사용하여 정책 목록을 필터링할 수 있습니다.

1. 정책 세부 정보 페이지에서 **연결된 엔터티** 탭을 선택하고 필요하다면 **권한 경계로 연결** 섹션을 열고 권한 경계에서 제거할 엔터티를 선택합니다. 그런 다음 **경계 제거**를 선택합니다.

1. **경계 제거**를 선택하여 경계를 제거합니다.<a name="delete-inline-policy-console"></a>

**인라인 정책을 삭제하려면(콘솔)**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 탐색 창에서 **사용자 그룹**, **사용자** 또는 **역할**을 선택합니다.

1. 목록에서 제거할 정책이 있는 사용자 그룹, 사용자 또는 역할 이름을 선택합니다.

1. **권한** 탭을 선택합니다.

1. 정책 옆의 확인란을 선택하고 **제거**를 선택하세요.

1. 확인 상자가 나타나면 **제거**을 선택합니다.

## IAM 정책 추가(AWS CLI)
<a name="add-policy-cli"></a>

AWS CLI을 사용하여 자격 증명(사용자, 사용자 그룹 또는 역할)에 권한을 추가할 수 있습니다. 이렇게 하려면 권한을 제어하는 관리형 정책을 연결하거나 [권한 경계](access_policies_boundaries.md) 역할을 하는 정책을 지정하세요. 인라인 정책을 포함할 수도 있습니다.

**엔터티에 대한 권한 정책으로서 관리형 정책을 사용하려면(AWS CLI)**

1. (선택 사항) 관리형 정책에 대한 정보를 보려면 다음 명령을 실행합니다.
   + 관리형 정책의 목록 보기: [aws iam list-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-policies.html)
   + 관리형 정책에 대한 세부 정보 가져오기: [get-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/get-policy.html)

1. 관리형 정책을 자격 증명(사용자, 사용자 그룹 또는 역할)에 연결하려면 다음 명령 중 하나를 사용합니다.
   + [aws iam attach-user-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-user-policy.html)
   + [aws iam attach-group-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-group-policy.html)
   + [aws iam attach-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-role-policy.html)

**보안 경계(AWS CLI)를 설정하기 위해서 관리형 정책을 사용하려면**

1. (선택 사항) 관리형 정책에 대한 정보를 보려면 다음 명령을 실행합니다.
   + 관리형 정책의 목록 보기: [aws iam list-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-policies.html)
   + 관리형 정책에 대한 세부 정보 가져오기: [aws iam get-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/get-policy.html)

1. 관리형 정책을 사용하여 엔터티(사용자 또는 역할)에 대한 권한 경계를 설정하려면 다음 명령 중 하나를 사용합니다.
   + [aws iam put-user-permissions-boundary](https://docs.aws.amazon.com/cli/latest/reference/iam/put-user-permissions-boundary.html)
   + [aws iam put-role-permissions-boundary](https://docs.aws.amazon.com/cli/latest/reference/iam/put-role-permissions-boundary.html)

**인라인 정책을 포함시키려면(AWS CLI)**  
인라인 정책을 자격 증명(사용자, 사용자 그룹 또는 *[서비스 연결 역할](id_roles.md#iam-term-service-linked-role)*이 아닌 역할)에 포함시키려면 다음 명령 중 하나를 사용합니다.
+ [aws iam put-user-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/put-user-policy.html)
+ [aws iam put-group-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/put-group-policy.html)
+ [aws iam put-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/put-role-policy.html)

## IAM 정책 제거(AWS CLI)
<a name="remove-policy-cli"></a>

AWS CLI를 사용하여 권한을 제어하는 관리형 정책을 분리하거나 [권한 경계](access_policies_boundaries.md) 역할을 하는 정책을 제거할 수 있습니다. 인라인 정책을 삭제할 수도 있습니다.

**권한 정책(AWS CLI)으로서 사용된 관리형 정책을 분리하려면**

1. (선택 사항)정책에 대한 정보를 보려면 다음 명령을 실행합니다.
   + 관리형 정책의 목록 보기: [aws iam list-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-policies.html)
   + 관리형 정책에 대한 세부 정보 가져오기: [aws iam get-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/get-policy.html) 

1. (선택 사항) 정책과 자격 증명 간의 관계에 대해 확인하려면 다음 명령을 실행합니다.
   + 관리형 정책이 연결된 ID(사용자, IAM 그룹 및 IAM 역할)를 나열하려면 다음과 같이 합니다.
     + [aws iam list-entities-for-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/list-entities-for-policy.html)
   + 자격 증명(사용자, 사용자 그룹 또는 역할)에 연결된 관리형 정책의 목록을 보려면 다음 명령 중 하나를 사용합니다.
     + [aws iam list-attached-user-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-attached-user-policies.html)
     + [aws iam list-attached-group-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-attached-group-policies.html)
     + [aws iam list-attached-role-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-attached-role-policies.html)

1. 관리형 정책을 자격 증명(사용자, 사용자 그룹 또는 역할)에서 분리하려면 다음 명령 중 하나를 사용합니다.
   + [aws iam detach-user-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/detach-user-policy.html)
   + [aws iam detach-group-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/detach-group-policy.html)
   + [aws iam detach-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/detach-role-policy.html)

**권한 경계(AWS CLI)를 제거하려면**

1. (선택 사항) 현재 어떤 관리형 정책을 사용하여 사용자 또는 역할에 대한 권한 경계를 설정하는지 보려면 다음 명령을 실행하세요.
   + [aws iam get-user](https://docs.aws.amazon.com/cli/latest/reference/iam/get-user.html)
   +  [aws iam get-role](https://docs.aws.amazon.com/cli/latest/reference/iam/get-role.html) 

1. (선택 사항) 현재 어떤 관리형 정책의 사용자 또는 역할이 권한 경계로 사용되는지 보려면 다음 명령을 실행하세요.
   + [aws iam list-entities-for-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/list-entities-for-policy.html)

1. (선택 사항) 관리형 정책에 대한 정보를 보려면 다음 명령을 실행합니다.
   + 관리형 정책의 목록 보기: [aws iam list-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-policies.html)
   + 관리형 정책에 대한 세부 정보 가져오기: [aws iam get-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/get-policy.html) 

1. 사용자 또는 역할에서 권한 경계를 제거하려면 다음 명령 중 하나를 사용합니다.
   + [aws iam delete-user-permissions-boundary](https://docs.aws.amazon.com/cli/latest/reference/iam/detach-user-policy.html)
   + [aws iam delete-role-permissions-boundary](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role-permissions-boundary.html)

**인라인 정책을 삭제하려면(AWS CLI)**

1. (선택 사항) 자격 증명(사용자, 사용자 그룹 또는 역할)에 연결된 모든 인라인 정책의 목록을 보려면 다음 명령 중 하나를 사용합니다.
   + [aws iam list-user-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-user-policies.html)
   + [aws iam list-group-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-group-policies.html)
   + [aws iam list-role-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-role-policies.html)

1. (선택 사항) 자격 증명(사용자, 사용자 그룹 또는 역할)에 포함된 인라인 정책 문서를 가져오려면 다음 명령 중 하나를 사용합니다.
   + [aws iam get-user-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/get-user-policy.html)
   + [aws iam get-group-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/get-group-policy.html)
   + [aws iam get-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/get-role-policy.html)

1. 자격 증명(사용자, 사용자 그룹 또는 *[서비스 연결 역할](id_roles.md#iam-term-service-linked-role)*이 아닌 역할)에서 인라인 정책을 삭제하려면 다음 명령 중 하나를 사용합니다.
   + [aws iam delete-user-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-user-policy.html)
   + [aws iam delete-group-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-group-policy.html)
   + [aws iam delete-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role-policy.html)

## IAM 정책 추가(AWS API)
<a name="add-policy-api"></a>

AWS API를 사용하여 권한을 제어하는 관리형 정책을 연결하거나 [권한 경계](access_policies_boundaries.md) 역할을 하는 정책을 지정할 수 있습니다. 인라인 정책을 포함할 수도 있습니다.

**엔터티에 대한 권한 정책으로서 관리형 정책을 사용하려면(AWS API)**

1. (선택 사항)정책에 대한 정보를 보려면 다음 작업을 호출합니다.
   + 관리형 정책의 목록 보기: [ListPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPolicies.html) 
   + 관리형 정책에 대한 세부 정보 가져오기: [GetPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicy.html)

1. 관리형 정책을 자격 증명(사용자, 사용자 그룹 또는 역할)에 연결하려면 다음 작업 중 하나를 호출합니다.
   + [AttachUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachUserPolicy.html)
   + [AttachGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachGroupPolicy.html)
   + [AttachRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachRolePolicy.html)

**보안 경계(AWS API)를 설정하기 위해서 관리형 정책을 사용하려면**

1. (선택 사항) 관리형 정책에 대한 정보를 보려면 다음 작업을 호출합니다.
   + 관리형 정책의 목록 보기: [ListPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPolicies.html)
   + 관리형 정책에 대한 세부 정보 가져오기: [GetPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicy.html)

1. 관리형 정책을 사용하여 엔터티(사용자 또는 역할)에 대한 권한 경계를 설정하려면 다음 작업 중 하나를 호출합니다.
   + [PutUserPermissionsBoundary](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutUserPermissionsBoundary.html)
   + [PutRolePermissionsBoundary](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutRolePermissionsBoundary.html)

**인라인 정책을 포함시키려면(AWS API)**  
인라인 정책을 자격 증명(사용자, 사용자 그룹 또는 *[서비스 연결 역할](id_roles.md#iam-term-service-linked-role)*이 아닌 역할)에 포함시키려면 다음 작업 중 하나를 호출합니다.
+ [PutUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutUserPolicy.html)
+ [PutGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutGroupPolicy.html)
+ [PutRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutRolePolicy.html)

## IAM 정책 제거(AWS API)
<a name="remove-policy-api"></a>

AWS API를 사용하여 권한을 제어하는 관리형 정책을 분리하거나 [권한 경계](access_policies_boundaries.md) 역할을 하는 정책을 제거할 수 있습니다. 인라인 정책을 삭제할 수도 있습니다.

**권한 정책(AWS API)으로서 사용된 관리형 정책을 분리하려면**

1. (선택 사항)정책에 대한 정보를 보려면 다음 작업을 호출합니다.
   + 관리형 정책의 목록 보기: [ListPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPolicies.html)
   + 관리형 정책에 대한 세부 정보 가져오기: [GetPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicy.html)

1. (선택 사항) 정책과 자격 증명 간의 관계에 대해 확인하려면 다음 작업을 호출합니다.
   + 관리형 정책이 연결된 ID(사용자, IAM 그룹 및 IAM 역할)를 나열하려면 다음과 같이 합니다.
     + [ListEntitiesForPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListEntitiesForPolicy.html)
   + 자격 증명(사용자, 사용자 그룹 또는 역할)에 연결된 관리형 정책의 목록을 보려면 다음 작업 중 하나를 호출합니다.
     + [ListAttachedUserPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedUserPolicies.html)
     + [ListAttachedGroupPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedGroupPolicies.html)
     + [ListAttachedRolePolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedRolePolicies.html)

1. 관리형 정책을 자격 증명(사용자, 사용자 그룹 또는 역할)에서 분리하려면 다음 작업 중 하나를 호출합니다.
   + [DetachUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachUserPolicy.html)
   + [DetachGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachGroupPolicy.html)
   + [DetachRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachRolePolicy.html)

**권한 경계(AWS API)를 제거하려면**

1. (선택 사항) 현재 어떤 관리형 정책을 사용하여 사용자 또는 역할에 대한 권한 경계를 설정하는지 보려면 다음 작업을 호출하세요.
   + [GetUser](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUser.html)
   + [GetRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRole.html)

1. (선택 사항) 현재 어떤 관리형 정책의 사용자 또는 역할이 권한 경계로 사용되는지 보려면 다음 작업을 호출하세요.
   + [ListEntitiesForPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListEntitiesForPolicy.html)

1. (선택 사항) 관리형 정책에 대한 정보를 보려면 다음 작업을 호출합니다.
   + 관리형 정책의 목록 보기: [ListPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPolicies.html)
   + 관리형 정책에 대한 세부 정보 가져오기: [GetPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicy.html)

1. 사용자 또는 역할에서 권한 경계를 제거하려면 다음 작업 중 하나를 호출합니다.
   + [DeleteUserPermissionsBoundary](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteUserPermissionsBoundary.html)
   + [DeleteRolePermissionsBoundary](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteRolePermissionsBoundary.html)

**인라인 정책을 삭제하려면(AWS API)**

1. (선택 사항) 자격 증명(사용자, 사용자 그룹 또는 역할)에 연결된 모든 인라인 정책의 목록을 보려면 다음 작업 중 하나를 호출합니다.
   + [ListUserPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUserPolicies.html)
   + [ListGroupPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListGroupPolicies.html)
   + [ListRolePolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListRolePolicies.html)

1. (선택 사항) 자격 증명(사용자, 사용자 그룹 또는 역할)에 포함된 인라인 정책 문서를 가져오려면 다음 작업 중 하나를 호출합니다.
   + [GetUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUserPolicy.html)
   + [GetGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetGroupPolicy.html)
   + [GetRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRolePolicy.html)

1. 인라인 정책을 자격 증명(사용자, 그룹 또는 *[서비스 연결 역할](id_roles.md#iam-term-service-linked-role)*이 아닌 역할)에서 삭제하려면 다음 작업 중 하나를 호출합니다.
   + [DeleteUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteUserPolicy.html)
   + [DeleteGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteGroupPolicy.html)
   + [DeleteRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteRolePolicy.html)

# IAM 정책 버전 관리
<a name="access_policies_managed-versioning"></a>

IAM 고객 관리형 정책을 변경할 때, 그리고 AWS에서 AWS 관리형 정책을 변경할 때 변경된 정책은 기존 정책을 덮어쓰지 않습니다. 대신 IAM에서 관리형 정책의 새 *버전*을 생성합니다. IAM은 고객 관리형 정책을 최대 5개 버전까지 저장합니다. IAM은 인라인 정책에 대한 버전 관리를 지원하지 않습니다.

다음은 고객 관리형 정책의 버전 관리를 나타낸 다이어그램입니다. 이 예에서는 버전 1\$14가 저장됩니다. IAM에 최대 5개의 관리형 정책 버전을 저장할 수 있습니다. 정책을 편집하여 여섯 번째 저장된 버전이 생성되는 경우 더 이상 저장하지 않을 이전 버전을 선택할 수 있습니다. 언제든지 다른 4개의 저장된 버전으로 되돌릴 수 있습니다.

![\[관리형 정책에 대한 변경 사항이 정책의 새 버전이 됨\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/policies-managed-policies-versions-overview.diagram.png)


정책 버전은 `Version` 정책 요소와 다릅니다. `Version` 정책 요소는 정책 내에서 사용되며 정책 언어의 버전을 정의합니다. `Version` 정책 요소에 대한 자세한 정보는 [IAM JSON 정책 요소: Version](reference_policies_elements_version.md)을 참조하세요.

버전을 사용하여 관리형 정책에 대한 변경 사항을 추적할 수 있습니다. 예를 들어 관리형 정책을 변경한 다음 해당 변경 사항으로 인해 의도하지 않은 결과가 발생한 사실을 발견할 수 있습니다. 이 경우 이전 버전을 *기본* 버전으로 설정하여 관리형 정책의 이전 버전으로 롤백할 수 있습니다.

다음 주제에서는 관리형 정책에서 버전 관리를 사용하는 방법을 설명합니다.

**Topics**
+ [

## 버전 제한
](#version-limits)
+ [

## 버전을 사용하여 변경 사항 롤백
](#versions-roll-back)
+ [

## 정책의 기본 버전을 설정할 수 있는 권한
](#policy-version-permissions)
+ [

## 고객 관리형 정책의 기본 버전 설정
](#default-version)

## 버전 제한
<a name="version-limits"></a>

관리형 정책에는 최대 5개의 버전이 있을 수 있습니다. 5개 버전을 만든 후에도 관리형 정책을 변경해야 할 경우 AWS Command Line Interface 또는 AWS API에서 먼저 기존 버전을 하나 이상 삭제해야 합니다. AWS Management Console을 사용할 경우에는 정책을 편집하기 전에 버전을 삭제할 필요가 없습니다. 6번째 버전을 저장할 경우 정책의 기본 버전이 아닌 버전을 한 개 이상 삭제하라는 메시지가 표시된 대화 상자가 나타납니다. 결정을 위해 각 버전의 JSON 정책 문서를 볼 수 있습니다. 이 대화 상자에 대한 자세한 내용은 [IAM 정책 편집](access_policies_manage-edit.md) 섹션을 참조하세요.

기본 버전을 제외하고 원하는 모든 관리형 정책 버전을 삭제할 수 있습니다. 버전을 삭제할 때 나머지 버전의 버전 식별자는 변경되지 않습니다. 따라서 버전 식별자가 순차적이지 않을 수 있습니다. 예를 들어 관리형 정책의 v2 및 v4 버전을 삭제하고 새 버전을 2개 추가하면 나머지 버전 식별자가 v1, v3, v5, v6 및 v7이 될 수 있습니다.

## 버전을 사용하여 변경 사항 롤백
<a name="versions-roll-back"></a>

변경 사항을 롤백하도록 고객 관리형 정책의 기본 버전을 설정할 수 있습니다. 예를 들어 다음 시나리오를 고려해 보세요:

사용자가 AWS Management Console을 사용하여 특정 Amazon S3 버킷을 관리할 수 있도록 허용하는 고객 관리형 정책을 생성합니다. 생성 시 고객 관리형 정책의 버전은 v1로 식별되는 한 버전뿐이어서 이 버전이 기본값으로 자동 설정됩니다. 정책이 의도대로 적용됩니다.

나중에 두 번째 Amazon S3 버킷을 관리하기 위한 권한을 추가하기 위해 정책을 업데이트합니다. IAM에서 변경 사항을 포함하고 v2로 식별되는 정책의 새 버전을 생성합니다. v2 버전을 기본값으로 설정하고 얼마 지나지 않아 사용자들이 Amazon S3 콘솔을 사용할 수 있는 권한이 없다고 보고합니다. 이 경우 의도대로 적용되는 정책의 v1 버전으로 롤백할 수 있습니다. 이렇게 하기 위해 v1 버전을 기본 버전으로 설정합니다. 이제 사용자들이 Amazon S3 콘솔을 사용하여 원래 버킷을 관리할 수 있습니다.

나중에 정책의 v2 버전에 있는 오류를 해결한 후 두 번째 Amazon S3 버킷을 관리하기 위한 권한을 추가하기 위해 다시 정책을 업데이트합니다. IAM에서 v3로 식별되는 정책의 새 버전을 하나 더 생성합니다. v3 버전을 기본값으로 설정합니다. 이 버전이 의도대로 적용됩니다. 이 시점에서 정책의 v2 버전을 삭제합니다.

## 정책의 기본 버전을 설정할 수 있는 권한
<a name="policy-version-permissions"></a>

정책의 기본 버전을 설정하는 데 필요한 권한은 작업에 대한 AWS API 작업에 해당합니다. `CreatePolicyVersion` 또는 `SetDefaultPolicyVersion` API 작업을 사용하여 정책의 기본 버전을 설정할 수 있습니다. 어떤 사람이 기존 정책의 기본 정책 버전을 설정할 수 있게 허용하려면 `iam:CreatePolicyVersion` 작업 또는 `iam:SetDefaultPolicyVersion` 작업에 대한 액세스 권한을 허용하면 됩니다. 그러면 `iam:CreatePolicyVersion` 작업을 이용해 새 버전의 정책을 생성하고 이 버전을 기본으로 설정할 수 있습니다. 또한 `iam:SetDefaultPolicyVersion` 작업을 통해서는 기존 버전의 정책을 기본으로 설정할 수 있습니다.

**중요**  
사용자가 정책의 기본 버전을 변경하지 못하도록 `iam:CreatePolicyVersion` 및 `iam:SetDefaultPolicyVersion`을 모두 거부해야 합니다.

다음 정책을 사용하면 사용자가 기존 고객 관리형 정책을 변경하기 위해 액세스하는 것을 거부할 수 있습니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "iam:CreatePolicyVersion",
                "iam:SetDefaultPolicyVersion"
            ],
            "Resource": "arn:aws:iam::*:policy/POLICY-NAME"
        }
    ]
}
```

------

## 고객 관리형 정책의 기본 버전 설정
<a name="default-version"></a>

관리형 정책의 버전 중 하나가 *기본* 버전으로 설정됩니다. 정책의 기본 버전은 유효한 버전, 즉 관리형 정책이 연결된 모든 위탁자 엔터티(IAM 사용자, IAM 그룹 및 IAM 역할)에 적용되는 버전입니다.

고객 관리형 정책을 만들 때 정책은 v1로 식별되는 단일 버전으로 시작합니다. 버전이 하나뿐인 관리형 정책의 경우 해당 버전이 기본값으로 자동 설정됩니다. 버전이 둘 이상인 고객 관리형 정책의 경우에는 기본값으로 설정할 버전을 선택해야 합니다. AWS 관리형 정책의 경우 기본 버전은 AWS에서 설정됩니다. 다음 다이어그램에서는 이 개념을 보여 줍니다.

![\[버전이 1개인(기본 버전) 관리형 정책\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/policies-managed-policies-versions-default-one.diagram.png)




![\[버전이 3개인(v2 버전이 기본 버전임) 고객 관리형 정책\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/policies-managed-policies-versions-default-multiple.diagram.png)


고객 관리형 정책의 기본 버전이 정책이 연결되는 모든 IAM 개체(사용자, 사용자 그룹 및 역할)에 적용되도록 해당 버전을 설정할 수 있습니다. 단, AWS 관리형 정책 또는 인라인 정책에는 기본 버전을 설정할 수 없습니다.

**고객 관리형 정책의 기본 버전을 설정하려면(콘솔)**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 탐색 창에서 **정책**을 선택합니다.

1. 정책 목록에서 기본 버전을 설정할 정책 이름을 선택합니다. 검색 상자를 사용하여 정책 목록을 필터링할 수 있습니다.

1. **Policy versions(정책 버전)** 탭을 선택합니다. 기본 버전으로 설정할 버전 옆의 확인란을 선택한 후 **기본값으로 설정**을 선택하세요.

AWS Command Line Interface 또는 AWS API에서 고객 관리형 정책을 기본 버전으로 설정하는 방법을 알아보려면 [IAM 정책 편집(AWS CLI)](access_policies_manage-edit-cli.md) 섹션을 참조하세요.

# IAM 정책 편집
<a name="access_policies_manage-edit"></a>

[정책](access_policies.md)은 자격 증명 또는 리소스에 연결될 때 해당 권한을 정의하는 개체입니다. 정책은 AWS에 JSON 문서로 저장되고 보안 주체에 IAM의 *자격 증명 기반 정책*으로 연결됩니다. 자격 증명 기반 정책을 IAM 사용자 그룹, 사용자 또는 역할과 같은 보안 주체(또는 자격 증명)에 연결할 수 있습니다. 자격 증명 기반 정책에는 AWS 관리형 정책, 고객 관리형 정책 및 [인라인 정책](access_policies_managed-vs-inline.md)이 포함됩니다. IAM에서 고객 관리형 정책 및 인라인 정책을 편집할 수 있습니다. AWS 관리형 정책은 편집할 수 없습니다. AWS 계정의 IAM 리소스 수와 크기는 제한되어 있습니다. 자세한 내용은 [IAM 및 AWS STS 할당량](reference_iam-quotas.md) 단원을 참조하십시오.

인라인 정책이나 AWS 관리형 정책 대신 고객 관리형 정책을 사용하는 것이 좋습니다. AWS 관리형 정책은 일반적으로 광범위한 관리 또는 읽기 전용 권한을 제공합니다. 인라인 정책은 다른 ID에서 재사용하거나 해당 ID 외부에서 관리할 수 없습니다. 보안을 극대화하려면 [최소 권한을 부여하세요](best-practices.md#grant-least-privilege). 즉, 특정 작업을 수행하는 데 필요한 권한만 부여해야 합니다.

IAM 정책을 생성하거나 편집할 때 AWS는 정책 검증을 자동으로 수행하여 최소 권한을 염두에 두고 효과적인 정책을 생성할 수 있습니다. AWS Management Console에서 IAM은 JSON 구문 오류를 식별하는 반면, IAM Access Analyzer는 정책을 더욱 구체화하는 데 도움이 되는 권장 사항과 함께 추가 정책 검사를 제공합니다. 정책 검증에 대한 자세한 내용은 [IAM 정책 검증](access_policies_policy-validator.md) 섹션을 참조하세요. IAM Access Analyzer 정책 검사기 및 실행 가능한 권장 사항에 대한 자세한 내용은 [IAM Access Analyzer 정책 검증](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html)을 참조하세요.

AWS Management Console, AWS CLI 또는 AWS API를 사용하여 IAM에서 고객 관리형 정책 및 인라인 정책을 편집할 수 있습니다. CloudFormation 템플릿을 사용하여 정책을 추가하거나 업데이트하는 방법에 대한 자세한 내용은 *CloudFormation 사용 설명서*의 [AWS Identity and Access Management resource type reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_IAM.html)(IAM 리소스 유형 참조)를 참조하세요.

**Topics**
+ [

# IAM 정책 편집(콘솔)
](access_policies_manage-edit-console.md)
+ [

# IAM 정책 편집(AWS CLI)
](access_policies_manage-edit-cli.md)
+ [

# IAM 정책 생성(AWSAPI)
](access_policies_manage-edit-api.md)

# IAM 정책 편집(콘솔)
<a name="access_policies_manage-edit-console"></a>

[정책](access_policies.md)은 자격 증명 또는 리소스에 연결될 때 해당 권한을 정의하는 개체입니다. AWS Management Console을 사용하여 IAM에서 **고객 관리형 정책 및 **인라인 정책을 편집할 수 있습니다. AWS 관리형 정책은 편집할 수 없습니다. AWS 계정의 IAM 리소스 수와 크기는 제한되어 있습니다. 자세한 내용은 [IAM 및 AWS STS 할당량](reference_iam-quotas.md) 섹션을 참조하세요.

정책 구조 및 구문에 대한 자세한 정보는 [AWS Identity and Access Management의 정책 및 권한](access_policies.md) 단원과 [IAM JSON 정책 요소 참조](reference_policies_elements.md) 섹션을 참조하세요.

## 사전 조건
<a name="edit-customer-managed-policy-console-prerequisites"></a>

정책에 대한 권한을 변경하기 전에 최근 서비스 수준 활동을 검토해야 합니다. 이 기능은 사용 중인 보안 주체(사람 또는 애플리케이션)의 액세스 권한을 제거하지 않으려는 경우 중요합니다. 마지막으로 액세스한 정보 보기에 대한 자세한 내용은 [마지막으로 액세스한 정보를 사용하여 AWS에서 권한 재정의](access_policies_last-accessed.md) 섹션을 참조하세요.

## 고객 관리형 정책 편집(콘솔)
<a name="edit-customer-managed-policy-console"></a>

고객 관리형 정책을 편집하여 AWS Management Console에서 정책에 정의된 권한을 변경할 수 있습니다. 고객 관리형 정책에 최대 5개의 버전을 사용할 수 있습니다. 이는 관리형 정책을 변경하여 버전이 5개 넘게 생성될 경우 AWS Management Console에서 어느 버전을 삭제할 것이지 결정하라는 메시지가 표시되므로 중요합니다. 메시지가 표시되지 않도록 편집하기 전에 기본 버전을 변경하거나 정책 버전을 삭제할 수도 있습니다. 버전에 대한 자세한 내용은 [IAM 정책 버전 관리](access_policies_managed-versioning.md) 섹션을 참조하세요.

------
#### [ Console ]

**고객 관리형 정책 편집**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 탐색 창에서 **정책**을 선택합니다.

1. 정책 목록에서 편집할 정책 이름을 선택합니다. 검색 상자를 사용하여 정책 목록을 필터링할 수 있습니다.

1. **권한** 탭을 선택한 다음 **편집**을 선택합니다.

1. 다음 중 하나를 수행하세요.
   + **시각적** 편집기 옵션을 선택하면 JSON 구문을 이해하지 않아도 정책을 변경할 수 있습니다. 정책의 각 권한 블록에 대한 서비스, 작업, 리소스 또는 조건(선택 사항)을 변경할 수 있습니다. 정책을 가져와 추가 권한을 정책 하단에 추가할 수도 있습니다. 변경이 완료되면 **다음**을 선택하여 계속 진행합니다.
   + **JSON** 옵션을 선택하고 JSON 텍스트 상자에 입력하거나 붙여 넣어 정책을 수정합니다. 정책을 가져와 추가 권한을 정책 하단에 추가할 수도 있습니다. [정책 검증](access_policies_policy-validator.md) 중에 생성되는 모든 보안 경고, 오류 또는 일반 경고를 해결하고 **다음**을 선택합니다.
**참고**  
언제든지 **시각적** 편집기 옵션과 **JSON** 편집기 옵션을 서로 전환할 수 있습니다. 그러나 변경을 적용하거나 **시각적** 편집기에서 **다음**을 선택한 경우 IAM은 시각적 편집기에 최적화되도록 정책을 재구성할 수 있습니다. 자세한 내용은 [정책 재구성](troubleshoot_policies.md#troubleshoot_viseditor-restructure) 섹션을 참조하세요.

1. **검토 및 저장** 페이지에서 **이 정책에 정의된 권한**을 검토한 다음 **변경 사항 저장**을 선택하여 작업을 저장합니다.

1. 관리형 정책 버전이 이미 최댓값인 5개가 있을 경우 **변경 사항 저장**을 선택하면 대화 상자가 나타납니다. 새 버전을 저장하려면 기본이 아닌 가장 오래된 버전의 정책이 제거되고 새 버전으로 교체됩니다. 옵션으로 새로운 버전을 기본 정책 버전으로 설정할 수도 있습니다.

   **변경 사항 저장**을 선택하여 새 정책 버전을 저장합니다.

------

## 고객 관리형 정책의 기본 버전 설정(콘솔)
<a name="edit-customer-managed-policy-console-set-default-policy-version"></a>

AWS Management Console에서 고객 관리형 정책의 기본 버전을 설정할 수 있습니다. 이 정책을 사용하여 조직 전체의 권한에 대한 일관된 기준 구성을 설정할 수 있습니다. 정책의 모든 새 첨부 파일은 이 표준화된 권한 집합을 사용합니다.

------
#### [  Console  ]

**고객 관리형 정책의 기본 버전을 설정하려면(콘솔)**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 탐색 창에서 **정책**을 선택합니다.

1. 정책 목록에서 기본 버전을 설정할 정책 이름을 선택합니다. 검색 상자를 사용하여 정책 목록을 필터링할 수 있습니다.

1. **Policy versions(정책 버전)** 탭을 선택합니다. 기본 버전으로 설정할 버전 옆의 확인란을 선택한 후 **기본값으로 설정**을 선택합니다.

------

## 고객 관리형 정책의 버전 삭제(콘솔)
<a name="edit-customer-managed-policy-console-delete-policy-version"></a>

더 이상 필요하지 않거나 잠재적인 보안 위험을 초래하는 오래 된 권한이나 잘못된 권한을 제거하려면 고객 관리형 정책의 버전을 삭제해야 할 수 있습니다. 필요한 버전만 유지 관리하면 관리형 정책 버전이 5개로 제한되어 향후 업데이트 및 개선할 수 있는 여지를 확보할 수 있습니다. AWS Management Console에서 고객 관리형 정책의 버전을 삭제할 수 있습니다.

------
#### [ Console ]

**고객 관리형 정책의 버전 삭제**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 탐색 창에서 **정책**을 선택합니다.

1. 버전을 삭제하려는 고객 관리형 정책의 이름을 선택합니다. 검색 상자를 사용하여 정책 목록을 필터링할 수 있습니다.

1. **Policy versions(정책 버전)** 탭을 선택합니다. 삭제하려는 버전 옆의 확인란을 선택합니다. 그런 다음 **삭제**를 선택합니다.

1. 버전을 정말로 삭제할 것인지 다시 한 번 묻는 메시지가 나오면 확인 후 **삭제**를 선택합니다.

------

## 인라인 정책 편집(콘솔)
<a name="edit-inline-policy-console"></a>

조직의 변화하는 보안 요구 사항 및 액세스 제어 요구 사항에 맞게 권한을 업데이트하거나 수정하려면 고객 관리형 정책을 편집해야 할 수도 있습니다. 편집을 통해 정책의 JSON 문서를 조정하여 특정 작업, 리소스 또는 조건을 추가, 수정 또는 제거함으로써 최소 권한 원칙을 유지하고 환경이나 프로세스의 변화에 적응할 수 있습니다. AWS Management Console에서 인라인 정책을 편집할 수 있습니다.

------
#### [ Console ]

**사용자, 사용자 그룹 또는 역할의 인라인 정책 편집**

1. 탐색 창에서 **사용자 그룹**, **사용자** 또는 **역할**을 선택합니다.

1. 정책을 변경하려는 사용자, 사용자 그룹 또는 역할 이름을 선택합니다. 그런 다음 **권한** 탭을 선택하고 정책을 확장합니다.

1. 인라인 정책을 편집하려면 **정책 편집**을 선택합니다.

1. 다음 중 하나를 수행하세요.
   + **시각적** 편집기 옵션을 선택하면 JSON 구문을 이해하지 않아도 정책을 변경할 수 있습니다. 정책의 각 권한 블록에 대한 서비스, 작업, 리소스 또는 조건(선택 사항)을 변경할 수 있습니다. 정책을 가져와 추가 권한을 정책 하단에 추가할 수도 있습니다. 변경이 완료되면 **다음**을 선택하여 계속 진행합니다.
   + **JSON** 옵션을 선택하고 JSON 텍스트 상자에 입력하거나 붙여 넣어 정책을 수정합니다. 정책을 가져와 추가 권한을 정책 하단에 추가할 수도 있습니다. [정책 검증](access_policies_policy-validator.md) 중에 생성되는 모든 보안 경고, 오류 또는 일반 경고를 해결하고 **다음**을 선택합니다. 현재 추가된 주체에 아무런 영향을 주지 않고 변경 사항만 저장하려면 **Save as default version(기본 버전으로 저장)** 확인란의 선택을 해제합니다.
**참고**  
언제든지 **시각적** 편집기 옵션과 **JSON** 편집기 옵션을 서로 전환할 수 있습니다. 그러나 변경을 적용하거나 **시각적** 편집기에서 **다음**을 선택한 경우 IAM은 시각적 편집기에 최적화되도록 정책을 재구성할 수 있습니다. 자세한 내용은 [정책 재구성](troubleshoot_policies.md#troubleshoot_viseditor-restructure) 섹션을 참조하세요.

1. **검토** 페이지에서 정책 요약을 검토하고 나서 **변경 사항 저장**을 선택하여 작업을 저장합니다.

------

# IAM 정책 편집(AWS CLI)
<a name="access_policies_manage-edit-cli"></a>

[정책](access_policies.md)은 자격 증명 또는 리소스에 연결될 때 해당 권한을 정의하는 개체입니다. AWS Command Line Interface(AWS CLI)를 사용하여 IAM에서 **고객 관리형 정책 및 **인라인 정책을 편집할 수 있습니다. AWS 관리형 정책은 편집할 수 없습니다. AWS 계정의 IAM 리소스 수와 크기는 제한되어 있습니다. 자세한 내용은 [IAM 및 AWS STS 할당량](reference_iam-quotas.md) 섹션을 참조하세요.

정책 구조 및 구문에 대한 자세한 정보는 [AWS Identity and Access Management의 정책 및 권한](access_policies.md) 단원과 [IAM JSON 정책 요소 참조](reference_policies_elements.md) 섹션을 참조하세요.

## 사전 조건
<a name="edit-customer-managed-policy-cli-prerequisites"></a>

정책에 대한 권한을 변경하기 전에 최근 서비스 수준 활동을 검토해야 합니다. 이 기능은 사용 중인 보안 주체(사람 또는 애플리케이션)의 액세스 권한을 제거하지 않으려는 경우 중요합니다. 마지막으로 액세스한 정보 보기에 대한 자세한 내용은 [마지막으로 액세스한 정보를 사용하여 AWS에서 권한 재정의](access_policies_last-accessed.md) 섹션을 참조하세요.

## 고객 관리형 정책 편집(AWS CLI)
<a name="edit-customer-managed-policy-cli"></a>

AWS CLI에서 고객 관리형 정책을 편집할 수 있습니다.

**참고**  
관리형 정책에는 최대 5개의 버전이 있을 수 있습니다. 5개 버전을 만든 후에도 고객 관리형 정책을 변경해야 할 경우 먼저 기존 버전을 1개 이상 삭제해야 합니다.

**고객 관리형 정책을 편집하려면(AWS CLI)**

1. (선택 사항)정책에 대한 정보를 보려면 다음 명령을 실행합니다.
   + 관리형 정책의 목록 보기: [list-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-policies.html)
   + 관리형 정책에 대한 세부 정보 가져오기: [get-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/get-policy.html)

1. (선택 사항) 정책과 자격 증명 간의 관계에 대해 확인하려면 다음 명령을 실행합니다.
   + 관리형 정책이 연결된 ID(사용자, IAM 그룹 및 IAM 역할)를 나열하려면 다음과 같이 합니다.
     + [list-entities-for-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/list-entities-for-policy.html)
   + 자격 증명(사용자, 사용자 그룹 또는 역할)에 연결된 관리형 정책의 목록을 보려면
     + [list-attached-user-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-attached-user-policies.html)
     + [list-attached-group-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-attached-group-policies.html)
     + [list-attached-role-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-attached-role-policies.html)

1. 고객 관리형 정책을 편집하려면 다음 명령을 실행합니다.
   + [create-policy-version](https://docs.aws.amazon.com/cli/latest/reference/iam/create-policy-version.html)

1. (선택 사항) 고객 관리형 정책을 검증하려면 다음 IAM Access Analyzer 명령을 실행합니다.
   + [validate-policy](https://docs.aws.amazon.com/cli/latest/reference/accessanalyzer/validate-policy.html)

## 고객 관리형 정책의 기본 버전 설정(AWS CLI)
<a name="edit-customer-managed-policy-cli-set-default-policy-version"></a>

AWS CLI에서 고객 관리형 정책의 기본 버전을 설정할 수 있습니다.

**고객 관리형 정책의 기본 버전을 설정하려면(AWS CLI)**

1. (선택 사항) 관리형 정책 목록을 보려면 다음 명령을 실행합니다.
   + [list-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-policies.html)

1. 고객 관리형 정책의 기본 버전을 설정하려면 다음 명령을 실행합니다.
   + [set-default-policy-version](https://docs.aws.amazon.com/cli/latest/reference/iam/set-default-policy-version.html)

## 고객 관리형 정책의 버전 삭제(AWS CLI)
<a name="edit-customer-managed-policy-cli-delete-policy-version"></a>

AWS CLI에서 고객 관리형 정책의 버전을 삭제할 수 있습니다.

**고객 관리형 정책의 한 버전을 삭제하려면(AWS CLI)**

1. (선택 사항) 관리형 정책 목록을 보려면 다음 명령을 실행합니다.
   + [list-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-policies.html)

1. 고객 관리형 정책을 삭제하려면 다음 명령을 실행합니다.
   + [delete-policy-version](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-policy-version.html)

## 인라인 정책 편집(AWS CLI)
<a name="edit-inline-policy-cli"></a>

AWS CLI에서 인라인 정책을 편집할 수 있습니다.

**인라인 정책 편집(AWS CLI)**

1. (선택 사항)정책에 대한 정보를 보려면 다음 명령을 실행합니다.
   + 자격 증명(사용자, 사용자 그룹 또는 역할)에 연결된 인라인 정책을 나열하는 방법: 
     + [list-user-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-user-policies.html)
     + [list-role-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-role-policies.html)
     + [list-group-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-group-policies.html)
   + 인라인 정책에 대한 자세한 정보를 검색하는 방법: 
     + [get-user-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/get-user-policy.html)
     + [get-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/get-role-policy.html)
     + [get-group-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/get-group-policy.html)

1. 인라인 정책을 업데이트하려면 다음 명령을 실행합니다.
   + [put-user-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/put-user-policy.html)
   + [put-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/put-role-policy.html)
   + [put-group-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/put-group-policy.html)

1. (선택 사항) 인라인 정책을 검증하려면 다음 IAM Access Analyzer 명령을 실행합니다.
   + [validate-policy](https://docs.aws.amazon.com/cli/latest/reference/accessanalyzer/validate-policy.html)

# IAM 정책 생성(AWSAPI)
<a name="access_policies_manage-edit-api"></a>

[정책](access_policies.md)은 자격 증명 또는 리소스에 연결될 때 해당 권한을 정의하는 개체입니다. AWS API를 사용하여 IAM**에서 고객 관리형 정책 및 **인라인 정책을 편집할 수 있습니다. AWS 관리형 정책은 편집할 수 없습니다. AWS 계정의 IAM 리소스 수와 크기는 제한되어 있습니다. 자세한 내용은 [IAM 및 AWS STS 할당량](reference_iam-quotas.md) 섹션을 참조하세요.

정책 구조 및 구문에 대한 자세한 정보는 [AWS Identity and Access Management의 정책 및 권한](access_policies.md) 단원과 [IAM JSON 정책 요소 참조](reference_policies_elements.md) 섹션을 참조하세요.

## 사전 조건
<a name="edit-customer-managed-policy-api-prerequisites"></a>

정책에 대한 권한을 변경하기 전에 최근 서비스 수준 활동을 검토해야 합니다. 이 기능은 사용 중인 보안 주체(사람 또는 애플리케이션)의 액세스 권한을 제거하지 않으려는 경우 중요합니다. 마지막으로 액세스한 정보 보기에 대한 자세한 내용은 [마지막으로 액세스한 정보를 사용하여 AWS에서 권한 재정의](access_policies_last-accessed.md) 섹션을 참조하세요.

## 고객 관리형 정책 편집(AWS API)
<a name="edit-customer-managed-policy-api"></a>

AWS API를 사용하여 고객 관리형 정책을 편집할 수 있습니다.

**참고**  
관리형 정책에는 최대 5개의 버전이 있을 수 있습니다. 5개 버전을 만든 후에도 고객 관리형 정책을 변경해야 할 경우 먼저 기존 버전을 1개 이상 삭제해야 합니다.

**고객 관리형 정책을 편집하려면(AWS API)**

1. (선택 사항)정책에 대한 정보를 보려면 다음 작업을 호출합니다.
   + 관리형 정책의 목록 보기: [ListPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPolicies.html)
   + 관리형 정책에 대한 세부 정보 가져오기: [GetPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicy.html)

1. (선택 사항) 정책과 자격 증명 간의 관계에 대해 확인하려면 다음 작업을 호출합니다.
   + 관리형 정책이 연결된 ID(사용자, IAM 그룹 및 IAM 역할)를 나열하려면 다음과 같이 합니다.
     + [ListEntitiesForPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListEntitiesForPolicy.html)
   + 자격 증명(사용자, 사용자 그룹 또는 역할)에 연결된 관리형 정책의 목록을 보려면
     + [ListAttachedUserPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedUserPolicies.html)
     + [ListAttachedGroupPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedGroupPolicies.html)
     + [ListAttachedRolePolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedRolePolicies.html)

1. 고객 관리형 정책을 편집하려면 다음 작업을 호출합니다.
   + [CreatePolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicyVersion.html)

1. (선택 사항) 고객 관리형 정책을 검증하려면 다음 IAM Access Analyzer 작업을 호출합니다.
   + [ValidatePolicy](https://docs.aws.amazon.com/access-analyzer/latest/APIReference/API_ValidatePolicy.html)

## 고객 관리형 정책의 기본 버전 설정(AWS API)
<a name="edit-customer-managed-policy-api-set-default-policy-version"></a>

AWS API에서 고객 관리형 정책의 기본 버전을 설정할 수 있습니다.

**고객 관리형 정책의 기본 버전을 설정하려면(AWS API)**

1. (선택 사항) 관리형 정책 목록을 보려면 다음 작업을 호출합니다.
   + [ListPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPolicies.html)

1. 고객 관리형 정책의 기본 버전을 설정하려면 다음 작업을 호출합니다.
   + [SetDefaultPolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SetDefaultPolicyVersion.html)

## 고객 관리형 정책의 버전 삭제(AWS API)
<a name="edit-customer-managed-policy-api-delete-policy-version"></a>

AWS에서 고객 관리형 정책의 버전을 삭제할 수 있습니다.

**고객 관리형 정책의 한 버전을 삭제하려면(AWS API)**

1. (선택 사항) 관리형 정책 목록을 보려면 다음 작업을 호출합니다.
   + [ListPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPolicies.html)

1. 고객 관리형 정책을 삭제하려면 다음 작업을 호출합니다.
   + [DeletePolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeletePolicyVersion.html)

## 인라인 정책 편집(AWS API)
<a name="edit-inline-policy-api"></a>

AWS API에서 인라인 정책을 편집할 수 있습니다.

**인라인 정책 편집(AWS API)**

1. (선택 사항) 인라인 정책에 대한 정보를 보려면 다음 작업을 실행합니다.
   + 자격 증명(사용자, 사용자 그룹 또는 역할)에 연결된 인라인 정책을 나열하는 방법: 
     + [ListUserPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUserPolicies.html)
     + [ListRolePolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListRolePolicies.html)
     + [ListGroupPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListGroupPolicies.html)
   + 인라인 정책에 대한 자세한 정보를 검색하는 방법: 
     + [GetUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUserPolicy.html)
     + [GetRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRolePolicy.html)
     + [GetGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetGroupPolicy.html)

1. 인라인 정책을 편집하려면 다음 작업을 실행합니다.
   + [PutUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutUserPolicy.html)
   + [PutRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutRolePolicy.html)
   + [PutGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutGroupPolicy.html)

1. (선택 사항) 인라인 정책을 검증하려면 다음 IAM Access Analyzer 작업을 실행합니다.
   + [ValidatePolicy](https://docs.aws.amazon.com/access-analyzer/latest/APIReference/API_ValidatePolicy.html)

# IAM 정책 삭제
<a name="access_policies_manage-delete"></a>

AWS Management Console, AWS Command Line Interface(AWS CLI) 또는 AWS API를 사용하여 IAM 정책을 삭제할 수 있습니다.

**참고**  
IAM 정책 삭제는 영구적입니다. 정책을 삭제한 후에는 복구할 수 없습니다.

IAM 정책 구조 및 구문에 대한 자세한 내용은 [AWS Identity and Access Management의 정책 및 권한](access_policies.md) 및 [IAM JSON 정책 요소 참조](reference_policies_elements.md) 섹션을 참조하세요.

관리형 정책과 인라인 정책의 차이점에 대한 자세한 정보는 [관리형 정책과 인라인 정책](access_policies_managed-vs-inline.md) 섹션을 참조하세요.

AWS 계정의 IAM 리소스 수와 크기는 제한되어 있습니다. 자세한 내용은 [IAM 및 AWS STS 할당량](reference_iam-quotas.md) 단원을 참조하십시오.

**Topics**
+ [

# IAM 정책 삭제(콘솔)
](access_policies_manage-delete-console.md)
+ [

# IAM 정책 삭제(AWS CLI)
](access_policies_manage-delete-cli.md)
+ [

# IAM 정책 삭제(AWS API)
](access_policies_manage-delete-api.md)

# IAM 정책 삭제(콘솔)
<a name="access_policies_manage-delete-console"></a>

AWS Management Console을 사용하여 IAM에서 **고객 관리형 정책 및 **인라인 정책을 삭제할 수 있습니다. AWS 계정의 IAM 리소스 수와 크기는 제한되어 있습니다. 자세한 내용은 [IAM 및 AWS STS 할당량](reference_iam-quotas.md) 섹션을 참조하세요.

**참고**  
IAM 정책 삭제는 영구적입니다. 정책을 삭제한 후에는 복구할 수 없습니다.

IAM 정책 구조 및 구문에 대한 자세한 내용은 [AWS Identity and Access Management의 정책 및 권한](access_policies.md) 및 [IAM JSON 정책 요소 참조](reference_policies_elements.md) 섹션을 참조하세요.

관리형 정책과 인라인 정책의 차이점에 대한 자세한 정보는 [관리형 정책과 인라인 정책](access_policies_managed-vs-inline.md) 섹션을 참조하세요.

## 사전 조건
<a name="delete-policy-prerequisites-console"></a>

정책을 삭제하기 전에 최근 서비스 수준 활동을 검토해야 합니다. 이 기능은 사용 중인 보안 주체(사람 또는 애플리케이션)의 액세스 권한을 제거하지 않으려는 경우 중요합니다. 마지막으로 액세스한 정보 보기에 대한 자세한 내용은 [마지막으로 액세스한 정보를 사용하여 AWS에서 권한 재정의](access_policies_last-accessed.md) 섹션을 참조하세요.

## IAM 정책 삭제(콘솔)
<a name="delete-customer-managed-policy-console"></a>

더 이상 사용되지 않거나 조직의 보안 요구 사항 및 액세스 제어 요구 사항에 더 이상 맞지 않는 고객 관리형 정책을 삭제해야 할 수 있습니다. 불필요한 정책을 삭제하면 오래되었거나 사용하지 않는 정책과 관련된 잠재적인 보안 위험을 줄일 수 있습니다. 고객 관리형 정책은 삭제하여 AWS 계정에서 제거할 수 있습니다. 단, AWS 관리형 정책은 삭제할 수 없습니다.

------
#### [ Console ]

**고객 관리형 정책 삭제**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 탐색 창에서 **정책**을 선택합니다.

1. 삭제할 고객 관리형 정책 옆의 라디오 버튼을 선택합니다. 검색 상자를 사용하여 정책 목록을 필터링할 수 있습니다.

1. **작업**을 선택한 후 **삭제**를 선택합니다.

1. 지침에 따라 정책을 정말로 삭제할 것인지 확인 후 **삭제**를 선택합니다.

------

## 인라인 정책 삭제(콘솔)
<a name="delete-inline-policy-console"></a>

인라인 정책이 직접 연결된 IAM 사용자, 그룹 또는 역할에 부여하는 특정 권한이 더 이상 필요하지 않은 경우 인라인 정책을 삭제해야 할 수 있습니다. 특히 인라인 정책은 관리형 정책처럼 여러 ID에서 재사용하거나 공유할 수 없기 때문에 불필요한 인라인 정책을 삭제하면 의도하지 않은 액세스의 위험을 줄이는 데 도움이 됩니다. AWS 계정에서 제거하기 위해 인라인 정책을 삭제할 수 있습니다. 단, AWS 관리형 정책은 삭제할 수 없습니다.

------
#### [ Console ]

**IAM 사용자, 그룹 또는 역할의 인라인 정책 삭제**

1. 탐색 창에서 **사용자 그룹**, **사용자** 또는 **역할**을 선택합니다.

1. 정책을 삭제하려는 사용자 그룹, 사용자 또는 역할 이름을 선택합니다. 그런 다음 **권한** 탭을 선택합니다.

1. 제거할 정책 옆에 있는 확인란을 선택하고 **제거**를 선택하세요. 그런 다음 확인 대화 상자에서 정책의 제거와 삭제를 확인합니다.
   + **사용자** 또는 **역할**에서 인라인 정책을 삭제하려면 **제거**를 선택하여 삭제를 확인합니다.
   + **사용자 그룹**에서 단일 인라인 정책을 삭제하는 경우 정책 이름을 입력하고 **삭제**를 선택합니다. **사용자 그룹**에서 여러 인라인 정책을 삭제하는 경우 **inline policies** 다음에 삭제할 정책 수를 입력한 다음 **삭제**를 선택합니다. 예를 들어, 세 개의 인라인 정책을 삭제하는 경우 **3 inline policies**를 입력합니다.

------

# IAM 정책 삭제(AWS CLI)
<a name="access_policies_manage-delete-cli"></a>

AWS Command Line Interface(AWS CLI)를 사용하여 IAM에서 **고객 관리형 정책 및 **인라인 정책을 삭제할 수 있습니다. AWS 계정의 IAM 리소스 수와 크기는 제한되어 있습니다. 자세한 내용은 [IAM 및 AWS STS 할당량](reference_iam-quotas.md) 섹션을 참조하세요.

**참고**  
IAM 정책 삭제는 영구적입니다. 정책을 삭제한 후에는 복구할 수 없습니다.

IAM 정책 구조 및 구문에 대한 자세한 내용은 [AWS Identity and Access Management의 정책 및 권한](access_policies.md) 및 [IAM JSON 정책 요소 참조](reference_policies_elements.md) 섹션을 참조하세요.

관리형 정책과 인라인 정책의 차이점에 대한 자세한 정보는 [관리형 정책과 인라인 정책](access_policies_managed-vs-inline.md) 섹션을 참조하세요.

## 사전 조건
<a name="delete-policy-prerequisites-cli"></a>

정책을 삭제하기 전에 최근 서비스 수준 활동을 검토해야 합니다. 이 기능은 사용 중인 보안 주체(사람 또는 애플리케이션)의 액세스 권한을 제거하지 않으려는 경우 중요합니다. 마지막으로 액세스한 정보 보기에 대한 자세한 내용은 [마지막으로 액세스한 정보를 사용하여 AWS에서 권한 재정의](access_policies_last-accessed.md) 섹션을 참조하세요.

## 고객 관리형 정책 삭제(AWS CLI)
<a name="delete-customer-managed-policy-cli"></a>

AWS Command Line Interface에서 고객 관리형 정책을 삭제할 수 있습니다.

**고객 관리형 정책을 삭제하려면(AWS CLI)**

1. (선택 사항)정책에 대한 정보를 보려면 다음 명령을 실행합니다.
   + 관리형 정책의 목록 보기: [list-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-policies.html)
   + 관리형 정책에 대한 세부 정보 가져오기: [get-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/get-policy.html)

1. (선택 사항) 정책과 자격 증명 간의 관계에 대해 확인하려면 다음 명령을 실행합니다.
   + 관리형 정책이 연결된 ID(IAM 사용자, IAM 그룹 및 IAM 역할)를 나열하려면 다음 명령을 실행합니다.
     + [list-entities-for-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/list-entities-for-policy.html)
   + 자격 증명(사용자, 사용자 그룹 또는 역할)에 연결된 관리형 정책의 목록을 보려면 다음 명령 중 하나를 실행합니다.
     + [list-attached-user-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-attached-user-policies.html)
     + [list-attached-group-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-attached-group-policies.html)
     + [list-attached-role-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-attached-role-policies.html)

1. 고객 관리형 정책을 삭제하려면 다음 명령을 실행합니다.
   + [delete-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-policy.html)

## 인라인 정책 삭제(AWS CLI)
<a name="delete-inline-policy-cli"></a>

AWS CLI에서 인라인 정책을 삭제할 수 있습니다.

**인라인 정책을 삭제하려면(AWS CLI)**

1. (선택 사항) 자격 증명(사용자, 사용자 그룹 또는 역할)에 연결된 모든 인라인 정책의 목록을 보려면 다음 명령 중 하나를 사용합니다.
   + [aws iam list-user-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-user-policies.html)
   + [aws iam list-group-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-group-policies.html)
   + [aws iam list-role-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-role-policies.html)

1. (선택 사항) 자격 증명(사용자, 사용자 그룹 또는 역할)에 포함된 인라인 정책 문서를 가져오려면 다음 명령 중 하나를 사용합니다.
   + [aws iam get-user-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/get-user-policy.html)
   + [aws iam get-group-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/get-group-policy.html)
   + [aws iam get-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/get-role-policy.html)

1. 자격 증명(사용자, 사용자 그룹 또는 *[서비스 연결 역할](id_roles.md#iam-term-service-linked-role)*이 아닌 역할)에서 인라인 정책을 삭제하려면 다음 명령 중 하나를 사용합니다.
   + [aws iam delete-user-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-user-policy.html)
   + [aws iam delete-group-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-group-policy.html)
   + [aws iam delete-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role-policy.html)

# IAM 정책 삭제(AWS API)
<a name="access_policies_manage-delete-api"></a>

AWS API를 사용하여 IAM에서 **고객 관리형 정책 및 **인라인 정책을 삭제할 수 있습니다. AWS 계정의 IAM 리소스 수와 크기는 제한되어 있습니다. 자세한 내용은 [IAM 및 AWS STS 할당량](reference_iam-quotas.md) 섹션을 참조하세요.

**참고**  
IAM 정책 삭제는 영구적입니다. 정책을 삭제한 후에는 복구할 수 없습니다.

IAM 정책 구조 및 구문에 대한 자세한 내용은 [AWS Identity and Access Management의 정책 및 권한](access_policies.md) 및 [IAM JSON 정책 요소 참조](reference_policies_elements.md) 섹션을 참조하세요.

관리형 정책과 인라인 정책의 차이점에 대한 자세한 정보는 [관리형 정책과 인라인 정책](access_policies_managed-vs-inline.md) 섹션을 참조하세요.

## 사전 조건
<a name="delete-policy-prerequisites-api"></a>

정책을 삭제하기 전에 최근 서비스 수준 활동을 검토해야 합니다. 이 기능은 사용 중인 보안 주체(사람 또는 애플리케이션)의 액세스 권한을 제거하지 않으려는 경우 중요합니다. 마지막으로 액세스한 정보 보기에 대한 자세한 내용은 [마지막으로 액세스한 정보를 사용하여 AWS에서 권한 재정의](access_policies_last-accessed.md) 섹션을 참조하세요.

## 고객 관리형 정책 삭제(AWS API)
<a name="delete-customer-managed-policy-api"></a>

AWS API를 사용하여 고객 관리형 정책을 삭제할 수 있습니다.

**고객 관리형 정책을 삭제하려면(AWS API)**

1. (선택 사항)정책에 대한 정보를 보려면 다음 작업을 호출합니다.
   + 관리형 정책의 목록 보기: [ListPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPolicies.html)
   + 관리형 정책에 대한 세부 정보 가져오기: [GetPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicy.html)

1. (선택 사항) 정책과 자격 증명 간의 관계에 대해 확인하려면 다음 작업을 호출합니다.
   + 관리형 정책이 연결된 ID(IAM 사용자, IAM 그룹 및 IAM 역할)를 나열하려면 다음 작업을 직접적으로 호출합니다.
     + [ListEntitiesForPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListEntitiesForPolicy.html)
   + 자격 증명(사용자, 사용자 그룹 또는 역할)에 연결된 관리형 정책의 목록을 보려면 다음 작업 중 하나를 호출합니다.
     + [ListAttachedUserPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedUserPolicies.html)
     + [ListAttachedGroupPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedGroupPolicies.html)
     + [ListAttachedRolePolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedRolePolicies.html)

1. 고객 관리형 정책을 삭제하려면 다음 작업을 호출합니다.
   + [DeletePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeletePolicy.html)

## 인라인 정책 삭제(AWS API)
<a name="delete-inline-policy-api"></a>

AWS API를 사용하여 인라인 정책을 삭제할 수 있습니다.

**인라인 정책을 삭제하려면(AWS API)**

1. (선택 사항) 자격 증명(사용자, 사용자 그룹 또는 역할)에 연결된 모든 인라인 정책의 목록을 보려면 다음 작업 중 하나를 호출합니다.
   + [ListUserPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUserPolicies.html)
   + [ListGroupPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListGroupPolicies.html)
   + [ListRolePolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListRolePolicies.html)

1. (선택 사항) 자격 증명(사용자, 사용자 그룹 또는 역할)에 포함된 인라인 정책 문서를 가져오려면 다음 작업 중 하나를 호출합니다.
   + [GetUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUserPolicy.html)
   + [GetGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetGroupPolicy.html)
   + [GetRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRolePolicy.html)

1. 인라인 정책을 자격 증명(사용자, 그룹 또는 *[서비스 연결 역할](id_roles.md#iam-term-service-linked-role)*이 아닌 역할)에서 삭제하려면 다음 작업 중 하나를 호출합니다.
   + [DeleteUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteUserPolicy.html)
   + [DeleteGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteGroupPolicy.html)
   + [DeleteRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteRolePolicy.html)

# 마지막으로 액세스한 정보를 사용하여 AWS에서 권한 재정의
<a name="access_policies_last-accessed"></a>

관리자는 IAM 리소스(역할, 사용자, 사용자 그룹 또는 정책)에 필요한 것 이상의 권한을 부여할 수 있습니다. IAM에서는 사용되지 않은 권한을 식별하여 제거할 수 있도록 마지막으로 액세스한 정보를 제공합니다. 마지막으로 액세스한 정보를 사용하여 정책을 재정의하고 IAM 자격 증명 및 정책에서 사용하는 서비스 및 작업에 대한 액세스만 허용할 수 있습니다. 그러면 [최소 권한 모범 사례](best-practices.md#grant-least-privilege)를 더 효과적으로 준수할 수 있습니다. IAM 또는 AWS Organizations에 있는 자격 증명 또는 정책에 대해 마지막으로 액세스한 정보를 볼 수 있습니다.

미사용 액세스 분석기를 사용하여 마지막으로 액세스한 정보를 지속적으로 모니터링할 수 있습니다. 자세한 내용은 [외부 및 미사용 액세스에 대한 조사 결과](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-findings.html)를 참조하세요.

**Topics**
+ [

## IAM에 대해 마지막으로 액세스한 정보 유형
](#access_policies_last-accessed-data-types)
+ [

## AWS Organizations에 대해 마지막으로 액세스한 정보
](#access_policies_last-accessed-orgs)
+ [

## 마지막으로 액세스한 정보에 대해 알아야 할 사항
](#access_policies_last-accessed-know)
+ [

## 필요한 권한
](#access_policies_last-accessed-permissions)
+ [

## IAM 및 AWS Organizations 엔터티에 대한 활동 문제 해결
](#access_policies_last-accessed-troubleshooting)
+ [

## AWS에서 마지막으로 액세스한 정보를 추적하는 위치
](#last-accessed_tracking-period)
+ [

# IAM에 대해 마지막으로 액세스한 정보 보기
](access_policies_last-accessed-view-data.md)
+ [

# AWS Organizations에 대해 마지막으로 액세스한 정보 보기
](access_policies_last-accessed-view-data-orgs.md)
+ [

# 마지막으로 액세스한 정보 사용에 대한 예제 시나리오
](access_policies_last-accessed-example-scenarios.md)
+ [

# IAM 작업에서 마지막으로 액세스한 정보와 관련된 서비스 및 작업
](access_policies_last-accessed-action-last-accessed.md)

## IAM에 대해 마지막으로 액세스한 정보 유형
<a name="access_policies_last-accessed-data-types"></a>

IAM 자격 증명에 대해 마지막으로 액세스한 정보, 즉, 허용된 AWS 서비스 정보와 허용된 작업 정보와 같은 두 가지 유형을 볼 수 있습니다. 이 정보에는 AWS API에서 액세스를 시도한 날짜와 시간이 포함됩니다. 작업의 경우 마지막으로 액세스한 정보에서는 서비스 관리 작업을 보고합니다. 관리 작업에는 생성, 삭제 및 수정 작업이 포함됩니다. IAM에 대해 마지막으로 액세스한 정보를 보는 방법에 대한 자세한 내용은 [IAM에 대해 마지막으로 액세스한 정보 보기](access_policies_last-accessed-view-data.md) 섹션을 참조하세요.

마지막으로 액세스한 정보를 사용하여 IAM 자격 증명에 부여할 권한을 결정하는 시나리오 예제는 [마지막으로 액세스한 정보 사용에 대한 예제 시나리오](access_policies_last-accessed-example-scenarios.md) 섹션을 참조하세요.

관리 작업에 대한 정보가 제공되는 방법에 대한 자세한 내용은 [마지막으로 액세스한 정보에 대해 알아야 할 사항](#access_policies_last-accessed-know) 섹션을 참조하세요.

## AWS Organizations에 대해 마지막으로 액세스한 정보
<a name="access_policies_last-accessed-orgs"></a>

관리 계정 자격 증명을 사용하여 로그인할 경우 AWS Organizations 엔터티 또는 정책에 대해 마지막으로 액세스한 서비스 정보를 볼 수 있습니다. AWS Organizations 엔터티에는 조직 루트, 조직 단위(OU) 또는 계정이 포함됩니다. AWS Organizations에 대해 마지막으로 액세스한 정보에는 SCP(서비스 제어 정책)에서 허용하는 서비스에 대한 정보가 포함됩니다. 이 정보는 조직 또는 계정에서 서비스에 마지막으로 액세스하려고 시도한 보안 주체(루트 사용자, IAM 사용자 또는 역할)와 그 시기를 나타냅니다. AWS Organizations에 대해 마지막으로 액세스한 정보를 보는 방법과 보고서에 대한 자세한 내용은 [AWS Organizations에 대해 마지막으로 액세스한 정보 보기](access_policies_last-accessed-view-data-orgs.md) 섹션을 참조하세요.

마지막으로 액세스한 정보를 사용하여 AWS Organizations 엔터티에 부여할 권한을 결정하는 데 대한 예제 시나리오는 [마지막으로 액세스한 정보 사용에 대한 예제 시나리오](access_policies_last-accessed-example-scenarios.md) 단원을 참조하십시오.

## 마지막으로 액세스한 정보에 대해 알아야 할 사항
<a name="access_policies_last-accessed-know"></a>

마지막으로 액세스한 보고서의 정보를 사용하여 IAM ID 또는 AWS Organizations 엔터티의 권한을 변경하려면 먼저 정보에 대한 다음 세부 정보를 검토하세요.
+ **추적 기간** - 최근 활동은 4시간 이내에 IAM 콘솔에 나타납니다. 서비스 정보의 추적 기간은 서비스가 작업 정보에 대한 추적을 시작한 시점에 따라 최소 400일입니다. Amazon S3 작업 정보에 대한 추적 기간은 2020년 4월 12일에 시작되었습니다. Amazon EC2, IAM 및 Lambda 작업의 추적 기간은 2021년 4월 7일부터 시작되었습니다. 다른 모든 서비스의 추적 기간은 2023년 5월 23일에 시작되었습니다. 작업에서 마지막으로 액세스한 정보를 사용할 수 있는 서비스 목록은 [IAM 작업에서 마지막으로 액세스한 정보와 관련된 서비스 및 작업](access_policies_last-accessed-action-last-accessed.md) 섹션을 참조하세요. 작업에서 마지막으로 액세스한 정보를 사용할 수 있는 리전에 대한 자세한 내용은 [AWS에서 마지막으로 액세스한 정보를 추적하는 위치](#last-accessed_tracking-period) 섹션을 참조하세요.
+ **보고된 시도 횟수** - 서비스에서 마지막으로 액세스한 데이터에는 성공한 시도뿐만 아니라, 모든 AWS API 액세스 시도가 포함됩니다. 이 데이터에는 AWS Management Console, 임의의 SDK를 통한 AWS API, 또는 임의의 명령줄 도구를 사용한 모든 시도가 포함됩니다. 요청이 거부되었을 수도 있으므로, 서비스에서 마지막으로 액세스한 데이터에 예기치 않은 항목이 있다는 것이 계정이 훼손되었다는 의미는 아닙니다. 모든 API 호출에 대한 정보와 이런 호출이 성공했는지 또는 거부된 액세스인지에 대한 정보를 보여주는 신뢰할 수 있는 소스인 CloudTrail 로그를 참조하세요.
+ **PassRole** - `iam:PassRole` 작업이 추적되지 않으며 마지막으로 액세스한 IAM 작업 정보에 포함되지 않습니다.
+ **작업에서 마지막으로 액세스한 정보** - IAM 자격 증명에서 액세스한 서비스 관리 작업에 대해 작업에서 마지막으로 액세스한 정보를 사용할 수 있습니다. 작업에서 마지막으로 액세스한 보고서 정보는 [서비스 목록 및 해당 작업의 목록](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_last-accessed-action-last-accessed.html#access_policies_last-accessed-action-last-accessed-supported-actions)을 참조하세요.
**참고**  
데이터 플레인 이벤트의 경우 마지막으로 액세스한 작업 정보가 제공되지 않습니다.
+ **관리 이벤트** - IAM은 CloudTrail에서 기록하는 서비스 관리 이벤트에 대한 작업 정보를 제공합니다. 경우에 따라 CloudTrail 관리 이벤트를 제어 영역 작업 또는 제어 영역 이벤트라고도 합니다. 관리 이벤트를 통해 AWS 계정의 리소스에 대해 수행한 관리 작업을 파악할 수 있습니다. CloudTrail의 관리 이벤트에 대한 자세한 내용은 *AWS CloudTrail 사용 설명서*의 [Logging management events](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-events-with-cloudtrail.html)를 참조하세요.
+ **보고서 소유자** - 보고서를 생성하는 보안 주체만 보고서 세부 정보를 볼 수 있습니다. 즉, AWS Management Console에서 정보를 볼 때 정보가 생성 및 로드될 때까지 기다려야 할 수 있습니다. AWS CLI 또는 AWS API를 사용하여 보고서 세부 정보를 가져오는 경우 자격 증명이 보고서를 생성한 보안 주체의 자격 증명과 일치해야 합니다. 역할 또는 AWS STS 페더레이션 사용자 보안 주체에 대해 임시 자격 증명을 사용하는 경우 동일한 세션 중에 보고서를 생성하고 검색해야 합니다. 위임된 역할 세션 보안 주체에 대한 자세한 내용은 [AWS JSON 정책 요소: Principal](reference_policies_elements_principal.md) 섹션을 참조하세요.
+ **IAM 리소스** - IAM에 대해 마지막으로 액세스한 정보에는 계정의 IAM 리소스(역할, 사용자, IAM 그룹 및 정책)가 포함됩니다. AWS Organizations에 대해 마지막으로 액세스한 정보에는 지정된 AWS Organizations 엔터티의 보안 주체(IAM 사용자, IAM 역할 또는 AWS 계정 루트 사용자)가 포함됩니다. 마지막으로 액세스한 정보에는 인증되지 않은 시도가 포함되지 않습니다.
+ **IAM 정책 유형** - IAM에 대해 마지막으로 액세스한 정보에는 IAM 자격 증명의 정책에서 허용하는 서비스가 포함됩니다. 이러한 정책은 역할에 연결되거나 사용자에게 직접 또는 그룹을 통해 연결됩니다. 다른 정책 유형에서 허용하는 액세스는 보고서에 포함되어 있지 않습니다. 제외된 정책 유형에는 리소스 기반 정책, 액세스 제어 목록, AWS Organizations SCP, IAM 권한 경계 및 세션 정책이 있습니다. 서비스 연결 역할에서 제공하는 권한은 연결된 서비스에 의해 정의되며 IAM에서 수정할 수 없습니다. 서비스 연결 역할에 대한 자세한 내용은 [서비스 연결 역할 생성](id_roles_create-service-linked-role.md) 섹션을 참조하세요. 다양한 정책 유형을 평가하여 액세스를 허용 또는 거부하는 방법을 알아보려면 [정책 평가 로직](reference_policies_evaluation-logic.md) 섹션을 참조하세요.
+ **AWS Organizations 정책 유형** – AWS Organizations에 대한 정보에는 AWS Organizations 엔터티의 상속된 서비스 제어 정책(SCP)이 허용하는 서비스만 포함됩니다. SCP는 루트, OU 또는 계정에 연결된 정책입니다. 다른 정책 유형에서 허용하는 액세스는 보고서에 포함되어 있지 않습니다. 제외된 정책 유형에는 자격 증명 기반 정책, 리소스 기반 정책, 액세스 제어 목록, IAM 권한 경계 및 세션 정책이 있습니다. 다른 정책 유형이 액세스를 허용하거나 거부하는 방법을 알아보려면 [정책 평가 로직](reference_policies_evaluation-logic.md) 섹션을 참조하세요.
+ **정책 ID 지정** AWS CLI 또는 AWS API를 사용하여 AWS Organizations에서 마지막으로 액세스한 정보에 대한 보고서를 생성할 때 선택적으로 정책 ID를 지정할 수 있습니다. 그러면 생성되는 보고서에는 해당 정책이 허용하는 서비스에 대한 정보만 포함됩니다. 이 정보에는 지정된 AWS Organizations 엔터티 또는 엔터티 하위의 가장 최근 계정 활동이 포함됩니다. 자세한 내용은 [aws iam generate-organizations-access-report](https://docs.aws.amazon.com/cli/latest/reference/iam/generate-organizations-access-report.html) 또는 [GenerateOrganizationsAccessReport](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GenerateOrganizationsAccessReport.html)를 참조하세요.
+ **AWS Organizations 마스터 계정** - 마지막으로 액세스한 서비스 정보를 보려면 조직의 관리 계정에 로그인해야 합니다. IAM 콘솔, AWS CLI 또는 AWS API를 사용하여 관리 계정에 대한 정보를 보도록 선택할 수 있습니다. 관리 계정은 SCP에 의해 제한을 받지 않으므로 생성되는 보고서에는 모든 AWS 서비스가 나열됩니다. CLI 또는 API에 정책 ID를 지정할 경우 해당 정책이 무시됩니다. 각 서비스에 대해 보고서에는 관리 계정에 대한 정보만 포함됩니다. 그러나 다른 AWS Organizations 엔터티에 대한 보고서는 관리 계정의 활동에 대한 정보를 반환하지 않습니다.
+ **AWS Organizations 설정** – 관리자는 AWS Organizations에 대한 데이터를 생성하려면 먼저 [조직 루트에서 SCP를 활성화](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies.html#enable_policies_on_root)해야 합니다.

## 필요한 권한
<a name="access_policies_last-accessed-permissions"></a>

AWS Management Console에서 마지막으로 액세스한 정보를 보려면 필요한 권한을 부여하는 정책이 있어야 합니다.

### IAM 정보에 대한 권한
<a name="access_policies_last-accessed-permissions-iam"></a>

IAM 콘솔을 사용하여 IAM 사용자, 역할 또는 정책에 대해 마지막으로 액세스한 정보를 사용하려면 다음 작업을 포함하는 정책이 있어야 합니다.
+ `iam:GenerateServiceLastAccessedDetails`
+ `iam:Get*`
+ `iam:List*`

이러한 권한을 사용하면 사용자가 다음을 확인할 수 있습니다.
+ [관리형 정책](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html#managed_policy)에 연결된 사용자, 그룹 또는 역할
+ 사용자 또는 역할이 액세스할 수 있는 서비스
+ 서비스에 마지막으로 액세스한 시간
+ 특정 Amazon EC2, IAM, Lambda, Amazon S3 작업을 마지막으로 사용하려고 시도한 시간

AWS CLI 또는 AWS API를 사용하여 IAM에 대해 마지막으로 액세스한 정보를 사용하려면 사용할 작업과 일치하는 권한이 있어야 합니다.
+ `iam:GenerateServiceLastAccessedDetails`
+ `iam:GetServiceLastAccessedDetails`
+ `iam:GetServiceLastAccessedDetailsWithEntities`
+ `iam:ListPoliciesGrantingServiceAccess`

이 예제는 IAM이 마지막으로 액세스한 정보를 볼 수 있도록 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 또한 모든 IAM에 대한 읽기 전용 액세스를 허용합니다. 이 정책은 프로그래밍 방식 및 콘솔 액세스에 대한 권한을 정의합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": [
            "iam:GenerateServiceLastAccessedDetails",
            "iam:Get*",
            "iam:List*"
        ],
        "Resource": "*"
    }
}
```

------

### AWS Organizations 정보에 대한 권한
<a name="access_policies_last-accessed-permissions-orgs"></a>

IAM 콘솔을 사용하여 AWS Organizations의 루트, OU 또는 계정 엔터티에 대한 보고서를 보려면 다음 작업을 포함하는 정책이 있어야 합니다.
+ `iam:GenerateOrganizationsAccessReport`
+ `iam:GetOrganizationsAccessReport`
+ `organizations:DescribeAccount`
+ `organizations:DescribeOrganization`
+ `organizations:DescribeOrganizationalUnit`
+ `organizations:DescribePolicy`
+ `organizations:ListChildren`
+ `organizations:ListParents`
+ `organizations:ListPoliciesForTarget`
+ `organizations:ListRoots`
+ `organizations:ListTargetsForPolicy`

AWS CLI 또는 AWS API를 사용하여 AWS Organizations에 대해 마지막으로 액세스한 정보를 사용하려면 다음 작업을 포함하는 정책이 있어야 합니다.
+ `iam:GenerateOrganizationsAccessReport`
+ `iam:GetOrganizationsAccessReport`
+ `organizations:DescribePolicy`
+ `organizations:ListChildren`
+ `organizations:ListParents`
+ `organizations:ListPoliciesForTarget`
+ `organizations:ListRoots`
+ `organizations:ListTargetsForPolicy`

이 예제는 AWS Organizations에 대해 마지막으로 액세스한 서비스 정보를 볼 수 있도록 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 또한 모든 AWS Organizations에 대한 읽기 전용 액세스를 허용합니다. 이 정책은 프로그래밍 방식 및 콘솔 액세스에 대한 권한을 정의합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": [
            "iam:GenerateOrganizationsAccessReport",
            "iam:GetOrganizationsAccessReport",
            "organizations:Describe*",
            "organizations:List*"
        ],
        "Resource": "*"
    }
}
```

------

[iam:OrganizationsPolicyId](reference_policies_iam-condition-keys.md#ck_OrganizationsPolicyId) 조건 키를 사용하여 특정 AWS Organizations 정책에 대해서만 보고서 생성을 허용할 수도 있습니다. 정책 예제는 [IAM: AWS Organizations 정책에 대해 마지막으로 액세스한 서비스 정보 보기](reference_policies_examples_iam_service-accessed-data-orgs.md)을 참조하세요.

## IAM 및 AWS Organizations 엔터티에 대한 활동 문제 해결
<a name="access_policies_last-accessed-troubleshooting"></a>

경우에 따라 AWS Management Console에서 마지막으로 액세스한 정보 테이블이 비어 있을 수 있습니다. AWS CLI 또는 AWS API 요청이 빈 정보 세트 또는 null 필드를 반환할 수도 있습니다. 이러한 경우 다음 문제를 검토하세요.
+ 마지막으로 액세스한 작업 정보의 경우 표시될 것으로 예상되는 작업이 목록에 반환되지 않을 수 있습니다. IAM 자격 증명이 작업에 대한 권한을 보유하지 않거나 마지막으로 액세스한 정보에 대한 작업을 AWS에서 아직 추적하지 않았기 때문에 이러한 문제가 발생할 수 있습니다.
+ IAM 사용자의 경우 사용자가 직접 또는 그룹 멤버십을 통해 인라인 또는 관리형 정책이 하나 이상 연결되어 있는지 확인합니다.
+ IAM 그룹의 경우 그룹에 인라인 또는 관리형 정책이 하나 이상 연결되어 있는지 확인합니다.
+ IAM 그룹의 경우 보고서는 그룹 정책을 사용하여 서비스에 액세스한 멤버에 대해서만 마지막으로 액세스한 서비스 정보를 반환합니다. 멤버가 다른 정책을 사용했는지 여부를 확인하려면 해당 사용자에 대해 마지막으로 액세스한 정보를 검토하세요.
+ IAM 역할의 경우 역할에 인라인 또는 관리형 정책이 하나 이상 연결되어 있는지 확인합니다.
+ IAM 엔터티(사용자 또는 역할)의 경우 해당 엔터티의 사용 권한에 영향을 줄 수 있는 다른 정책 유형을 검토합니다. 여기에는 리소스 기반 정책, 액세스 제어 목록, AWS Organizations 정책, IAM 권한 경계 또는 세션 정책이 있습니다. 자세한 내용은 [정책 유형](access_policies.md#access_policy-types) 또는 [단일 계정 내 요청에 대한 정책 평가](reference_policies_evaluation-logic_policy-eval-basics.md) 섹션을 참조하세요.
+ IAM 정책의 경우 지정된 관리형 정책이 하나 이상의 사용자, 멤버가 있는 그룹 또는 역할에 연결되어 있는지 확인합니다.
+ AWS Organizations 엔터티(루트, OU 또는 계정)의 경우 AWS Organizations 관리 계정 자격 증명을 사용하여 로그인되어 있는지 확인합니다.
+ [조직 루트에서 SCP가 활성화](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies.html#enable_policies_on_root)되어 있는지 확인합니다.
+ 마지막으로 액세스한 작업 정보는 [IAM 작업에서 마지막으로 액세스한 정보와 관련된 서비스 및 작업](access_policies_last-accessed-action-last-accessed.md)에 설치된 작업에만 사용할 수 있습니다.

변경을 수행할 때 IAM 콘솔 보고서에 작업이 나타날 때까지 최소 4시간을 기다립니다. AWS CLI 또는 AWS API를 사용하는 경우 업데이트된 정보를 표시하려면 새 보고서를 생성해야 합니다.

## AWS에서 마지막으로 액세스한 정보를 추적하는 위치
<a name="last-accessed_tracking-period"></a>

AWS는 표준 AWS 리전에 대해 마지막으로 액세스한 정보를 수집합니다. AWS에서 리전을 추가하면 AWS에서 각 리전의 정보 추적을 시작한 날짜와 함께 해당 리전이 다음 테이블에 추가됩니다.
+ **서비스 정보** - 서비스 추적 기간은 최소 400일이지만, 해당 리전에서 지난 400일 이내에 이 기능 추적을 시작한 경우 400일보다 더 짧습니다.
+ **작업 정보** - Amazon S3 관리 작업에 대한 추적 기간은 2020년 4월 12일에 시작되었습니다. Amazon EC2, IAM 및 Lambda 관리 작업에 대한 추적 기간은 2021년 4월 7일에 시작되었습니다. 다른 모든 서비스의 관리 작업에 대한 추적 기간은 2023년 5월 23일에 시작되었습니다. 리전의 추적 날짜가 2023년 5월 23일 이후인 경우 작업에서 마지막으로 액세스한 해당 리전의 정보는 이후 날짜로 시작됩니다.


| 리전 이름 | 리전 | 추적 시작 날짜 | 
| --- | --- | --- | 
| 미국 동부(오하이오) | us-east-2 | 2017년 10월 27일 | 
| 미국 동부(버지니아 북부) | us-east-1 | 2015년 10월 1일 | 
| 미국 서부(캘리포니아 북부) | us-west-1 | 2015년 10월 1일 | 
| 미국 서부(오리건) | us-west-2 | 2015년 10월 1일 | 
| 아프리카(케이프타운) | af-south-1 | 2020년 4월 22일 | 
| 아시아 태평양(홍콩) | ap-east-1 | 2019년 4월 24일 | 
| 아시아 태평양(하이데라바드) | ap-south-2 | 2022년 11월 22일 | 
| 아시아 태평양(자카르타) | ap-southeast-3 | 2021년 12월 13일 | 
| 아시아 태평양(멜버른) | ap-southeast-4 | 2023년 1월 23일 | 
| 아시아 태평양(뭄바이) | ap-south-1 | 2016년 6월 27일 | 
| 아시아 태평양(오사카) | ap-northeast-3 | 2018년 2월 11일 | 
| 아시아 태평양(서울) | ap-northeast-2 | 2016년 1월 6일 | 
| 아시아 태평양(싱가포르) | ap-southeast-1 | 2015년 10월 1일 | 
| 아시아 태평양(시드니) | ap-southeast-2 | 2015년 10월 1일 | 
| 아시아 태평양(도쿄) | ap-northeast-1 | 2015년 10월 1일 | 
| 캐나다(중부) | ca-central-1 | 2017년 10월 28일 | 
| 유럽(프랑크푸르트) | eu-central-1 | 2015년 10월 1일 | 
| 유럽(아일랜드) | eu-west-1 | 2015년 10월 1일 | 
| Europe (London) | eu-west-2 | 2017년 10월 28일 | 
| 유럽(밀라노) | eu-south-1 | 2020년 4월 28일 | 
| 유럽(파리) | eu-west-3 | 2017년 12월 18일 | 
| 유럽(스페인) | eu-south-2 | 2022년 11월 15일 | 
| 유럽(스톡홀름) | eu-north-1 | 2018년 12월 12일 | 
| 유럽(취리히) | eu-central-2 | 2022년 11월 8일 | 
| 이스라엘(텔아비브) | il-central-1 | 2023년 8월 1일 | 
| 중동(바레인) | me-south-1 | 2019년 7월 29일 | 
| 중동(UAE) | me-central-1 | 2022년 8월 30일 | 
| 남아메리카(상파울루) | sa-east-1 | 2015년 12월 11일 | 
| AWS GovCloud(미국 동부) | us-gov-east-1 | 2023년 7월 1일 | 
| AWS GovCloud(미국 서부) | us-gov-west-1 | 2023년 7월 1일 | 

앞의 테이블에 나와 있지 않은 리전은 마지막으로 액세스한 정보를 아직 제공하지 않습니다.

AWS 리전은 AWS 리소스를 지리적 영역에 모아 놓은 것입니다. 리전은 파티션으로 그룹화됩니다. 표준 리전은 `aws` 파티션에 속하는 리전입니다. 여러 파티션에 대한 자세한 내용은 AWS 일반 참조의 [Amazon 리소스 이름(ARN) 형식](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arns-syntax)을 참조하십시오. 리전에 대한 자세한 내용은 AWS 일반 참조의 [AWS 지역 정보](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#region-what-is)를 참조하십시오.

# IAM에 대해 마지막으로 액세스한 정보 보기
<a name="access_policies_last-accessed-view-data"></a>

AWS Management Console, AWS CLI 또는 AWS API를 사용하여 IAM에 대해 마지막으로 액세스한 정보를 볼 수 있습니다. 마지막으로 액세스한 정보가 표시되는 [서비스 및 해당 작업의 목록](access_policies_last-accessed-action-last-accessed.md)을 참조하세요. 마지막으로 액세스한 정보에 대한 자세한 내용은 [마지막으로 액세스한 정보를 사용하여 AWS에서 권한 재정의](access_policies_last-accessed.md) 섹션을 참조하세요.

IAM에서 다음 리소스 유형에 대한 정보를 볼 수 있습니다. 각각의 경우 정보에는 지정된 보고 기간 동안 허용된 서비스가 포함됩니다.
+ **사용자** - 사용자가 허용된 각 서비스에 액세스하려고 시도한 마지막 시간을 표시합니다.
+ **사용자 그룹** - 사용자 그룹 멤버가 허용된 각 서비스에 액세스하려고 시도한 마지막 시간에 대한 정보를 표시합니다. 또한 이 보고서에는 액세스를 시도한 총 멤버 수가 포함됩니다.
+ **역할** - 해당 역할이 허용된 각 서비스에 액세스하려고 시도한 마지막 시간을 표시합니다.
+ **정책** - 사용자 또는 역할이 허용된 각 서비스에 액세스하려고 시도한 마지막 시간에 대한 정보를 표시합니다. 또한 이 보고서에는 액세스를 시도한 총 엔터티 수가 포함됩니다.

**참고**  
IAM의 리소스에 대한 액세스 정보를 보려면 먼저 보고 기간, 보고된 엔터티 및 정보에 대해 평가된 정책 유형을 이해해야 합니다. 자세한 내용은 [마지막으로 액세스한 정보에 대해 알아야 할 사항](access_policies_last-accessed.md#access_policies_last-accessed-know) 섹션을 참조하세요.

## IAM에 대한 정보 보기(콘솔)
<a name="access_policies_last-accessed-viewing"></a>

IAM 콘솔의 **마지막 액세스** 탭에서 IAM에 대해 마지막으로 액세스한 정보를 볼 수 있습니다.

**IAM에 대한 정보를 보려면(콘솔)**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 탐색 창에서 **사용자 그룹**, **사용자**, **역할** 또는 **정책**을 선택합니다.

1. 사용자, 사용자 그룹, 역할 또는 정책 이름을 선택하여 해당 **요약** 페이지를 열고 **마지막 액세스** 탭을 선택합니다. 선택한 리소스를 기반으로 다음 정보를 확인합니다.
   + **사용자 그룹** - 사용자 그룹 멤버가 액세스할 수 있는 서비스 목록을 봅니다. 또한 멤버가 서비스에 마지막으로 액세스한 시기, 사용한 사용자 그룹 정책 및 요청한 사용자 그룹 멤버를 볼 수 있습니다. 정책의 이름을 선택하여 정책이 관리형 정책인지 아니면 인라인 사용자 그룹 정책인지 확인합니다. 사용자 그룹 멤버의 이름을 선택하여 사용자 그룹의 모든 멤버를 확인하고 마지막으로 서비스에 액세스한 시간을 확인합니다.
   + **사용자** - 사용자가 액세스할 수 있는 서비스 목록을 봅니다. 또한 서비스에 마지막으로 액세스한 시기 및 사용한 정책을 볼 수도 있습니다. 정책의 이름을 선택하여 정책이 관리형 정책인지, 인라인 사용자 정책인지, 아니면 사용자 그룹의 인라인 정책인지 확인합니다.
   + **역할** - 역할이 액세스할 수 있는 서비스 목록, 서비스에 마지막으로 액세스한 역할 및 사용된 정책 목록을 표시합니다. 정책의 이름을 선택하여 정책이 관리형 정책인지 아니면 인라인 역할 정책인지 확인합니다.
   + **정책** - 정책에서 허용된 작업이 있는 서비스 목록을 봅니다. 서비스에 액세스하는 데 정책이 마지막으로 사용된 시기와 해당 정책을 사용한 엔터티(사용자 또는 역할)도 볼 수 있습니다. 그 **마지막 액세스** 날짜에는 다른 정책을 통해 이 정책에 대한 액세스 권한이 부여된 시기도 포함됩니다. 엔터티의 이름을 선택하여 어떤 엔터티에 이 정책이 연결되어 있는지 그리고 마지막으로 서비스에 액세스한 시간을 확인합니다.

1. 테이블의 **서비스** 열을 선택하고 [마지막으로 액세스한 작업 정보가 포함된 서비스 중 하나](access_policies_last-accessed-action-last-accessed.md)의 이름을 선택하여 IAM 엔터티가 액세스하려고 시도한 관리 작업 목록을 확인합니다. 사용자가 마지막으로 작업을 수행하려고 시도한 시점을 보여주는 AWS 리전 및 타임스탬프를 볼 수 있습니다.

1. **마지막으로 액세스한 작업 정보가 포함된 서비스**의 서비스 및 관리 작업에 대해 [마지막 액세스](access_policies_last-accessed-action-last-accessed.md) 열이 표시됩니다. 이 열에 반환되는 다음과 같은 가능한 결과를 검토합니다. 이러한 결과는 서비스나 작업이 허용되는지, 액세스되는지, 마지막으로 액세스한 정보에 대해 AWS가 추적하는지 여부에 따라 달라집니다.  
**<number of>일 전**  
추적 기간에 서비스 또는 작업이 사용된 이후의 일 수입니다. 서비스에 대한 추적 기간은 지난 400일입니다. Amazon S3 작업에 대한 추적 기간은 2020년 4월 12일에 시작되었습니다. Amazon EC2, IAM 및 Lambda 작업에 대한 추적 기간은 2021년 4월 7일에 시작되었습니다. 다른 모든 서비스의 추적 기간은 2023년 5월 23일에 시작되었습니다. 각 AWS 리전의 추적 시작 날짜에 대한 자세한 내용은 [AWS에서 마지막으로 액세스한 정보를 추적하는 위치](access_policies_last-accessed.md#last-accessed_tracking-period) 섹션을 참조하세요.  
**추적 기간에 액세스하지 않음**  
추적된 서비스 또는 작업은 추적 기간 동안 엔터티에서 사용되지 않았습니다.

   목록에 나타나지 않는 작업에 대한 권한이 있을 수 있습니다. 작업에 대한 추적 정보가 현재 AWS에 포함되지 않는 경우 이 문제가 발생할 수 있습니다. 추적 정보가 없는 경우 권한을 결정해서는 안 됩니다. 대신 이 정보를 사용하여 최소 권한 부여에 대한 전반적인 전략을 알리고 지원하는 것이 좋습니다. 정책을 확인하여 액세스 수준이 적절한지 확인합니다.

## IAM에 대한 정보 보기(AWS CLI)
<a name="access_policies_last-accessed-viewing-cli"></a>

AWS CLI를 사용하여 AWS 서비스 및 Amazon S3, Amazon EC2, IAM 및 Lambda 작업에 액세스하기 위해 IAM 리소스가 사용된 마지막 시간에 대한 정보를 검색할 수 있습니다. IAM 리소스는 사용자, 사용자 그룹, 역할 또는 정책입니다.

**IAM에 대한 정보를 보려면(AWS CLI)**

1. 보고서를 생성합니다. 요청에는 보고서가 필요한 IAM 리소스(사용자, 사용자 그룹, 역할 또는 정책)의 ARN이 포함되어야 합니다. 보고서에 생성할 세부 수준을 지정하여 서비스 또는 서비스 및 작업 모두에 대한 액세스 세부 정보를 볼 수 있습니다. 이 요청은 작업이 완료될 때까지 `get-service-last-accessed-details` 및 `get-service-last-accessed-details-with-entities` 작업에서 `job-status`를 모니터링하기 위해 사용할 수 있는 `job-id`를 반환합니다.
   + [aws iam generate-service-last-accessed-details](https://docs.aws.amazon.com/cli/latest/reference/iam/generate-service-last-accessed-details.html)

1. 이전 단계의 `job-id` 파라미터를 사용하여 보고서에 대한 세부 정보를 검색합니다.
   + [aws iam get-service-last-accessed-details](https://docs.aws.amazon.com/cli/latest/reference/iam/get-service-last-accessed-details.html)

   이 작업은 `generate-service-last-accessed-details` 작업에서 요청한 리소스 유형 및 세부 수준에 따라 다음 정보를 반환합니다.
   + **사용자** - 지정한 사용자가 액세스할 수 있는 서비스 목록을 반환합니다. 각 서비스에 대해 작업은 사용자의 마지막 시도 날짜 및 시간과 사용자의 ARN을 반환합니다.
   + **사용자 그룹** - 사용자 그룹에 연결된 정책을 사용하여 지정된 사용자 그룹의 멤버가 액세스할 수 있는 서비스 목록을 반환합니다. 각 서비스에 대해 작업은 사용자 그룹 멤버가 마지막으로 시도한 날짜와 시간을 반환합니다. 또한 해당 사용자의 ARN과 서비스에 액세스하려고 시도한 사용자 그룹 멤버의 총 수를 반환합니다. 모든 멤버 목록을 반환하려면 [GetServiceLastAccessedDetailsWithEntities](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLastAccessedDetailsWithEntities.html) 작업을 사용합니다.
   + **역할** - 지정한 역할이 액세스할 수 있는 서비스 목록을 반환합니다. 각 서비스에 대해 작업은 역할의 마지막 시도 날짜 및 시간과 역할의 ARN을 반환합니다.
   + **정책** - 지정된 정책으로 액세스할 수 있는 서비스 목록을 반환합니다. 각 서비스에 대해 작업은 엔터티(사용자 또는 역할)가 정책을 사용하여 마지막으로 서비스에 액세스하려고 시도한 날짜와 시간을 반환합니다. 또한 엔터티의 ARN과 액세스를 시도한 엔터티의 총 수를 반환합니다.

1. 특정 서비스에 액세스하기 위해 사용자 그룹 또는 정책 권한을 사용하는 엔터티에 대해 자세히 알아봅니다. 이 작업은 각 엔터티의 ARN, ID, 이름, 경로, 유형(사용자 또는 역할) 및 마지막으로 서비스에 액세스하려고 시도한 엔터티의 목록을 반환합니다. 사용자와 역할에 대해 이 작업을 사용할 수도 있지만 해당 엔터티에 대한 정보만 반환합니다.
   + [aws iam get-service-last-accessed-details-with-entities](https://docs.aws.amazon.com/cli/latest/reference/iam/get-service-last-accessed-details-with-entities.html)

1. 특정 서비스에 액세스하기 위해 자격 증명(사용자, 사용자 그룹 또는 역할)이 사용하는 자격 기반 정책에 대해 자세히 알아봅니다. 자격 증명 및 서비스를 지정한 경우 이 작업은 해당 자격 증명이 지정된 서비스에 액세스하는 데 사용할 수 있는 권한 정책 목록을 반환합니다. 이 작업은 정책의 현재 상태를 제공하며 생성된 보고서에 의존하지 않습니다. 또한 리소스 기반 정책, 액세스 제어 목록, AWS Organizations 정책, IAM 권한 경계 또는 세션 정책 등의 다른 정책 유형을 반환하지 않습니다. 자세한 내용은 [정책 유형](access_policies.md#access_policy-types) 또는 [단일 계정 내 요청에 대한 정책 평가](reference_policies_evaluation-logic_policy-eval-basics.md) 섹션을 참조하세요.
   + [aws iam list-policies-granting-service-access](https://docs.aws.amazon.com/cli/latest/reference/iam/list-policies-granting-service-access.html)

## IAM에 대한 정보 보기(AWS API)
<a name="access_policies_last-accessed-viewing-api"></a>

AWS를 사용하여 AWS API 서비스 및 Amazon S3, Amazon EC2, IAM 및 Lambda 작업에 액세스하기 위해 IAM 리소스가 사용된 마지막 시간에 대한 정보를 검색할 수 있습니다. IAM 리소스는 사용자, 사용자 그룹, 역할 또는 정책입니다. 보고서에 생성할 세부 수준을 지정하여 서비스 또는 서비스 및 작업 모두에 대한 세부 정보를 볼 수 있습니다.

**IAM에 대한 정보를 보려면(AWS API)**

1. 보고서를 생성합니다. 요청에는 보고서가 필요한 IAM 리소스(사용자, 사용자 그룹, 역할 또는 정책)의 ARN이 포함되어야 합니다. 작업이 완료될 때까지 `GetServiceLastAccessedDetails` 및 `GetServiceLastAccessedDetailsWithEntities` 작업에서 `JobStatus`를 모니터링하기 위해 사용할 수 있는 `JobId`를 반환합니다.
   + [GenerateServiceLastAccessedDetails](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GenerateServiceLastAccessedDetails.html)

1. 이전 단계의 `JobId` 파라미터를 사용하여 보고서에 대한 세부 정보를 검색합니다.
   + [GetServiceLastAccessedDetails](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLastAccessedDetails.html)

   이 작업은 `GenerateServiceLastAccessedDetails` 작업에서 요청한 리소스 유형 및 세부 수준에 따라 다음 정보를 반환합니다.
   + **사용자** - 지정한 사용자가 액세스할 수 있는 서비스 목록을 반환합니다. 각 서비스에 대해 작업은 사용자의 마지막 시도 날짜 및 시간과 사용자의 ARN을 반환합니다.
   + **사용자 그룹** - 사용자 그룹에 연결된 정책을 사용하여 지정된 사용자 그룹의 멤버가 액세스할 수 있는 서비스 목록을 반환합니다. 각 서비스에 대해 작업은 사용자 그룹 멤버가 마지막으로 시도한 날짜와 시간을 반환합니다. 또한 해당 사용자의 ARN과 서비스에 액세스하려고 시도한 사용자 그룹 멤버의 총 수를 반환합니다. 모든 멤버 목록을 반환하려면 [GetServiceLastAccessedDetailsWithEntities](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLastAccessedDetailsWithEntities.html) 작업을 사용합니다.
   + **역할** - 지정한 역할이 액세스할 수 있는 서비스 목록을 반환합니다. 각 서비스에 대해 작업은 역할의 마지막 시도 날짜 및 시간과 역할의 ARN을 반환합니다.
   + **정책** - 지정된 정책으로 액세스할 수 있는 서비스 목록을 반환합니다. 각 서비스에 대해 작업은 엔터티(사용자 또는 역할)가 정책을 사용하여 마지막으로 서비스에 액세스하려고 시도한 날짜와 시간을 반환합니다. 또한 엔터티의 ARN과 액세스를 시도한 엔터티의 총 수를 반환합니다.

1. 특정 서비스에 액세스하기 위해 사용자 그룹 또는 정책 권한을 사용하는 엔터티에 대해 자세히 알아봅니다. 이 작업은 각 엔터티의 ARN, ID, 이름, 경로, 유형(사용자 또는 역할) 및 마지막으로 서비스에 액세스하려고 시도한 엔터티의 목록을 반환합니다. 사용자와 역할에 대해 이 작업을 사용할 수도 있지만 해당 엔터티에 대한 정보만 반환합니다.
   + [GetServiceLastAccessedDetailsWithEntities](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLastAccessedDetailsWithEntities.html)

1. 특정 서비스에 액세스하기 위해 자격 증명(사용자, 사용자 그룹 또는 역할)이 사용하는 자격 기반 정책에 대해 자세히 알아봅니다. 자격 증명 및 서비스를 지정한 경우 이 작업은 해당 자격 증명이 지정된 서비스에 액세스하는 데 사용할 수 있는 권한 정책 목록을 반환합니다. 이 작업은 정책의 현재 상태를 제공하며 생성된 보고서에 의존하지 않습니다. 또한 리소스 기반 정책, 액세스 제어 목록, AWS Organizations 정책, IAM 권한 경계 또는 세션 정책 등의 다른 정책 유형을 반환하지 않습니다. 자세한 내용은 [정책 유형](access_policies.md#access_policy-types) 또는 [단일 계정 내 요청에 대한 정책 평가](reference_policies_evaluation-logic_policy-eval-basics.md) 섹션을 참조하세요.
   + [ListPoliciesGrantingServiceAccess](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPoliciesGrantingServiceAccess.html)

# AWS Organizations에 대해 마지막으로 액세스한 정보 보기
<a name="access_policies_last-accessed-view-data-orgs"></a>

IAM 콘솔, AWS CLI 또는 AWS API를 사용하여 AWS Organizations에 대해 마지막으로 액세스한 서비스 정보를 볼 수 있습니다. 데이터, 필요 권한, 문제 해결, 지원되는 리전에 대한 중요 정보는 [마지막으로 액세스한 정보를 사용하여 AWS에서 권한 재정의](access_policies_last-accessed.md) 섹션을 참조하세요.

AWS Organizations 관리 계정 자격 증명을 사용하여 IAM 콘솔에 로그인하면 조직의 엔터티에 대한 정보를 볼 수 있습니다. AWS Organizations 엔터티에는 조직 루트, 조직 단위(OU) 및 계정이 포함됩니다. 또한 IAM 콘솔을 사용하여 조직의 모든 서비스 제어 정책(SCP)에 대한 정보를 볼 수 있습니다. IAM에는 엔터티에 적용되는 SCP가 허용하는 서비스의 목록이 표시됩니다. 각 서비스에 대해 선택한 AWS Organizations 엔터티 또는 엔터티 하위에 대한 가장 최근의 계정 활동 정보를 볼 수 있습니다.

관리 계정 자격 증명으로 AWS CLI 또는 AWS API를 사용하면 조직의 모든 엔터티 또는 정책에 대한 보고서를 생성할 수 있습니다. 엔터티에 대한 프로그래밍 방식 보고서는 SCP가 엔터티에 적용되도록 허용하는 서비스의 목록을 포함합니다. 각 서비스에 대해, 보고서는 지정된 AWS Organizations 엔터티 또는 엔터티 하위 트리의 계정에 대한 가장 최근의 활동을 포함합니다.

정책에 대한 프로그래밍 방식 보고서를 생성할 때 AWS Organizations 엔터티를 지정해야 합니다. 이 보고서는 지정된 SCP가 허용하는 서비스의 목록을 포함합니다. 각 서비스에 대해, 해당 정책이 권한을 부여한 엔터티 또는 엔터티 하위의 가장 최근 계정 활동이 포함됩니다. 자세한 내용은 [aws iam generate-organizations-access-report](https://docs.aws.amazon.com/cli/latest/reference/iam/generate-organizations-access-report.html) 또는 [GenerateOrganizationsAccessReport](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GenerateOrganizationsAccessReport.html)를 참조하세요.

보고서를 보려면 관리 계정 요건 및 정보, 보고 주기, 보고된 엔터티 및 평가된 정책 유형을 이해하고 있어야 합니다. 자세한 내용은 [마지막으로 액세스한 정보에 대해 알아야 할 사항](access_policies_last-accessed.md#access_policies_last-accessed-know) 섹션을 참조하세요.

## AWS Organizations 엔터티 경로 이해
<a name="access_policies_last-accessed-viewing-orgs-entity-path"></a>

AWS CLI 또는 AWS API를 사용하여 AWS Organizations 액세스 보고서를 생성하는 경우 엔터티 경로를 지정해야 합니다. 경로는 AWS Organizations 엔터티 구조의 텍스트 표현입니다.

조직의 알려진 구조를 사용하여 엔터티 경로를 작성할 수 있습니다. 예를 들어 AWS Organizations에 다음과 같은 조직 구조가 있다고 가정합니다.

![\[조직 경로 구조\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/ou-path-diagram.png)


**Dev Managers(개발자 관리자)** OU의 경로는 조직의 ID, 루트 및 경로에 있는 모든 OU(해당 OU 포함)를 사용하여 작성됩니다.

```
o-a1b2c3d4e5/r-f6g7h8i9j0example/ou-ghi0-awsccccc/ou-jkl0-awsddddd/
```

**프로덕션** OU의 계정 경로는 조직의 ID, 루트, OU 및 계정 번호를 사용하여 작성됩니다.

```
o-a1b2c3d4e5/r-f6g7h8i9j0example/ou-abc0-awsaaaaa/111111111111/
```

**참고**  
조직 ID는 전역적으로 고유하지만 OU ID와 루트 ID는 조직 내에서만 고유합니다. 즉, 두 조직이 동일한 조직 ID를 공유하지 않습니다. 그러나 다른 조직에는 사용자 ID와 동일한 OU 또는 루트가 있을 수 있습니다. OU 또는 루트를 지정할 때는 항상 조직 ID를 포함하는 것이 좋습니다.

## AWS Organizations에 대한 정보 보기(콘솔)
<a name="access_policies_last-accessed-viewing-orgs"></a>

IAM 콘솔을 사용하여 루트, OU, 계정 또는 정책에 대해 마지막으로 액세스한 서비스 정보를 볼 수 있습니다.

**루트에 대한 정보를 보려면(콘솔)**

1. AWS Organizations 관리 계정 자격 증명을 사용해 AWS Management Console에 로그인하고 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. **Access reports(보고서 액세스)** 섹션 아래의 탐색 창에서 **Organization activity(조직 활동)**를 선택합니다.

1. **조직 활동** 페이지에서 **루트**를 선택합니다.

1. **Details and activity(세부 정보 및 활동)** 탭에서 **Service access report(서비스 액세스 보고서)** 섹션을 봅니다. 정보에는 루트에 직접 연결된 정책이 허용하는 서비스의 목록이 포함됩니다. 이 정보는 서비스에 마지막으로 액세스한 계정 및 그 시간을 보여줍니다. 서비스에 액세스한 보안 주체에 대한 세부 정보를 보려면 해당 계정의 관리자로 로그인하고 [IAM에서 마지막으로 액세스한 서비스 정보를 봅니다](access_policies_last-accessed-view-data.md).

1. **연결된 SCP(Attached SCPs)** 탭을 선택하여 루트에 연결된 서비스 제어 정책(SCP)의 목록을 봅니다. IAM으로 각 정책이 연결된 대상 엔터티의 수를 볼 수 있습니다. 이 정보를 사용하여 어느 SCP를 검토할지 결정할 수 있습니다.

1. SCP의 이름을 선택하여 해당 정책이 허용하는 모든 서비스를 봅니다. 각 서비스에 대해, 서비스에 마지막으로 액세스한 계정 및 그 시간을 봅니다.

1. **AWS Organizations에서 편집**을 선택하여 추가 세부 정보를 보고 AWS Organizations 콘솔에서 SCP를 편집합니다. 자세한 내용은 *AWS Organizations 사용 설명서*의 [SCP 업데이트](https://docs.aws.amazon.com/organizations/latest/userguide/create-policy.html#update_policy)를 참조하세요.

**OU 또는 계정에 대한 정보를 보려면(콘솔)**

1. AWS Organizations 관리 계정 자격 증명을 사용해 AWS Management Console에 로그인하고 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. **Access reports(보고서 액세스)** 섹션 아래의 탐색 창에서 **Organization activity(조직 활동)**를 선택합니다.

1. **조직 활동** 페이지에서 조직의 구조를 확장합니다. 그런 다음 OU의 이름 또는 관리 계정을 제외하고 보려는 임의의 계정의 이름을 선택합니다.

1. **Details and activity(세부 정보 및 활동)** 탭에서 **Service access report(서비스 액세스 보고서)** 섹션을 봅니다. 정보에는 OU 또는 계정 *및* 모든 해당 상위 항목에 연결된 SCP가 허용하는 서비스의 목록이 포함됩니다. 이 정보는 서비스에 마지막으로 액세스한 계정 및 그 시간을 보여줍니다. 서비스에 액세스한 보안 주체에 대한 세부 정보를 보려면 해당 계정의 관리자로 로그인하고 [IAM에서 마지막으로 액세스한 서비스 정보를 봅니다](access_policies_last-accessed-view-data.md).

1. **연결된 SCP(Attached SCPs)** 탭을 선택하여 OU 또는 계정에 직접 연결된 서비스 제어 정책(SCP)의 목록을 봅니다. IAM으로 각 정책이 연결된 대상 엔터티의 수를 볼 수 있습니다. 이 정보를 사용하여 어느 SCP를 검토할지 결정할 수 있습니다.

1. SCP의 이름을 선택하여 해당 정책이 허용하는 모든 서비스를 봅니다. 각 서비스에 대해, 서비스에 마지막으로 액세스한 계정 및 그 시간을 봅니다.

1. **AWS Organizations에서 편집**을 선택하여 추가 세부 정보를 보고 AWS Organizations 콘솔에서 SCP를 편집합니다. 자세한 내용은 *AWS Organizations 사용 설명서*의 [SCP 업데이트](https://docs.aws.amazon.com/organizations/latest/userguide/create-policy.html#update_policy)를 참조하세요.

**관리 계정에 대한 정보를 보려면(콘솔)**

1. AWS Organizations 관리 계정 자격 증명을 사용해 AWS Management Console에 로그인하고 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. **Access reports(보고서 액세스)** 섹션 아래의 탐색 창에서 **Organization activity(조직 활동)**를 선택합니다.

1. **조직 활동** 페이지에서 조직의 구조를 확장하고 관리 계정의 이름을 선택합니다.

1. **Details and activity(세부 정보 및 활동)** 탭에서 **Service access report(서비스 액세스 보고서)** 섹션을 봅니다. 정보에는 모든 AWS 서비스 목록이 포함됩니다. 관리 계정은 SCP에 의해 제한되지 않습니다. 이 정보는 계정이 서비스에 액세스했는지 여부와 마지막으로 액세스한 시간을 보여줍니다. 서비스에 액세스한 보안 주체에 대한 세부 정보를 보려면 해당 계정의 관리자로 로그인하고 [IAM에서 마지막으로 액세스한 서비스 정보를 봅니다](access_policies_last-accessed-view-data.md).

1. **연결된 SCP(Attached SCPs)** 탭을 선택하여 연결된 SCP가 없음을 확인합니다(해당 계정이 관리 계정이기 때문).

**정책에 대한 정보를 보려면(콘솔)**

1. AWS Organizations 관리 계정 자격 증명을 사용해 AWS Management Console에 로그인하고 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. **Access reports(보고서 액세스)** 섹션 아래의 탐색 창에서 **Service control policies (SCPs)(서비스 제어 정책(SCP))**를 선택합니다.

1. **서비스 제어 정책(SCP)** 페이지에서 조직의 정책 목록을 봅니다. 각 정책이 연결된 대상 엔터티의 수를 볼 수 있습니다.

1. SCP의 이름을 선택하여 해당 정책이 허용하는 모든 서비스를 봅니다. 각 서비스에 대해, 서비스에 마지막으로 액세스한 계정 및 그 시간을 봅니다.

1. **AWS Organizations에서 편집**을 선택하여 추가 세부 정보를 보고 AWS Organizations 콘솔에서 SCP를 편집합니다. 자세한 내용은 *AWS Organizations 사용 설명서*의 [SCP 업데이트](https://docs.aws.amazon.com/organizations/latest/userguide/create-policy.html#update_policy)를 참조하세요.

## AWS Organizations에 대한 정보 보기(AWS CLI)
<a name="access_policies_last-accessed-viewing-orgs-cli"></a>

AWS CLI를 사용하여 AWS Organizations 루트, OU, 계정 또는 정책에 대해 마지막으로 액세스한 서비스 정보를 검색할 수 있습니다.

**AWS Organizations에서 마지막으로 액세스한 서비스 정보를 보려면(AWS CLI)**

1. 필요한 IAM 및 AWS Organizations 권한이 있는 AWS Organizations 관리 계정 자격 증명을 사용하여 루트에 대해 SCP가 활성화되어 있는지 확인합니다. 자세한 내용은 [마지막으로 액세스한 정보에 대해 알아야 할 사항](access_policies_last-accessed.md#access_policies_last-accessed-know) 섹션을 참조하세요.

1. 보고서를 생성합니다. 요청은 보고서를 작성할 AWS Organizations 엔터티(루트, OU 또는 계정)의 경로를 포함해야 합니다. 선택적으로 `organization-policy-id` 파라미터를 포함하여 특정 정책에 대한 보고서를 볼 수 있습니다. 이 명령은 작업이 완료될 때까지 `get-organizations-access-report` 명령에 사용하여 `job-status`를 모니터링하기 위해 사용할 수 있는 `job-id`를 반환합니다.
   + [aws iam generate-organizations-access-report](https://docs.aws.amazon.com/cli/latest/reference/iam/generate-organizations-access-report.html)

1. 이전 단계의 `job-id` 파라미터를 사용하여 보고서에 대한 세부 정보를 검색합니다.
   + [aws iam get-organizations-access-report](https://docs.aws.amazon.com/cli/latest/reference/iam/get-organizations-access-report.html)

   이 명령은 엔터티 멤버가 액세스할 수 있는 서비스의 목록을 반환합니다. 각 서비스에 대해, 계정 멤버에 의한 마지막 시도의 날짜 및 시간과 계정의 엔터티 경로가 반환됩니다. 또한 액세스 가능한 서비스의 총 개수와 액세스되지 않은 서비스의 수도 반환됩니다. 선택적으로 `organizations-policy-id` 파라미터를 지정한 경우 액세스 가능한 서비스는 지정된 정책이 허용하는 서비스입니다.

## AWS Organizations에 대한 정보 보기(AWS API)
<a name="access_policies_last-accessed-viewing-orgs-api"></a>

AWS API를 사용하여 AWS Organizations 루트, OU, 계정 또는 정책에 대해 마지막으로 액세스한 서비스 정보를 검색할 수 있습니다.

**AWS Organizations에서 마지막으로 액세스한 서비스 정보를 보려면(AWS API)**

1. 필요한 IAM 및 AWS Organizations 권한이 있는 AWS Organizations 관리 계정 자격 증명을 사용하여 루트에 대해 SCP가 활성화되어 있는지 확인합니다. 자세한 내용은 [마지막으로 액세스한 정보에 대해 알아야 할 사항](access_policies_last-accessed.md#access_policies_last-accessed-know) 섹션을 참조하세요.

1. 보고서를 생성합니다. 요청은 보고서를 작성할 AWS Organizations 엔터티(루트, OU 또는 계정)의 경로를 포함해야 합니다. 선택적으로 `OrganizationsPolicyId` 파라미터를 포함하여 특정 정책에 대한 보고서를 볼 수 있습니다. 이 작업은 작업이 완료될 때까지 `GetOrganizationsAccessReport` 작업에서 `JobStatus`를 모니터링하기 위해 사용할 수 있는 `JobId`를 반환합니다.
   + [GenerateOrganizationsAccessReport](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GenerateOrganizationsAccessReport.html)

1. 이전 단계의 `JobId` 파라미터를 사용하여 보고서에 대한 세부 정보를 검색합니다.
   + [GetOrganizationsAccessReport](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetOrganizationsAccessReport.html)

   이 작업은 엔터티 멤버가 액세스할 수 있는 서비스의 목록을 반환합니다. 각 서비스에 대해, 계정 멤버에 의한 마지막 시도의 날짜 및 시간과 계정의 엔터티 경로가 반환됩니다. 또한 액세스 가능한 서비스의 총 개수와 액세스되지 않은 서비스의 수도 반환됩니다. 선택적으로 `OrganizationsPolicyId` 파라미터를 지정한 경우 액세스 가능한 서비스는 지정된 정책이 허용하는 서비스입니다.

# 마지막으로 액세스한 정보 사용에 대한 예제 시나리오
<a name="access_policies_last-accessed-example-scenarios"></a>

마지막으로 액세스한 정보를 사용하여 IAM 엔터티 또는 AWS Organizations 엔터티에 부여할 권한을 결정할 수 있습니다. 자세한 내용은 [마지막으로 액세스한 정보를 사용하여 AWS에서 권한 재정의](access_policies_last-accessed.md) 섹션을 참조하세요.

**참고**  
IAM 또는 AWS Organizations의 엔터티 또는 정책에 대한 액세스 정보를 보려면 먼저 보고 기간, 보고된 엔터티 및 데이터에 대해 평가된 정책 유형을 이해해야 합니다. 자세한 내용은 [마지막으로 액세스한 정보에 대해 알아야 할 사항](access_policies_last-accessed.md#access_policies_last-accessed-know) 섹션을 참조하세요.

회사에 적합한 액세스 가능성과 최소 권한 간에 적절한 균형을 유지하는 것은 관리자에게 달려 있습니다.

## 정보를 사용하여 IAM 그룹의 권한 축소
<a name="last-accessed-sample-reduce-permissions-group"></a>

마지막으로 액세스한 정보를 사용하여 사용자에게 필요한 서비스만 포함하도록 IAM 그룹 권한을 축소할 수 있습니다. 이 방법은 서비스 수준에서 [최소 권한을 부여](best-practices.md#grant-least-privilege)하는 데 있어 중요한 단계입니다.

예를 들어, Paulo Santos는 Example Corp에 대한 AWS 사용자 권한 정의를 담당하는 관리자입니다. 이 회사는 이제 막 AWS 사용을 시작했으며 소프트웨어 개발 팀은 아직 어떤 AWS 서비스를 사용할지 정의하지 않았습니다. Paulo는 팀에게 필요한 서비스에만 액세스할 수 있는 권한을 부여하려고 하지만, 아직 정의되지 않았기 때문에 일시적으로 파워 사용자 권한을 부여합니다. 그런 다음 마지막으로 액세스한 정보를 사용하여 그룹 권한을 축소합니다.

Paulo는 다음 JSON 텍스트를 사용하여 `ExampleDevelopment` 관리 정책을 만듭니다. 그런 다음 이 정책을 `Development` 그룹에 연결하고 모든 개발자를 그룹에 추가합니다.

**참고**  
Paulo의 고급 사용자가 일부 서비스 및 기능을 사용하려면 `iam:CreateServiceLinkedRole` 권한이 필요할 수 있습니다. 이 권한을 추가하면 사용자가 서비스 연결 역할을 생성할 수 있게 됩니다. Paulo는 파워 사용자에 대한 이 위험을 수락합니다.

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

****  

```
{

    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "FullAccessToAllServicesExceptPeopleManagement",
            "Effect": "Allow",
            "NotAction": [
                "iam:*",
                "organizations:*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "RequiredIamAndOrgsActions",
            "Effect": "Allow",
            "Action": [
                "iam:CreateServiceLinkedRole",
                "iam:ListRoles",
                "organizations:DescribeOrganization"
            ],
            "Resource": "*"
        }
    ]
}
```

------

Paulo는 90일 후에 AWS Management Console을 사용하여 `Development` 그룹에 대해 [서비스에서 마지막으로 액세스한 정보](access_policies_last-accessed-view-data.md#access_policies_last-accessed-viewing)를 보기로 결정합니다. 그는 그룹 멤버가 액세스한 서비스 목록을 확인합니다. 그는 사용자가 지난주에 5개의 서비스, 즉 AWS CloudTrail, Amazon CloudWatch Logs, Amazon EC2, AWS KMS 및 Amazon S3에 액세스했다는 사실을 알게 되었습니다. 그들은 AWS를 처음 평가할 때 몇 가지 다른 서비스에 액세스했지만 그 이후에는 액세스하지 않았습니다.

Paulo는 5가지 서비스와 필요한 IAM 및 AWS Organizations 작업만 포함하도록 정책 권한을 줄이기로 결정합니다. 그는 다음 JSON 텍스트를 사용하여 `ExampleDevelopment` 정책을 편집합니다.

**참고**  
Paulo의 고급 사용자가 일부 서비스 및 기능을 사용하려면 `iam:CreateServiceLinkedRole` 권한이 필요할 수 있습니다. 이 권한을 추가하면 사용자가 서비스 연결 역할을 생성할 수 있게 됩니다. Paulo는 파워 사용자에 대한 이 위험을 수락합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "FullAccessToListedServices",
            "Effect": "Allow",
            "Action": [
                "s3:*",
                "kms:*",
                "cloudtrail:*",
                "logs:*",
                "ec2:*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "RequiredIamAndOrgsActions",
            "Effect": "Allow",
            "Action": [
                "iam:CreateServiceLinkedRole",
                "iam:ListRoles",
                "organizations:DescribeOrganization"
            ],
            "Resource": "*"
        }
    ]
}
```

------

권한을 더 줄이기 위해 Paulo는 AWS CloudTrail **이벤트 기록**에서 계정의 이벤트를 확인할 수 있습니다. 여기서 그는 개발자가 필요로 하는 작업과 리소스만 포함하도록 정책 권한을 줄이기 위해 사용할 수 있는 자세한 이벤트 정보를 볼 수 있습니다. 자세한 내용은 *AWS CloudTrail 사용 설명서*의 [CloudTrail 콘솔에서 CloudTrail 이벤트 보기](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events-console.html)를 참조하세요.

## 정보를 사용하여 IAM 사용자의 사용 권한 축소
<a name="access_policies_last-accessed-reduce-permissions-users"></a>

마지막으로 액세스한 정보를 사용하여 개별 IAM 사용자의 권한을 축소할 수 있습니다.

예를 들어 Martha Rivera는 회사 직원들의 AWS 권한이 초과되지 않도록 관리하는 IT 관리자입니다. 정기 보안 검사의 일환으로 Martha는 모든 IAM 사용자의 권한을 검토합니다. 이러한 사용자 가운데는 애플리케이션 개발자로, 이전에 보안 엔지니어의 역할을 담당했던 Nikhil Jayashankar 씨도 있습니다. 작업 요구 사항의 변화로 인해 Nikhil은 `app-dev` 그룹과 `security-team` 그룹의 멤버입니다. 새로운 직무와 관련된 `app-dev` 그룹은 Amazon EC2, Amazon EBS, Auto Scaling, Amazon S3, Route 53 및 Elastic Transcoder를 포함한 여러 서비스에 대한 권한을 부여합니다. 이전 직무와 관련된 `security-team` 그룹은 IAM 및 CloudTrail에 대한 권한을 부여합니다.

관리자인 Martha는 IAM 콘솔에 로그인하고 **사용자**를 선택한 다음 이름 `nikhilj`를 선택하고 **마지막 액세스** 탭을 선택합니다.

Martha는 **마지막 액세스** 열을 검토하여 Nikhil이 최근에 IAM, CloudTrail, Route 53, Amazon Elastic Transcoder 및 기타 여러 AWS 서비스에 액세스하지 않았다는 것을 확인합니다. Nikhil은 Amazon S3 액세스했습니다. Martha는 서비스 목록에서 **S3**를 선택하여 Nikhil이 지난 2주 동안 일부 Amazon S3 `List` 작업을 수행했음을 알게 됩니다. 회사 내에서 Martha는 Nikhil이 더 이상 내부 보안 팀의 멤버가 아니므로 업무적으로 IAM 및 CloudTrail에 액세스할 필요가 없다는 것을 확인합니다.

Martha는 이제 마지막으로 액세스한 서비스 및 작업 정보에 대해 조치를 취할 준비가 되었습니다. 그러나 이전 예제의 그룹과 달리 `nikhilj`과 같은 IAM 사용자는 여러 정책을 준수하고 여러 그룹의 멤버가 될 수 있습니다. Martha는 `nikhilj` 또는 다른 그룹 멤버의 액세스를 실수로 방해하지 않도록 주의해서 진행해야 합니다. Nikhil에게 부여할 액세스 권한의 종류뿐만 아니라, 이러한 권한을 받는 *방법*을 결정해야 합니다.

Martha는 **권한** 탭을 선택합니다. 이 탭에서 `nikhilj`에 직접 연결된 정책 및 그룹을 통해 연결된 정책을 확인합니다. 그녀는 각 정책을 확장하고 Nikhil이 사용하지 않는 서비스에 대한 액세스를 허용하는 정책을 알아보기 위해 정책 요약을 확인합니다.
+ IAM - `IAMFullAccess` AWS 관리형 정책은 `nikhilj`에 직접 연결되고 `security-team` 그룹에 연결됩니다.
+ CloudTrail - `AWSCloudTrailReadOnlyAccess` AWS 관리형 정책은 `security-team` 그룹에 연결됩니다.
+ Route 53 - `App-Dev-Route53` 고객 관리형 정책은 `app-dev` 그룹에 연결됩니다.
+ Elastic Transcoder - `App-Dev-ElasticTranscoder` 고객 관리형 정책은 `app-dev` 그룹에 연결됩니다.

Martha는 `nikhilj`에 직접 연결된 `IAMFullAccess` AWS 관리형 정책을 제거하기로 결정했습니다. 또한 `security-team` 그룹에 대한 Nikhil의 멤버십을 제거합니다. 이 두 작업은 IAM 및 CloudTrail에 대한 불필요한 액세스를 제거합니다.

Route 53 및 Elastic Transcoder에 액세스할 수 있는 Nikhil의 권한은 `app-dev` 그룹에 의해 부여됩니다. Nikhil은 이러한 서비스를 사용하지 않지만 그룹의 다른 멤버에게는 필요할 수 있습니다. Martha는 `app-dev` 그룹에 대해 마지막으로 액세스한 정보를 검토하고 여러 멤버가 최근에 Route 53 및 Amazon S3에 액세스했음을 알게 됩니다. 그러나 작년에는 Elastic Transcoder에 액세스한 멤버가 없습니다. 그녀는 그룹에서 `App-Dev-ElasticTranscoder` 고객 관리형 정책을 제거합니다.

그런 다음 Martha는 고객 관리형 정책인 `App-Dev-ElasticTranscoder`에 대해 마지막으로 액세스한 정보를 검토합니다. 그녀는 정책이 다른 IAM 자격 증명에 연결되지 않았다는 것을 알게 됩니다. 그녀는 회사 내에서 앞으로 해당 정책이 필요하지 않다는 것을 조사한 다음 삭제합니다.

## IAM 리소스를 삭제하기 전에 정보 사용
<a name="last-accessed-sample-delete-resources"></a>

IAM 리소스를 삭제하기 전에 마지막으로 액세스한 정보를 사용하여 마지막으로 리소스를 사용한 이후로 일정 시간이 경과했는지 확인할 수 있습니다. 이는 사용자, 그룹, 역할 및 정책에 적용됩니다. 이러한 작업에 대한 자세한 내용은 다음 주제를 참조하세요.
+ **IAM 사용자** - [IAM 사용자 제거 또는 비활성화](id_users_remove.md)
+ **그룹** - [IAM 그룹 삭제](id_groups_manage_delete.md)
+ **역할** - [역할 또는 인스턴스 프로파일 삭제](id_roles_manage_delete.md)
+ **정책** - [IAM 정책 삭제(이로 인해 자격 증명에서 정책이 분리됨)](access_policies_manage-delete.md)

## IAM 정책을 편집하기 전에 정보 사용
<a name="last-accessed-sample-edit-policies"></a>

해당 리소스에 영향을 미치는 정책을 편집하기 전에 IAM 자격 증명(사용자, 그룹 또는 역할) 또는 IAM 정책에 대해 마지막으로 액세스한 정보를 검토할 수 있습니다. 이 기능은 사용 중인 사용자의 액세스 권한을 제거하지 않으려는 경우 중요합니다.

예를 들어, Arnav Desai는 Example Corp의 개발자이자 AWS 관리자입니다. 그의 팀은 AWS를 사용하기 시작하여 모든 개발자에게 IAM 및 AWS Organizations를 제외한 모든 서비스에 대한 완전한 액세스를 허용하는 고급 사용자 권한을 부여했습니다. Arnav는 [최소 권한 부여](best-practices.md#grant-least-privilege)를 위한 첫 걸음으로 AWS CLI를 사용하여 자신의 계정에서 관리형 정책을 검토하려고 합니다.

이렇게 하기 위해 Arnav는 먼저 다음 명령을 사용하여 자격 증명에 연결된 계정에 고객 관리형 권한 정책을 나열합니다.

```
aws iam list-policies --scope Local --only-attached --policy-usage-filter PermissionsPolicy
```

응답에서 그는 각 정책에 대한 ARN을 캡처합니다. 그런 다음 Arnav는 다음 명령을 사용하여 각 정책에 대해 마지막으로 액세스한 정보 보고서를 생성합니다.

```
aws iam generate-service-last-accessed-details --arn arn:aws:iam::123456789012:policy/ExamplePolicy1
```

이 응답에서 그는 `JobId` 필드에서 생성된 보고서의 ID를 캡처합니다. 그런 다음 Arnav는 `JobStatus` 필드가 `COMPLETED` 또는 `FAILED` 값을 반환할 때까지 다음 명령을 폴링합니다. 작업이 실패할 경우 오류를 캡처합니다.

```
aws iam get-service-last-accessed-details --job-id 98a765b4-3cde-2101-2345-example678f9
```

작업의 상태가 `COMPLETED`이면 Arnav는 JSON 형식의 `ServicesLastAccessed` 배열에 대한 콘텐츠를 구문 분석합니다.

```
 "ServicesLastAccessed": [
        {
            "TotalAuthenticatedEntities": 1,
            "LastAuthenticated": 2018-11-01T21:24:33.222Z,
            "ServiceNamespace": "dynamodb",
            "LastAuthenticatedEntity": "arn:aws:iam::123456789012:user/IAMExampleUser",
            "ServiceName": "Amazon DynamoDB"
        },

        {
            "TotalAuthenticatedEntities": 0,
            "ServiceNamespace": "ec2",
            "ServiceName": "Amazon EC2"
        },

        {
            "TotalAuthenticatedEntities": 3,
            "LastAuthenticated": 2018-08-25T15:29:51.156Z,
            "ServiceNamespace": "s3",
            "LastAuthenticatedEntity": "arn:aws:iam::123456789012:role/IAMExampleRole",
            "ServiceName": "Amazon S3"
        }
    ]
```

이 정보를 통해 Arnav는 `ExamplePolicy1` 정책이 Amazon DynamoDB, Amazon S3 및 Amazon EC2의 세 가지 서비스에 대한 액세스를 허용한다는 것을 알게 됩니다. 11월 1일 IAM 사용자 `IAMExampleUser`가 DynamoDB에 마지막으로 액세스하려고 시도했으며, 8월 25일에는 어떤 사용자가 Amazon S3에 액세스하기 위해 `IAMExampleRole` 역할을 사용했습니다. 작년에 Amazon S3에 액세스하려고 시도한 엔터티가 두 개 더 있습니다. 그러나 작년에 Amazon EC2에 액세스하려고 시도한 사용자는 아무도 없었습니다.

이는 Arnav가 정책에서 Amazon EC2 작업을 안전하게 제거할 수 있음을 의미합니다. Arnav는 정책에 대한 현재 JSON 문서를 검토하려고 합니다. 먼저, 다음 명령을 사용하여 정책의 버전 번호를 결정해야 합니다.

```
aws iam list-policy-versions --policy-arn arn:aws:iam::123456789012:policy/ExamplePolicy1
```

응답에서 Arnav는 `Versions` 배열에서 현재 기본 버전 번호를 수집합니다. 그런 다음, 다음 명령을 통해 해당 버전 번호(`v2`)를 사용하여 JSON 정책 문서를 요청합니다.

```
aws iam get-policy-version --policy-arn arn:aws:iam::123456789012:policy/ExamplePolicy1 --version-id v2
```

Arnav는 반환된 JSON 정책 문서를 `PolicyVersion` 배열의 `Document` 필드에 저장합니다. 정책 문서에서 Arnav는 `ec2` 네임스페이스에서 작업을 검색합니다. 정책에 남아 있는 다른 네임스페이스의 작업이 없는 경우 영향을 받는 자격 증명(사용자, 그룹 및 역할)에서 정책을 분리합니다. 그런 다음 정책을 삭제합니다. 이 경우, 정책에는 Amazon DynamoDB 및 Amazon S3 서비스가 포함됩니다. 그래서 Arnav는 문서에서 Amazon EC2 작업을 제거하고 변경 사항을 저장합니다. 그는 다음 명령을 사용하여 새 버전의 문서를 통해 정책을 업데이트하고 해당 버전을 기본 정책 버전으로 설정합니다.

```
aws iam create-policy-version --policy-arn arn:aws:iam::123456789012:policy/ExamplePolicy1 --policy-document file://UpdatedPolicy.json --set-as-default
```

이제 `ExamplePolicy1` 정책이 업데이트되어 불필요한 Amazon EC2 서비스에 대한 액세스를 제거합니다.

## 기타 IAM 시나리오
<a name="last-accessed-scenarios-other"></a>

IAM 리소스(사용자, 그룹, 역할 또는 정책)가 서비스에 마지막으로 액세스하려고 시도한 시점에 대한 정보는 다음 작업 중 하나를 완료할 때 도움이 될 수 있습니다.
+ **정책** - [기존 고객 관리형 또는 인라인 정책을 편집하여 권한 제거](access_policies_manage-edit.md)
+ **정책** - [인라인 정책을 관리형 정책으로 변환한 다음 삭제](access_policies-convert-inline-to-managed.md)
+ **정책** - [기존 정책에 명시적 거부 추가](reference_policies_evaluation-logic_AccessPolicyLanguage_Interplay.md)
+ **정책** - [자격 증명(사용자, 그룹 또는 역할)에서 관리형 정책 분리](access_policies_manage-attach-detach.md#detach-managed-policy-console)
+ **엔터티** - [엔터티(사용자 또는 역할)가 가질 수 있는 최대 권한을 제어하도록 권한 경계 설정](access_policies_manage-attach-detach.md)
+ **그룹** - [그룹에서 사용자 제거](id_groups_manage_add-remove-users.md)

## 정보를 사용하여 조직 단위의 권한 재정의
<a name="access_policies_last-accessed-reduce-permissions-orgs"></a>

마지막으로 액세스한 정보를 사용하여 AWS Organizations의 조직 단위(OU)의 권한을 재정의할 수 있습니다.

예를 들어 John Stiles는 AWS Organizations 관리자입니다. 그는 회사 AWS 계정의 사람들에게 과도한 권한이 부여되지 않도록 할 책임이 있습니다. 정기 보안 검사의 일환으로 그는 자신의 조직에 부여된 권한을 검토합니다. 그의 `Development` OU에는 새로운 AWS 서비스를 테스트하는 데 자주 사용되는 계정이 포함되어 있습니다. John은 180일 이상 액세스되지 않은 서비스에 대한 보고서를 주기적으로 검토하기로 결정합니다. 그런 다음 OU 멤버가 이러한 서비스에 액세스할 수 있는 권한을 제거합니다.

John은 자신의 관리 계정 자격 증명을 사용하여 IAM 콘솔에 로그인합니다. IAM 콘솔에서 `Development` OU에 대한 AWS Organizations 데이터를 찾습니다. 그는 **서비스 액세스 보고서** 표를 검토하여 180일 이상 액세스되지 않은 2개의 AWS 서비스를 발견합니다. 그는 개발 팀이 Amazon Lex 및 AWS Database Migration Service에 액세스할 수 있는 권한을 추가한 것을 기억합니다. 그래서 개발 팀에 연락하여 더 이상 이러한 서비스를 테스트할 업무상 필요가 없는지 확인합니다.

John은 이제 마지막으로 액세스한 정보에 대해 조치를 취할 준비가 되었습니다. 그는 **AWS Organizations에서 편집**을 선택합니다. 그러면 이 SCP가 여러 엔터티에 연결되어 있다는 메시지가 표시됩니다. **계속**을 선택합니다. 그는 AWS Organizations에서 대상을 검토하여 SCP에 어떤 AWS Organizations 엔터티가 연결되어 있는지 확인합니다. 모든 엔터티가 `Development` OU에 속해 있습니다.

John은 `NewServiceTest` SCP에서 Amazon Lex 및 AWS Database Migration Service 작업에 대한 액세스를 거부하기로 합니다. 이 작업은 서비스에 대한 불필요한 액세스 권한을 제거합니다.

# IAM 작업에서 마지막으로 액세스한 정보와 관련된 서비스 및 작업
<a name="access_policies_last-accessed-action-last-accessed"></a>

다음 테이블에는 [IAM 작업에서 마지막으로 액세스한 정보](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_last-accessed.html)와 관련된 AWS 서비스가 표시됩니다. 각 서비스의 작업 목록은 서비스 승인 참조의 [AWS 서비스에 사용되는 작업, 리소스 및 조건 키](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html)를 참조하세요.

AWS는 정책 관리 워크플로의 자동화를 간소화하기 위해 마지막으로 액세스한 작업 정보를 JSON 형식으로 제공합니다. 서비스 참조 정보를 사용하면 기계가 읽을 수 있는 파일에서 AWS 서비스에 걸쳐 마지막으로 액세스한 작업 정보에 액세스할 수 있습니다. 자세한 내용은 서비스 권한 부여 참조의 [프로그래밍 방식의 액세스를 위해 간소화된 AWS 서비스 정보](https://docs.aws.amazon.com/service-authorization/latest/reference/service-reference.html)를 참조하세요.


|  **서비스**:  |  **서비스 접두사**  | 
| --- | --- | 
|  [AWS Identity and Access Management 및 Access Analyzer](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiamaccessanalyzer.html)  | access-analyzer | 
|  [AWS Account Management](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsaccountmanagement.html)  | 계정 | 
|  [AWS Certificate Manager](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscertificatemanager.html)  | acm | 
|  [Amazon Managed Workflows for Apache Airflow](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonmanagedworkflowsforapacheairflow.html)  | airflow | 
|  [AWS Amplify](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsamplify.html)  | amplify | 
|  [AWS Amplify UI 빌더](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsamplifyuibuilder.html)  | amplifyuibuilder | 
|  [Amazon AppIntegrations](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonappintegrations.html)  | app-integrations | 
|  [AWS AppConfig](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsappconfig.html)  | appconfig | 
|  [Amazon AppFlow](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonappflow.html)  | appflow | 
|  [AWS Application Cost Profiler](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationcostprofilerservice.html)  | application-cost-profiler | 
|  [Amazon CloudWatch Application Insights](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html)  | applicationinsights | 
|  [AWS App Mesh](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsappmesh.html)  | appmesh | 
|  [Amazon WorkSpaces Applications](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonappstream2.0.html)  | appstream | 
|  [AWS AppSync](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsappsync.html)  | appsync | 
|  [ – Amazon Managed Service for Prometheus](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonmanagedserviceforprometheus.html)  | aps | 
|  [Amazon Athena](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html)  | athena | 
|  [AWS Audit Manager](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsauditmanager.html)  | auditmanager | 
|  [AWS Auto Scaling](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsautoscaling.html)  | autoscaling | 
|  [AWS Marketplace](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsmarketplace.html)  | aws-marketplace | 
|  [AWS Backup](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsbackup.html)  | 백업 | 
|  [AWS Batch](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsbatch.html)  | 일괄 | 
|  [Amazon Braket](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbraket.html)  | braket | 
|  [AWS Budgets](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsbudgetservice.html)  | 예산 | 
|  [AWS Cloud9](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloud9.html)  | cloud9 | 
|  [AWS CloudFormation](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html)  | cloudformation | 
|  [Amazon CloudFront](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudfront.html)  | cloudfront | 
|  [AWS CloudHSM](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudhsm.html)  | cloudhsm | 
|  [Amazon CloudSearch](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudsearch.html)  | cloudsearch | 
|  [AWS CloudTrail](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudtrail.html)  | cloudtrail | 
|  [Amazon CloudWatch](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatch.html)  | cloudwatch | 
|  [AWS CodeArtifact](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscodeartifact.html)  | codeartifact | 
|  [AWS CodeDeploy](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscodedeploy.html)  | codedeploy | 
|  [Amazon CodeGuru Profiler](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncodeguruprofiler.html)  | codeguru-profiler | 
|  [ Amazon CodeGuru Reviewer](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncodegurureviewer.html)  | codeguru-reviewer | 
|  [AWS CodePipeline](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscodepipeline.html)  | CodePipeline | 
|  [AWS CodeStar](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscodestar.html)  | codestar | 
|  [AWS CodeStar 알림](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscodestarnotifications.html)  | codestar-notifications | 
|  [Amazon Cognito 자격 증명](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncognitoidentity.html)  | cognito-identity | 
|  [Amazon Cognito 사용자 풀](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncognitouserpools.html)  | cognito-idp | 
|  [Amazon Cognito Sync](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncognitosync.html)  | cognito-sync | 
|  [Amazon Comprehend Medical](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html)  | comprehendmedical | 
|  [AWS Compute Optimizer](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html)  | compute-optimizer | 
|  [AWS Config](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsconfig.html)  | config | 
|  [Amazon Connect](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonconnect.html)  | 연결 | 
|  [AWS Cost and Usage Report](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscostandusagereport.html)  | cur | 
|  [AWS Glue DataBrew](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsgluedatabrew.html)  | databrew | 
|  [AWS Data Exchange](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdataexchange.html)  | dataexchange | 
|  [AWS Data Pipeline](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatapipeline.html)  | datapipeline | 
|  [DynamoDB Accelerator](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazondynamodbacceleratordax.html)  | dax | 
|  [AWS Device Farm](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdevicefarm.html)  | devicefarm | 
|  [Amazon DevOps Guru](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazondevopsguru.html)  | devops-guru | 
|  [AWS Direct Connect](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdirectconnect.html)  | directconnect | 
|  [Amazon Data Lifecycle Manager](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazondatalifecyclemanager.html)  | dlm | 
|  [AWS Database Migration Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatabasemigrationservice.html)  | DMS | 
|  [Amazon DocumentDB Elastic Clusters](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazondocumentdbelasticclusters.html)  | docdb-elastic | 
|  [Amazon DynamoDB](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazondynamodb.html)  | dynamodb | 
|  [Amazon Elastic Block Store](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html)  | ebs | 
|  [ - Amazon Elastic Compute Cloud](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html)  | EC2 | 
|  [Amazon Elastic 컨테이너 레지스트리](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html)  | ecr | 
|  [Amazon Elastic Container Registry Public](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistrypublic.html)  | ecr-public | 
|  [Amazon Elastic Container Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html)  | ecs | 
|  [Amazon Elastic Kubernetes Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelastickubernetesservice.html)  | eks | 
|  [Amazon ElastiCache](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticache.html)  | elasticache | 
|  [AWS Elastic Beanstalk](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awselasticbeanstalk.html)  | elasticbeanstalk | 
|  [Amazon Elastic File System](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticfilesystem.html)  | elasticfilesystem | 
|  [Elastic Load Balancing](https://docs.aws.amazon.com/service-authorization/latest/reference/list_elasticloadbalancing.html)  | elasticloadbalancing | 
|  [Amazon Elastic Transcoder](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelastictranscoder.html)  | elastictranscoder | 
|  [Amazon EMR on EKS(EMR 컨테이너)](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonemroneksemrcontainers.html)  | emr-containers | 
|  [Amazon EMR Serverless](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonemrserverless.html)  | emr-serverless | 
|  [Amazon OpenSearch Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonopensearchservice.html)  | es | 
|  [Amazon EventBridge](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridge.html)  | 이벤트 | 
|  [Amazon CloudWatch Evidently](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchevidently.html)  | evidently | 
|  [Amazon FinSpace](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonfinspace.html)  | finspace | 
|  [Amazon Data Firehose](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html)  | firehose | 
|  [AWS Fault Injection Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsfaultinjectionsimulator.html)  | fis | 
|  [AWS Firewall Manager](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsfirewallmanager.html)  | fms | 
|  [Amazon Fraud Detector](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonfrauddetector)  | frauddetector | 
|  [Amazon FSx](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonfsx)  | fsx | 
|  [Amazon GameLift Servers](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazongamelift)  | gamelift | 
|  [Amazon Location Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonlocation.html)  | geo | 
|  [Amazon Glacier](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3glacier.html)  | glacier | 
|  [Amazon Managed Grafana](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonmanagedgrafana.html)  | grafana | 
|  [AWS IoT Greengrass](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotgreengrass.html)  | greengrass | 
|  [AWS Ground Station](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsgroundstation.html)  | groundstation | 
|  [Amazon GuardDuty](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonguardduty.html)  | guardduty | 
|  [AWS HealthLake](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonhealthlake.html)  | healthlake | 
|  [Amazon Honeycode](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonhoneycode.html)  | honeycode | 
|  [AWS Identity and Access Management](https://docs.aws.amazon.com/service-authorization/latest/reference/list_identityandaccessmanagement.html)  | iam | 
|  [AWS 자격 증명 스토어](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentitystore.html)  | identitystore | 
|  [EC2 Image Builder](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2imagebuilder.html)  | imagebuilder | 
|  [Amazon Inspector Classic](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoninspector.html)  | inspector | 
|  [Amazon Inspector](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoninspector2.html) –  | inspector2 | 
|  [AWS IoT](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html)  | iot | 
|  [AWS IoT Analytics](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotanalytics.html)  | iotanalytics | 
|  [AWS IoT Core Device Advisor](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotcoredeviceadvisor.html)  | iotdeviceadvisor | 
|  [AWS IoT Events](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotevents.html)  | iotevents | 
|  [AWS IoT Fleet Hub](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleethubfordevicemanagement.html)  | iotfleethub | 
|  [AWS IoT SiteWise](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotsitewise.html)  | iotsitewise | 
|  [AWS IoT TwinMaker](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiottwinmaker.html)  | iottwinmaker | 
|  [AWS IoT 무선](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html)  | iotwireless | 
|  [Amazon Interactive Video Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoninteractivevideoservice.html)  | ivs | 
|  [Amazon Interactive Video Service Chat](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoninteractivevideoservicechat.html)  | ivschat | 
|  [Amazon Managed Streaming for Apache Kafka](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonmanagedstreamingforapachekafka.html)  | kafka | 
|  [Amazon Managed Streaming for Kafka Connect](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonmanagedstreamingforkafkaconnect.html)  | kafkaconnect | 
|  [Amazon Kendra](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkendra.html)  | kendra | 
|  [Amazon Kinesis](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesis.html)  | kinesis | 
|  [Amazon Kinesis Analytics V2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalyticsv2.html)  | kinesisanalytics | 
|  [AWS Key Management Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html)  | kms | 
|  [AWS Lambda](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html)  | lambda | 
|  [Amazon Lex](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonlexv2.html)  | lex | 
|  [AWS License Manager Linux Subscriptions Manager](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslicensemanagerlinuxsubscriptionsmanager.html)  | license-manager-linux-subscriptions | 
|  [Amazon Lightsail](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonlightsail.html)  | lightsail | 
|  [Amazon CloudWatch Logs](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchlogs.html)  | 로그 | 
|  [Amazon Lookout for Equipment](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonlookoutforequipment.html)  | lookoutequipment | 
|  [Amazon Lookout for Metrics](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonlookoutformetrics.html)  | lookoutmetrics | 
|  [Amazon Lookout for Vision](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonlookoutforvision.html)  | lookoutvision | 
|  [AWS Mainframe Modernization](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsmainframemodernizationservice.html)  | m2 | 
|  [Amazon Managed Blockchain](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonmanagedblockchain.html)  | managedblockchain | 
|  [AWS Elemental MediaConnect](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awselementalmediaconnect.html)  | mediaconnect | 
|  [AWS Elemental MediaConvert](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awselementalmediaconvert.html)  | mediaconvert | 
|  [AWS Elemental MediaLive](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awselementalmedialive.html)  | medialive | 
|  [AWS Elemental MediaStore](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awselementalmediastore.html)  | mediastore | 
|  [AWS Elemental MediaTailor](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awselementalmediatailor.html)  | mediatailor | 
|  [Amazon MemoryDB](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonmemorydb.html)  | memorydb | 
|  [AWS Application Migration Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationmigrationservice.html)  | mgn | 
|  [AWS Migration Hub](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsmigrationhub.html)  | mgh | 
|  [AWS Migration Hub Strategy Recommendations](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsmigrationhubstrategyrecommendations.html)  | migrationhub-strategy | 
|  [Amazon Pinpoint](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpinpoint.html)  | mobiletargeting | 
|  [Amazon MQ](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonmq.html)  | mq | 
|  [AWS Network Manager](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsnetworkmanager.html)  | networkmanager | 
|  [Amazon Nimble Studio](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonnimblestudio.html)  | nimble | 
|  [AWS HealthOmics](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html)  | omics | 
|  [AWS OpsWorks](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsopsworks.html)  | opsworks | 
|  [AWS OpsWorks CM](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsopsworksconfigurationmanagement)  | opsworks-cm | 
|  [AWS Outposts](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsoutposts.html)  | outposts | 
|  [AWS Organizations](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsorganizations.html)  | 조직 | 
|  [AWS Panorama](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspanorama.html)  | panorama | 
|  [AWS 성능 개선 도우미](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsperformanceinsights.html)  | pi | 
|  [Amazon EventBridge 파이프](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgepipes.html)  | pipes | 
|  [Amazon Polly](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html)  | polly | 
|  [Amazon Connect Customer Profiles](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonconnectcustomerprofiles.html)  | profile | 
|  [Amazon QLDB](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonqldb.html)  | qldb | 
|  [AWS Resource Access Manager](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsresourceaccessmanager.html)  | ram | 
|  [AWS 휴지통](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html)  | rbin | 
|  [Amazon Relational Database Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrds.html)  | RDS | 
|  [Amazon Redshift](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonredshift.html)  | redshift | 
|  [Amazon Redshift 데이터 API](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonredshiftdataapi.html)  | redshift-data | 
|  [AWS Migration Hub Refactor Spaces](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsmigrationhubrefactorspaces.html)  | refactor-spaces | 
|  [Amazon Rekognition](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html)  | rekognition | 
|  [AWS Resilience Hub](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsresiliencehub.html)  | resiliencehub | 
|  [AWS Resource Explorer](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsresourceexplorer.html)  | resource-explorer-2 | 
|  [AWS Resource Groups](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsresourcegroups.html)  | resource-groups | 
|  [AWS RoboMaker](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrobomaker.html)  | robomaker | 
|  [AWS Identity and Access Management Roles Anywhere](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementrolesanywhere.html)  | rolesanywhere | 
|  [Amazon Route 53](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html)  | route53 | 
|  [Amazon Route 53 Recovery Controls](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53recoverycontrols.html)  | route53-recovery-control-config | 
|  [Amazon Route 53 Recovery Readiness](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53recoveryreadiness.html)  | route53-recovery-readiness | 
|  [Amazon Route 53 Resolver](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53resolver.html)  | route53resolver | 
|  [AWS CloudWatch RUM](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudwatchrum.html)  | rum | 
|  [Amazon Simple Storage Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html)  | s3 | 
|  [Outposts에서의 Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3onoutposts.html)  | s3-outposts | 
|  [Amazon SageMaker AI 지리 공간 기능](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsagemakergeospatialcapabilities.html)  | sagemaker-geospatial | 
|  [절감형 플랜](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssavingsplans.html)  | savingsplans | 
|  [Amazon EventBridge 스키마](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgeschemas.html)  | schemas | 
|  [Amazon SimpleDB](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsimpledb.html)  | sdb | 
|  [AWS Secrets Manager](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssecretsmanager.html)  | secretsmanager | 
|  [AWS Security Hub CSPM](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssecurityhub.html)  | securityhub | 
|  [Amazon Security Lake](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsecuritylake.html)  | securitylake | 
|  [AWS Serverless Application Repository](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsserverlessapplicationrepository.html)  | serverlessrepo | 
|  [AWS Service Catalog](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsservicecatalog.html)  | servicecatalog | 
|  [AWS Cloud Map](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html)  | servicediscovery | 
|  [Service Quotas](https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html)  | servicequotas | 
|  [Amazon Simple Email Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonses.html)  | ses | 
|  [AWS Shield](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsshield.html)  | shield | 
|  [AWS Signer](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssigner.html)  | signer | 
|  [AWS SimSpace Weaver](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssimspaceweaver.html)  | simspaceweaver | 
|  [AWS Server Migration Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsservermigrationservice.html)  | sms | 
|  [Amazon Pinpoint SMS 및 음성 서비스](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpinpointsmsandvoiceservice.html)  | sms-voice | 
|  [AWS Snowball Edge](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssnowball.html)  | snowball | 
|  [Amazon Simple Queue Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsqs.html)  | sqs | 
|  [AWS Systems Manager](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanager.html)  | ssm | 
|  [AWS Systems Manager Incident Manager](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanager.html)  | ssm-incidents | 
|  [AWS Systems Manager for SAP](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerforsap.html)  | ssm-sap | 
|  [AWS Step Functions](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstepfunctions.html)  | states | 
|  [AWS Security Token Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssecuritytokenservice.html)  | sts | 
|  [Amazon Simple Workflow Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsimpleworkflowservice.html)  | swf | 
|  [Amazon CloudWatch Synthetics](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchsynthetics.html)  | synthetics | 
|  [AWS Resource Groups Tagging API](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonresourcegrouptaggingapi.html)  | 태그 | 
|  [Amazon Textract](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html)  | textract | 
|  [Amazon Timestream](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontimestream.html)  | timestream | 
|  [AWS 통신 네트워크 빌더](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstelconetworkbuilder.html)  | tnb | 
|  [Amazon Transcribe](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html)  | transcribe | 
|  [AWS Transfer Family](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html)  | 전송 | 
|  [Amazon Translate](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranslate.html)  | translate | 
|  [Amazon Connect Voice ID](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonconnectvoiceid.html)  | voiceid | 
|  [Amazon VPC Lattice](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonvpclattice.html)  | vpc-lattice | 
|  [AWS WAFV2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awswafv2.html)  | wafv2 | 
|  [AWS Well-Architected Tool](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awswell-architectedtool.html)  | wellarchitected | 
|  [Amazon Connect Wisdom](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonconnectwisdom.html)  | wisdom | 
|  [Amazon WorkLink](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonworklink.html)  | worklink | 
|  [Amazon WorkSpaces](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonworkspaces.html)  | WorkSpaces | 
|  [AWS X-Ray](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html)  | xray | 

## 작업에서 마지막으로 액세스한 정보와 관련된 작업
<a name="access_policies_last-accessed-action-last-accessed-supported-actions"></a>

다음 테이블에는 작업에서 마지막으로 액세스한 정보를 사용할 수 있는 작업이 표시됩니다.

**중요**  
`iam:UpdateAccountName` 작업은 2026년 4월 22일에 사용이 중단됩니다. 2026년 4월 22일 이후에는 `[account:PutAccountName](https://docs.aws.amazon.com/accounts/latest/reference/API_PutAccountName.html)` 권한만 계정 이름 업데이트 액세스를 제어하게 됩니다. 계정 이름 업데이트를 제어하는 [서비스 제어 정책(SCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)을 업데이트하여 `account:PutAccountName` 권한을 사용하도록 설정하는 것이 좋습니다.


|  **서비스 접두사**  |  **작업**  | 
| --- | --- | 
| access-analyzer |  access-analyzer:ApplyArchiveRule access-analyzer:CancelPolicyGeneration access-analyzer:CheckAccessNotGranted access-analyzer:CheckNoNewAccess access-analyzer:CheckNoPublicAccess access-analyzer:CreateAccessPreview access-analyzer:CreateAnalyzer access-analyzer:CreateArchiveRule access-analyzer:DeleteAnalyzer access-analyzer:DeleteArchiveRule access-analyzer:GenerateFindingRecommendation access-analyzer:GetAccessPreview access-analyzer:GetAnalyzedResource access-analyzer:GetAnalyzer access-analyzer:GetArchiveRule access-analyzer:GetFinding access-analyzer:GetFindingRecommendation access-analyzer:GetFindingsStatistics access-analyzer:GetGeneratedPolicy access-analyzer:ListAccessPreviewFindings access-analyzer:ListAccessPreviews access-analyzer:ListAnalyzedResources access-analyzer:ListAnalyzers access-analyzer:ListArchiveRules access-analyzer:ListFindings access-analyzer:ListPolicyGenerations access-analyzer:StartPolicyGeneration access-analyzer:StartResourceScan access-analyzer:UpdateAnalyzer access-analyzer:UpdateArchiveRule access-analyzer:UpdateFindings access-analyzer:ValidatePolicy  | 
| 계정 |  account:AcceptPrimaryEmailUpdate account:DeleteAlternateContact account:DisableRegion account:EnableRegion account:GetAccountInformation account:GetAlternateContact account:GetContactInformation account:GetGovCloudAccountInformation account:GetPrimaryEmail account:GetRegionOptStatus account:ListRegions account:PutAccountName account:PutAlternateContact account:PutContactInformation account:StartPrimaryEmailUpdate  | 
| acm |  acm:DeleteCertificate acm:DescribeCertificate acm:ExportCertificate acm:GetAccountConfiguration acm:GetCertificate acm:ImportCertificate acm:ListCertificates acm:PutAccountConfiguration acm:RenewCertificate acm:RequestCertificate acm:ResendValidationEmail acm:UpdateCertificateOptions  | 
| airflow |  airflow:CreateCliToken airflow:CreateEnvironment airflow:CreateWebLoginToken airflow:DeleteEnvironment airflow:GetEnvironment airflow:ListEnvironments airflow:PublishMetrics airflow:UpdateEnvironment  | 
| amplify |  amplify:CreateApp amplify:CreateBackendEnvironment amplify:CreateBranch amplify:CreateDeployment amplify:CreateDomainAssociation amplify:CreateWebHook amplify:DeleteApp amplify:DeleteBackendEnvironment amplify:DeleteBranch amplify:DeleteDomainAssociation amplify:DeleteJob amplify:DeleteWebHook amplify:GenerateAccessLogs amplify:GetApp amplify:GetArtifactUrl amplify:GetBackendEnvironment amplify:GetBranch amplify:GetDomainAssociation amplify:GetJob amplify:GetWebHook amplify:ListApps amplify:ListArtifacts amplify:ListBackendEnvironments amplify:ListBranches amplify:ListDomainAssociations amplify:ListJobs amplify:ListWebHooks amplify:StartDeployment amplify:StartJob amplify:StopJob amplify:UpdateApp amplify:UpdateBranch amplify:UpdateDomainAssociation amplify:UpdateWebHook  | 
| amplifyuibuilder |  amplifyuibuilder:CreateComponent amplifyuibuilder:CreateForm amplifyuibuilder:CreateTheme amplifyuibuilder:DeleteComponent amplifyuibuilder:DeleteForm amplifyuibuilder:DeleteTheme amplifyuibuilder:ExportComponents amplifyuibuilder:ExportThemes amplifyuibuilder:GetCodegenJob amplifyuibuilder:ListCodegenJobs amplifyuibuilder:ListComponents amplifyuibuilder:ListForms amplifyuibuilder:ListThemes amplifyuibuilder:ResetMetadataFlag amplifyuibuilder:StartCodegenJob amplifyuibuilder:UpdateComponent amplifyuibuilder:UpdateForm amplifyuibuilder:UpdateTheme  | 
| app-integrations |  app-integrations:CreateApplication app-integrations:CreateDataIntegration app-integrations:CreateDataIntegrationAssociation app-integrations:CreateEventIntegration app-integrations:DeleteApplication app-integrations:DeleteDataIntegration app-integrations:DeleteEventIntegration app-integrations:GetApplication app-integrations:GetDataIntegration app-integrations:GetEventIntegration app-integrations:ListApplicationAssociations app-integrations:ListApplications app-integrations:ListDataIntegrationAssociations app-integrations:ListDataIntegrations app-integrations:ListEventIntegrationAssociations app-integrations:ListEventIntegrations app-integrations:UpdateApplication app-integrations:UpdateDataIntegration app-integrations:UpdateDataIntegrationAssociation app-integrations:UpdateEventIntegration  | 
| appconfig |  appconfig:CreateApplication appconfig:CreateConfigurationProfile appconfig:CreateDeploymentStrategy appconfig:CreateEnvironment appconfig:CreateExtension appconfig:CreateExtensionAssociation appconfig:CreateHostedConfigurationVersion appconfig:DeleteApplication appconfig:DeleteConfigurationProfile appconfig:DeleteDeploymentStrategy appconfig:DeleteEnvironment appconfig:DeleteExtension appconfig:DeleteExtensionAssociation appconfig:DeleteHostedConfigurationVersion appconfig:GetAccountSettings appconfig:GetApplication appconfig:GetConfiguration appconfig:GetConfigurationProfile appconfig:GetDeployment appconfig:GetDeploymentStrategy appconfig:GetEnvironment appconfig:GetExtension appconfig:GetExtensionAssociation appconfig:GetHostedConfigurationVersion appconfig:ListApplications appconfig:ListConfigurationProfiles appconfig:ListDeploymentStrategies appconfig:ListDeployments appconfig:ListEnvironments appconfig:ListExtensionAssociations appconfig:ListExtensions appconfig:ListHostedConfigurationVersions appconfig:StartDeployment appconfig:StopDeployment appconfig:UpdateAccountSettings appconfig:UpdateApplication appconfig:UpdateConfigurationProfile appconfig:UpdateDeploymentStrategy appconfig:UpdateEnvironment appconfig:UpdateExtension appconfig:UpdateExtensionAssociation appconfig:ValidateConfiguration  | 
| appflow |  appflow:CancelFlowExecutions appflow:CreateConnectorProfile appflow:CreateFlow appflow:DeleteConnectorProfile appflow:DeleteFlow appflow:DescribeConnector appflow:DescribeConnectorEntity appflow:DescribeConnectorProfiles appflow:DescribeConnectors appflow:DescribeFlow appflow:DescribeFlowExecutionRecords appflow:ListConnectorEntities appflow:ListConnectors appflow:ListFlows appflow:RegisterConnector appflow:ResetConnectorMetadataCache appflow:StartFlow appflow:StopFlow appflow:UnRegisterConnector appflow:UpdateConnectorProfile appflow:UpdateConnectorRegistration appflow:UpdateFlow  | 
| applicationinsights |  applicationinsights:AddWorkload applicationinsights:CreateApplication applicationinsights:CreateComponent applicationinsights:CreateLogPattern applicationinsights:DeleteApplication applicationinsights:DeleteComponent applicationinsights:DeleteLogPattern applicationinsights:DescribeApplication applicationinsights:DescribeComponent applicationinsights:DescribeComponentConfiguration applicationinsights:DescribeComponentConfigurationRecommendation applicationinsights:DescribeLogPattern applicationinsights:DescribeObservation applicationinsights:DescribeProblem applicationinsights:DescribeProblemObservations applicationinsights:DescribeWorkload applicationinsights:ListApplications applicationinsights:ListComponents applicationinsights:ListConfigurationHistory applicationinsights:ListLogPatternSets applicationinsights:ListLogPatterns applicationinsights:ListProblems applicationinsights:ListWorkloads applicationinsights:RemoveWorkload applicationinsights:UpdateApplication applicationinsights:UpdateComponent applicationinsights:UpdateComponentConfiguration applicationinsights:UpdateLogPattern applicationinsights:UpdateWorkload  | 
| appmesh |  appmesh:CreateGatewayRoute appmesh:CreateMesh appmesh:CreateRoute appmesh:CreateVirtualGateway appmesh:CreateVirtualNode appmesh:CreateVirtualRouter appmesh:CreateVirtualService appmesh:DeleteGatewayRoute appmesh:DeleteMesh appmesh:DeleteRoute appmesh:DeleteVirtualGateway appmesh:DeleteVirtualNode appmesh:DeleteVirtualRouter appmesh:DeleteVirtualService appmesh:DescribeGatewayRoute appmesh:DescribeMesh appmesh:DescribeRoute appmesh:DescribeVirtualGateway appmesh:DescribeVirtualNode appmesh:DescribeVirtualRouter appmesh:DescribeVirtualService appmesh:ListGatewayRoutes appmesh:ListMeshes appmesh:ListRoutes appmesh:ListVirtualGateways appmesh:ListVirtualNodes appmesh:ListVirtualRouters appmesh:ListVirtualServices appmesh:StreamAggregatedResources appmesh:UpdateGatewayRoute appmesh:UpdateMesh appmesh:UpdateRoute appmesh:UpdateVirtualGateway appmesh:UpdateVirtualNode appmesh:UpdateVirtualRouter appmesh:UpdateVirtualService  | 
| appstream |  appstream:AssociateAppBlockBuilderAppBlock appstream:AssociateApplicationFleet appstream:AssociateApplicationToEntitlement appstream:AssociateFleet appstream:AssociateSoftwareToImageBuilder appstream:BatchAssociateUserStack appstream:BatchDisassociateUserStack appstream:CopyImage appstream:CreateAppBlock appstream:CreateAppBlockBuilder appstream:CreateAppBlockBuilderStreamingURL appstream:CreateApplication appstream:CreateDirectoryConfig appstream:CreateEntitlement appstream:CreateFleet appstream:CreateImageBuilder appstream:CreateImageBuilderStreamingURL appstream:CreateStack appstream:CreateStreamingURL appstream:CreateThemeForStack appstream:CreateUpdatedImage appstream:CreateUsageReportSubscription appstream:CreateUser appstream:DeleteAppBlock appstream:DeleteAppBlockBuilder appstream:DeleteApplication appstream:DeleteDirectoryConfig appstream:DeleteEntitlement appstream:DeleteFleet appstream:DeleteImage appstream:DeleteImageBuilder appstream:DeleteImagePermissions appstream:DeleteStack appstream:DeleteThemeForStack appstream:DeleteUsageReportSubscription appstream:DeleteUser appstream:DescribeAppBlockBuilderAppBlockAssociations appstream:DescribeAppBlockBuilders appstream:DescribeAppBlocks appstream:DescribeAppLicenseUsage appstream:DescribeApplicationFleetAssociations appstream:DescribeApplications appstream:DescribeDirectoryConfigs appstream:DescribeEntitlements appstream:DescribeFleets appstream:DescribeImageBuilders appstream:DescribeImagePermissions appstream:DescribeImages appstream:DescribeSessions appstream:DescribeStacks appstream:DescribeThemeForStack appstream:DescribeUsageReportSubscriptions appstream:DescribeUserStackAssociations appstream:DescribeUsers appstream:DisableUser appstream:DisassociateAppBlockBuilderAppBlock appstream:DisassociateApplicationFleet appstream:DisassociateApplicationFromEntitlement appstream:DisassociateFleet appstream:DisassociateSoftwareFromImageBuilder appstream:EnableUser appstream:ExpireSession appstream:GetExportImageTask appstream:ListAssociatedFleets appstream:ListAssociatedStacks appstream:ListEntitledApplications appstream:ListExportImageTasks appstream:StartAppBlockBuilder appstream:StartFleet appstream:StartImageBuilder appstream:StartSoftwareDeploymentToImageBuilder appstream:StopAppBlockBuilder appstream:StopFleet appstream:StopImageBuilder appstream:UpdateAppBlockBuilder appstream:UpdateApplication appstream:UpdateDirectoryConfig appstream:UpdateEntitlement appstream:UpdateFleet appstream:UpdateImagePermissions appstream:UpdateStack appstream:UpdateThemeForStack  | 
| appsync |  appsync:AssociateApi appsync:AssociateMergedGraphqlApi appsync:AssociateSourceGraphqlApi appsync:AssociateWebACL appsync:CreateApi appsync:CreateApiCache appsync:CreateApiKey appsync:CreateChannelNamespace appsync:CreateDataSource appsync:CreateDomainName appsync:CreateFunction appsync:CreateGraphqlApi appsync:CreateResolver appsync:CreateType appsync:DeleteApi appsync:DeleteApiCache appsync:DeleteApiKey appsync:DeleteChannelNamespace appsync:DeleteDataSource appsync:DeleteDomainName appsync:DeleteFunction appsync:DeleteGraphqlApi appsync:DeleteResolver appsync:DeleteType appsync:DisassociateApi appsync:DisassociateMergedGraphqlApi appsync:DisassociateSourceGraphqlApi appsync:DisassociateWebACL appsync:EvaluateCode appsync:EvaluateMappingTemplate appsync:FlushApiCache appsync:GetApi appsync:GetApiAssociation appsync:GetApiCache appsync:GetChannelNamespace appsync:GetDataSource appsync:GetDataSourceIntrospection appsync:GetDomainName appsync:GetFunction appsync:GetGraphqlApi appsync:GetGraphqlApiEnvironmentVariables appsync:GetIntrospectionSchema appsync:GetResolver appsync:GetSchemaCreationStatus appsync:GetSourceApiAssociation appsync:GetType appsync:GetWebACLForResource appsync:ListApiKeys appsync:ListApis appsync:ListChannelNamespaces appsync:ListDataSources appsync:ListDomainNames appsync:ListFunctions appsync:ListGraphqlApis appsync:ListResolvers appsync:ListResolversByFunction appsync:ListResourcesForWebACL appsync:ListSourceApiAssociations appsync:ListTypes appsync:ListTypesByAssociation appsync:PutGraphqlApiEnvironmentVariables appsync:StartDataSourceIntrospection appsync:StartSchemaCreation appsync:StartSchemaMerge appsync:UpdateApi appsync:UpdateApiCache appsync:UpdateApiKey appsync:UpdateChannelNamespace appsync:UpdateDataSource appsync:UpdateDomainName appsync:UpdateFunction appsync:UpdateGraphqlApi appsync:UpdateResolver appsync:UpdateSourceApiAssociation appsync:UpdateType  | 
| aps |  aps:CreateAlertManagerDefinition aps:CreateAnomalyDetector aps:CreateLoggingConfiguration aps:CreateQueryLoggingConfiguration aps:CreateRuleGroupsNamespace aps:CreateWorkspace aps:DeleteAlertManagerDefinition aps:DeleteAnomalyDetector aps:DeleteLoggingConfiguration aps:DeleteQueryLoggingConfiguration aps:DeleteResourcePolicy aps:DeleteRuleGroupsNamespace aps:DeleteScraper aps:DeleteScraperLoggingConfiguration aps:DeleteWorkspace aps:DescribeAlertManagerDefinition aps:DescribeAnomalyDetector aps:DescribeLoggingConfiguration aps:DescribeQueryLoggingConfiguration aps:DescribeResourcePolicy aps:DescribeRuleGroupsNamespace aps:DescribeScraper aps:DescribeScraperLoggingConfiguration aps:DescribeWorkspace aps:DescribeWorkspaceConfiguration aps:GetDefaultScraperConfiguration aps:ListAnomalyDetectors aps:ListRuleGroupsNamespaces aps:ListScrapers aps:ListWorkspaces aps:PutAlertManagerDefinition aps:PutAnomalyDetector aps:PutResourcePolicy aps:PutRuleGroupsNamespace aps:UpdateLoggingConfiguration aps:UpdateQueryLoggingConfiguration aps:UpdateScraper aps:UpdateScraperLoggingConfiguration aps:UpdateWorkspaceAlias aps:UpdateWorkspaceConfiguration  | 
| athena |  athena:BatchGetNamedQuery athena:BatchGetPreparedStatement athena:BatchGetQueryExecution athena:CancelCapacityReservation athena:CreateCapacityReservation athena:CreateDataCatalog athena:CreateNamedQuery athena:CreateNotebook athena:CreatePreparedStatement athena:CreatePresignedNotebookUrl athena:CreateWorkGroup athena:DeleteCapacityReservation athena:DeleteDataCatalog athena:DeleteNamedQuery athena:DeleteNotebook athena:DeletePreparedStatement athena:DeleteWorkGroup athena:ExportNotebook athena:GetCalculationExecution athena:GetCalculationExecutionCode athena:GetCalculationExecutionStatus athena:GetCapacityAssignmentConfiguration athena:GetCapacityReservation athena:GetDataCatalog athena:GetDatabase athena:GetNamedQuery athena:GetNotebookMetadata athena:GetPreparedStatement athena:GetQueryExecution athena:GetQueryResults athena:GetQueryResultsStream athena:GetQueryRuntimeStatistics athena:GetResourceDashboard athena:GetSession athena:GetSessionEndpoint athena:GetSessionStatus athena:GetTableMetadata athena:GetWorkGroup athena:ImportNotebook athena:ListApplicationDPUSizes athena:ListCalculationExecutions athena:ListCapacityReservations athena:ListDataCatalogs athena:ListDatabases athena:ListEngineVersions athena:ListExecutors athena:ListNamedQueries athena:ListNotebookMetadata athena:ListNotebookSessions athena:ListPreparedStatements athena:ListQueryExecutions athena:ListSessions athena:ListTableMetadata athena:ListWorkGroups athena:PutCapacityAssignmentConfiguration athena:StartCalculationExecution athena:StartQueryExecution athena:StartSession athena:StopCalculationExecution athena:StopQueryExecution athena:TerminateSession athena:UpdateCapacityReservation athena:UpdateDataCatalog athena:UpdateNamedQuery athena:UpdateNotebook athena:UpdateNotebookMetadata athena:UpdatePreparedStatement athena:UpdateWorkGroup  | 
| auditmanager |  auditmanager:AssociateAssessmentReportEvidenceFolder auditmanager:BatchAssociateAssessmentReportEvidence auditmanager:BatchCreateDelegationByAssessment auditmanager:BatchDeleteDelegationByAssessment auditmanager:BatchDisassociateAssessmentReportEvidence auditmanager:BatchImportEvidenceToAssessmentControl auditmanager:CreateAssessment auditmanager:CreateAssessmentFramework auditmanager:CreateAssessmentReport auditmanager:CreateControl auditmanager:DeleteAssessment auditmanager:DeleteAssessmentFramework auditmanager:DeleteAssessmentFrameworkShare auditmanager:DeleteAssessmentReport auditmanager:DeleteControl auditmanager:DeregisterAccount auditmanager:DeregisterOrganizationAdminAccount auditmanager:DisassociateAssessmentReportEvidenceFolder auditmanager:GetAccountStatus auditmanager:GetAssessment auditmanager:GetAssessmentFramework auditmanager:GetAssessmentReportUrl auditmanager:GetChangeLogs auditmanager:GetControl auditmanager:GetDelegations auditmanager:GetEvidence auditmanager:GetEvidenceByEvidenceFolder auditmanager:GetEvidenceFileUploadUrl auditmanager:GetEvidenceFolder auditmanager:GetEvidenceFoldersByAssessment auditmanager:GetEvidenceFoldersByAssessmentControl auditmanager:GetInsights auditmanager:GetInsightsByAssessment auditmanager:GetOrganizationAdminAccount auditmanager:GetServicesInScope auditmanager:GetSettings auditmanager:ListAssessmentControlInsightsByControlDomain auditmanager:ListAssessmentFrameworkShareRequests auditmanager:ListAssessmentFrameworks auditmanager:ListAssessmentReports auditmanager:ListAssessments auditmanager:ListControlDomainInsights auditmanager:ListControlDomainInsightsByAssessment auditmanager:ListControlInsightsByControlDomain auditmanager:ListControls auditmanager:ListKeywordsForDataSource auditmanager:ListNotifications auditmanager:RegisterAccount auditmanager:RegisterOrganizationAdminAccount auditmanager:StartAssessmentFrameworkShare auditmanager:UpdateAssessment auditmanager:UpdateAssessmentControl auditmanager:UpdateAssessmentControlSetStatus auditmanager:UpdateAssessmentFramework auditmanager:UpdateAssessmentFrameworkShare auditmanager:UpdateAssessmentStatus auditmanager:UpdateControl auditmanager:UpdateSettings auditmanager:ValidateAssessmentReportIntegrity  | 
| autoscaling |  autoscaling:AttachInstances autoscaling:AttachLoadBalancerTargetGroups autoscaling:AttachLoadBalancers autoscaling:AttachTrafficSources autoscaling:BatchDeleteScheduledAction autoscaling:BatchPutScheduledUpdateGroupAction autoscaling:CancelInstanceRefresh autoscaling:CompleteLifecycleAction autoscaling:CreateAutoScalingGroup autoscaling:CreateLaunchConfiguration autoscaling:DeleteAutoScalingGroup autoscaling:DeleteLaunchConfiguration autoscaling:DeleteLifecycleHook autoscaling:DeleteNotificationConfiguration autoscaling:DeletePolicy autoscaling:DeleteScheduledAction autoscaling:DeleteWarmPool autoscaling:DescribeAccountLimits autoscaling:DescribeAdjustmentTypes autoscaling:DescribeAutoScalingGroups autoscaling:DescribeAutoScalingInstances autoscaling:DescribeAutoScalingNotificationTypes autoscaling:DescribeInstanceRefreshes autoscaling:DescribeLaunchConfigurations autoscaling:DescribeLifecycleHookTypes autoscaling:DescribeLifecycleHooks autoscaling:DescribeLoadBalancerTargetGroups autoscaling:DescribeLoadBalancers autoscaling:DescribeMetricCollectionTypes autoscaling:DescribeNotificationConfigurations autoscaling:DescribePolicies autoscaling:DescribeScalingActivities autoscaling:DescribeScalingProcessTypes autoscaling:DescribeScheduledActions autoscaling:DescribeTerminationPolicyTypes autoscaling:DescribeTrafficSources autoscaling:DescribeWarmPool autoscaling:DetachInstances autoscaling:DetachLoadBalancerTargetGroups autoscaling:DetachLoadBalancers autoscaling:DetachTrafficSources autoscaling:DisableMetricsCollection autoscaling:EnableMetricsCollection autoscaling:EnterStandby autoscaling:ExecutePolicy autoscaling:ExitStandby autoscaling:GetPredictiveScalingForecast autoscaling:PutLifecycleHook autoscaling:PutNotificationConfiguration autoscaling:PutScalingPolicy autoscaling:PutScheduledUpdateGroupAction autoscaling:PutWarmPool autoscaling:RecordLifecycleActionHeartbeat autoscaling:ResumeProcesses autoscaling:RollbackInstanceRefresh autoscaling:SetDesiredCapacity autoscaling:SetInstanceHealth autoscaling:SetInstanceProtection autoscaling:StartInstanceRefresh autoscaling:SuspendProcesses autoscaling:TerminateInstanceInAutoScalingGroup autoscaling:UpdateAutoScalingGroup  | 
| aws-marketplace |  aws-marketplace:GetEntitlements  | 
| 백업 |  backup:CancelLegalHold backup:CreateBackupPlan backup:CreateBackupSelection backup:CreateBackupVault backup:CreateFramework backup:CreateLegalHold backup:CreateLogicallyAirGappedBackupVault backup:CreateReportPlan backup:CreateRestoreAccessBackupVault backup:CreateRestoreTestingPlan backup:CreateRestoreTestingSelection backup:CreateTieringConfiguration backup:DeleteBackupPlan backup:DeleteBackupSelection backup:DeleteBackupVault backup:DeleteBackupVaultAccessPolicy backup:DeleteBackupVaultLockConfiguration backup:DeleteBackupVaultNotifications backup:DeleteFramework backup:DeleteRecoveryPoint backup:DeleteReportPlan backup:DeleteRestoreTestingPlan backup:DeleteRestoreTestingSelection backup:DeleteTieringConfiguration backup:DescribeBackupJob backup:DescribeBackupVault backup:DescribeCopyJob backup:DescribeFramework backup:DescribeGlobalSettings backup:DescribeProtectedResource backup:DescribeRecoveryPoint backup:DescribeRegionSettings backup:DescribeReportJob backup:DescribeReportPlan backup:DescribeRestoreJob backup:DescribeScanJob backup:DisassociateRecoveryPoint backup:DisassociateRecoveryPointFromParent backup:ExportBackupPlanTemplate backup:GetBackupPlan backup:GetBackupPlanFromJSON backup:GetBackupPlanFromTemplate backup:GetBackupSelection backup:GetBackupVaultAccessPolicy backup:GetBackupVaultNotifications backup:GetLegalHold backup:GetRecoveryPointRestoreMetadata backup:GetRestoreJobMetadata backup:GetRestoreTestingInferredMetadata backup:GetRestoreTestingPlan backup:GetRestoreTestingSelection backup:GetSupportedResourceTypes backup:GetTieringConfiguration backup:ListBackupJobSummaries backup:ListBackupJobs backup:ListBackupPlanTemplates backup:ListBackupPlanVersions backup:ListBackupPlans backup:ListBackupSelections backup:ListBackupVaults backup:ListCopyJobSummaries backup:ListCopyJobs backup:ListFrameworks backup:ListIndexedRecoveryPoints backup:ListLegalHolds backup:ListProtectedResources backup:ListRecoveryPointsByBackupVault backup:ListRecoveryPointsByLegalHold backup:ListRecoveryPointsByResource backup:ListReportJobs backup:ListReportPlans backup:ListRestoreAccessBackupVaults backup:ListRestoreJobSummaries backup:ListRestoreJobs backup:ListRestoreJobsByProtectedResource backup:ListRestoreTestingPlans backup:ListRestoreTestingSelections backup:ListScanJobSummaries backup:ListScanJobs backup:ListTieringConfigurations backup:PutBackupVaultAccessPolicy backup:PutBackupVaultLockConfiguration backup:PutBackupVaultNotifications backup:PutRestoreValidationResult backup:StartBackupJob backup:StartCopyJob backup:StartReportJob backup:StartRestoreJob backup:StopBackupJob backup:UpdateBackupPlan backup:UpdateFramework backup:UpdateGlobalSettings backup:UpdateRecoveryPointLifecycle backup:UpdateRegionSettings backup:UpdateReportPlan backup:UpdateRestoreTestingPlan backup:UpdateRestoreTestingSelection backup:UpdateTieringConfiguration  | 
| 일괄 |  batch:CancelJob batch:CreateComputeEnvironment batch:CreateConsumableResource batch:CreateJobQueue batch:CreateSchedulingPolicy batch:CreateServiceEnvironment batch:DeleteComputeEnvironment batch:DeleteConsumableResource batch:DeleteJobQueue batch:DeleteSchedulingPolicy batch:DeleteServiceEnvironment batch:DeregisterJobDefinition batch:DescribeComputeEnvironments batch:DescribeConsumableResource batch:DescribeJobDefinitions batch:DescribeJobQueues batch:DescribeJobs batch:DescribeSchedulingPolicies batch:DescribeServiceEnvironments batch:DescribeServiceJob batch:GetJobQueueSnapshot batch:ListConsumableResources batch:ListJobs batch:ListJobsByConsumableResource batch:ListSchedulingPolicies batch:ListServiceJobs batch:RegisterJobDefinition batch:SubmitJob batch:SubmitServiceJob batch:TerminateJob batch:TerminateServiceJob batch:UpdateComputeEnvironment batch:UpdateConsumableResource batch:UpdateJobQueue batch:UpdateSchedulingPolicy batch:UpdateServiceEnvironment  | 
| braket |  braket:CancelJob braket:CancelQuantumTask braket:CreateJob braket:CreateQuantumTask braket:CreateSpendingLimit braket:GetDevice braket:GetJob braket:GetQuantumTask braket:SearchDevices braket:SearchJobs braket:SearchQuantumTasks braket:SearchSpendingLimits  | 
| 예산 |  budgets:CreateBudgetAction budgets:DeleteBudgetAction budgets:DescribeBudgetAction budgets:DescribeBudgetActionHistories budgets:DescribeBudgetActionsForAccount budgets:DescribeBudgetActionsForBudget budgets:ExecuteBudgetAction budgets:ModifyBudget budgets:UpdateBudgetAction budgets:ViewBudget  | 
| cloud9 |  cloud9:CreateEnvironmentEC2 cloud9:CreateEnvironmentMembership cloud9:DeleteEnvironment cloud9:DeleteEnvironmentMembership cloud9:DescribeEnvironmentMemberships cloud9:DescribeEnvironmentStatus cloud9:DescribeEnvironments cloud9:ListEnvironments cloud9:UpdateEnvironment cloud9:UpdateEnvironmentMembership  | 
| cloudformation |  cloudformation:BatchDescribeTypeConfigurations cloudformation:CancelUpdateStack cloudformation:ContinueUpdateRollback cloudformation:CreateChangeSet cloudformation:CreateGeneratedTemplate cloudformation:CreateStack cloudformation:CreateStackInstances cloudformation:CreateStackSet cloudformation:DeactivateType cloudformation:DeleteChangeSet cloudformation:DeleteGeneratedTemplate cloudformation:DeleteStack cloudformation:DeleteStackInstances cloudformation:DeleteStackSet cloudformation:DeregisterType cloudformation:DescribeAccountLimits cloudformation:DescribeChangeSet cloudformation:DescribeChangeSetHooks cloudformation:DescribeEvents cloudformation:DescribeGeneratedTemplate cloudformation:DescribeOrganizationsAccess cloudformation:DescribePublisher cloudformation:DescribeResourceScan cloudformation:DescribeStackDriftDetectionStatus cloudformation:DescribeStackEvents cloudformation:DescribeStackInstance cloudformation:DescribeStackResource cloudformation:DescribeStackResourceDrifts cloudformation:DescribeStackResources cloudformation:DescribeStackSet cloudformation:DescribeStackSetOperation cloudformation:DescribeStacks cloudformation:DescribeType cloudformation:DescribeTypeRegistration cloudformation:DetectStackDrift cloudformation:DetectStackResourceDrift cloudformation:DetectStackSetDrift cloudformation:EstimateTemplateCost cloudformation:ExecuteChangeSet cloudformation:GetGeneratedTemplate cloudformation:GetHookResult cloudformation:GetStackPolicy cloudformation:GetTemplate cloudformation:GetTemplateSummary cloudformation:ImportStacksToStackSet cloudformation:ListChangeSets cloudformation:ListExports cloudformation:ListGeneratedTemplates cloudformation:ListHookResults cloudformation:ListImports cloudformation:ListResourceScanRelatedResources cloudformation:ListResourceScanResources cloudformation:ListResourceScans cloudformation:ListStackInstanceResourceDrifts cloudformation:ListStackInstances cloudformation:ListStackRefactors cloudformation:ListStackResources cloudformation:ListStackSetAutoDeploymentTargets cloudformation:ListStackSetOperationResults cloudformation:ListStackSetOperations cloudformation:ListStackSets cloudformation:ListTypeRegistrations cloudformation:ListTypeVersions cloudformation:ListTypes cloudformation:PublishType cloudformation:RecordHandlerProgress cloudformation:RegisterPublisher cloudformation:RegisterType cloudformation:RollbackStack cloudformation:SetStackPolicy cloudformation:SetTypeConfiguration cloudformation:SetTypeDefaultVersion cloudformation:SignalResource cloudformation:StartResourceScan cloudformation:StopStackSetOperation cloudformation:TestType cloudformation:UpdateGeneratedTemplate cloudformation:UpdateStack cloudformation:UpdateStackInstances cloudformation:UpdateStackSet cloudformation:UpdateTerminationProtection cloudformation:ValidateTemplate  | 
| cloudfront |  cloudfront:AssociateAlias cloudfront:AssociateDistributionTenantWebACL cloudfront:AssociateDistributionWebACL cloudfront:CreateCachePolicy cloudfront:CreateCloudFrontOriginAccessIdentity cloudfront:CreateConnectionFunction cloudfront:CreateContinuousDeploymentPolicy cloudfront:CreateDistributionTenant cloudfront:CreateFieldLevelEncryptionConfig cloudfront:CreateFieldLevelEncryptionProfile cloudfront:CreateFunction cloudfront:CreateInvalidation cloudfront:CreateKeyGroup cloudfront:CreateKeyValueStore cloudfront:CreateMonitoringSubscription cloudfront:CreateOriginAccessControl cloudfront:CreateOriginRequestPolicy cloudfront:CreatePublicKey cloudfront:CreateRealtimeLogConfig cloudfront:CreateResponseHeadersPolicy cloudfront:CreateTrustStore cloudfront:DeleteAnycastIpList cloudfront:DeleteCachePolicy cloudfront:DeleteCloudFrontOriginAccessIdentity cloudfront:DeleteConnectionFunction cloudfront:DeleteConnectionGroup cloudfront:DeleteContinuousDeploymentPolicy cloudfront:DeleteDistribution cloudfront:DeleteDistributionTenant cloudfront:DeleteFieldLevelEncryptionConfig cloudfront:DeleteFieldLevelEncryptionProfile cloudfront:DeleteFunction cloudfront:DeleteKeyGroup cloudfront:DeleteKeyValueStore cloudfront:DeleteMonitoringSubscription cloudfront:DeleteOriginAccessControl cloudfront:DeleteOriginRequestPolicy cloudfront:DeletePublicKey cloudfront:DeleteRealtimeLogConfig cloudfront:DeleteResponseHeadersPolicy cloudfront:DeleteStreamingDistribution cloudfront:DeleteTrustStore cloudfront:DeleteVpcOrigin cloudfront:DescribeFunction cloudfront:DescribeKeyValueStore cloudfront:DisassociateDistributionTenantWebACL cloudfront:DisassociateDistributionWebACL cloudfront:GetAnycastIpList cloudfront:GetCachePolicy cloudfront:GetCachePolicyConfig cloudfront:GetCloudFrontOriginAccessIdentity cloudfront:GetCloudFrontOriginAccessIdentityConfig cloudfront:GetContinuousDeploymentPolicy cloudfront:GetContinuousDeploymentPolicyConfig cloudfront:GetDistributionConfig cloudfront:GetFieldLevelEncryption cloudfront:GetFieldLevelEncryptionConfig cloudfront:GetFieldLevelEncryptionProfile cloudfront:GetFieldLevelEncryptionProfileConfig cloudfront:GetFunction cloudfront:GetInvalidation cloudfront:GetInvalidationForDistributionTenant cloudfront:GetKeyGroup cloudfront:GetKeyGroupConfig cloudfront:GetMonitoringSubscription cloudfront:GetOriginAccessControl cloudfront:GetOriginAccessControlConfig cloudfront:GetOriginRequestPolicy cloudfront:GetOriginRequestPolicyConfig cloudfront:GetPublicKey cloudfront:GetPublicKeyConfig cloudfront:GetRealtimeLogConfig cloudfront:GetResponseHeadersPolicy cloudfront:GetResponseHeadersPolicyConfig cloudfront:GetStreamingDistribution cloudfront:GetStreamingDistributionConfig cloudfront:GetVpcOrigin cloudfront:ListAnycastIpLists cloudfront:ListCachePolicies cloudfront:ListCloudFrontOriginAccessIdentities cloudfront:ListConflictingAliases cloudfront:ListConnectionFunctions cloudfront:ListConnectionGroups cloudfront:ListContinuousDeploymentPolicies cloudfront:ListDistributionTenants cloudfront:ListDistributionTenantsByCustomization cloudfront:ListDistributions cloudfront:ListDistributionsByAnycastIpListId cloudfront:ListDistributionsByCachePolicyId cloudfront:ListDistributionsByConnectionMode cloudfront:ListDistributionsByKeyGroup cloudfront:ListDistributionsByOriginRequestPolicyId cloudfront:ListDistributionsByRealtimeLogConfig cloudfront:ListDistributionsByResponseHeadersPolicyId cloudfront:ListDistributionsByVpcOriginId cloudfront:ListDistributionsByWebACLId cloudfront:ListFieldLevelEncryptionConfigs cloudfront:ListFieldLevelEncryptionProfiles cloudfront:ListFunctions cloudfront:ListInvalidations cloudfront:ListInvalidationsForDistributionTenant cloudfront:ListKeyGroups cloudfront:ListKeyValueStores cloudfront:ListOriginAccessControls cloudfront:ListOriginRequestPolicies cloudfront:ListPublicKeys cloudfront:ListRealtimeLogConfigs cloudfront:ListResponseHeadersPolicies cloudfront:ListStreamingDistributions cloudfront:ListTrustStores cloudfront:PublishConnectionFunction cloudfront:PublishFunction cloudfront:TestConnectionFunction cloudfront:TestFunction cloudfront:UpdateAnycastIpList cloudfront:UpdateCachePolicy cloudfront:UpdateCloudFrontOriginAccessIdentity cloudfront:UpdateConnectionFunction cloudfront:UpdateConnectionGroup cloudfront:UpdateContinuousDeploymentPolicy cloudfront:UpdateDistribution cloudfront:UpdateDistributionTenant cloudfront:UpdateFieldLevelEncryptionConfig cloudfront:UpdateFieldLevelEncryptionProfile cloudfront:UpdateFunction cloudfront:UpdateKeyGroup cloudfront:UpdateKeyValueStore cloudfront:UpdateOriginAccessControl cloudfront:UpdateOriginRequestPolicy cloudfront:UpdatePublicKey cloudfront:UpdateRealtimeLogConfig cloudfront:UpdateResponseHeadersPolicy cloudfront:UpdateTrustStore  | 
| cloudhsm |  cloudhsm:CreateHsm cloudhsm:DeleteBackup cloudhsm:DeleteHsm cloudhsm:DeleteResourcePolicy cloudhsm:DescribeBackups cloudhsm:DescribeClusters cloudhsm:GetResourcePolicy cloudhsm:InitializeCluster cloudhsm:ModifyBackupAttributes cloudhsm:ModifyCluster cloudhsm:PutResourcePolicy cloudhsm:RestoreBackup  | 
| cloudsearch |  cloudsearch:BuildSuggesters cloudsearch:CreateDomain cloudsearch:DefineAnalysisScheme cloudsearch:DefineExpression cloudsearch:DefineIndexField cloudsearch:DefineSuggester cloudsearch:DeleteAnalysisScheme cloudsearch:DeleteDomain cloudsearch:DeleteExpression cloudsearch:DeleteIndexField cloudsearch:DeleteSuggester cloudsearch:DescribeAnalysisSchemes cloudsearch:DescribeAvailabilityOptions cloudsearch:DescribeDomainEndpointOptions cloudsearch:DescribeDomains cloudsearch:DescribeExpressions cloudsearch:DescribeIndexFields cloudsearch:DescribeScalingParameters cloudsearch:DescribeServiceAccessPolicies cloudsearch:DescribeSuggesters cloudsearch:IndexDocuments cloudsearch:ListDomainNames cloudsearch:UpdateAvailabilityOptions cloudsearch:UpdateDomainEndpointOptions cloudsearch:UpdateScalingParameters cloudsearch:UpdateServiceAccessPolicies  | 
| cloudtrail |  cloudtrail:CancelQuery cloudtrail:CreateChannel cloudtrail:CreateDashboard cloudtrail:CreateEventDataStore cloudtrail:CreateTrail cloudtrail:DeleteChannel cloudtrail:DeleteDashboard cloudtrail:DeleteEventDataStore cloudtrail:DeleteResourcePolicy cloudtrail:DeleteTrail cloudtrail:DeregisterOrganizationDelegatedAdmin cloudtrail:DescribeQuery cloudtrail:DescribeTrails cloudtrail:DisableFederation cloudtrail:GenerateQuery cloudtrail:GetChannel cloudtrail:GetDashboard cloudtrail:GetEventConfiguration cloudtrail:GetEventDataStore cloudtrail:GetEventDataStoreData cloudtrail:GetEventSelectors cloudtrail:GetImport cloudtrail:GetInsightSelectors cloudtrail:GetResourcePolicy cloudtrail:GetTrail cloudtrail:GetTrailStatus cloudtrail:ListChannels cloudtrail:ListDashboards cloudtrail:ListEventDataStores cloudtrail:ListImportFailures cloudtrail:ListImports cloudtrail:ListInsightsData cloudtrail:ListPublicKeys cloudtrail:ListQueries cloudtrail:ListTrails cloudtrail:LookupEvents cloudtrail:PutEventConfiguration cloudtrail:PutEventSelectors cloudtrail:PutInsightSelectors cloudtrail:PutResourcePolicy cloudtrail:RegisterOrganizationDelegatedAdmin cloudtrail:RestoreEventDataStore cloudtrail:SearchSampleQueries cloudtrail:StartEventDataStoreIngestion cloudtrail:StartImport cloudtrail:StartLogging cloudtrail:StartQuery cloudtrail:StopEventDataStoreIngestion cloudtrail:StopImport cloudtrail:StopLogging cloudtrail:UpdateChannel cloudtrail:UpdateDashboard cloudtrail:UpdateEventDataStore cloudtrail:UpdateTrail  | 
| cloudwatch |  cloudwatch:DeleteAlarms cloudwatch:DeleteAnomalyDetector cloudwatch:DeleteDashboards cloudwatch:DeleteInsightRules cloudwatch:DeleteMetricStream cloudwatch:DescribeAlarmHistory cloudwatch:DescribeAlarms cloudwatch:DescribeAlarmsForMetric cloudwatch:DescribeAnomalyDetectors cloudwatch:DescribeInsightRules cloudwatch:DisableAlarmActions cloudwatch:DisableInsightRules cloudwatch:EnableAlarmActions cloudwatch:EnableInsightRules cloudwatch:GetDashboard cloudwatch:GetInsightRuleReport cloudwatch:GetMetricStatistics cloudwatch:GetMetricStream cloudwatch:ListDashboards cloudwatch:ListManagedInsightRules cloudwatch:ListMetricStreams cloudwatch:PutAnomalyDetector cloudwatch:PutCompositeAlarm cloudwatch:PutDashboard cloudwatch:PutInsightRule cloudwatch:PutManagedInsightRules cloudwatch:PutMetricAlarm cloudwatch:PutMetricStream cloudwatch:SetAlarmState cloudwatch:StartMetricStreams cloudwatch:StopMetricStreams  | 
| codeartifact |  codeartifact:AssociateExternalConnection codeartifact:CopyPackageVersions codeartifact:CreateDomain codeartifact:CreateRepository codeartifact:DeleteDomain codeartifact:DeleteDomainPermissionsPolicy codeartifact:DeletePackage codeartifact:DeletePackageVersions codeartifact:DeleteRepository codeartifact:DeleteRepositoryPermissionsPolicy codeartifact:DescribeDomain codeartifact:DescribePackage codeartifact:DescribePackageVersion codeartifact:DescribeRepository codeartifact:DisassociateExternalConnection codeartifact:DisposePackageVersions codeartifact:GetAssociatedPackageGroup codeartifact:GetAuthorizationToken codeartifact:GetDomainPermissionsPolicy codeartifact:GetPackageVersionAsset codeartifact:GetPackageVersionReadme codeartifact:GetRepositoryEndpoint codeartifact:GetRepositoryPermissionsPolicy codeartifact:ListDomains codeartifact:ListPackageGroups codeartifact:ListPackageVersionAssets codeartifact:ListPackageVersionDependencies codeartifact:ListPackageVersions codeartifact:ListPackages codeartifact:ListRepositories codeartifact:ListRepositoriesInDomain codeartifact:PublishPackageVersion codeartifact:PutDomainPermissionsPolicy codeartifact:PutPackageMetadata codeartifact:PutPackageOriginConfiguration codeartifact:PutRepositoryPermissionsPolicy codeartifact:ReadFromRepository codeartifact:UpdatePackageVersionsStatus codeartifact:UpdateRepository  | 
| codedeploy |  codedeploy:BatchGetApplicationRevisions codedeploy:BatchGetApplications codedeploy:BatchGetDeploymentGroups codedeploy:BatchGetDeploymentInstances codedeploy:BatchGetDeploymentTargets codedeploy:BatchGetDeployments codedeploy:BatchGetOnPremisesInstances codedeploy:ContinueDeployment codedeploy:CreateApplication codedeploy:CreateDeployment codedeploy:CreateDeploymentConfig codedeploy:CreateDeploymentGroup codedeploy:DeleteApplication codedeploy:DeleteDeploymentConfig codedeploy:DeleteDeploymentGroup codedeploy:DeleteGitHubAccountToken codedeploy:DeleteResourcesByExternalId codedeploy:DeregisterOnPremisesInstance codedeploy:GetApplication codedeploy:GetApplicationRevision codedeploy:GetDeployment codedeploy:GetDeploymentConfig codedeploy:GetDeploymentGroup codedeploy:GetDeploymentInstance codedeploy:GetDeploymentTarget codedeploy:GetOnPremisesInstance codedeploy:ListApplicationRevisions codedeploy:ListApplications codedeploy:ListDeploymentConfigs codedeploy:ListDeploymentGroups codedeploy:ListDeploymentInstances codedeploy:ListDeploymentTargets codedeploy:ListDeployments codedeploy:ListGitHubAccountTokenNames codedeploy:ListOnPremisesInstances codedeploy:PutLifecycleEventHookExecutionStatus codedeploy:RegisterApplicationRevision codedeploy:RegisterOnPremisesInstance codedeploy:SkipWaitTimeForInstanceTermination codedeploy:StopDeployment codedeploy:UpdateApplication codedeploy:UpdateDeploymentGroup  | 
| codeguru-profiler |  codeguru-profiler:AddNotificationChannels codeguru-profiler:BatchGetFrameMetricData codeguru-profiler:CreateProfilingGroup codeguru-profiler:DeleteProfilingGroup codeguru-profiler:DescribeProfilingGroup codeguru-profiler:GetFindingsReportAccountSummary codeguru-profiler:GetNotificationConfiguration codeguru-profiler:GetPolicy codeguru-profiler:GetProfile codeguru-profiler:GetRecommendations codeguru-profiler:ListFindingsReports codeguru-profiler:ListProfileTimes codeguru-profiler:ListProfilingGroups codeguru-profiler:PutPermission codeguru-profiler:RemoveNotificationChannel codeguru-profiler:RemovePermission codeguru-profiler:SubmitFeedback codeguru-profiler:UpdateProfilingGroup  | 
| codeguru-reviewer |  codeguru-reviewer:AssociateRepository codeguru-reviewer:CreateCodeReview codeguru-reviewer:DescribeCodeReview codeguru-reviewer:DescribeRecommendationFeedback codeguru-reviewer:DescribeRepositoryAssociation codeguru-reviewer:DisassociateRepository codeguru-reviewer:ListCodeReviews codeguru-reviewer:ListRecommendationFeedback codeguru-reviewer:ListRecommendations codeguru-reviewer:ListRepositoryAssociations codeguru-reviewer:PutRecommendationFeedback  | 
| CodePipeline |  codepipeline:AcknowledgeJob codepipeline:AcknowledgeThirdPartyJob codepipeline:CreateCustomActionType codepipeline:CreatePipeline codepipeline:DeleteCustomActionType codepipeline:DeletePipeline codepipeline:DeleteWebhook codepipeline:DeregisterWebhookWithThirdParty codepipeline:GetActionType codepipeline:GetJobDetails codepipeline:GetPipeline codepipeline:GetPipelineExecution codepipeline:GetPipelineState codepipeline:GetThirdPartyJobDetails codepipeline:ListActionExecutions codepipeline:ListActionTypes codepipeline:ListPipelineExecutions codepipeline:ListPipelines codepipeline:ListRuleExecutions codepipeline:ListRuleTypes codepipeline:ListWebhooks codepipeline:OverrideStageCondition codepipeline:PollForJobs codepipeline:PollForThirdPartyJobs codepipeline:PutActionRevision codepipeline:PutApprovalResult codepipeline:PutJobFailureResult codepipeline:PutJobSuccessResult codepipeline:PutThirdPartyJobFailureResult codepipeline:PutThirdPartyJobSuccessResult codepipeline:PutWebhook codepipeline:RegisterWebhookWithThirdParty codepipeline:RollbackStage codepipeline:StartPipelineExecution codepipeline:StopPipelineExecution codepipeline:UpdateActionType codepipeline:UpdatePipeline  | 
| codestar |  codestar:AssociateTeamMember codestar:CreateProject codestar:CreateUserProfile codestar:DeleteProject codestar:DeleteUserProfile codestar:DescribeProject codestar:DescribeUserProfile codestar:DisassociateTeamMember codestar:ListProjects codestar:ListResources codestar:ListTeamMembers codestar:ListUserProfiles codestar:UpdateProject codestar:UpdateTeamMember codestar:UpdateUserProfile  | 
| codestar-notifications |  codestar-notifications:CreateNotificationRule codestar-notifications:DeleteNotificationRule codestar-notifications:DeleteTarget codestar-notifications:DescribeNotificationRule codestar-notifications:ListEventTypes codestar-notifications:ListNotificationRules codestar-notifications:ListTargets codestar-notifications:Subscribe codestar-notifications:Unsubscribe codestar-notifications:UpdateNotificationRule  | 
| cognito-identity |  cognito-identity:CreateIdentityPool cognito-identity:DeleteIdentities cognito-identity:DeleteIdentityPool cognito-identity:DescribeIdentity cognito-identity:DescribeIdentityPool cognito-identity:GetIdentityPoolRoles cognito-identity:ListIdentities cognito-identity:ListIdentityPools cognito-identity:LookupDeveloperIdentity cognito-identity:MergeDeveloperIdentities cognito-identity:SetIdentityPoolRoles cognito-identity:UnlinkDeveloperIdentity cognito-identity:UpdateIdentityPool  | 
| cognito-idp |  cognito-idp:AddCustomAttributes cognito-idp:AdminAddUserToGroup cognito-idp:AdminConfirmSignUp cognito-idp:AdminCreateUser cognito-idp:AdminDeleteUser cognito-idp:AdminDeleteUserAttributes cognito-idp:AdminDisableProviderForUser cognito-idp:AdminDisableUser cognito-idp:AdminEnableUser cognito-idp:AdminForgetDevice cognito-idp:AdminGetDevice cognito-idp:AdminGetUser cognito-idp:AdminInitiateAuth cognito-idp:AdminLinkProviderForUser cognito-idp:AdminListDevices cognito-idp:AdminListGroupsForUser cognito-idp:AdminListUserAuthEvents cognito-idp:AdminRemoveUserFromGroup cognito-idp:AdminResetUserPassword cognito-idp:AdminRespondToAuthChallenge cognito-idp:AdminSetUserMFAPreference cognito-idp:AdminSetUserPassword cognito-idp:AdminSetUserSettings cognito-idp:AdminUpdateAuthEventFeedback cognito-idp:AdminUpdateDeviceStatus cognito-idp:AdminUpdateUserAttributes cognito-idp:AdminUserGlobalSignOut cognito-idp:AssociateSoftwareToken cognito-idp:ChangePassword cognito-idp:ConfirmDevice cognito-idp:ConfirmForgotPassword cognito-idp:ConfirmSignUp cognito-idp:CreateGroup cognito-idp:CreateIdentityProvider cognito-idp:CreateManagedLoginBranding cognito-idp:CreateResourceServer cognito-idp:CreateTerms cognito-idp:CreateUserImportJob cognito-idp:CreateUserPool cognito-idp:CreateUserPoolClient cognito-idp:CreateUserPoolDomain cognito-idp:DeleteGroup cognito-idp:DeleteIdentityProvider cognito-idp:DeleteManagedLoginBranding cognito-idp:DeleteResourceServer cognito-idp:DeleteTerms cognito-idp:DeleteUser cognito-idp:DeleteUserAttributes cognito-idp:DeleteUserPool cognito-idp:DeleteUserPoolClient cognito-idp:DeleteUserPoolDomain cognito-idp:DescribeIdentityProvider cognito-idp:DescribeManagedLoginBranding cognito-idp:DescribeManagedLoginBrandingByClient cognito-idp:DescribeResourceServer cognito-idp:DescribeRiskConfiguration cognito-idp:DescribeTerms cognito-idp:DescribeUserImportJob cognito-idp:DescribeUserPool cognito-idp:DescribeUserPoolClient cognito-idp:DescribeUserPoolDomain cognito-idp:ForgetDevice cognito-idp:ForgotPassword cognito-idp:GetCSVHeader cognito-idp:GetDevice cognito-idp:GetGroup cognito-idp:GetIdentityProviderByIdentifier cognito-idp:GetLogDeliveryConfiguration cognito-idp:GetSigningCertificate cognito-idp:GetUICustomization cognito-idp:GetUser cognito-idp:GetUserAttributeVerificationCode cognito-idp:GetUserPoolMfaConfig cognito-idp:GlobalSignOut cognito-idp:InitiateAuth cognito-idp:ListDevices cognito-idp:ListGroups cognito-idp:ListIdentityProviders cognito-idp:ListResourceServers cognito-idp:ListTerms cognito-idp:ListUserImportJobs cognito-idp:ListUserPoolClients cognito-idp:ListUserPools cognito-idp:ListUsers cognito-idp:ListUsersInGroup cognito-idp:ResendConfirmationCode cognito-idp:RespondToAuthChallenge cognito-idp:RevokeToken cognito-idp:SetLogDeliveryConfiguration cognito-idp:SetRiskConfiguration cognito-idp:SetUICustomization cognito-idp:SetUserMFAPreference cognito-idp:SetUserPoolMfaConfig cognito-idp:SetUserSettings cognito-idp:SignUp cognito-idp:StartUserImportJob cognito-idp:StopUserImportJob cognito-idp:UpdateAuthEventFeedback cognito-idp:UpdateDeviceStatus cognito-idp:UpdateGroup cognito-idp:UpdateIdentityProvider cognito-idp:UpdateResourceServer cognito-idp:UpdateTerms cognito-idp:UpdateUserAttributes cognito-idp:UpdateUserPool cognito-idp:UpdateUserPoolClient cognito-idp:UpdateUserPoolDomain cognito-idp:VerifySoftwareToken cognito-idp:VerifyUserAttribute  | 
| cognito-sync |  cognito-sync:BulkPublish cognito-sync:DeleteDataset cognito-sync:DescribeDataset cognito-sync:DescribeIdentityPoolUsage cognito-sync:DescribeIdentityUsage cognito-sync:GetBulkPublishDetails cognito-sync:GetCognitoEvents cognito-sync:GetIdentityPoolConfiguration cognito-sync:ListDatasets cognito-sync:ListIdentityPoolUsage cognito-sync:ListRecords cognito-sync:RegisterDevice cognito-sync:SetCognitoEvents cognito-sync:SetIdentityPoolConfiguration cognito-sync:SubscribeToDataset cognito-sync:UnsubscribeFromDataset cognito-sync:UpdateRecords  | 
| comprehendmedical |  comprehendmedical:DescribeEntitiesDetectionV2Job comprehendmedical:DescribeICD10CMInferenceJob comprehendmedical:DescribePHIDetectionJob comprehendmedical:DescribeRxNormInferenceJob comprehendmedical:DescribeSNOMEDCTInferenceJob comprehendmedical:DetectEntitiesV2 comprehendmedical:DetectPHI comprehendmedical:InferICD10CM comprehendmedical:InferRxNorm comprehendmedical:InferSNOMEDCT comprehendmedical:ListEntitiesDetectionV2Jobs comprehendmedical:ListICD10CMInferenceJobs comprehendmedical:ListPHIDetectionJobs comprehendmedical:ListRxNormInferenceJobs comprehendmedical:ListSNOMEDCTInferenceJobs comprehendmedical:StartEntitiesDetectionV2Job comprehendmedical:StartICD10CMInferenceJob comprehendmedical:StartPHIDetectionJob comprehendmedical:StartRxNormInferenceJob comprehendmedical:StartSNOMEDCTInferenceJob comprehendmedical:StopEntitiesDetectionV2Job comprehendmedical:StopICD10CMInferenceJob comprehendmedical:StopPHIDetectionJob comprehendmedical:StopRxNormInferenceJob comprehendmedical:StopSNOMEDCTInferenceJob  | 
| compute-optimizer |  compute-optimizer:DeleteRecommendationPreferences compute-optimizer:DescribeRecommendationExportJobs compute-optimizer:ExportAutoScalingGroupRecommendations compute-optimizer:ExportEBSVolumeRecommendations compute-optimizer:ExportEC2InstanceRecommendations compute-optimizer:ExportECSServiceRecommendations compute-optimizer:ExportIdleRecommendations compute-optimizer:ExportLambdaFunctionRecommendations compute-optimizer:ExportLicenseRecommendations compute-optimizer:ExportRDSDatabaseRecommendations compute-optimizer:GetEC2RecommendationProjectedMetrics compute-optimizer:GetECSServiceRecommendationProjectedMetrics compute-optimizer:GetEffectiveRecommendationPreferences compute-optimizer:GetEnrollmentStatus compute-optimizer:GetEnrollmentStatusesForOrganization compute-optimizer:GetRDSDatabaseRecommendationProjectedMetrics compute-optimizer:GetRecommendationPreferences compute-optimizer:GetRecommendationSummaries compute-optimizer:PutRecommendationPreferences compute-optimizer:UpdateEnrollmentStatus  | 
| config |  config:BatchGetResourceConfig config:DeleteAggregationAuthorization config:DeleteConfigRule config:DeleteConfigurationAggregator config:DeleteConfigurationRecorder config:DeleteConformancePack config:DeleteDeliveryChannel config:DeleteEvaluationResults config:DeleteOrganizationConfigRule config:DeleteOrganizationConformancePack config:DeletePendingAggregationRequest config:DeleteRemediationConfiguration config:DeleteRemediationExceptions config:DeleteResourceConfig config:DeleteRetentionConfiguration config:DeleteStoredQuery config:DeliverConfigSnapshot config:DescribeAggregateComplianceByConfigRules config:DescribeAggregateComplianceByConformancePacks config:DescribeAggregationAuthorizations config:DescribeComplianceByConfigRule config:DescribeComplianceByResource config:DescribeConfigRuleEvaluationStatus config:DescribeConfigRules config:DescribeConfigurationAggregatorSourcesStatus config:DescribeConfigurationAggregators config:DescribeConfigurationRecorderStatus config:DescribeConfigurationRecorders config:DescribeConformancePackCompliance config:DescribeConformancePackStatus config:DescribeConformancePacks config:DescribeDeliveryChannelStatus config:DescribeDeliveryChannels config:DescribeOrganizationConfigRuleStatuses config:DescribeOrganizationConfigRules config:DescribeOrganizationConformancePackStatuses config:DescribeOrganizationConformancePacks config:DescribePendingAggregationRequests config:DescribeRemediationConfigurations config:DescribeRemediationExceptions config:DescribeRemediationExecutionStatus config:DescribeRetentionConfigurations config:GetComplianceDetailsByConfigRule config:GetComplianceDetailsByResource config:GetComplianceSummaryByConfigRule config:GetComplianceSummaryByResourceType config:GetConformancePackComplianceDetails config:GetConformancePackComplianceSummary config:GetCustomRulePolicy config:GetDiscoveredResourceCounts config:GetOrganizationConfigRuleDetailedStatus config:GetOrganizationConformancePackDetailedStatus config:GetOrganizationCustomRulePolicy config:GetResourceConfigHistory config:GetResourceEvaluationSummary config:GetStoredQuery config:ListConfigurationRecorders config:ListConformancePackComplianceScores config:ListDiscoveredResources config:ListResourceEvaluations config:ListStoredQueries config:PutConfigRule config:PutConfigurationAggregator config:PutConfigurationRecorder config:PutConformancePack config:PutDeliveryChannel config:PutEvaluations config:PutExternalEvaluation config:PutOrganizationConfigRule config:PutOrganizationConformancePack config:PutRemediationConfigurations config:PutRemediationExceptions config:PutResourceConfig config:PutRetentionConfiguration config:PutStoredQuery config:SelectResourceConfig config:StartConfigRulesEvaluation config:StartConfigurationRecorder config:StartRemediationExecution config:StartResourceEvaluation config:StopConfigurationRecorder  | 
| 연결 |  connect:ActivateEvaluationForm connect:AssociateAnalyticsDataSet connect:AssociateApprovedOrigin connect:AssociateBot connect:AssociateContactWithUser connect:AssociateDefaultVocabulary connect:AssociateEmailAddressAlias connect:AssociateFlow connect:AssociateInstanceStorageConfig connect:AssociateLambdaFunction connect:AssociateLexBot connect:AssociatePhoneNumberContactFlow connect:AssociateQueueQuickConnects connect:AssociateRoutingProfileQueues connect:AssociateSecurityKey connect:AssociateUserProficiencies connect:BatchAssociateAnalyticsDataSet connect:BatchCreateDataTableValue connect:BatchDeleteDataTableValue connect:BatchDescribeDataTableValue connect:BatchDisassociateAnalyticsDataSet connect:BatchGetFlowAssociation connect:BatchPutContact connect:BatchUpdateDataTableValue connect:ClaimPhoneNumber connect:CreateAgentStatus connect:CreateContact connect:CreateContactFlow connect:CreateContactFlowModule connect:CreateContactFlowModuleAlias connect:CreateContactFlowModuleVersion connect:CreateContactFlowVersion connect:CreateDataTable connect:CreateDataTableAttribute connect:CreateEmailAddress connect:CreateEvaluationForm connect:CreateHoursOfOperation connect:CreateInstance connect:CreateIntegrationAssociation connect:CreateParticipant connect:CreatePersistentContactAssociation connect:CreatePredefinedAttribute connect:CreatePrompt connect:CreatePushNotificationRegistration connect:CreateQueue connect:CreateQuickConnect connect:CreateRoutingProfile connect:CreateRule connect:CreateSecurityProfile connect:CreateTaskTemplate connect:CreateTrafficDistributionGroup connect:CreateUseCase connect:CreateUser connect:CreateUserHierarchyGroup connect:CreateView connect:CreateViewVersion connect:CreateVocabulary connect:CreateWorkspace connect:DeactivateEvaluationForm connect:DeleteContactEvaluation connect:DeleteContactFlow connect:DeleteContactFlowModule connect:DeleteContactFlowModuleAlias connect:DeleteContactFlowModuleVersion connect:DeleteContactFlowVersion connect:DeleteDataTable connect:DeleteDataTableAttribute connect:DeleteEmailAddress connect:DeleteEvaluationForm connect:DeleteHoursOfOperation connect:DeleteHoursOfOperationOverride connect:DeleteInstance connect:DeleteIntegrationAssociation connect:DeletePredefinedAttribute connect:DeletePrompt connect:DeletePushNotificationRegistration connect:DeleteQueue connect:DeleteQuickConnect connect:DeleteRoutingProfile connect:DeleteRule connect:DeleteSecurityProfile connect:DeleteTaskTemplate connect:DeleteTrafficDistributionGroup connect:DeleteUseCase connect:DeleteUser connect:DeleteUserHierarchyGroup connect:DeleteView connect:DeleteVocabulary connect:DeleteWorkspace connect:DeleteWorkspaceMedia connect:DescribeAuthenticationProfile connect:DescribeContactFlowModuleAlias connect:DescribeDataTableAttribute connect:DescribeHoursOfOperationOverride connect:DescribeInstanceAttribute connect:DescribeInstanceStorageConfig connect:DescribePhoneNumber connect:DescribeRule connect:DescribeTrafficDistributionGroup connect:DescribeUserHierarchyStructure connect:DescribeVocabulary connect:DisassociateAnalyticsDataSet connect:DisassociateApprovedOrigin connect:DisassociateBot connect:DisassociateEmailAddressAlias connect:DisassociateFlow connect:DisassociateInstanceStorageConfig connect:DisassociateLambdaFunction connect:DisassociateLexBot connect:DisassociatePhoneNumberContactFlow connect:DisassociateQueueQuickConnects connect:DisassociateRoutingProfileQueues connect:DisassociateSecurityKey connect:DisassociateUserProficiencies connect:DismissUserContact connect:EvaluateDataTableValues connect:GetContactAttributes connect:GetContactMetrics connect:GetCurrentMetricData connect:GetCurrentUserData connect:GetEffectiveHoursOfOperations connect:GetFederationToken connect:GetFlowAssociation connect:GetMetricData connect:GetMetricDataV2 connect:GetPromptFile connect:GetTaskTemplate connect:GetTrafficDistribution connect:ImportPhoneNumber connect:ImportWorkspaceMedia connect:ListAnalyticsDataAssociations connect:ListAnalyticsDataLakeDataSets connect:ListApprovedOrigins connect:ListAssociatedContacts connect:ListAuthenticationProfiles connect:ListBots connect:ListContactEvaluations connect:ListContactFlowModuleAliases connect:ListContactFlowModuleVersions connect:ListContactFlowModules connect:ListContactFlowVersions connect:ListContactFlows connect:ListContactReferences connect:ListDataTableAttributes connect:ListDataTablePrimaryValues connect:ListDataTableValues connect:ListDataTables connect:ListDefaultVocabularies connect:ListEvaluationFormVersions connect:ListEvaluationForms connect:ListFlowAssociations connect:ListHoursOfOperations connect:ListInstanceAttributes connect:ListInstanceStorageConfigs connect:ListIntegrationAssociations connect:ListLambdaFunctions connect:ListLexBots connect:ListPhoneNumbers connect:ListPhoneNumbersV2 connect:ListPredefinedAttributes connect:ListPrompts connect:ListQueueQuickConnects connect:ListQueues connect:ListQuickConnects connect:ListRealtimeContactAnalysisSegmentsV2 connect:ListRoutingProfileManualAssignmentQueues connect:ListRoutingProfileQueues connect:ListRoutingProfiles connect:ListRules connect:ListSecurityKeys connect:ListSecurityProfileApplications connect:ListSecurityProfileFlowModules connect:ListSecurityProfilePermissions connect:ListSecurityProfiles connect:ListTaskTemplates connect:ListTrafficDistributionGroups connect:ListUseCases connect:ListUserHierarchyGroups connect:ListUsers connect:ListViewVersions connect:ListViews connect:ListWorkspaceMedia connect:ListWorkspacePages connect:ListWorkspaces connect:MonitorContact connect:PauseContact connect:PutUserStatus connect:ReleasePhoneNumber connect:ReplicateInstance connect:ResumeContact connect:ResumeContactRecording connect:SearchAgentStatuses connect:SearchAvailablePhoneNumbers connect:SearchContactEvaluations connect:SearchContactFlowModules connect:SearchContactFlows connect:SearchContacts connect:SearchDataTables connect:SearchEmailAddresses connect:SearchEvaluationForms connect:SearchHoursOfOperations connect:SearchPredefinedAttributes connect:SearchPrompts connect:SearchQueues connect:SearchQuickConnects connect:SearchRoutingProfiles connect:SearchSecurityProfiles connect:SearchUserHierarchyGroups connect:SearchViews connect:SearchVocabularies connect:SearchWorkspaceAssociations connect:SearchWorkspaces connect:SendChatIntegrationEvent connect:SendOutboundEmail connect:StartChatContact connect:StartContactEvaluation connect:StartContactMediaProcessing connect:StartContactRecording connect:StartContactStreaming connect:StartEmailContact connect:StartOutboundChatContact connect:StartOutboundEmailContact connect:StartOutboundVoiceContact connect:StartScreenSharing connect:StartTaskContact connect:StartWebRTCContact connect:StopContact connect:StopContactMediaProcessing connect:StopContactRecording connect:StopContactStreaming connect:SubmitContactEvaluation connect:SuspendContactRecording connect:TransferContact connect:UpdateAgentStatus connect:UpdateAuthenticationProfile connect:UpdateContact connect:UpdateContactAttributes connect:UpdateContactEvaluation connect:UpdateContactFlowContent connect:UpdateContactFlowMetadata connect:UpdateContactFlowModuleAlias connect:UpdateContactFlowModuleContent connect:UpdateContactFlowModuleMetadata connect:UpdateContactFlowName connect:UpdateContactRoutingData connect:UpdateContactSchedule connect:UpdateDataTableAttribute connect:UpdateDataTableMetadata connect:UpdateDataTablePrimaryValues connect:UpdateEmailAddressMetadata connect:UpdateEvaluationForm connect:UpdateHoursOfOperation connect:UpdateHoursOfOperationOverride connect:UpdateInstanceAttribute connect:UpdateInstanceStorageConfig connect:UpdateParticipantAuthentication connect:UpdateParticipantRoleConfig connect:UpdatePhoneNumber connect:UpdatePhoneNumberMetadata connect:UpdatePredefinedAttribute connect:UpdatePrompt connect:UpdateQueueHoursOfOperation connect:UpdateQueueMaxContacts connect:UpdateQueueName connect:UpdateQueueOutboundCallerConfig connect:UpdateQueueOutboundEmailConfig connect:UpdateQueueStatus connect:UpdateQuickConnectConfig connect:UpdateQuickConnectName connect:UpdateRoutingProfileAgentAvailabilityTimer connect:UpdateRoutingProfileConcurrency connect:UpdateRoutingProfileDefaultOutboundQueue connect:UpdateRoutingProfileName connect:UpdateRoutingProfileQueues connect:UpdateRule connect:UpdateSecurityProfile connect:UpdateTaskTemplate connect:UpdateTrafficDistribution connect:UpdateUserHierarchy connect:UpdateUserHierarchyGroupName connect:UpdateUserHierarchyStructure connect:UpdateUserIdentityInfo connect:UpdateUserPhoneConfig connect:UpdateUserProficiencies connect:UpdateUserRoutingProfile connect:UpdateUserSecurityProfiles connect:UpdateViewContent connect:UpdateViewMetadata connect:UpdateWorkspaceMetadata connect:UpdateWorkspaceTheme connect:UpdateWorkspaceVisibility  | 
| cur |  cur:DeleteReportDefinition cur:DescribeReportDefinitions cur:ModifyReportDefinition cur:PutReportDefinition  | 
| databrew |  databrew:BatchDeleteRecipeVersion databrew:CreateDataset databrew:CreateProfileJob databrew:CreateProject databrew:CreateRecipe databrew:CreateRecipeJob databrew:CreateRuleset databrew:CreateSchedule databrew:DeleteDataset databrew:DeleteJob databrew:DeleteProject databrew:DeleteRecipeVersion databrew:DeleteRuleset databrew:DeleteSchedule databrew:DescribeDataset databrew:DescribeJob databrew:DescribeJobRun databrew:DescribeProject databrew:DescribeRecipe databrew:DescribeRuleset databrew:DescribeSchedule databrew:ListDatasets databrew:ListJobRuns databrew:ListJobs databrew:ListProjects databrew:ListRecipeVersions databrew:ListRecipes databrew:ListRulesets databrew:ListSchedules databrew:PublishRecipe databrew:SendProjectSessionAction databrew:StartJobRun databrew:StartProjectSession databrew:StopJobRun databrew:UpdateDataset databrew:UpdateProfileJob databrew:UpdateProject databrew:UpdateRecipe databrew:UpdateRecipeJob databrew:UpdateRuleset databrew:UpdateSchedule  | 
| dataexchange |  dataexchange:AcceptDataGrant dataexchange:CancelJob dataexchange:CreateDataGrant dataexchange:CreateDataSet dataexchange:CreateEventAction dataexchange:CreateJob dataexchange:CreateRevision dataexchange:DeleteAsset dataexchange:DeleteDataGrant dataexchange:DeleteEventAction dataexchange:DeleteRevision dataexchange:GetDataGrant dataexchange:GetEventAction dataexchange:GetJob dataexchange:GetReceivedDataGrant dataexchange:ListDataGrants dataexchange:ListDataSetRevisions dataexchange:ListDataSets dataexchange:ListEventActions dataexchange:ListJobs dataexchange:ListReceivedDataGrants dataexchange:ListRevisionAssets dataexchange:RevokeRevision dataexchange:SendDataSetNotification dataexchange:StartJob dataexchange:UpdateAsset dataexchange:UpdateDataSet dataexchange:UpdateEventAction dataexchange:UpdateRevision  | 
| datapipeline |  datapipeline:ActivatePipeline datapipeline:CreatePipeline datapipeline:DeactivatePipeline datapipeline:DeletePipeline datapipeline:DescribeObjects datapipeline:DescribePipelines datapipeline:EvaluateExpression datapipeline:GetPipelineDefinition datapipeline:ListPipelines datapipeline:PollForTask datapipeline:PutPipelineDefinition datapipeline:QueryObjects datapipeline:ReportTaskProgress datapipeline:ReportTaskRunnerHeartbeat datapipeline:SetStatus datapipeline:SetTaskStatus datapipeline:ValidatePipelineDefinition  | 
| dax |  dax:CreateCluster dax:DecreaseReplicationFactor dax:DeleteCluster dax:DeleteParameterGroup dax:DeleteSubnetGroup dax:DescribeClusters dax:DescribeDefaultParameters dax:DescribeEvents dax:DescribeParameterGroups dax:DescribeParameters dax:DescribeSubnetGroups dax:IncreaseReplicationFactor dax:RebootNode dax:UpdateCluster dax:UpdateParameterGroup dax:UpdateSubnetGroup  | 
| devicefarm |  devicefarm:CreateDevicePool devicefarm:CreateInstanceProfile devicefarm:CreateNetworkProfile devicefarm:CreateProject devicefarm:CreateRemoteAccessSession devicefarm:CreateTestGridProject devicefarm:CreateTestGridUrl devicefarm:CreateUpload devicefarm:CreateVPCEConfiguration devicefarm:DeleteDevicePool devicefarm:DeleteInstanceProfile devicefarm:DeleteNetworkProfile devicefarm:DeleteProject devicefarm:DeleteRemoteAccessSession devicefarm:DeleteRun devicefarm:DeleteTestGridProject devicefarm:DeleteUpload devicefarm:DeleteVPCEConfiguration devicefarm:GetAccountSettings devicefarm:GetDevice devicefarm:GetDeviceInstance devicefarm:GetDevicePool devicefarm:GetDevicePoolCompatibility devicefarm:GetInstanceProfile devicefarm:GetJob devicefarm:GetNetworkProfile devicefarm:GetOfferingStatus devicefarm:GetProject devicefarm:GetRemoteAccessSession devicefarm:GetRun devicefarm:GetSuite devicefarm:GetTest devicefarm:GetTestGridProject devicefarm:GetTestGridSession devicefarm:GetUpload devicefarm:GetVPCEConfiguration devicefarm:ListArtifacts devicefarm:ListDeviceInstances devicefarm:ListDevicePools devicefarm:ListDevices devicefarm:ListInstanceProfiles devicefarm:ListJobs devicefarm:ListNetworkProfiles devicefarm:ListOfferingPromotions devicefarm:ListOfferingTransactions devicefarm:ListOfferings devicefarm:ListProjects devicefarm:ListRemoteAccessSessions devicefarm:ListRuns devicefarm:ListSamples devicefarm:ListSuites devicefarm:ListTestGridProjects devicefarm:ListTestGridSessionActions devicefarm:ListTestGridSessionArtifacts devicefarm:ListTestGridSessions devicefarm:ListTests devicefarm:ListUniqueProblems devicefarm:ListUploads devicefarm:ListVPCEConfigurations devicefarm:PurchaseOffering devicefarm:RenewOffering devicefarm:ScheduleRun devicefarm:StopJob devicefarm:StopRemoteAccessSession devicefarm:StopRun devicefarm:UpdateDeviceInstance devicefarm:UpdateDevicePool devicefarm:UpdateInstanceProfile devicefarm:UpdateNetworkProfile devicefarm:UpdateProject devicefarm:UpdateTestGridProject devicefarm:UpdateUpload devicefarm:UpdateVPCEConfiguration  | 
| devops-guru |  devops-guru:AddNotificationChannel devops-guru:DeleteInsight devops-guru:DescribeAccountHealth devops-guru:DescribeAccountOverview devops-guru:DescribeAnomaly devops-guru:DescribeEventSourcesConfig devops-guru:DescribeFeedback devops-guru:DescribeInsight devops-guru:DescribeOrganizationHealth devops-guru:DescribeOrganizationOverview devops-guru:DescribeOrganizationResourceCollectionHealth devops-guru:DescribeResourceCollectionHealth devops-guru:DescribeServiceIntegration devops-guru:GetCostEstimation devops-guru:GetResourceCollection devops-guru:ListAnomaliesForInsight devops-guru:ListAnomalousLogGroups devops-guru:ListEvents devops-guru:ListInsights devops-guru:ListMonitoredResources devops-guru:ListNotificationChannels devops-guru:ListOrganizationInsights devops-guru:ListRecommendations devops-guru:PutFeedback devops-guru:RemoveNotificationChannel devops-guru:SearchInsights devops-guru:SearchOrganizationInsights devops-guru:StartCostEstimation devops-guru:UpdateEventSourcesConfig devops-guru:UpdateResourceCollection devops-guru:UpdateServiceIntegration  | 
| directconnect |  directconnect:AcceptDirectConnectGatewayAssociationProposal directconnect:AllocateConnectionOnInterconnect directconnect:AllocateHostedConnection directconnect:AllocatePrivateVirtualInterface directconnect:AllocatePublicVirtualInterface directconnect:AllocateTransitVirtualInterface directconnect:AssociateConnectionWithLag directconnect:AssociateHostedConnection directconnect:AssociateMacSecKey directconnect:AssociateVirtualInterface directconnect:ConfirmConnection directconnect:ConfirmCustomerAgreement directconnect:ConfirmPrivateVirtualInterface directconnect:ConfirmPublicVirtualInterface directconnect:ConfirmTransitVirtualInterface directconnect:CreateBGPPeer directconnect:CreateConnection directconnect:CreateDirectConnectGateway directconnect:CreateDirectConnectGatewayAssociation directconnect:CreateDirectConnectGatewayAssociationProposal directconnect:CreateInterconnect directconnect:CreateLag directconnect:CreatePrivateVirtualInterface directconnect:CreatePublicVirtualInterface directconnect:CreateTransitVirtualInterface directconnect:DeleteBGPPeer directconnect:DeleteConnection directconnect:DeleteDirectConnectGateway directconnect:DeleteDirectConnectGatewayAssociation directconnect:DeleteDirectConnectGatewayAssociationProposal directconnect:DeleteInterconnect directconnect:DeleteLag directconnect:DeleteVirtualInterface directconnect:DescribeConnectionLoa directconnect:DescribeConnections directconnect:DescribeConnectionsOnInterconnect directconnect:DescribeCustomerMetadata directconnect:DescribeDirectConnectGatewayAssociationProposals directconnect:DescribeDirectConnectGatewayAssociations directconnect:DescribeDirectConnectGatewayAttachments directconnect:DescribeDirectConnectGateways directconnect:DescribeHostedConnections directconnect:DescribeInterconnectLoa directconnect:DescribeInterconnects directconnect:DescribeLags directconnect:DescribeLoa directconnect:DescribeLocations directconnect:DescribeRouterConfiguration directconnect:DescribeVirtualGateways directconnect:DescribeVirtualInterfaces directconnect:DisassociateConnectionFromLag directconnect:DisassociateMacSecKey directconnect:ListVirtualInterfaceTestHistory directconnect:StartBgpFailoverTest directconnect:StopBgpFailoverTest directconnect:UpdateConnection directconnect:UpdateDirectConnectGateway directconnect:UpdateDirectConnectGatewayAssociation directconnect:UpdateLag directconnect:UpdateVirtualInterfaceAttributes  | 
| dlm |  dlm:CreateLifecyclePolicy dlm:DeleteLifecyclePolicy dlm:GetLifecyclePolicies dlm:GetLifecyclePolicy dlm:UpdateLifecyclePolicy  | 
| DMS |  dms:ApplyPendingMaintenanceAction dms:AssociateExtensionPack dms:BatchStartRecommendations dms:CancelMetadataModelCreation dms:CancelReplicationTaskAssessmentRun dms:CreateDataProvider dms:CreateEndpoint dms:CreateEventSubscription dms:CreateInstanceProfile dms:CreateMigrationProject dms:CreateReplicationConfig dms:CreateReplicationInstance dms:CreateReplicationSubnetGroup dms:CreateReplicationTask dms:DeleteCertificate dms:DeleteConnection dms:DeleteDataMigration dms:DeleteDataProvider dms:DeleteEndpoint dms:DeleteEventSubscription dms:DeleteFleetAdvisorCollector dms:DeleteFleetAdvisorDatabases dms:DeleteInstanceProfile dms:DeleteMigrationProject dms:DeleteReplicationConfig dms:DeleteReplicationInstance dms:DeleteReplicationSubnetGroup dms:DeleteReplicationTask dms:DeleteReplicationTaskAssessmentRun dms:DescribeAccountAttributes dms:DescribeApplicableIndividualAssessments dms:DescribeCertificates dms:DescribeConnections dms:DescribeDataMigrations dms:DescribeEndpointSettings dms:DescribeEndpointTypes dms:DescribeEndpoints dms:DescribeEngineVersions dms:DescribeEventCategories dms:DescribeEventSubscriptions dms:DescribeEvents dms:DescribeFleetAdvisorCollectors dms:DescribeFleetAdvisorDatabases dms:DescribeFleetAdvisorLsaAnalysis dms:DescribeFleetAdvisorSchemaObjectSummary dms:DescribeFleetAdvisorSchemas dms:DescribeMetadataModel dms:DescribeMetadataModelChildren dms:DescribeMetadataModelCreations dms:DescribeMetadataModelImports dms:DescribeOrderableReplicationInstances dms:DescribePendingMaintenanceActions dms:DescribeRecommendationLimitations dms:DescribeRecommendations dms:DescribeRefreshSchemasStatus dms:DescribeReplicationConfigs dms:DescribeReplicationInstanceTaskLogs dms:DescribeReplicationInstances dms:DescribeReplicationSubnetGroups dms:DescribeReplicationTableStatistics dms:DescribeReplicationTaskAssessmentResults dms:DescribeReplicationTaskAssessmentRuns dms:DescribeReplicationTaskIndividualAssessments dms:DescribeReplicationTasks dms:DescribeReplications dms:DescribeSchemas dms:DescribeTableStatistics dms:ExportMetadataModelAssessment dms:ImportCertificate dms:ListDataProviders dms:ListExtensionPacks dms:ListInstanceProfiles dms:ListMetadataModelAssessments dms:ListMetadataModelConversions dms:ListMetadataModelExports dms:ListMigrationProjects dms:ModifyDataMigration dms:ModifyEndpoint dms:ModifyEventSubscription dms:ModifyReplicationConfig dms:ModifyReplicationInstance dms:ModifyReplicationSubnetGroup dms:ModifyReplicationTask dms:MoveReplicationTask dms:RebootReplicationInstance dms:RefreshSchemas dms:ReloadReplicationTables dms:ReloadTables dms:RunFleetAdvisorLsaAnalysis dms:StartMetadataModelAssessment dms:StartMetadataModelConversion dms:StartMetadataModelCreation dms:StartMetadataModelExportAsScripts dms:StartMetadataModelExportToTarget dms:StartRecommendations dms:StartReplication dms:StartReplicationTask dms:StartReplicationTaskAssessment dms:StopDataMigration dms:StopReplicationTask dms:TestConnection dms:UpdateConversionConfiguration dms:UpdateDataProvider dms:UpdateInstanceProfile dms:UpdateMigrationProject dms:UpdateSubscriptionsToEventBridge  | 
| docdb-elastic |  docdb-elastic:ApplyPendingMaintenanceAction docdb-elastic:CopyClusterSnapshot docdb-elastic:DeleteCluster docdb-elastic:DeleteClusterSnapshot docdb-elastic:GetCluster docdb-elastic:GetClusterSnapshot docdb-elastic:GetPendingMaintenanceAction docdb-elastic:ListClusterSnapshots docdb-elastic:ListClusters docdb-elastic:ListPendingMaintenanceActions docdb-elastic:RestoreClusterFromSnapshot docdb-elastic:StartCluster docdb-elastic:StopCluster docdb-elastic:UpdateCluster  | 
| dynamodb |  dynamodb:AssociateTableReplica dynamodb:CreateBackup dynamodb:CreateGlobalTable dynamodb:CreateTable dynamodb:DeleteBackup dynamodb:DeleteTable dynamodb:DescribeBackup dynamodb:DescribeContinuousBackups dynamodb:DescribeContributorInsights dynamodb:DescribeEndpoints dynamodb:DescribeExport dynamodb:DescribeGlobalTable dynamodb:DescribeGlobalTableSettings dynamodb:DescribeImport dynamodb:DescribeKinesisStreamingDestination dynamodb:DescribeLimits dynamodb:DescribeStream dynamodb:DescribeTable dynamodb:DescribeTableReplicaAutoScaling dynamodb:DescribeTimeToLive dynamodb:DisableKinesisStreamingDestination dynamodb:EnableKinesisStreamingDestination dynamodb:ExportTableToPointInTime dynamodb:GetResourcePolicy dynamodb:ImportTable dynamodb:ListBackups dynamodb:ListContributorInsights dynamodb:ListExports dynamodb:ListGlobalTables dynamodb:ListImports dynamodb:ListStreams dynamodb:ListTables dynamodb:ReadDataForReplication dynamodb:ReplicateSettings dynamodb:RestoreTableFromBackup dynamodb:RestoreTableToPointInTime dynamodb:UpdateContinuousBackups dynamodb:UpdateContributorInsights dynamodb:UpdateGlobalTable dynamodb:UpdateGlobalTableSettings dynamodb:UpdateKinesisStreamingDestination dynamodb:UpdateTable dynamodb:UpdateTableReplicaAutoScaling dynamodb:UpdateTimeToLive dynamodb:WriteDataForReplication  | 
| ebs |  ebs:CompleteSnapshot ebs:StartSnapshot  | 
| EC2 |  ec2:AcceptAddressTransfer ec2:AcceptCapacityReservationBillingOwnership ec2:AcceptReservedInstancesExchangeQuote ec2:AcceptTransitGatewayMulticastDomainAssociations ec2:AcceptTransitGatewayPeeringAttachment ec2:AcceptTransitGatewayVpcAttachment ec2:AcceptVpcEndpointConnections ec2:AcceptVpcPeeringConnection ec2:AdvertiseByoipCidr ec2:AllocateAddress ec2:AllocateHosts ec2:AllocateIpamPoolCidr ec2:ApplySecurityGroupsToClientVpnTargetNetwork ec2:AssignIpv6Addresses ec2:AssignPrivateIpAddresses ec2:AssignPrivateNatGatewayAddress ec2:AssociateAddress ec2:AssociateCapacityReservationBillingOwner ec2:AssociateClientVpnTargetNetwork ec2:AssociateDhcpOptions ec2:AssociateEnclaveCertificateIamRole ec2:AssociateIamInstanceProfile ec2:AssociateInstanceEventWindow ec2:AssociateIpamByoasn ec2:AssociateIpamResourceDiscovery ec2:AssociateNatGatewayAddress ec2:AssociateRouteServer ec2:AssociateRouteTable ec2:AssociateSecurityGroupVpc ec2:AssociateSubnetCidrBlock ec2:AssociateTransitGatewayMulticastDomain ec2:AssociateTransitGatewayPolicyTable ec2:AssociateTransitGatewayRouteTable ec2:AssociateTrunkInterface ec2:AssociateVpcCidrBlock ec2:AttachClassicLinkVpc ec2:AttachInternetGateway ec2:AttachNetworkInterface ec2:AttachVerifiedAccessTrustProvider ec2:AttachVolume ec2:AttachVpnGateway ec2:AuthorizeClientVpnIngress ec2:AuthorizeSecurityGroupEgress ec2:AuthorizeSecurityGroupIngress ec2:BundleInstance ec2:CancelBundleTask ec2:CancelCapacityReservation ec2:CancelCapacityReservationFleets ec2:CancelConversionTask ec2:CancelDeclarativePoliciesReport ec2:CancelExportTask ec2:CancelImageLaunchPermission ec2:CancelImportTask ec2:CancelReservedInstancesListing ec2:CancelSpotFleetRequests ec2:CancelSpotInstanceRequests ec2:ConfirmProductInstance ec2:CopyFpgaImage ec2:CopyImage ec2:CopySnapshot ec2:CopyVolumes ec2:CreateCapacityManagerDataExport ec2:CreateCapacityReservation ec2:CreateCapacityReservationBySplitting ec2:CreateCapacityReservationFleet ec2:CreateCarrierGateway ec2:CreateClientVpnEndpoint ec2:CreateClientVpnRoute ec2:CreateCoipCidr ec2:CreateCoipPool ec2:CreateCustomerGateway ec2:CreateDefaultSubnet ec2:CreateDefaultVpc ec2:CreateDelegateMacVolumeOwnershipTask ec2:CreateDhcpOptions ec2:CreateEgressOnlyInternetGateway ec2:CreateFleet ec2:CreateFlowLogs ec2:CreateFpgaImage ec2:CreateImage ec2:CreateImageUsageReport ec2:CreateInstanceConnectEndpoint ec2:CreateInstanceEventWindow ec2:CreateInstanceExportTask ec2:CreateInternetGateway ec2:CreateInterruptibleCapacityReservationAllocation ec2:CreateIpam ec2:CreateIpamExternalResourceVerificationToken ec2:CreateIpamPolicy ec2:CreateIpamPool ec2:CreateIpamPrefixListResolver ec2:CreateIpamPrefixListResolverTarget ec2:CreateIpamResourceDiscovery ec2:CreateIpamScope ec2:CreateKeyPair ec2:CreateLaunchTemplateVersion ec2:CreateLocalGatewayRoute ec2:CreateLocalGatewayRouteTable ec2:CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociation ec2:CreateLocalGatewayRouteTableVpcAssociation ec2:CreateLocalGatewayVirtualInterface ec2:CreateLocalGatewayVirtualInterfaceGroup ec2:CreateMacSystemIntegrityProtectionModificationTask ec2:CreateManagedPrefixList ec2:CreateNatGateway ec2:CreateNetworkAcl ec2:CreateNetworkAclEntry ec2:CreateNetworkInsightsAccessScope ec2:CreateNetworkInsightsPath ec2:CreateNetworkInterface ec2:CreateNetworkInterfacePermission ec2:CreatePlacementGroup ec2:CreatePublicIpv4Pool ec2:CreateReplaceRootVolumeTask ec2:CreateReservedInstancesListing ec2:CreateRestoreImageTask ec2:CreateRoute ec2:CreateRouteServer ec2:CreateRouteServerEndpoint ec2:CreateRouteServerPeer ec2:CreateRouteTable ec2:CreateSecurityGroup ec2:CreateSnapshots ec2:CreateSpotDatafeedSubscription ec2:CreateStoreImageTask ec2:CreateSubnet ec2:CreateSubnetCidrReservation ec2:CreateTrafficMirrorFilter ec2:CreateTrafficMirrorFilterRule ec2:CreateTrafficMirrorSession ec2:CreateTrafficMirrorTarget ec2:CreateTransitGateway ec2:CreateTransitGatewayConnect ec2:CreateTransitGatewayConnectPeer ec2:CreateTransitGatewayMeteringPolicy ec2:CreateTransitGatewayMeteringPolicyEntry ec2:CreateTransitGatewayMulticastDomain ec2:CreateTransitGatewayPeeringAttachment ec2:CreateTransitGatewayPolicyTable ec2:CreateTransitGatewayPrefixListReference ec2:CreateTransitGatewayRoute ec2:CreateTransitGatewayRouteTable ec2:CreateTransitGatewayRouteTableAnnouncement ec2:CreateTransitGatewayVpcAttachment ec2:CreateVerifiedAccessEndpoint ec2:CreateVerifiedAccessGroup ec2:CreateVerifiedAccessInstance ec2:CreateVerifiedAccessTrustProvider ec2:CreateVolume ec2:CreateVpc ec2:CreateVpcBlockPublicAccessExclusion ec2:CreateVpcEncryptionControl ec2:CreateVpcEndpoint ec2:CreateVpcEndpointConnectionNotification ec2:CreateVpcEndpointServiceConfiguration ec2:CreateVpcPeeringConnection ec2:CreateVpnConcentrator ec2:CreateVpnConnection ec2:CreateVpnConnectionRoute ec2:CreateVpnGateway ec2:DeleteCapacityManagerDataExport ec2:DeleteCarrierGateway ec2:DeleteClientVpnEndpoint ec2:DeleteClientVpnRoute ec2:DeleteCoipCidr ec2:DeleteCoipPool ec2:DeleteCustomerGateway ec2:DeleteDhcpOptions ec2:DeleteEgressOnlyInternetGateway ec2:DeleteFleets ec2:DeleteFlowLogs ec2:DeleteFpgaImage ec2:DeleteImageUsageReport ec2:DeleteInstanceConnectEndpoint ec2:DeleteInstanceEventWindow ec2:DeleteInternetGateway ec2:DeleteIpam ec2:DeleteIpamExternalResourceVerificationToken ec2:DeleteIpamPolicy ec2:DeleteIpamPool ec2:DeleteIpamPrefixListResolver ec2:DeleteIpamPrefixListResolverTarget ec2:DeleteIpamResourceDiscovery ec2:DeleteIpamScope ec2:DeleteKeyPair ec2:DeleteLaunchTemplate ec2:DeleteLaunchTemplateVersions ec2:DeleteLocalGatewayRoute ec2:DeleteLocalGatewayRouteTable ec2:DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociation ec2:DeleteLocalGatewayRouteTableVpcAssociation ec2:DeleteLocalGatewayVirtualInterface ec2:DeleteLocalGatewayVirtualInterfaceGroup ec2:DeleteManagedPrefixList ec2:DeleteNatGateway ec2:DeleteNetworkAcl ec2:DeleteNetworkAclEntry ec2:DeleteNetworkInsightsAccessScope ec2:DeleteNetworkInsightsAccessScopeAnalysis ec2:DeleteNetworkInsightsAnalysis ec2:DeleteNetworkInsightsPath ec2:DeleteNetworkInterface ec2:DeleteNetworkInterfacePermission ec2:DeletePlacementGroup ec2:DeletePublicIpv4Pool ec2:DeleteQueuedReservedInstances ec2:DeleteRoute ec2:DeleteRouteServer ec2:DeleteRouteServerEndpoint ec2:DeleteRouteServerPeer ec2:DeleteRouteTable ec2:DeleteSecurityGroup ec2:DeleteSpotDatafeedSubscription ec2:DeleteSubnet ec2:DeleteSubnetCidrReservation ec2:DeleteTrafficMirrorFilter ec2:DeleteTrafficMirrorFilterRule ec2:DeleteTrafficMirrorSession ec2:DeleteTrafficMirrorTarget ec2:DeleteTransitGateway ec2:DeleteTransitGatewayConnect ec2:DeleteTransitGatewayConnectPeer ec2:DeleteTransitGatewayMeteringPolicy ec2:DeleteTransitGatewayMeteringPolicyEntry ec2:DeleteTransitGatewayMulticastDomain ec2:DeleteTransitGatewayPeeringAttachment ec2:DeleteTransitGatewayPolicyTable ec2:DeleteTransitGatewayPrefixListReference ec2:DeleteTransitGatewayRoute ec2:DeleteTransitGatewayRouteTable ec2:DeleteTransitGatewayRouteTableAnnouncement ec2:DeleteTransitGatewayVpcAttachment ec2:DeleteVerifiedAccessEndpoint ec2:DeleteVerifiedAccessGroup ec2:DeleteVerifiedAccessInstance ec2:DeleteVerifiedAccessTrustProvider ec2:DeleteVolume ec2:DeleteVpc ec2:DeleteVpcBlockPublicAccessExclusion ec2:DeleteVpcEncryptionControl ec2:DeleteVpcEndpointConnectionNotifications ec2:DeleteVpcEndpointServiceConfigurations ec2:DeleteVpcEndpoints ec2:DeleteVpcPeeringConnection ec2:DeleteVpnConcentrator ec2:DeleteVpnConnection ec2:DeleteVpnConnectionRoute ec2:DeleteVpnGateway ec2:DeprovisionByoipCidr ec2:DeprovisionIpamByoasn ec2:DeprovisionIpamPoolCidr ec2:DeprovisionPublicIpv4PoolCidr ec2:DeregisterImage ec2:DeregisterInstanceEventNotificationAttributes ec2:DeregisterTransitGatewayMulticastGroupMembers ec2:DeregisterTransitGatewayMulticastGroupSources ec2:DescribeAccountAttributes ec2:DescribeAddressTransfers ec2:DescribeAddresses ec2:DescribeAddressesAttribute ec2:DescribeAggregateIdFormat ec2:DescribeAvailabilityZones ec2:DescribeAwsNetworkPerformanceMetricSubscriptions ec2:DescribeBundleTasks ec2:DescribeByoipCidrs ec2:DescribeCapacityBlockExtensionHistory ec2:DescribeCapacityBlockExtensionOfferings ec2:DescribeCapacityBlockStatus ec2:DescribeCapacityBlocks ec2:DescribeCapacityManagerDataExports ec2:DescribeCapacityReservationBillingRequests ec2:DescribeCapacityReservationFleets ec2:DescribeCapacityReservationTopology ec2:DescribeCapacityReservations ec2:DescribeCarrierGateways ec2:DescribeClassicLinkInstances ec2:DescribeClientVpnAuthorizationRules ec2:DescribeClientVpnConnections ec2:DescribeClientVpnEndpoints ec2:DescribeClientVpnRoutes ec2:DescribeClientVpnTargetNetworks ec2:DescribeCoipPools ec2:DescribeConversionTasks ec2:DescribeCustomerGateways ec2:DescribeDeclarativePoliciesReports ec2:DescribeDhcpOptions ec2:DescribeEgressOnlyInternetGateways ec2:DescribeElasticGpus ec2:DescribeExportImageTasks ec2:DescribeExportTasks ec2:DescribeFastLaunchImages ec2:DescribeFastSnapshotRestores ec2:DescribeFleetHistory ec2:DescribeFleetInstances ec2:DescribeFleets ec2:DescribeFlowLogs ec2:DescribeFpgaImageAttribute ec2:DescribeFpgaImages ec2:DescribeHostReservationOfferings ec2:DescribeHostReservations ec2:DescribeHosts ec2:DescribeIamInstanceProfileAssociations ec2:DescribeIdFormat ec2:DescribeIdentityIdFormat ec2:DescribeImageAttribute ec2:DescribeImageReferences ec2:DescribeImageUsageReportEntries ec2:DescribeImageUsageReports ec2:DescribeImportImageTasks ec2:DescribeImportSnapshotTasks ec2:DescribeInstanceConnectEndpoints ec2:DescribeInstanceCreditSpecifications ec2:DescribeInstanceEventNotificationAttributes ec2:DescribeInstanceEventWindows ec2:DescribeInstanceImageMetadata ec2:DescribeInstanceSqlHaHistoryStates ec2:DescribeInstanceSqlHaStates ec2:DescribeInstanceTopology ec2:DescribeInstanceTypes ec2:DescribeInternetGateways ec2:DescribeIpamByoasn ec2:DescribeIpamExternalResourceVerificationTokens ec2:DescribeIpamPolicies ec2:DescribeIpamPools ec2:DescribeIpamPrefixListResolverTargets ec2:DescribeIpamPrefixListResolvers ec2:DescribeIpamResourceDiscoveries ec2:DescribeIpamResourceDiscoveryAssociations ec2:DescribeIpamScopes ec2:DescribeIpams ec2:DescribeIpv6Pools ec2:DescribeKeyPairs ec2:DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations ec2:DescribeLocalGatewayRouteTableVpcAssociations ec2:DescribeLocalGatewayRouteTables ec2:DescribeLocalGatewayVirtualInterfaceGroups ec2:DescribeLocalGatewayVirtualInterfaces ec2:DescribeLocalGateways ec2:DescribeLockedSnapshots ec2:DescribeMacHosts ec2:DescribeMacModificationTasks ec2:DescribeManagedPrefixLists ec2:DescribeMovingAddresses ec2:DescribeNatGateways ec2:DescribeNetworkAcls ec2:DescribeNetworkInsightsAccessScopeAnalyses ec2:DescribeNetworkInsightsAccessScopes ec2:DescribeNetworkInsightsAnalyses ec2:DescribeNetworkInsightsPaths ec2:DescribeNetworkInterfaceAttribute ec2:DescribeNetworkInterfacePermissions ec2:DescribeNetworkInterfaces ec2:DescribeOutpostLags ec2:DescribePlacementGroups ec2:DescribePrefixLists ec2:DescribePrincipalIdFormat ec2:DescribePublicIpv4Pools ec2:DescribeRegions ec2:DescribeReplaceRootVolumeTasks ec2:DescribeReservedInstances ec2:DescribeReservedInstancesListings ec2:DescribeReservedInstancesModifications ec2:DescribeReservedInstancesOfferings ec2:DescribeRouteServerEndpoints ec2:DescribeRouteServerPeers ec2:DescribeRouteServers ec2:DescribeRouteTables ec2:DescribeScheduledInstanceAvailability ec2:DescribeScheduledInstances ec2:DescribeSecurityGroupReferences ec2:DescribeSecurityGroupRules ec2:DescribeSecurityGroupVpcAssociations ec2:DescribeSecurityGroups ec2:DescribeServiceLinkVirtualInterfaces ec2:DescribeSnapshotAttribute ec2:DescribeSnapshotTierStatus ec2:DescribeSpotDatafeedSubscription ec2:DescribeSpotFleetInstances ec2:DescribeSpotFleetRequestHistory ec2:DescribeSpotFleetRequests ec2:DescribeSpotInstanceRequests ec2:DescribeSpotPriceHistory ec2:DescribeStaleSecurityGroups ec2:DescribeStoreImageTasks ec2:DescribeTrafficMirrorFilterRules ec2:DescribeTrafficMirrorFilters ec2:DescribeTrafficMirrorSessions ec2:DescribeTrafficMirrorTargets ec2:DescribeTransitGatewayAttachments ec2:DescribeTransitGatewayConnectPeers ec2:DescribeTransitGatewayConnects ec2:DescribeTransitGatewayMeteringPolicies ec2:DescribeTransitGatewayMulticastDomains ec2:DescribeTransitGatewayPeeringAttachments ec2:DescribeTransitGatewayPolicyTables ec2:DescribeTransitGatewayRouteTableAnnouncements ec2:DescribeTransitGatewayRouteTables ec2:DescribeTransitGatewayVpcAttachments ec2:DescribeTransitGateways ec2:DescribeTrunkInterfaceAssociations ec2:DescribeVerifiedAccessEndpoints ec2:DescribeVerifiedAccessGroups ec2:DescribeVerifiedAccessInstanceLoggingConfigurations ec2:DescribeVerifiedAccessInstances ec2:DescribeVerifiedAccessTrustProviders ec2:DescribeVolumeAttribute ec2:DescribeVolumeStatus ec2:DescribeVolumes ec2:DescribeVolumesModifications ec2:DescribeVpcAttribute ec2:DescribeVpcBlockPublicAccessExclusions ec2:DescribeVpcBlockPublicAccessOptions ec2:DescribeVpcClassicLink ec2:DescribeVpcClassicLinkDnsSupport ec2:DescribeVpcEncryptionControls ec2:DescribeVpcEndpointAssociations ec2:DescribeVpcEndpointConnectionNotifications ec2:DescribeVpcEndpointConnections ec2:DescribeVpcEndpointServiceConfigurations ec2:DescribeVpcEndpointServicePermissions ec2:DescribeVpcEndpointServices ec2:DescribeVpcEndpoints ec2:DescribeVpcPeeringConnections ec2:DescribeVpcs ec2:DescribeVpnConcentrators ec2:DescribeVpnConnections ec2:DescribeVpnGateways ec2:DetachClassicLinkVpc ec2:DetachInternetGateway ec2:DeleteNetworkInterface ec2:DetachVerifiedAccessTrustProvider ec2:DetachVolume ec2:DetachVpnGateway ec2:DisableAddressTransfer ec2:DisableAllowedImagesSettings ec2:DisableAwsNetworkPerformanceMetricSubscription ec2:DisableCapacityManager ec2:DisableEbsEncryptionByDefault ec2:DisableFastLaunch ec2:DisableFastSnapshotRestores ec2:DisableImage ec2:DisableImageBlockPublicAccess ec2:DisableImageDeprecation ec2:DisableImageDeregistrationProtection ec2:DisableInstanceSqlHaStandbyDetections ec2:DisableIpamOrganizationAdminAccount ec2:DisableIpamPolicy ec2:DisableRouteServerPropagation ec2:DisableSerialConsoleAccess ec2:DisableSnapshotBlockPublicAccess ec2:DisableTransitGatewayRouteTablePropagation ec2:DisableVgwRoutePropagation ec2:DisableVpcClassicLink ec2:DisableVpcClassicLinkDnsSupport ec2:DisassociateAddress ec2:DisassociateCapacityReservationBillingOwner ec2:DisassociateClientVpnTargetNetwork ec2:DisassociateEnclaveCertificateIamRole ec2:DisassociateIamInstanceProfile ec2:DisassociateInstanceEventWindow ec2:DisassociateIpamByoasn ec2:DisassociateIpamResourceDiscovery ec2:DisassociateNatGatewayAddress ec2:DisassociateRouteServer ec2:DisassociateRouteTable ec2:DisassociateSecurityGroupVpc ec2:DisassociateSubnetCidrBlock ec2:DisassociateTransitGatewayMulticastDomain ec2:DisassociateTransitGatewayPolicyTable ec2:DisassociateTransitGatewayRouteTable ec2:DisassociateTrunkInterface ec2:DisassociateVpcCidrBlock ec2:EnableAddressTransfer ec2:EnableAllowedImagesSettings ec2:EnableAwsNetworkPerformanceMetricSubscription ec2:EnableCapacityManager ec2:EnableEbsEncryptionByDefault ec2:EnableFastLaunch ec2:EnableFastSnapshotRestores ec2:EnableImage ec2:EnableImageBlockPublicAccess ec2:EnableImageDeprecation ec2:EnableImageDeregistrationProtection ec2:EnableInstanceSqlHaStandbyDetections ec2:EnableIpamOrganizationAdminAccount ec2:EnableIpamPolicy ec2:EnableReachabilityAnalyzerOrganizationSharing ec2:EnableRouteServerPropagation ec2:EnableSerialConsoleAccess ec2:EnableSnapshotBlockPublicAccess ec2:EnableTransitGatewayRouteTablePropagation ec2:EnableVgwRoutePropagation ec2:EnableVolumeIO ec2:EnableVpcClassicLink ec2:EnableVpcClassicLinkDnsSupport ec2:ExportClientVpnClientCertificateRevocationList ec2:ExportClientVpnClientConfiguration ec2:ExportImage ec2:ExportTransitGatewayRoutes ec2:ExportVerifiedAccessInstanceClientConfiguration ec2:GetActiveVpnTunnelStatus ec2:GetAllowedImagesSettings ec2:GetAssociatedEnclaveCertificateIamRoles ec2:GetAssociatedIpv6PoolCidrs ec2:GetAwsNetworkPerformanceData ec2:GetCapacityManagerAttributes ec2:GetCapacityManagerMetricData ec2:GetCapacityManagerMetricDimensions ec2:GetCapacityReservationUsage ec2:GetCoipPoolUsage ec2:GetConsoleOutput ec2:GetConsoleScreenshot ec2:GetDeclarativePoliciesReportSummary ec2:GetDefaultCreditSpecification ec2:GetEbsDefaultKmsKeyId ec2:GetEbsEncryptionByDefault ec2:GetEnabledIpamPolicy ec2:GetFlowLogsIntegrationTemplate ec2:GetGroupsForCapacityReservation ec2:GetHostReservationPurchasePreview ec2:GetImageAncestry ec2:GetImageBlockPublicAccessState ec2:GetInstanceMetadataDefaults ec2:GetInstanceTpmEkPub ec2:GetInstanceTypesFromInstanceRequirements ec2:GetInstanceUefiData ec2:GetIpamAddressHistory ec2:GetIpamDiscoveredAccounts ec2:GetIpamDiscoveredPublicAddresses ec2:GetIpamDiscoveredResourceCidrs ec2:GetIpamPolicyAllocationRules ec2:GetIpamPolicyOrganizationTargets ec2:GetIpamPoolAllocations ec2:GetIpamPoolCidrs ec2:GetIpamPrefixListResolverRules ec2:GetIpamPrefixListResolverVersionEntries ec2:GetIpamPrefixListResolverVersions ec2:GetIpamResourceCidrs ec2:GetLaunchTemplateData ec2:GetManagedPrefixListAssociations ec2:GetManagedPrefixListEntries ec2:GetNetworkInsightsAccessScopeAnalysisFindings ec2:GetNetworkInsightsAccessScopeContent ec2:GetPasswordData ec2:GetReservedInstancesExchangeQuote ec2:GetRouteServerAssociations ec2:GetRouteServerPropagations ec2:GetRouteServerRoutingDatabase ec2:GetSecurityGroupsForVpc ec2:GetSerialConsoleAccessStatus ec2:GetSnapshotBlockPublicAccessState ec2:GetSpotPlacementScores ec2:GetSubnetCidrReservations ec2:GetTransitGatewayAttachmentPropagations ec2:GetTransitGatewayMeteringPolicyEntries ec2:GetTransitGatewayMulticastDomainAssociations ec2:GetTransitGatewayPolicyTableAssociations ec2:GetTransitGatewayPolicyTableEntries ec2:GetTransitGatewayPrefixListReferences ec2:GetTransitGatewayRouteTableAssociations ec2:GetTransitGatewayRouteTablePropagations ec2:GetVerifiedAccessEndpointPolicy ec2:GetVerifiedAccessEndpointTargets ec2:GetVerifiedAccessGroupPolicy ec2:GetVpcResourcesBlockingEncryptionEnforcement ec2:GetVpnConnectionDeviceSampleConfiguration ec2:GetVpnConnectionDeviceTypes ec2:GetVpnTunnelReplacementStatus ec2:ImportClientVpnClientCertificateRevocationList ec2:ImportImage ec2:ImportInstance ec2:ImportKeyPair ec2:ImportSnapshot ec2:ImportVolume ec2:InjectVolumeIOLatency ec2:ListImagesInRecycleBin ec2:ListSnapshotsInRecycleBin ec2:ListVolumesInRecycleBin ec2:LockSnapshot ec2:ModifyAddressAttribute ec2:ModifyAvailabilityZoneGroup ec2:ModifyCapacityReservation ec2:ModifyCapacityReservationFleet ec2:ModifyClientVpnEndpoint ec2:ModifyDefaultCreditSpecification ec2:ModifyEbsDefaultKmsKeyId ec2:ModifyFleet ec2:ModifyFpgaImageAttribute ec2:ModifyHosts ec2:ModifyIdFormat ec2:ModifyIdentityIdFormat ec2:ModifyImageAttribute ec2:ModifyInstanceAttribute ec2:ModifyInstanceCapacityReservationAttributes ec2:ModifyInstanceConnectEndpoint ec2:ModifyInstanceCpuOptions ec2:ModifyInstanceCreditSpecification ec2:ModifyInstanceEventStartTime ec2:ModifyInstanceEventWindow ec2:ModifyInstanceMaintenanceOptions ec2:ModifyInstanceMetadataDefaults ec2:ModifyInstanceMetadataOptions ec2:ModifyInstanceNetworkPerformanceOptions ec2:ModifyInstancePlacement ec2:ModifyIpam ec2:ModifyIpamPolicyAllocationRules ec2:ModifyIpamPool ec2:ModifyIpamPrefixListResolver ec2:ModifyIpamPrefixListResolverTarget ec2:ModifyIpamResourceCidr ec2:ModifyIpamResourceDiscovery ec2:ModifyIpamScope ec2:ModifyLaunchTemplate ec2:ModifyLocalGatewayRoute ec2:ModifyManagedPrefixList ec2:ModifyNetworkInterfaceAttribute ec2:ModifyPrivateDnsNameOptions ec2:ModifyPublicIpDnsNameOptions ec2:ModifyReservedInstances ec2:ModifyRouteServer ec2:ModifySecurityGroupRules ec2:ModifySnapshotAttribute ec2:ModifySnapshotTier ec2:ModifySpotFleetRequest ec2:ModifySubnetAttribute ec2:ModifyTrafficMirrorFilterNetworkServices ec2:ModifyTrafficMirrorFilterRule ec2:ModifyTrafficMirrorSession ec2:ModifyTransitGateway ec2:ModifyTransitGatewayMeteringPolicy ec2:ModifyTransitGatewayPrefixListReference ec2:ModifyTransitGatewayVpcAttachment ec2:ModifyVerifiedAccessEndpoint ec2:ModifyVerifiedAccessEndpointPolicy ec2:ModifyVerifiedAccessGroup ec2:ModifyVerifiedAccessGroupPolicy ec2:ModifyVerifiedAccessInstance ec2:ModifyVerifiedAccessInstanceLoggingConfiguration ec2:ModifyVerifiedAccessTrustProvider ec2:ModifyVolume ec2:ModifyVolumeAttribute ec2:ModifyVpcAttribute ec2:ModifyVpcBlockPublicAccessExclusion ec2:ModifyVpcBlockPublicAccessOptions ec2:ModifyVpcEncryptionControl ec2:ModifyVpcEndpoint ec2:ModifyVpcEndpointConnectionNotification ec2:ModifyVpcEndpointServiceConfiguration ec2:ModifyVpcEndpointServicePayerResponsibility ec2:ModifyVpcEndpointServicePermissions ec2:ModifyVpcPeeringConnectionOptions ec2:ModifyVpcTenancy ec2:ModifyVpnConnection ec2:ModifyVpnConnectionOptions ec2:ModifyVpnTunnelCertificate ec2:ModifyVpnTunnelOptions ec2:MonitorInstances ec2:MoveAddressToVpc ec2:MoveByoipCidrToIpam ec2:MoveCapacityReservationInstances ec2:ProvisionByoipCidr ec2:ProvisionIpamByoasn ec2:ProvisionIpamPoolCidr ec2:ProvisionPublicIpv4PoolCidr ec2:PurchaseCapacityBlockExtension ec2:PurchaseHostReservation ec2:PurchaseReservedInstancesOffering ec2:PurchaseScheduledInstances ec2:RebootInstances ec2:RegisterImage ec2:RegisterInstanceEventNotificationAttributes ec2:RegisterTransitGatewayMulticastGroupMembers ec2:RegisterTransitGatewayMulticastGroupSources ec2:RejectCapacityReservationBillingOwnership ec2:RejectTransitGatewayMulticastDomainAssociations ec2:RejectTransitGatewayPeeringAttachment ec2:RejectTransitGatewayVpcAttachment ec2:RejectVpcEndpointConnections ec2:RejectVpcPeeringConnection ec2:ReleaseAddress ec2:ReleaseHosts ec2:ReleaseIpamPoolAllocation ec2:ReplaceIamInstanceProfileAssociation ec2:ReplaceImageCriteriaInAllowedImagesSettings ec2:ReplaceNetworkAclAssociation ec2:ReplaceNetworkAclEntry ec2:ReplaceRoute ec2:ReplaceRouteTableAssociation ec2:ReplaceTransitGatewayRoute ec2:ReplaceVpnTunnel ec2:ReportInstanceStatus ec2:RequestSpotFleet ec2:RequestSpotInstances ec2:ResetAddressAttribute ec2:ResetEbsDefaultKmsKeyId ec2:ResetFpgaImageAttribute ec2:ResetImageAttribute ec2:ResetInstanceAttribute ec2:ResetNetworkInterfaceAttribute ec2:ResetSnapshotAttribute ec2:RestoreAddressToClassic ec2:RestoreImageFromRecycleBin ec2:RestoreManagedPrefixListVersion ec2:RestoreSnapshotFromRecycleBin ec2:RestoreSnapshotTier ec2:RestoreVolumeFromRecycleBin ec2:RevokeClientVpnIngress ec2:RevokeSecurityGroupEgress ec2:RevokeSecurityGroupIngress ec2:RunInstances ec2:RunScheduledInstances ec2:SearchLocalGatewayRoutes ec2:SearchTransitGatewayMulticastGroups ec2:SearchTransitGatewayRoutes ec2:SendDiagnosticInterrupt ec2:StartDeclarativePoliciesReport ec2:StartInstances ec2:StartNetworkInsightsAccessScopeAnalysis ec2:StartNetworkInsightsAnalysis ec2:StartVpcEndpointServicePrivateDnsVerification ec2:TerminateClientVpnConnections ec2:UnassignIpv6Addresses ec2:UnassignPrivateIpAddresses ec2:UnassignPrivateNatGatewayAddress ec2:UnlockSnapshot ec2:UnmonitorInstances ec2:UpdateCapacityManagerOrganizationsAccess ec2:UpdateInterruptibleCapacityReservationAllocation ec2:UpdateSecurityGroupRuleDescriptionsEgress ec2:UpdateSecurityGroupRuleDescriptionsIngress ec2:WithdrawByoipCidr  | 
| ecr |  ecr:BatchCheckLayerAvailability ecr:BatchDeleteImage ecr:BatchGetImage ecr:BatchGetRepositoryScanningConfiguration ecr:CompleteLayerUpload ecr:CreatePullThroughCacheRule ecr:CreateRepositoryCreationTemplate ecr:DeleteLifecyclePolicy ecr:DeletePullThroughCacheRule ecr:DeleteRegistryPolicy ecr:DeleteRepository ecr:DeleteRepositoryCreationTemplate ecr:DeleteRepositoryPolicy ecr:DeleteSigningConfiguration ecr:DescribeImageReplicationStatus ecr:DescribeImageScanFindings ecr:DescribeImages ecr:DescribePullThroughCacheRules ecr:DescribeRegistry ecr:DescribeRepositories ecr:DescribeRepositoryCreationTemplates ecr:GetAccountSetting ecr:GetAuthorizationToken ecr:GetDownloadUrlForLayer ecr:GetLifecyclePolicy ecr:GetLifecyclePolicyPreview ecr:GetRegistryPolicy ecr:GetRegistryScanningConfiguration ecr:GetRepositoryPolicy ecr:GetSigningConfiguration ecr:InitiateLayerUpload ecr:ListImages ecr:ListPullTimeUpdateExclusions ecr:PutAccountSetting ecr:PutImage ecr:PutImageScanningConfiguration ecr:PutRegistryPolicy ecr:PutRegistryScanningConfiguration ecr:PutReplicationConfiguration ecr:StartImageScan ecr:StartLifecyclePolicyPreview ecr:UpdatePullThroughCacheRule ecr:UpdateRepositoryCreationTemplate ecr:UploadLayerPart ecr:ValidatePullThroughCacheRule  | 
| ecr-public |  ecr-public:BatchCheckLayerAvailability ecr-public:BatchDeleteImage ecr-public:CompleteLayerUpload ecr-public:CreateRepository ecr-public:DeleteRepository ecr-public:DeleteRepositoryPolicy ecr-public:DescribeImages ecr-public:DescribeRegistries ecr-public:DescribeRepositories ecr-public:GetAuthorizationToken ecr-public:GetRegistryCatalogData ecr-public:GetRepositoryCatalogData ecr-public:GetRepositoryPolicy ecr-public:InitiateLayerUpload ecr-public:PutImage ecr-public:PutRegistryCatalogData ecr-public:PutRepositoryCatalogData ecr-public:SetRepositoryPolicy ecr-public:UploadLayerPart  | 
| ecs |  ecs:CreateCapacityProvider ecs:CreateCluster ecs:CreateService ecs:CreateTaskSet ecs:DeleteAccountSetting ecs:DeleteAttributes ecs:DeleteCapacityProvider ecs:DeleteCluster ecs:DeleteExpressGatewayService ecs:DeleteService ecs:DeleteTaskDefinitions ecs:DeleteTaskSet ecs:DeregisterContainerInstance ecs:DeregisterTaskDefinition ecs:DescribeCapacityProviders ecs:DescribeClusters ecs:DescribeContainerInstances ecs:DescribeExpressGatewayService ecs:DescribeServiceDeployments ecs:DescribeServiceRevisions ecs:DescribeServices ecs:DescribeTaskDefinition ecs:DescribeTaskSets ecs:DescribeTasks ecs:DiscoverPollEndpoint ecs:ExecuteCommand ecs:GetTaskProtection ecs:ListAccountSettings ecs:ListAttributes ecs:ListClusters ecs:ListContainerInstances ecs:ListServiceDeployments ecs:ListServices ecs:ListServicesByNamespace ecs:ListTaskDefinitionFamilies ecs:ListTaskDefinitions ecs:ListTasks ecs:PutAccountSetting ecs:PutAccountSettingDefault ecs:PutAttributes ecs:PutClusterCapacityProviders ecs:RegisterContainerInstance ecs:RunTask ecs:StartTask ecs:StopServiceDeployment ecs:StopTask ecs:SubmitAttachmentStateChanges ecs:SubmitContainerStateChange ecs:SubmitTaskStateChange ecs:UpdateCapacityProvider ecs:UpdateCluster ecs:UpdateClusterSettings ecs:UpdateContainerAgent ecs:UpdateContainerInstancesState ecs:UpdateExpressGatewayService ecs:UpdateService ecs:UpdateServicePrimaryTaskSet ecs:UpdateTaskProtection ecs:UpdateTaskSet  | 
| eks |  eks:AssociateAccessPolicy eks:AssociateEncryptionConfig eks:AssociateIdentityProviderConfig eks:CreateAccessEntry eks:CreateAddon eks:CreateCluster eks:CreateEksAnywhereSubscription eks:CreateFargateProfile eks:CreateNodegroup eks:DeleteAccessEntry eks:DeleteAddon eks:DeleteCapability eks:DeleteCluster eks:DeleteEksAnywhereSubscription eks:DeleteFargateProfile eks:DeleteNodegroup eks:DeletePodIdentityAssociation eks:DeregisterCluster eks:DescribeAccessEntry eks:DescribeAddon eks:DescribeAddonConfiguration eks:DescribeAddonVersions eks:DescribeCapability eks:DescribeCluster eks:DescribeClusterVersions eks:DescribeEksAnywhereSubscription eks:DescribeFargateProfile eks:DescribeIdentityProviderConfig eks:DescribeInsight eks:DescribeInsightsRefresh eks:DescribeNodegroup eks:DescribePodIdentityAssociation eks:DescribeUpdate eks:DisassociateAccessPolicy eks:DisassociateIdentityProviderConfig eks:ListAccessEntries eks:ListAccessPolicies eks:ListAddons eks:ListAssociatedAccessPolicies eks:ListCapabilities eks:ListClusters eks:ListEksAnywhereSubscriptions eks:ListFargateProfiles eks:ListIdentityProviderConfigs eks:ListInsights eks:ListNodegroups eks:ListPodIdentityAssociations eks:ListUpdates eks:RegisterCluster eks:StartInsightsRefresh eks:UpdateAccessEntry eks:UpdateAddon eks:UpdateCapability eks:UpdateClusterConfig eks:UpdateClusterVersion eks:UpdateEksAnywhereSubscription eks:UpdateNodegroupConfig eks:UpdateNodegroupVersion eks:UpdatePodIdentityAssociation  | 
| elasticache |  elasticache:AuthorizeCacheSecurityGroupIngress elasticache:BatchApplyUpdateAction elasticache:BatchStopUpdateAction elasticache:CompleteMigration elasticache:CopyServerlessCacheSnapshot elasticache:CopySnapshot elasticache:CreateCacheCluster elasticache:CreateCacheParameterGroup elasticache:CreateCacheSecurityGroup elasticache:CreateCacheSubnetGroup elasticache:CreateGlobalReplicationGroup elasticache:CreateReplicationGroup elasticache:CreateServerlessCache elasticache:CreateServerlessCacheSnapshot elasticache:CreateSnapshot elasticache:CreateUser elasticache:CreateUserGroup elasticache:DecreaseNodeGroupsInGlobalReplicationGroup elasticache:DecreaseReplicaCount elasticache:DeleteCacheCluster elasticache:DeleteCacheParameterGroup elasticache:DeleteCacheSecurityGroup elasticache:DeleteCacheSubnetGroup elasticache:DeleteGlobalReplicationGroup elasticache:DeleteReplicationGroup elasticache:DeleteServerlessCache elasticache:DeleteServerlessCacheSnapshot elasticache:DeleteSnapshot elasticache:DeleteUser elasticache:DeleteUserGroup elasticache:DescribeCacheClusters elasticache:DescribeCacheEngineVersions elasticache:DescribeCacheParameterGroups elasticache:DescribeCacheParameters elasticache:DescribeCacheSecurityGroups elasticache:DescribeCacheSubnetGroups elasticache:DescribeEngineDefaultParameters elasticache:DescribeEvents elasticache:DescribeGlobalReplicationGroups elasticache:DescribeReplicationGroups elasticache:DescribeReservedCacheNodes elasticache:DescribeReservedCacheNodesOfferings elasticache:DescribeServerlessCacheSnapshots elasticache:DescribeServerlessCaches elasticache:DescribeServiceUpdates elasticache:DescribeSnapshots elasticache:DescribeUpdateActions elasticache:DescribeUserGroups elasticache:DescribeUsers elasticache:DisassociateGlobalReplicationGroup elasticache:ExportServerlessCacheSnapshot elasticache:FailoverGlobalReplicationGroup elasticache:IncreaseNodeGroupsInGlobalReplicationGroup elasticache:IncreaseReplicaCount elasticache:ListAllowedNodeTypeModifications elasticache:ModifyCacheCluster elasticache:ModifyCacheParameterGroup elasticache:ModifyCacheSubnetGroup elasticache:ModifyGlobalReplicationGroup elasticache:ModifyReplicationGroup elasticache:ModifyReplicationGroupShardConfiguration elasticache:ModifyServerlessCache elasticache:ModifyUser elasticache:ModifyUserGroup elasticache:PurchaseReservedCacheNodesOffering elasticache:RebalanceSlotsInGlobalReplicationGroup elasticache:RebootCacheCluster elasticache:ResetCacheParameterGroup elasticache:RevokeCacheSecurityGroupIngress elasticache:StartMigration elasticache:TestFailover elasticache:TestMigration  | 
| elasticbeanstalk |  elasticbeanstalk:AbortEnvironmentUpdate elasticbeanstalk:ApplyEnvironmentManagedAction elasticbeanstalk:AssociateEnvironmentOperationsRole elasticbeanstalk:CheckDNSAvailability elasticbeanstalk:ComposeEnvironments elasticbeanstalk:CreateApplication elasticbeanstalk:CreateApplicationVersion elasticbeanstalk:CreateConfigurationTemplate elasticbeanstalk:CreateEnvironment elasticbeanstalk:CreatePlatformVersion elasticbeanstalk:CreateStorageLocation elasticbeanstalk:DeleteApplication elasticbeanstalk:DeleteApplicationVersion elasticbeanstalk:DeleteConfigurationTemplate elasticbeanstalk:DeleteEnvironmentConfiguration elasticbeanstalk:DeletePlatformVersion elasticbeanstalk:DescribeAccountAttributes elasticbeanstalk:DescribeApplicationVersions elasticbeanstalk:DescribeApplications elasticbeanstalk:DescribeConfigurationOptions elasticbeanstalk:DescribeConfigurationSettings elasticbeanstalk:DescribeEnvironmentHealth elasticbeanstalk:DescribeEnvironmentManagedActionHistory elasticbeanstalk:DescribeEnvironmentManagedActions elasticbeanstalk:DescribeEnvironmentResources elasticbeanstalk:DescribeEnvironments elasticbeanstalk:DescribeEvents elasticbeanstalk:DescribeInstancesHealth elasticbeanstalk:DescribePlatformVersion elasticbeanstalk:DisassociateEnvironmentOperationsRole elasticbeanstalk:ListAvailableSolutionStacks elasticbeanstalk:ListPlatformBranches elasticbeanstalk:ListPlatformVersions elasticbeanstalk:RebuildEnvironment elasticbeanstalk:RequestEnvironmentInfo elasticbeanstalk:RestartAppServer elasticbeanstalk:RetrieveEnvironmentInfo elasticbeanstalk:SwapEnvironmentCNAMEs elasticbeanstalk:TerminateEnvironment elasticbeanstalk:UpdateApplication elasticbeanstalk:UpdateApplicationResourceLifecycle elasticbeanstalk:UpdateApplicationVersion elasticbeanstalk:UpdateConfigurationTemplate elasticbeanstalk:UpdateEnvironment elasticbeanstalk:ValidateConfigurationSettings  | 
| elasticfilesystem |  elasticfilesystem:CreateAccessPoint elasticfilesystem:CreateFileSystem elasticfilesystem:CreateMountTarget elasticfilesystem:CreateReplicationConfiguration elasticfilesystem:DeleteAccessPoint elasticfilesystem:DeleteFileSystem elasticfilesystem:DeleteFileSystemPolicy elasticfilesystem:DeleteMountTarget elasticfilesystem:DeleteReplicationConfiguration elasticfilesystem:DescribeAccessPoints elasticfilesystem:DescribeAccountPreferences elasticfilesystem:DescribeBackupPolicy elasticfilesystem:DescribeFileSystemPolicy elasticfilesystem:DescribeFileSystems elasticfilesystem:DescribeLifecycleConfiguration elasticfilesystem:DescribeMountTargetSecurityGroups elasticfilesystem:DescribeMountTargets elasticfilesystem:DescribeReplicationConfigurations elasticfilesystem:ModifyMountTargetSecurityGroups elasticfilesystem:PutAccountPreferences elasticfilesystem:PutBackupPolicy elasticfilesystem:PutFileSystemPolicy elasticfilesystem:PutLifecycleConfiguration elasticfilesystem:UpdateFileSystem elasticfilesystem:UpdateFileSystemProtection  | 
| elasticloadbalancing |  elasticloadbalancing:AddListenerCertificates elasticloadbalancing:AddTrustStoreRevocations elasticloadbalancing:ApplySecurityGroupsToLoadBalancer elasticloadbalancing:AttachLoadBalancerToSubnets elasticloadbalancing:ConfigureHealthCheck elasticloadbalancing:CreateAppCookieStickinessPolicy elasticloadbalancing:CreateLBCookieStickinessPolicy elasticloadbalancing:CreateListener elasticloadbalancing:CreateLoadBalancer elasticloadbalancing:CreateLoadBalancerListeners elasticloadbalancing:CreateLoadBalancerPolicy elasticloadbalancing:CreateRule elasticloadbalancing:CreateTargetGroup elasticloadbalancing:CreateTrustStore elasticloadbalancing:CreateWebACLAssociation elasticloadbalancing:DeleteListener elasticloadbalancing:DeleteLoadBalancer elasticloadbalancing:DeleteLoadBalancerListeners elasticloadbalancing:DeleteLoadBalancerPolicy elasticloadbalancing:DeleteRule elasticloadbalancing:DeleteSharedTrustStoreAssociation elasticloadbalancing:DeleteTargetGroup elasticloadbalancing:DeleteTrustStore elasticloadbalancing:DeleteWebACLAssociation elasticloadbalancing:DeregisterInstancesFromLoadBalancer elasticloadbalancing:DeregisterTargets elasticloadbalancing:DescribeAccountLimits elasticloadbalancing:DescribeCapacityReservation elasticloadbalancing:DescribeInstanceHealth elasticloadbalancing:DescribeListenerAttributes elasticloadbalancing:DescribeListenerCertificates elasticloadbalancing:DescribeListeners elasticloadbalancing:DescribeLoadBalancerAttributes elasticloadbalancing:DescribeLoadBalancerPolicies elasticloadbalancing:DescribeLoadBalancerPolicyTypes elasticloadbalancing:DescribeLoadBalancers elasticloadbalancing:DescribeRules elasticloadbalancing:DescribeSSLPolicies elasticloadbalancing:DescribeTargetGroupAttributes elasticloadbalancing:DescribeTargetGroups elasticloadbalancing:DescribeTargetHealth elasticloadbalancing:DescribeTrustStoreAssociations elasticloadbalancing:DescribeTrustStoreRevocations elasticloadbalancing:DescribeTrustStores elasticloadbalancing:DescribeWebACLAssociation elasticloadbalancing:DetachLoadBalancerFromSubnets elasticloadbalancing:DisableAvailabilityZonesForLoadBalancer elasticloadbalancing:EnableAvailabilityZonesForLoadBalancer elasticloadbalancing:GetLoadBalancerWebACL elasticloadbalancing:GetResourcePolicy elasticloadbalancing:GetTrustStoreCaCertificatesBundle elasticloadbalancing:GetTrustStoreRevocationContent elasticloadbalancing:ModifyCapacityReservation elasticloadbalancing:ModifyIpPools elasticloadbalancing:ModifyListener elasticloadbalancing:ModifyLoadBalancerAttributes elasticloadbalancing:ModifyRule elasticloadbalancing:ModifyTargetGroup elasticloadbalancing:ModifyTargetGroupAttributes elasticloadbalancing:ModifyTrustStore elasticloadbalancing:RegisterInstancesWithLoadBalancer elasticloadbalancing:RegisterTargets elasticloadbalancing:RemoveListenerCertificates elasticloadbalancing:RemoveTrustStoreRevocations elasticloadbalancing:SetIpAddressType elasticloadbalancing:SetLoadBalancerListenerSSLCertificate elasticloadbalancing:SetLoadBalancerPoliciesForBackendServer elasticloadbalancing:SetLoadBalancerPoliciesOfListener elasticloadbalancing:SetRulePriorities elasticloadbalancing:SetSecurityGroups elasticloadbalancing:SetSubnets  | 
| elastictranscoder |  elastictranscoder:CancelJob elastictranscoder:CreateJob elastictranscoder:CreatePipeline elastictranscoder:CreatePreset elastictranscoder:DeletePipeline elastictranscoder:DeletePreset elastictranscoder:ListJobsByPipeline elastictranscoder:ListJobsByStatus elastictranscoder:ListPipelines elastictranscoder:ListPresets elastictranscoder:ReadJob elastictranscoder:ReadPipeline elastictranscoder:ReadPreset elastictranscoder:TestRole elastictranscoder:UpdatePipeline elastictranscoder:UpdatePipelineNotifications elastictranscoder:UpdatePipelineStatus  | 
| emr-containers |  emr-containers:CancelJobRun emr-containers:CreateJobTemplate emr-containers:CreateManagedEndpoint emr-containers:CreateSecurityConfiguration emr-containers:CreateVirtualCluster emr-containers:DeleteJobTemplate emr-containers:DeleteManagedEndpoint emr-containers:DeleteVirtualCluster emr-containers:DescribeJobRun emr-containers:DescribeJobTemplate emr-containers:DescribeManagedEndpoint emr-containers:DescribeSecurityConfiguration emr-containers:DescribeVirtualCluster emr-containers:GetManagedEndpointSessionCredentials emr-containers:ListJobRuns emr-containers:ListJobTemplates emr-containers:ListManagedEndpoints emr-containers:ListSecurityConfigurations emr-containers:ListVirtualClusters emr-containers:StartJobRun  | 
| emr-serverless |  emr-serverless:CancelJobRun emr-serverless:CreateApplication emr-serverless:DeleteApplication emr-serverless:GetApplication emr-serverless:GetDashboardForJobRun emr-serverless:GetJobRun emr-serverless:ListApplications emr-serverless:ListJobRunAttempts emr-serverless:ListJobRuns emr-serverless:StartApplication emr-serverless:StartJobRun emr-serverless:StopApplication emr-serverless:UpdateApplication  | 
| es |  es:AcceptInboundConnection es:AcceptInboundCrossClusterSearchConnection es:AssociatePackage es:AuthorizeVpcEndpointAccess es:CancelElasticsearchServiceSoftwareUpdate es:CancelServiceSoftwareUpdate es:CreateDomain es:CreateElasticsearchDomain es:CreateIndex es:CreateOutboundConnection es:CreateOutboundCrossClusterSearchConnection es:CreatePackage es:CreateVpcEndpoint es:DeleteDomain es:DeleteElasticsearchDomain es:DeleteElasticsearchServiceRole es:DeleteInboundConnection es:DeleteInboundCrossClusterSearchConnection es:DeleteIndex es:DeleteOutboundConnection es:DeleteOutboundCrossClusterSearchConnection es:DeletePackage es:DeleteVpcEndpoint es:DescribeDomain es:DescribeDomainAutoTunes es:DescribeDomainChangeProgress es:DescribeDomainConfig es:DescribeDomainHealth es:DescribeDomainNodes es:DescribeDomains es:DescribeDryRunProgress es:DescribeElasticsearchDomain es:DescribeElasticsearchDomainConfig es:DescribeElasticsearchDomains es:DescribeElasticsearchInstanceTypeLimits es:DescribeInboundConnections es:DescribeInboundCrossClusterSearchConnections es:DescribeInstanceTypeLimits es:DescribeOutboundConnections es:DescribeOutboundCrossClusterSearchConnections es:DescribePackages es:DescribeReservedElasticsearchInstanceOfferings es:DescribeReservedElasticsearchInstances es:DescribeReservedInstanceOfferings es:DescribeReservedInstances es:DescribeVpcEndpoints es:DissociatePackage es:DissociatePackages es:GetCompatibleElasticsearchVersions es:GetCompatibleVersions es:GetDataSource es:GetDomainMaintenanceStatus es:GetPackageVersionHistory es:GetUpgradeHistory es:GetUpgradeStatus es:ListDataSources es:ListDomainNames es:ListDomainsForPackage es:ListElasticsearchInstanceTypes es:ListElasticsearchVersions es:ListInstanceTypeDetails es:ListPackagesForDomain es:ListScheduledActions es:ListVersions es:ListVpcEndpointAccess es:ListVpcEndpoints es:ListVpcEndpointsForDomain es:PurchaseReservedElasticsearchInstanceOffering es:PurchaseReservedInstanceOffering es:RejectInboundConnection es:RejectInboundCrossClusterSearchConnection es:RevokeVpcEndpointAccess es:StartDomainMaintenance es:StartElasticsearchServiceSoftwareUpdate es:StartServiceSoftwareUpdate es:UpdateDataSource es:UpdateDomainConfig es:UpdateElasticsearchDomainConfig es:UpdateIndex es:UpdatePackage es:UpdatePackageScope es:UpdateScheduledAction es:UpdateVpcEndpoint es:UpgradeDomain es:UpgradeElasticsearchDomain  | 
| 이벤트 |  events:ActivateEventSource events:CancelReplay events:CreateApiDestination events:CreateArchive events:CreateConnection events:CreateEndpoint events:CreateEventBus events:CreatePartnerEventSource events:DeactivateEventSource events:DeauthorizeConnection events:DeleteApiDestination events:DeleteArchive events:DeleteConnection events:DeleteEndpoint events:DeleteEventBus events:DeletePartnerEventSource events:DeleteRule events:DescribeApiDestination events:DescribeArchive events:DescribeConnection events:DescribeEndpoint events:DescribeEventBus events:DescribeEventSource events:DescribePartnerEventSource events:DescribeReplay events:DescribeRule events:DisableRule events:EnableRule events:ListApiDestinations events:ListArchives events:ListConnections events:ListEndpoints events:ListEventBuses events:ListEventSources events:ListPartnerEventSourceAccounts events:ListPartnerEventSources events:ListReplays events:ListRuleNamesByTarget events:ListRules events:ListTargetsByRule events:PutPermission events:PutRule events:PutTargets events:RemovePermission events:RemoveTargets events:StartReplay events:TestEventPattern events:UpdateApiDestination events:UpdateArchive events:UpdateConnection events:UpdateEndpoint events:UpdateEventBus  | 
| evidently |  evidently:CreateExperiment evidently:CreateFeature evidently:CreateLaunch evidently:CreateProject evidently:CreateSegment evidently:DeleteExperiment evidently:DeleteFeature evidently:DeleteLaunch evidently:DeleteProject evidently:DeleteSegment evidently:GetExperiment evidently:GetExperimentResults evidently:GetFeature evidently:GetLaunch evidently:GetProject evidently:GetSegment evidently:ListExperiments evidently:ListFeatures evidently:ListLaunches evidently:ListProjects evidently:ListSegmentReferences evidently:ListSegments evidently:StartExperiment evidently:StartLaunch evidently:StopExperiment evidently:StopLaunch evidently:TestSegmentPattern evidently:UpdateExperiment evidently:UpdateFeature evidently:UpdateLaunch evidently:UpdateProject evidently:UpdateProjectDataDelivery  | 
| finspace |  finspace:CreateEnvironment finspace:CreateKxChangeset finspace:CreateKxCluster finspace:CreateKxDatabase finspace:CreateKxDataview finspace:CreateKxEnvironment finspace:CreateKxScalingGroup finspace:CreateKxUser finspace:CreateKxVolume finspace:CreateUser finspace:DeleteEnvironment finspace:DeleteKxCluster finspace:DeleteKxClusterNode finspace:DeleteKxDatabase finspace:DeleteKxDataview finspace:DeleteKxEnvironment finspace:DeleteKxScalingGroup finspace:DeleteKxUser finspace:DeleteKxVolume finspace:GetEnvironment finspace:GetKxChangeset finspace:GetKxCluster finspace:GetKxConnectionString finspace:GetKxDatabase finspace:GetKxDataview finspace:GetKxEnvironment finspace:GetKxScalingGroup finspace:GetKxUser finspace:GetKxVolume finspace:GetLoadSampleDataSetGroupIntoEnvironmentStatus finspace:GetUser finspace:ListEnvironments finspace:ListKxChangesets finspace:ListKxClusterNodes finspace:ListKxClusters finspace:ListKxDatabases finspace:ListKxDataviews finspace:ListKxEnvironments finspace:ListKxScalingGroups finspace:ListKxUsers finspace:ListKxVolumes finspace:ListUsers finspace:LoadSampleDataSetGroupIntoEnvironment finspace:ResetUserPassword finspace:UpdateEnvironment finspace:UpdateKxClusterCodeConfiguration finspace:UpdateKxClusterDatabases finspace:UpdateKxDatabase finspace:UpdateKxDataview finspace:UpdateKxEnvironment finspace:UpdateKxEnvironmentNetwork finspace:UpdateKxUser finspace:UpdateKxVolume finspace:UpdateUser  | 
| firehose |  firehose:CreateDeliveryStream firehose:DeleteDeliveryStream firehose:DescribeDeliveryStream firehose:ListDeliveryStreams firehose:StartDeliveryStreamEncryption firehose:StopDeliveryStreamEncryption firehose:UpdateDestination  | 
| fis |  fis:CreateExperimentTemplate fis:CreateTargetAccountConfiguration fis:DeleteExperimentTemplate fis:DeleteTargetAccountConfiguration fis:GetAction fis:GetExperiment fis:GetExperimentTargetAccountConfiguration fis:GetExperimentTemplate fis:GetSafetyLever fis:GetTargetAccountConfiguration fis:GetTargetResourceType fis:ListActions fis:ListExperimentResolvedTargets fis:ListExperimentTargetAccountConfigurations fis:ListExperimentTemplates fis:ListExperiments fis:ListTargetAccountConfigurations fis:ListTargetResourceTypes fis:StartExperiment fis:StopExperiment fis:UpdateExperimentTemplate fis:UpdateSafetyLeverState fis:UpdateTargetAccountConfiguration  | 
| fms |  fms:AssociateAdminAccount fms:AssociateThirdPartyFirewall fms:BatchAssociateResource fms:BatchDisassociateResource fms:DeleteAppsList fms:DeleteNotificationChannel fms:DeletePolicy fms:DeleteProtocolsList fms:DeleteResourceSet fms:DisassociateAdminAccount fms:DisassociateThirdPartyFirewall fms:GetAdminAccount fms:GetAdminScope fms:GetAppsList fms:GetComplianceDetail fms:GetNotificationChannel fms:GetPolicy fms:GetProtectionStatus fms:GetProtocolsList fms:GetResourceSet fms:GetThirdPartyFirewallAssociationStatus fms:GetViolationDetails fms:ListAdminAccountsForOrganization fms:ListAdminsManagingAccount fms:ListAppsLists fms:ListComplianceStatus fms:ListDiscoveredResources fms:ListMemberAccounts fms:ListPolicies fms:ListProtocolsLists fms:ListResourceSetResources fms:ListResourceSets fms:ListThirdPartyFirewallFirewallPolicies fms:PutAdminAccount fms:PutAppsList fms:PutNotificationChannel fms:PutPolicy fms:PutProtocolsList fms:PutResourceSet  | 
| frauddetector |  frauddetector:BatchCreateVariable frauddetector:BatchGetVariable frauddetector:CancelBatchImportJob frauddetector:CancelBatchPredictionJob frauddetector:CreateBatchImportJob frauddetector:CreateBatchPredictionJob frauddetector:CreateDetectorVersion frauddetector:CreateList frauddetector:CreateModel frauddetector:CreateModelVersion frauddetector:CreateRule frauddetector:CreateVariable frauddetector:DeleteBatchImportJob frauddetector:DeleteBatchPredictionJob frauddetector:DeleteDetector frauddetector:DeleteDetectorVersion frauddetector:DeleteEntityType frauddetector:DeleteEvent frauddetector:DeleteEventType frauddetector:DeleteEventsByEventType frauddetector:DeleteExternalModel frauddetector:DeleteLabel frauddetector:DeleteList frauddetector:DeleteModel frauddetector:DeleteModelVersion frauddetector:DeleteOutcome frauddetector:DeleteRule frauddetector:DeleteVariable frauddetector:DescribeDetector frauddetector:DescribeModelVersions frauddetector:GetBatchImportJobs frauddetector:GetBatchPredictionJobs frauddetector:GetDeleteEventsByEventTypeStatus frauddetector:GetDetectorVersion frauddetector:GetDetectors frauddetector:GetEntityTypes frauddetector:GetEvent frauddetector:GetEventPrediction frauddetector:GetEventPredictionMetadata frauddetector:GetEventTypes frauddetector:GetExternalModels frauddetector:GetKMSEncryptionKey frauddetector:GetLabels frauddetector:GetListElements frauddetector:GetListsMetadata frauddetector:GetModelVersion frauddetector:GetModels frauddetector:GetOutcomes frauddetector:GetRules frauddetector:GetVariables frauddetector:ListEventPredictions frauddetector:PutDetector frauddetector:PutEntityType frauddetector:PutEventType frauddetector:PutExternalModel frauddetector:PutKMSEncryptionKey frauddetector:PutLabel frauddetector:PutOutcome frauddetector:SendEvent frauddetector:UpdateDetectorVersion frauddetector:UpdateDetectorVersionMetadata frauddetector:UpdateDetectorVersionStatus frauddetector:UpdateEventLabel frauddetector:UpdateList frauddetector:UpdateModel frauddetector:UpdateModelVersion frauddetector:UpdateModelVersionStatus frauddetector:UpdateRuleMetadata frauddetector:UpdateRuleVersion frauddetector:UpdateVariable  | 
| fsx |  fsx:AssociateFileSystemAliases fsx:CancelDataRepositoryTask fsx:CopyBackup fsx:CreateDataRepositoryTask fsx:CreateFileCache fsx:CreateFileSystem fsx:CreateFileSystemFromBackup fsx:CreateSnapshot fsx:CreateStorageVirtualMachine fsx:CreateVolume fsx:CreateVolumeFromBackup fsx:DeleteBackup fsx:DeleteFileCache fsx:DeleteFileSystem fsx:DeleteSnapshot fsx:DeleteStorageVirtualMachine fsx:DeleteVolume fsx:DescribeBackups fsx:DescribeDataRepositoryAssociations fsx:DescribeDataRepositoryTasks fsx:DescribeFileCaches fsx:DescribeFileSystemAliases fsx:DescribeFileSystems fsx:DescribeS3AccessPointAttachments fsx:DescribeSharedVpcConfiguration fsx:DescribeSnapshots fsx:DescribeStorageVirtualMachines fsx:DescribeVolumes fsx:DetachAndDeleteS3AccessPoint fsx:DisassociateFileSystemAliases fsx:ReleaseFileSystemNfsV3Locks fsx:RestoreVolumeFromSnapshot fsx:StartMisconfiguredStateRecovery fsx:UpdateDataRepositoryAssociation fsx:UpdateFileCache fsx:UpdateFileSystem fsx:UpdateSharedVpcConfiguration fsx:UpdateSnapshot fsx:UpdateStorageVirtualMachine fsx:UpdateVolume  | 
| gamelift |  gamelift:AcceptMatch gamelift:ClaimGameServer gamelift:CreateAlias gamelift:CreateBuild gamelift:CreateContainerGroupDefinition gamelift:CreateFleet gamelift:CreateFleetLocations gamelift:CreateGameServerGroup gamelift:CreateGameSession gamelift:CreateGameSessionQueue gamelift:CreateLocation gamelift:CreateMatchmakingConfiguration gamelift:CreateMatchmakingRuleSet gamelift:CreatePlayerSession gamelift:CreatePlayerSessions gamelift:CreateScript gamelift:CreateVpcPeeringAuthorization gamelift:CreateVpcPeeringConnection gamelift:DeleteAlias gamelift:DeleteBuild gamelift:DeleteContainerGroupDefinition gamelift:DeleteFleet gamelift:DeleteFleetLocations gamelift:DeleteGameServerGroup gamelift:DeleteGameSessionQueue gamelift:DeleteLocation gamelift:DeleteMatchmakingConfiguration gamelift:DeleteMatchmakingRuleSet gamelift:DeleteScalingPolicy gamelift:DeleteScript gamelift:DeleteVpcPeeringAuthorization gamelift:DeleteVpcPeeringConnection gamelift:DeregisterCompute gamelift:DeregisterGameServer gamelift:DescribeAlias gamelift:DescribeBuild gamelift:DescribeCompute gamelift:DescribeContainerFleet gamelift:DescribeContainerGroupDefinition gamelift:DescribeEC2InstanceLimits gamelift:DescribeFleetAttributes gamelift:DescribeFleetCapacity gamelift:DescribeFleetEvents gamelift:DescribeFleetLocationAttributes gamelift:DescribeFleetLocationCapacity gamelift:DescribeFleetLocationUtilization gamelift:DescribeFleetPortSettings gamelift:DescribeFleetUtilization gamelift:DescribeGameServer gamelift:DescribeGameServerGroup gamelift:DescribeGameServerInstances gamelift:DescribeGameSessionDetails gamelift:DescribeGameSessionPlacement gamelift:DescribeGameSessionQueues gamelift:DescribeGameSessions gamelift:DescribeInstances gamelift:DescribeMatchmaking gamelift:DescribeMatchmakingConfigurations gamelift:DescribeMatchmakingRuleSets gamelift:DescribePlayerSessions gamelift:DescribeRuntimeConfiguration gamelift:DescribeScalingPolicies gamelift:DescribeScript gamelift:DescribeVpcPeeringAuthorizations gamelift:DescribeVpcPeeringConnections gamelift:GetComputeAccess gamelift:GetComputeAuthToken gamelift:GetGameSessionLogUrl gamelift:GetInstanceAccess gamelift:ListAliases gamelift:ListBuilds gamelift:ListCompute gamelift:ListContainerFleets gamelift:ListContainerGroupDefinitionVersions gamelift:ListContainerGroupDefinitions gamelift:ListFleetDeployments gamelift:ListFleets gamelift:ListGameServerGroups gamelift:ListGameServers gamelift:ListLocations gamelift:ListScripts gamelift:PutScalingPolicy gamelift:RegisterCompute gamelift:RegisterGameServer gamelift:RequestUploadCredentials gamelift:ResolveAlias gamelift:ResumeGameServerGroup gamelift:SearchGameSessions gamelift:StartFleetActions gamelift:StartGameSessionPlacement gamelift:StartMatchBackfill gamelift:StartMatchmaking gamelift:StopFleetActions gamelift:StopGameSessionPlacement gamelift:StopMatchmaking gamelift:SuspendGameServerGroup gamelift:TerminateGameSession gamelift:UpdateAlias gamelift:UpdateBuild gamelift:UpdateContainerGroupDefinition gamelift:UpdateFleetAttributes gamelift:UpdateFleetCapacity gamelift:UpdateFleetPortSettings gamelift:UpdateGameServer gamelift:UpdateGameServerGroup gamelift:UpdateGameSession gamelift:UpdateGameSessionQueue gamelift:UpdateMatchmakingConfiguration gamelift:UpdateRuntimeConfiguration gamelift:UpdateScript gamelift:ValidateMatchmakingRuleSet  | 
| geo |  geo:AssociateTrackerConsumer geo:BatchDeleteDevicePositionHistory geo:BatchDeleteGeofence geo:BatchEvaluateGeofences geo:BatchGetDevicePosition geo:BatchPutGeofence geo:BatchUpdateDevicePosition geo:CalculateRoute geo:CalculateRouteMatrix geo:CreateGeofenceCollection geo:CreateMap geo:CreatePlaceIndex geo:CreateRouteCalculator geo:CreateTracker geo:DeleteGeofenceCollection geo:DeleteKey geo:DeleteMap geo:DeletePlaceIndex geo:DeleteRouteCalculator geo:DeleteTracker geo:DescribeGeofenceCollection geo:DescribeKey geo:DescribeMap geo:DescribePlaceIndex geo:DescribeRouteCalculator geo:DescribeTracker geo:DisassociateTrackerConsumer geo:ForecastGeofenceEvents geo:GetDevicePosition geo:GetDevicePositionHistory geo:GetGeofence geo:GetMapGlyphs geo:GetMapSprites geo:GetMapStyleDescriptor geo:GetMapTile geo:GetPlace geo:ListDevicePositions geo:ListGeofenceCollections geo:ListGeofences geo:ListKeys geo:ListMaps geo:ListPlaceIndexes geo:ListRouteCalculators geo:ListTrackerConsumers geo:ListTrackers geo:PutGeofence geo:SearchPlaceIndexForPosition geo:SearchPlaceIndexForSuggestions geo:SearchPlaceIndexForText geo:UpdateGeofenceCollection geo:UpdateKey geo:UpdateMap geo:UpdatePlaceIndex geo:UpdateRouteCalculator geo:UpdateTracker geo:VerifyDevicePosition  | 
| glacier |  glacier:AbortMultipartUpload glacier:AbortVaultLock glacier:CompleteMultipartUpload glacier:CompleteVaultLock glacier:CreateVault glacier:DeleteArchive glacier:DeleteVault glacier:DeleteVaultAccessPolicy glacier:DeleteVaultNotifications glacier:DescribeJob glacier:DescribeVault glacier:GetDataRetrievalPolicy glacier:GetJobOutput glacier:GetVaultAccessPolicy glacier:GetVaultLock glacier:GetVaultNotifications glacier:InitiateJob glacier:InitiateMultipartUpload glacier:InitiateVaultLock glacier:ListJobs glacier:ListMultipartUploads glacier:ListParts glacier:ListProvisionedCapacity glacier:ListVaults glacier:PurchaseProvisionedCapacity glacier:SetDataRetrievalPolicy glacier:SetVaultAccessPolicy glacier:SetVaultNotifications glacier:UploadArchive glacier:UploadMultipartPart  | 
| grafana |  grafana:AssociateLicense grafana:CreateWorkspace grafana:CreateWorkspaceApiKey grafana:CreateWorkspaceServiceAccount grafana:CreateWorkspaceServiceAccountToken grafana:DeleteWorkspace grafana:DeleteWorkspaceApiKey grafana:DeleteWorkspaceServiceAccount grafana:DeleteWorkspaceServiceAccountToken grafana:DescribeWorkspace grafana:DescribeWorkspaceAuthentication grafana:DescribeWorkspaceConfiguration grafana:DisassociateLicense grafana:ListPermissions grafana:ListVersions grafana:ListWorkspaceServiceAccountTokens grafana:ListWorkspaceServiceAccounts grafana:ListWorkspaces grafana:UpdatePermissions grafana:UpdateWorkspace grafana:UpdateWorkspaceAuthentication grafana:UpdateWorkspaceConfiguration  | 
| greengrass |  greengrass:AssociateRoleToGroup greengrass:AssociateServiceRoleToAccount greengrass:BatchAssociateClientDeviceWithCoreDevice greengrass:BatchDisassociateClientDeviceFromCoreDevice greengrass:CancelDeployment greengrass:CreateComponentVersion greengrass:CreateConnectorDefinition greengrass:CreateConnectorDefinitionVersion greengrass:CreateCoreDefinition greengrass:CreateCoreDefinitionVersion greengrass:CreateDeployment greengrass:CreateDeviceDefinition greengrass:CreateDeviceDefinitionVersion greengrass:CreateFunctionDefinition greengrass:CreateFunctionDefinitionVersion greengrass:CreateGroup greengrass:CreateGroupCertificateAuthority greengrass:CreateGroupVersion greengrass:CreateLoggerDefinition greengrass:CreateLoggerDefinitionVersion greengrass:CreateResourceDefinition greengrass:CreateResourceDefinitionVersion greengrass:CreateSoftwareUpdateJob greengrass:CreateSubscriptionDefinition greengrass:CreateSubscriptionDefinitionVersion greengrass:DeleteComponent greengrass:DeleteConnectorDefinition greengrass:DeleteCoreDefinition greengrass:DeleteCoreDevice greengrass:DeleteDeployment greengrass:DeleteDeviceDefinition greengrass:DeleteFunctionDefinition greengrass:DeleteGroup greengrass:DeleteLoggerDefinition greengrass:DeleteResourceDefinition greengrass:DeleteSubscriptionDefinition greengrass:DescribeComponent greengrass:DisassociateRoleFromGroup greengrass:DisassociateServiceRoleFromAccount greengrass:GetAssociatedRole greengrass:GetBulkDeploymentStatus greengrass:GetComponent greengrass:GetComponentVersionArtifact greengrass:GetConnectivityInfo greengrass:GetConnectorDefinition greengrass:GetConnectorDefinitionVersion greengrass:GetCoreDefinition greengrass:GetCoreDefinitionVersion greengrass:GetCoreDevice greengrass:GetDeployment greengrass:GetDeploymentStatus greengrass:GetDeviceDefinition greengrass:GetDeviceDefinitionVersion greengrass:GetFunctionDefinition greengrass:GetFunctionDefinitionVersion greengrass:GetGroup greengrass:GetGroupCertificateAuthority greengrass:GetGroupCertificateConfiguration greengrass:GetGroupVersion greengrass:GetLoggerDefinition greengrass:GetLoggerDefinitionVersion greengrass:GetResourceDefinition greengrass:GetResourceDefinitionVersion greengrass:GetServiceRoleForAccount greengrass:GetSubscriptionDefinition greengrass:GetSubscriptionDefinitionVersion greengrass:GetThingRuntimeConfiguration greengrass:ListBulkDeploymentDetailedReports greengrass:ListBulkDeployments greengrass:ListClientDevicesAssociatedWithCoreDevice greengrass:ListComponentVersions greengrass:ListComponents greengrass:ListConnectorDefinitionVersions greengrass:ListConnectorDefinitions greengrass:ListCoreDefinitionVersions greengrass:ListCoreDefinitions greengrass:ListCoreDevices greengrass:ListDeployments greengrass:ListDeviceDefinitionVersions greengrass:ListDeviceDefinitions greengrass:ListEffectiveDeployments greengrass:ListFunctionDefinitionVersions greengrass:ListFunctionDefinitions greengrass:ListGroupCertificateAuthorities greengrass:ListGroupVersions greengrass:ListGroups greengrass:ListInstalledComponents greengrass:ListLoggerDefinitionVersions greengrass:ListLoggerDefinitions greengrass:ListResourceDefinitionVersions greengrass:ListResourceDefinitions greengrass:ListSubscriptionDefinitionVersions greengrass:ListSubscriptionDefinitions greengrass:ResetDeployments greengrass:StartBulkDeployment greengrass:StopBulkDeployment greengrass:UpdateConnectivityInfo greengrass:UpdateConnectorDefinition greengrass:UpdateCoreDefinition greengrass:UpdateDeviceDefinition greengrass:UpdateFunctionDefinition greengrass:UpdateGroup greengrass:UpdateGroupCertificateConfiguration greengrass:UpdateLoggerDefinition greengrass:UpdateResourceDefinition greengrass:UpdateSubscriptionDefinition greengrass:UpdateThingRuntimeConfiguration  | 
| groundstation |  groundstation:CancelContact groundstation:CreateConfig groundstation:CreateDataflowEndpointGroup groundstation:CreateDataflowEndpointGroupV2 groundstation:CreateEphemeris groundstation:CreateMissionProfile groundstation:DeleteConfig groundstation:DeleteDataflowEndpointGroup groundstation:DeleteEphemeris groundstation:DeleteMissionProfile groundstation:DescribeContact groundstation:DescribeEphemeris groundstation:GetConfig groundstation:GetDataflowEndpointGroup groundstation:GetMinuteUsage groundstation:GetMissionProfile groundstation:GetSatellite groundstation:ListConfigs groundstation:ListContacts groundstation:ListDataflowEndpointGroups groundstation:ListEphemerides groundstation:ListGroundStations groundstation:ListMissionProfiles groundstation:ListSatellites groundstation:RegisterAgent groundstation:ReserveContact groundstation:UpdateAgentStatus groundstation:UpdateConfig groundstation:UpdateEphemeris groundstation:UpdateMissionProfile  | 
| guardduty |  guardduty:AcceptAdministratorInvitation guardduty:AcceptInvitation guardduty:ArchiveFindings guardduty:CreateDetector guardduty:CreateFilter guardduty:CreateIPSet guardduty:CreateMalwareProtectionPlan guardduty:CreateMembers guardduty:CreatePublishingDestination guardduty:CreateSampleFindings guardduty:CreateThreatEntitySet guardduty:CreateThreatIntelSet guardduty:CreateTrustedEntitySet guardduty:DeclineInvitations guardduty:DeleteDetector guardduty:DeleteFilter guardduty:DeleteIPSet guardduty:DeleteInvitations guardduty:DeleteMalwareProtectionPlan guardduty:DeleteMembers guardduty:DeletePublishingDestination guardduty:DeleteThreatEntitySet guardduty:DeleteThreatIntelSet guardduty:DeleteTrustedEntitySet guardduty:DescribeMalwareScans guardduty:DescribeOrganizationConfiguration guardduty:DescribePublishingDestination guardduty:DisableOrganizationAdminAccount guardduty:DisassociateFromAdministratorAccount guardduty:DisassociateFromMasterAccount guardduty:DisassociateMembers guardduty:EnableOrganizationAdminAccount guardduty:GetAdministratorAccount guardduty:GetCoverageStatistics guardduty:GetDetector guardduty:GetFilter guardduty:GetFindings guardduty:GetFindingsStatistics guardduty:GetIPSet guardduty:GetInvitationsCount guardduty:GetMalwareProtectionPlan guardduty:GetMalwareScan guardduty:GetMalwareScanSettings guardduty:GetMasterAccount guardduty:GetMemberDetectors guardduty:GetMembers guardduty:GetOrganizationStatistics guardduty:GetRemainingFreeTrialDays guardduty:GetThreatEntitySet guardduty:GetThreatIntelSet guardduty:GetTrustedEntitySet guardduty:GetUsageStatistics guardduty:InviteMembers guardduty:ListCoverage guardduty:ListDetectors guardduty:ListFilters guardduty:ListFindings guardduty:ListIPSets guardduty:ListInvitations guardduty:ListMalwareProtectionPlans guardduty:ListMalwareScans guardduty:ListMembers guardduty:ListOrganizationAdminAccounts guardduty:ListPublishingDestinations guardduty:ListThreatEntitySets guardduty:ListThreatIntelSets guardduty:ListTrustedEntitySets guardduty:StartMalwareScan guardduty:StartMonitoringMembers guardduty:StopMonitoringMembers guardduty:UnarchiveFindings guardduty:UpdateDetector guardduty:UpdateFilter guardduty:UpdateFindingsFeedback guardduty:UpdateIPSet guardduty:UpdateMalwareProtectionPlan guardduty:UpdateMalwareScanSettings guardduty:UpdateMemberDetectors guardduty:UpdateOrganizationConfiguration guardduty:UpdatePublishingDestination guardduty:UpdateThreatEntitySet guardduty:UpdateThreatIntelSet guardduty:UpdateTrustedEntitySet  | 
| healthlake |  healthlake:CancelFHIRExportJobWithDelete healthlake:CreateFHIRDatastore healthlake:CreateResource healthlake:DeleteFHIRDatastore healthlake:DeleteResource healthlake:DescribeFHIRDatastore healthlake:DescribeFHIRExportJob healthlake:DescribeFHIRExportJobWithGet healthlake:DescribeFHIRImportJob healthlake:GetCapabilities healthlake:ListFHIRDatastores healthlake:ListFHIRExportJobs healthlake:ListFHIRImportJobs healthlake:ReadResource healthlake:SearchEverything healthlake:SearchWithGet healthlake:SearchWithPost healthlake:StartFHIRExportJob healthlake:StartFHIRExportJobWithPost healthlake:StartFHIRImportJob healthlake:UpdateResource  | 
| honeycode |  honeycode:BatchCreateTableRows honeycode:BatchDeleteTableRows honeycode:BatchUpdateTableRows honeycode:BatchUpsertTableRows honeycode:DescribeTableDataImportJob honeycode:GetScreenData honeycode:InvokeScreenAutomation honeycode:ListTableColumns honeycode:ListTableRows honeycode:ListTables honeycode:QueryTableRows honeycode:StartTableDataImportJob  | 
| iam |  iam:AddClientIDToOpenIDConnectProvider iam:AddRoleToInstanceProfile iam:AddUserToGroup iam:AttachGroupPolicy iam:AttachRolePolicy iam:AttachUserPolicy iam:ChangePassword iam:CreateAccessKey iam:CreateAccountAlias iam:CreateGroup iam:CreateInstanceProfile iam:CreateLoginProfile iam:CreateOpenIDConnectProvider iam:CreatePolicy iam:CreatePolicyVersion iam:CreateRole iam:CreateSAMLProvider iam:CreateServiceLinkedRole iam:CreateServiceSpecificCredential iam:CreateUser iam:CreateVirtualMFADevice iam:DeactivateMFADevice iam:DeleteAccessKey iam:DeleteAccountAlias iam:DeleteAccountPasswordPolicy iam:DeleteCloudFrontPublicKey iam:DeleteGroup iam:DeleteGroupPolicy iam:DeleteInstanceProfile iam:DeleteLoginProfile iam:DeleteOpenIDConnectProvider iam:DeletePolicy iam:DeletePolicyVersion iam:DeleteRole iam:DeleteRolePermissionsBoundary iam:DeleteRolePolicy iam:DeleteSAMLProvider iam:DeleteSSHPublicKey iam:DeleteServerCertificate iam:DeleteServiceLinkedRole iam:DeleteServiceSpecificCredential iam:DeleteSigningCertificate iam:DeleteUser iam:DeleteUserPermissionsBoundary iam:DeleteUserPolicy iam:DeleteVirtualMFADevice iam:DetachGroupPolicy iam:DetachRolePolicy iam:DetachUserPolicy iam:DisableOrganizationsRootCredentialsManagement iam:DisableOrganizationsRootSessions iam:DisableOutboundWebIdentityFederation iam:EnableMFADevice iam:EnableOrganizationsRootCredentialsManagement iam:EnableOrganizationsRootSessions iam:EnableOutboundWebIdentityFederation iam:GenerateCredentialReport iam:GenerateOrganizationsAccessReport iam:GenerateServiceLastAccessedDetails iam:GetAccessKeyLastUsed iam:GetAccountAuthorizationDetails iam:GetAccountEmailAddress iam:GetAccountName iam:GetAccountPasswordPolicy iam:GetAccountSummary iam:GetCloudFrontPublicKey iam:GetContextKeysForCustomPolicy iam:GetContextKeysForPrincipalPolicy iam:GetCredentialReport iam:GetGroup iam:GetGroupPolicy iam:GetInstanceProfile iam:GetLoginProfile iam:GetMFADevice iam:GetOpenIDConnectProvider iam:GetOrganizationsAccessReport iam:GetOutboundWebIdentityFederationInfo iam:GetPolicy iam:GetPolicyVersion iam:GetRole iam:GetRolePolicy iam:GetSAMLProvider iam:GetSSHPublicKey iam:GetServerCertificate iam:GetServiceLastAccessedDetails iam:GetServiceLastAccessedDetailsWithEntities iam:GetServiceLinkedRoleDeletionStatus iam:GetUser iam:GetUserPolicy iam:ListAccessKeys iam:ListAccountAliases iam:ListAttachedGroupPolicies iam:ListAttachedRolePolicies iam:ListAttachedUserPolicies iam:ListCloudFrontPublicKeys iam:ListDelegationRequests iam:ListEntitiesForPolicy iam:ListGroupPolicies iam:ListGroups iam:ListGroupsForUser iam:ListInstanceProfiles iam:ListInstanceProfilesForRole iam:ListMFADevices iam:ListOpenIDConnectProviders iam:ListOrganizationsFeatures iam:ListPolicies iam:ListPoliciesGrantingServiceAccess iam:ListPolicyVersions iam:ListRolePolicies iam:ListRoles iam:ListSAMLProviders iam:ListSSHPublicKeys iam:ListSTSRegionalEndpointsStatus iam:ListServerCertificates iam:ListServiceSpecificCredentials iam:ListSigningCertificates iam:ListUserPolicies iam:ListUsers iam:ListVirtualMFADevices iam:PutGroupPolicy iam:PutRolePermissionsBoundary iam:PutRolePolicy iam:PutUserPermissionsBoundary iam:PutUserPolicy iam:RemoveClientIDFromOpenIDConnectProvider iam:RemoveRoleFromInstanceProfile iam:RemoveUserFromGroup iam:ResetServiceSpecificCredential iam:ResyncMFADevice iam:SetDefaultPolicyVersion iam:SetSTSRegionalEndpointStatus iam:SetSecurityTokenServicePreferences iam:SimulateCustomPolicy iam:SimulatePrincipalPolicy iam:UpdateAccessKey iam:UpdateAccountEmailAddress iam:UpdateAccountName iam:UpdateAccountPasswordPolicy iam:UpdateAssumeRolePolicy iam:UpdateCloudFrontPublicKey iam:UpdateGroup iam:UpdateLoginProfile iam:UpdateOpenIDConnectProviderThumbprint iam:UpdateRole iam:UpdateRoleDescription iam:UpdateSAMLProvider iam:UpdateSSHPublicKey iam:UpdateServerCertificate iam:UpdateServiceSpecificCredential iam:UpdateSigningCertificate iam:UpdateUser iam:UploadCloudFrontPublicKey iam:UploadSSHPublicKey iam:UploadServerCertificate iam:UploadSigningCertificate  | 
| identitystore |  identitystore:CreateGroup identitystore:CreateGroupMembership identitystore:CreateUser identitystore:DeleteGroup identitystore:DeleteGroupMembership identitystore:DeleteUser identitystore:DescribeGroup identitystore:DescribeGroupMembership identitystore:DescribeUser identitystore:GetGroupId identitystore:GetGroupMembershipId identitystore:GetUserId identitystore:IsMemberInGroups identitystore:ListGroupMemberships identitystore:ListGroupMembershipsForMember identitystore:ListGroups identitystore:ListUsers identitystore:UpdateGroup identitystore:UpdateUser  | 
| imagebuilder |  imagebuilder:CancelImageCreation imagebuilder:CancelLifecycleExecution imagebuilder:CreateComponent imagebuilder:CreateContainerRecipe imagebuilder:CreateDistributionConfiguration imagebuilder:CreateImage imagebuilder:CreateImagePipeline imagebuilder:CreateImageRecipe imagebuilder:CreateInfrastructureConfiguration imagebuilder:CreateLifecyclePolicy imagebuilder:CreateWorkflow imagebuilder:DeleteComponent imagebuilder:DeleteContainerRecipe imagebuilder:DeleteDistributionConfiguration imagebuilder:DeleteImage imagebuilder:DeleteImagePipeline imagebuilder:DeleteImageRecipe imagebuilder:DeleteInfrastructureConfiguration imagebuilder:DeleteLifecyclePolicy imagebuilder:DeleteWorkflow imagebuilder:DistributeImage imagebuilder:GetComponentPolicy imagebuilder:GetContainerRecipePolicy imagebuilder:GetImagePolicy imagebuilder:GetImageRecipePolicy imagebuilder:GetLifecycleExecution imagebuilder:GetLifecyclePolicy imagebuilder:GetMarketplaceResource imagebuilder:GetWorkflowExecution imagebuilder:GetWorkflowStepExecution imagebuilder:ImportComponent imagebuilder:ImportDiskImage imagebuilder:ImportVmImage imagebuilder:ListComponentBuildVersions imagebuilder:ListComponents imagebuilder:ListContainerRecipes imagebuilder:ListDistributionConfigurations imagebuilder:ListImageBuildVersions imagebuilder:ListImagePackages imagebuilder:ListImagePipelineImages imagebuilder:ListImagePipelines imagebuilder:ListImageRecipes imagebuilder:ListImageScanFindingAggregations imagebuilder:ListImageScanFindings imagebuilder:ListImages imagebuilder:ListInfrastructureConfigurations imagebuilder:ListLifecycleExecutionResources imagebuilder:ListLifecycleExecutions imagebuilder:ListLifecyclePolicies imagebuilder:ListWaitingWorkflowSteps imagebuilder:ListWorkflowExecutions imagebuilder:ListWorkflowStepExecutions imagebuilder:ListWorkflows imagebuilder:PutComponentPolicy imagebuilder:PutContainerRecipePolicy imagebuilder:PutImagePolicy imagebuilder:PutImageRecipePolicy imagebuilder:RetryImage imagebuilder:SendWorkflowStepAction imagebuilder:StartImagePipelineExecution imagebuilder:StartResourceStateUpdate imagebuilder:UpdateDistributionConfiguration imagebuilder:UpdateImagePipeline imagebuilder:UpdateInfrastructureConfiguration  | 
| inspector |  inspector:AddAttributesToFindings inspector:CreateAssessmentTarget inspector:CreateAssessmentTemplate inspector:CreateExclusionsPreview inspector:CreateResourceGroup inspector:DeleteAssessmentRun inspector:DeleteAssessmentTarget inspector:DeleteAssessmentTemplate inspector:DescribeAssessmentRuns inspector:DescribeAssessmentTargets inspector:DescribeAssessmentTemplates inspector:DescribeCrossAccountAccessRole inspector:DescribeExclusions inspector:DescribeFindings inspector:DescribeResourceGroups inspector:DescribeRulesPackages inspector:GetAssessmentReport inspector:GetExclusionsPreview inspector:GetTelemetryMetadata inspector:ListAssessmentRunAgents inspector:ListAssessmentRuns inspector:ListAssessmentTargets inspector:ListAssessmentTemplates inspector:ListEventSubscriptions inspector:ListExclusions inspector:ListFindings inspector:ListRulesPackages inspector:PreviewAgents inspector:RegisterCrossAccountAccessRole inspector:RemoveAttributesFromFindings inspector:StartAssessmentRun inspector:StopAssessmentRun inspector:SubscribeToEvent inspector:UnsubscribeFromEvent inspector:UpdateAssessmentTarget  | 
| inspector2 |  inspector2:AssociateMember inspector2:BatchGetAccountStatus inspector2:BatchGetCodeSnippet inspector2:BatchGetFindingDetails inspector2:BatchGetFreeTrialInfo inspector2:BatchGetMemberEc2DeepInspectionStatus inspector2:BatchUpdateMemberEc2DeepInspectionStatus inspector2:CancelFindingsReport inspector2:CancelSbomExport inspector2:CreateCisScanConfiguration inspector2:CreateCodeSecurityIntegration inspector2:CreateFilter inspector2:CreateFindingsReport inspector2:CreateSbomExport inspector2:DeleteCisScanConfiguration inspector2:DeleteCodeSecurityIntegration inspector2:DeleteFilter inspector2:DescribeOrganizationConfiguration inspector2:Disable inspector2:DisableDelegatedAdminAccount inspector2:DisassociateMember inspector2:Enable inspector2:EnableDelegatedAdminAccount inspector2:GetCisScanReport inspector2:GetCisScanResultDetails Inspector2:GetClustersForImage inspector2:GetCodeSecurityIntegration inspector2:GetCodeSecurityScan inspector2:GetConfiguration inspector2:GetDelegatedAdminAccount inspector2:GetEc2DeepInspectionConfiguration inspector2:GetEncryptionKey inspector2:GetFindingsReportStatus inspector2:GetMember inspector2:GetSbomExport inspector2:ListAccountPermissions inspector2:ListCisScanConfigurations inspector2:ListCisScanResultsAggregatedByChecks inspector2:ListCisScanResultsAggregatedByTargetResource inspector2:ListCisScans inspector2:ListCodeSecurityIntegrations inspector2:ListCodeSecurityScanConfigurations inspector2:ListCoverage inspector2:ListCoverageStatistics inspector2:ListDelegatedAdminAccounts inspector2:ListFilters inspector2:ListFindingAggregations inspector2:ListFindings inspector2:ListMembers inspector2:ListUsageTotals inspector2:ResetEncryptionKey inspector2:SearchVulnerabilities inspector2:SendCisSessionHealth inspector2:SendCisSessionTelemetry inspector2:StartCisSession inspector2:StartCodeSecurityScan inspector2:StopCisSession inspector2:UpdateCisScanConfiguration inspector2:UpdateCodeSecurityIntegration inspector2:UpdateConfiguration inspector2:UpdateEc2DeepInspectionConfiguration inspector2:UpdateEncryptionKey inspector2:UpdateFilter inspector2:UpdateOrgEc2DeepInspectionConfiguration inspector2:UpdateOrganizationConfiguration  | 
| iot |  iot:AcceptCertificateTransfer iot:AddThingToBillingGroup iot:AddThingToThingGroup iot:AssociateSbomWithPackageVersion iot:AssociateTargetsWithJob iot:AttachPolicy iot:AttachPrincipalPolicy iot:AttachSecurityProfile iot:AttachThingPrincipal iot:CancelAuditMitigationActionsTask iot:CancelAuditTask iot:CancelCertificateTransfer iot:CancelDetectMitigationActionsTask iot:CancelJob iot:CancelJobExecution iot:ClearDefaultAuthorizer iot:ConfirmTopicRuleDestination iot:CreateAuditSuppression iot:CreateAuthorizer iot:CreateBillingGroup iot:CreateCertificateFromCsr iot:CreateCertificateProvider iot:CreateCommand iot:CreateCustomMetric iot:CreateDimension iot:CreateDomainConfiguration iot:CreateDynamicThingGroup iot:CreateFleetMetric iot:CreateJob iot:CreateJobTemplate iot:CreateKeysAndCertificate iot:CreateMitigationAction iot:CreateOTAUpdate iot:CreatePackage iot:CreatePackageVersion iot:CreatePolicy iot:CreatePolicyVersion iot:CreateProvisioningClaim iot:CreateProvisioningTemplate iot:CreateProvisioningTemplateVersion iot:CreateRoleAlias iot:CreateScheduledAudit iot:CreateSecurityProfile iot:CreateStream iot:CreateThing iot:CreateThingGroup iot:CreateThingType iot:CreateTopicRule iot:CreateTopicRuleDestination iot:DeleteAccountAuditConfiguration iot:DeleteAuditSuppression iot:DeleteAuthorizer iot:DeleteBillingGroup iot:DeleteCACertificate iot:DeleteCertificate iot:DeleteCertificateProvider iot:DeleteCommand iot:DeleteCustomMetric iot:DeleteDimension iot:DeleteDomainConfiguration iot:DeleteDynamicThingGroup iot:DeleteFleetMetric iot:DeleteJob iot:DeleteJobExecution iot:DeleteJobTemplate iot:DeleteMitigationAction iot:DeleteOTAUpdate iot:DeletePackage iot:DeletePackageVersion iot:DeletePolicy iot:DeletePolicyVersion iot:DeleteProvisioningTemplate iot:DeleteProvisioningTemplateVersion iot:DeleteRegistrationCode iot:DeleteRoleAlias iot:DeleteScheduledAudit iot:DeleteSecurityProfile iot:DeleteStream iot:DeleteThing iot:DeleteThingGroup iot:DeleteThingType iot:DeleteTopicRule iot:DeleteTopicRuleDestination iot:DeleteV2LoggingLevel iot:DeprecateThingType iot:DescribeAccountAuditConfiguration iot:DescribeAuditFinding iot:DescribeAuditMitigationActionsTask iot:DescribeAuditSuppression iot:DescribeAuditTask iot:DescribeAuthorizer iot:DescribeBillingGroup iot:DescribeCACertificate iot:DescribeCertificate iot:DescribeCertificateProvider iot:DescribeCustomMetric iot:DescribeDefaultAuthorizer iot:DescribeDetectMitigationActionsTask iot:DescribeDimension iot:DescribeDomainConfiguration iot:DescribeEncryptionConfiguration iot:DescribeEndpoint iot:DescribeEventConfigurations iot:DescribeFleetMetric iot:DescribeIndex iot:DescribeJob iot:DescribeJobExecution iot:DescribeJobTemplate iot:DescribeManagedJobTemplate iot:DescribeMitigationAction iot:DescribeProvisioningTemplate iot:DescribeProvisioningTemplateVersion iot:DescribeRoleAlias iot:DescribeScheduledAudit iot:DescribeSecurityProfile iot:DescribeStream iot:DescribeThing iot:DescribeThingGroup iot:DescribeThingRegistrationTask iot:DescribeThingType iot:DetachPolicy iot:DetachPrincipalPolicy iot:DetachSecurityProfile iot:DetachThingPrincipal iot:DisableTopicRule iot:DisassociateSbomFromPackageVersion iot:EnableTopicRule iot:GetBehaviorModelTrainingSummaries iot:GetBucketsAggregation iot:GetCardinality iot:GetCommand iot:GetEffectivePolicies iot:GetJobDocument iot:GetLoggingOptions iot:GetOTAUpdate iot:GetPackage iot:GetPackageConfiguration iot:GetPackageVersion iot:GetPercentiles iot:GetPolicy iot:GetPolicyVersion iot:GetRegistrationCode iot:GetStatistics iot:GetThingConnectivityData iot:GetTopicRule iot:GetTopicRuleDestination iot:GetV2LoggingOptions iot:ListActiveViolations iot:ListAttachedPolicies iot:ListAuditFindings iot:ListAuditMitigationActionsExecutions iot:ListAuditMitigationActionsTasks iot:ListAuditSuppressions iot:ListAuditTasks iot:ListAuthorizers iot:ListBillingGroups iot:ListCACertificates iot:ListCertificateProviders iot:ListCertificates iot:ListCertificatesByCA iot:ListCommands iot:ListCustomMetrics iot:ListDetectMitigationActionsExecutions iot:ListDetectMitigationActionsTasks iot:ListDimensions iot:ListDomainConfigurations iot:ListFleetMetrics iot:ListIndices iot:ListJobExecutionsForJob iot:ListJobExecutionsForThing iot:ListJobTemplates iot:ListJobs iot:ListManagedJobTemplates iot:ListMetricValues iot:ListMitigationActions iot:ListOTAUpdates iot:ListOutgoingCertificates iot:ListPackageVersions iot:ListPackages iot:ListPolicies iot:ListPolicyPrincipals iot:ListPolicyVersions iot:ListPrincipalPolicies iot:ListPrincipalThings iot:ListPrincipalThingsV2 iot:ListProvisioningTemplateVersions iot:ListProvisioningTemplates iot:ListRelatedResourcesForAuditFinding iot:ListRoleAliases iot:ListSbomValidationResults iot:ListScheduledAudits iot:ListSecurityProfiles iot:ListSecurityProfilesForTarget iot:ListStreams iot:ListTargetsForPolicy iot:ListTargetsForSecurityProfile iot:ListThingGroups iot:ListThingGroupsForThing iot:ListThingPrincipals iot:ListThingPrincipalsV2 iot:ListThingRegistrationTaskReports iot:ListThingRegistrationTasks iot:ListThingTypes iot:ListThings iot:ListThingsInBillingGroup iot:ListThingsInThingGroup iot:ListTopicRuleDestinations iot:ListTopicRules iot:ListV2LoggingLevels iot:ListViolationEvents iot:PutVerificationStateOnViolation iot:RegisterCACertificate iot:RegisterCertificate iot:RegisterCertificateWithoutCA iot:RegisterThing iot:RejectCertificateTransfer iot:RemoveThingFromBillingGroup iot:RemoveThingFromThingGroup iot:ReplaceTopicRule iot:SearchIndex iot:SetDefaultAuthorizer iot:SetDefaultPolicyVersion iot:SetLoggingOptions iot:SetV2LoggingLevel iot:SetV2LoggingOptions iot:StartAuditMitigationActionsTask iot:StartDetectMitigationActionsTask iot:StartOnDemandAuditTask iot:StartThingRegistrationTask iot:StopThingRegistrationTask iot:TestAuthorization iot:TestInvokeAuthorizer iot:TransferCertificate iot:UpdateAccountAuditConfiguration iot:UpdateAuditSuppression iot:UpdateAuthorizer iot:UpdateBillingGroup iot:UpdateCACertificate iot:UpdateCertificate iot:UpdateCertificateProvider iot:UpdateCommand iot:UpdateCustomMetric iot:UpdateDimension iot:UpdateDomainConfiguration iot:UpdateDynamicThingGroup iot:UpdateEncryptionConfiguration iot:UpdateEventConfigurations iot:UpdateFleetMetric iot:UpdateIndexingConfiguration iot:UpdateJob iot:UpdateMitigationAction iot:UpdatePackage iot:UpdatePackageConfiguration iot:UpdatePackageVersion iot:UpdateProvisioningTemplate iot:UpdateRoleAlias iot:UpdateScheduledAudit iot:UpdateSecurityProfile iot:UpdateStream iot:UpdateThing iot:UpdateThingGroup iot:UpdateThingGroupsForThing iot:UpdateThingType iot:UpdateTopicRuleDestination iot:ValidateSecurityProfileBehaviors  | 
| iotanalytics |  iotanalytics:CancelPipelineReprocessing iotanalytics:CreateChannel iotanalytics:CreateDataset iotanalytics:CreateDatasetContent iotanalytics:CreateDatastore iotanalytics:CreatePipeline iotanalytics:DeleteChannel iotanalytics:DeleteDataset iotanalytics:DeleteDatasetContent iotanalytics:DeleteDatastore iotanalytics:DeletePipeline iotanalytics:DescribeChannel iotanalytics:DescribeDataset iotanalytics:DescribeDatastore iotanalytics:DescribeLoggingOptions iotanalytics:DescribePipeline iotanalytics:GetDatasetContent iotanalytics:ListChannels iotanalytics:ListDatasetContents iotanalytics:ListDatasets iotanalytics:ListDatastores iotanalytics:ListPipelines iotanalytics:PutLoggingOptions iotanalytics:RunPipelineActivity iotanalytics:SampleChannelData iotanalytics:StartPipelineReprocessing iotanalytics:UpdateChannel iotanalytics:UpdateDataset iotanalytics:UpdateDatastore iotanalytics:UpdatePipeline  | 
| iotdeviceadvisor |  iotdeviceadvisor:CreateSuiteDefinition iotdeviceadvisor:DeleteSuiteDefinition iotdeviceadvisor:GetEndpoint iotdeviceadvisor:GetSuiteDefinition iotdeviceadvisor:GetSuiteRun iotdeviceadvisor:GetSuiteRunReport iotdeviceadvisor:ListSuiteDefinitions iotdeviceadvisor:ListSuiteRuns iotdeviceadvisor:StartSuiteRun iotdeviceadvisor:StopSuiteRun iotdeviceadvisor:UpdateSuiteDefinition  | 
| iotevents |  iotevents:BatchAcknowledgeAlarm iotevents:BatchDeleteDetector iotevents:BatchDisableAlarm iotevents:BatchEnableAlarm iotevents:BatchResetAlarm iotevents:BatchSnoozeAlarm iotevents:BatchUpdateDetector iotevents:CreateAlarmModel iotevents:CreateDetectorModel iotevents:CreateInput iotevents:DeleteAlarmModel iotevents:DeleteDetectorModel iotevents:DeleteInput iotevents:DescribeAlarm iotevents:DescribeAlarmModel iotevents:DescribeDetector iotevents:DescribeDetectorModel iotevents:DescribeDetectorModelAnalysis iotevents:DescribeInput iotevents:DescribeLoggingOptions iotevents:GetDetectorModelAnalysisResults iotevents:ListAlarmModelVersions iotevents:ListAlarmModels iotevents:ListAlarms iotevents:ListDetectorModelVersions iotevents:ListDetectorModels iotevents:ListDetectors iotevents:ListInputRoutings iotevents:ListInputs iotevents:PutLoggingOptions iotevents:StartDetectorModelAnalysis iotevents:UpdateAlarmModel iotevents:UpdateDetectorModel iotevents:UpdateInput  | 
| iotfleethub |  iotfleethub:CreateApplication iotfleethub:DeleteApplication iotfleethub:DescribeApplication iotfleethub:ListApplications iotfleethub:UpdateApplication  | 
| iotsitewise |  iotsitewise:AssociateAssets iotsitewise:AssociateTimeSeriesToAssetProperty iotsitewise:BatchAssociateProjectAssets iotsitewise:BatchDisassociateProjectAssets iotsitewise:CreateAccessPolicy iotsitewise:CreateAsset iotsitewise:CreateAssetModel iotsitewise:CreateAssetModelCompositeModel iotsitewise:CreateBulkImportJob iotsitewise:CreateComputationModel iotsitewise:CreateDashboard iotsitewise:CreateDataset iotsitewise:CreateGateway iotsitewise:CreatePortal iotsitewise:CreateProject iotsitewise:DeleteAccessPolicy iotsitewise:DeleteAsset iotsitewise:DeleteAssetModel iotsitewise:DeleteAssetModelCompositeModel iotsitewise:DeleteComputationModel iotsitewise:DeleteDashboard iotsitewise:DeleteDataset iotsitewise:DeleteGateway iotsitewise:DeletePortal iotsitewise:DeleteProject iotsitewise:DeleteTimeSeries iotsitewise:DescribeAccessPolicy iotsitewise:DescribeAsset iotsitewise:DescribeAssetCompositeModel iotsitewise:DescribeAssetModel iotsitewise:DescribeAssetModelCompositeModel iotsitewise:DescribeAssetModelInterfaceRelationship iotsitewise:DescribeAssetProperty iotsitewise:DescribeBulkImportJob iotsitewise:DescribeComputationModel iotsitewise:DescribeComputationModelExecutionSummary iotsitewise:DescribeDashboard iotsitewise:DescribeDataset iotsitewise:DescribeDefaultEncryptionConfiguration iotsitewise:DescribeExecution iotsitewise:DescribeGateway iotsitewise:DescribeGatewayCapabilityConfiguration iotsitewise:DescribeLoggingOptions iotsitewise:DescribePortal iotsitewise:DescribeProject iotsitewise:DescribeStorageConfiguration iotsitewise:DescribeTimeSeries iotsitewise:DisassociateAssets iotsitewise:DisassociateTimeSeriesFromAssetProperty iotsitewise:ExecuteAction iotsitewise:ExecuteQuery iotsitewise:ListAccessPolicies iotsitewise:ListActions iotsitewise:ListAssetModelCompositeModels iotsitewise:ListAssetModelProperties iotsitewise:ListAssetModels iotsitewise:ListAssetProperties iotsitewise:ListAssetRelationships iotsitewise:ListAssets iotsitewise:ListAssociatedAssets iotsitewise:ListBulkImportJobs iotsitewise:ListCompositionRelationships iotsitewise:ListComputationModelDataBindingUsages iotsitewise:ListComputationModelResolveToResources iotsitewise:ListComputationModels iotsitewise:ListDashboards iotsitewise:ListDatasets iotsitewise:ListExecutions iotsitewise:ListGateways iotsitewise:ListInterfaceRelationships iotsitewise:ListPortals iotsitewise:ListProjectAssets iotsitewise:ListProjects iotsitewise:ListTimeSeries iotsitewise:PutDefaultEncryptionConfiguration iotsitewise:PutLoggingOptions iotsitewise:PutStorageConfiguration iotsitewise:UpdateAccessPolicy iotsitewise:UpdateAsset iotsitewise:UpdateAssetModel iotsitewise:UpdateAssetModelCompositeModel iotsitewise:UpdateAssetProperty iotsitewise:UpdateComputationModel iotsitewise:UpdateDashboard iotsitewise:UpdateDataset iotsitewise:UpdateGateway iotsitewise:UpdateGatewayCapabilityConfiguration iotsitewise:UpdatePortal iotsitewise:UpdateProject  | 
| iottwinmaker |  iottwinmaker:CancelMetadataTransferJob iottwinmaker:CreateComponentType iottwinmaker:CreateEntity iottwinmaker:CreateMetadataTransferJob iottwinmaker:CreateScene iottwinmaker:CreateSyncJob iottwinmaker:CreateWorkspace iottwinmaker:DeleteComponentType iottwinmaker:DeleteEntity iottwinmaker:DeleteScene iottwinmaker:DeleteSyncJob iottwinmaker:DeleteWorkspace iottwinmaker:ExecuteQuery iottwinmaker:GetMetadataTransferJob iottwinmaker:GetPricingPlan iottwinmaker:GetScene iottwinmaker:GetSyncJob iottwinmaker:ListComponentTypes iottwinmaker:ListComponents iottwinmaker:ListEntities iottwinmaker:ListMetadataTransferJobs iottwinmaker:ListProperties iottwinmaker:ListScenes iottwinmaker:ListSyncJobs iottwinmaker:ListSyncResources iottwinmaker:ListWorkspaces iottwinmaker:UpdateComponentType iottwinmaker:UpdateEntity iottwinmaker:UpdatePricingPlan iottwinmaker:UpdateScene iottwinmaker:UpdateWorkspace  | 
| iotwireless |  iotwireless:AssociateAwsAccountWithPartnerAccount iotwireless:AssociateMulticastGroupWithFuotaTask iotwireless:AssociateWirelessDeviceWithFuotaTask iotwireless:AssociateWirelessDeviceWithMulticastGroup iotwireless:AssociateWirelessDeviceWithThing iotwireless:AssociateWirelessGatewayWithCertificate iotwireless:AssociateWirelessGatewayWithThing iotwireless:CancelMulticastGroupSession iotwireless:CreateDestination iotwireless:CreateDeviceProfile iotwireless:CreateFuotaTask iotwireless:CreateMulticastGroup iotwireless:CreateNetworkAnalyzerConfiguration iotwireless:CreateServiceProfile iotwireless:CreateWirelessDevice iotwireless:CreateWirelessGateway iotwireless:CreateWirelessGatewayTask iotwireless:CreateWirelessGatewayTaskDefinition iotwireless:DeleteDestination iotwireless:DeleteDeviceProfile iotwireless:DeleteFuotaTask iotwireless:DeleteMulticastGroup iotwireless:DeleteNetworkAnalyzerConfiguration iotwireless:DeleteQueuedMessages iotwireless:DeleteServiceProfile iotwireless:DeleteWirelessDevice iotwireless:DeleteWirelessDeviceImportTask iotwireless:DeleteWirelessGateway iotwireless:DeleteWirelessGatewayTask iotwireless:DeleteWirelessGatewayTaskDefinition iotwireless:DeregisterWirelessDevice iotwireless:DisassociateAwsAccountFromPartnerAccount iotwireless:DisassociateMulticastGroupFromFuotaTask iotwireless:DisassociateWirelessDeviceFromFuotaTask iotwireless:DisassociateWirelessDeviceFromMulticastGroup iotwireless:DisassociateWirelessDeviceFromThing iotwireless:DisassociateWirelessGatewayFromCertificate iotwireless:DisassociateWirelessGatewayFromThing iotwireless:GetDestination iotwireless:GetDeviceProfile iotwireless:GetEventConfigurationByResourceTypes iotwireless:GetFuotaTask iotwireless:GetLogLevelsByResourceTypes iotwireless:GetMetricConfiguration iotwireless:GetMetrics iotwireless:GetMulticastGroup iotwireless:GetMulticastGroupSession iotwireless:GetNetworkAnalyzerConfiguration iotwireless:GetPartnerAccount iotwireless:GetPosition iotwireless:GetPositionConfiguration iotwireless:GetPositionEstimate iotwireless:GetResourceEventConfiguration iotwireless:GetResourceLogLevel iotwireless:GetResourcePosition iotwireless:GetServiceEndpoint iotwireless:GetServiceProfile iotwireless:GetWirelessDevice iotwireless:GetWirelessDeviceImportTask iotwireless:GetWirelessDeviceStatistics iotwireless:GetWirelessGateway iotwireless:GetWirelessGatewayCertificate iotwireless:GetWirelessGatewayFirmwareInformation iotwireless:GetWirelessGatewayStatistics iotwireless:GetWirelessGatewayTask iotwireless:GetWirelessGatewayTaskDefinition iotwireless:ListDestinations iotwireless:ListDeviceProfiles iotwireless:ListDevicesForWirelessDeviceImportTask iotwireless:ListEventConfigurations iotwireless:ListFuotaTasks iotwireless:ListMulticastGroups iotwireless:ListMulticastGroupsByFuotaTask iotwireless:ListNetworkAnalyzerConfigurations iotwireless:ListPartnerAccounts iotwireless:ListPositionConfigurations iotwireless:ListQueuedMessages iotwireless:ListServiceProfiles iotwireless:ListWirelessDeviceImportTasks iotwireless:ListWirelessDevices iotwireless:ListWirelessGatewayTaskDefinitions iotwireless:ListWirelessGateways iotwireless:PutPositionConfiguration iotwireless:PutResourceLogLevel iotwireless:ResetAllResourceLogLevels iotwireless:ResetResourceLogLevel iotwireless:SendDataToMulticastGroup iotwireless:SendDataToWirelessDevice iotwireless:StartBulkAssociateWirelessDeviceWithMulticastGroup iotwireless:StartBulkDisassociateWirelessDeviceFromMulticastGroup iotwireless:StartFuotaTask iotwireless:StartMulticastGroupSession iotwireless:StartNetworkAnalyzerStream iotwireless:StartSingleWirelessDeviceImportTask iotwireless:StartWirelessDeviceImportTask iotwireless:TestWirelessDevice iotwireless:UpdateDestination iotwireless:UpdateEventConfigurationByResourceTypes iotwireless:UpdateFuotaTask iotwireless:UpdateLogLevelsByResourceTypes iotwireless:UpdateMetricConfiguration iotwireless:UpdateMulticastGroup iotwireless:UpdateNetworkAnalyzerConfiguration iotwireless:UpdatePartnerAccount iotwireless:UpdatePosition iotwireless:UpdateResourceEventConfiguration iotwireless:UpdateResourcePosition iotwireless:UpdateWirelessDevice iotwireless:UpdateWirelessDeviceImportTask iotwireless:UpdateWirelessGateway  | 
| ivs |  ivs:BatchGetChannel ivs:BatchGetStreamKey ivs:BatchStartViewerSessionRevocation ivs:CreateChannel ivs:CreateEncoderConfiguration ivs:CreateIngestConfiguration ivs:CreateParticipantToken ivs:CreatePlaybackRestrictionPolicy ivs:CreateRecordingConfiguration ivs:CreateStorageConfiguration ivs:CreateStreamKey ivs:DeleteChannel ivs:DeleteEncoderConfiguration ivs:DeleteIngestConfiguration ivs:DeletePlaybackKeyPair ivs:DeletePlaybackRestrictionPolicy ivs:DeletePublicKey ivs:DeleteRecordingConfiguration ivs:DeleteStorageConfiguration ivs:DeleteStreamKey ivs:DisconnectParticipant ivs:GetChannel ivs:GetComposition ivs:GetEncoderConfiguration ivs:GetIngestConfiguration ivs:GetParticipant ivs:GetPlaybackKeyPair ivs:GetPlaybackRestrictionPolicy ivs:GetPublicKey ivs:GetRecordingConfiguration ivs:GetStorageConfiguration ivs:GetStream ivs:GetStreamKey ivs:GetStreamSession ivs:ImportPlaybackKeyPair ivs:ImportPublicKey ivs:ListChannels ivs:ListCompositions ivs:ListEncoderConfigurations ivs:ListIngestConfigurations ivs:ListParticipantEvents ivs:ListParticipantReplicas ivs:ListParticipants ivs:ListPlaybackKeyPairs ivs:ListPlaybackRestrictionPolicies ivs:ListPublicKeys ivs:ListRecordingConfigurations ivs:ListStorageConfigurations ivs:ListStreamKeys ivs:ListStreamSessions ivs:ListStreams ivs:PutMetadata ivs:StartComposition ivs:StartViewerSessionRevocation ivs:StopComposition ivs:StopStream ivs:UpdateChannel ivs:UpdateIngestConfiguration ivs:UpdatePlaybackRestrictionPolicy  | 
| ivschat |  ivschat:CreateChatToken ivschat:CreateLoggingConfiguration ivschat:CreateRoom ivschat:DeleteLoggingConfiguration ivschat:DeleteMessage ivschat:DeleteRoom ivschat:DisconnectUser ivschat:GetLoggingConfiguration ivschat:GetRoom ivschat:ListLoggingConfigurations ivschat:ListRooms ivschat:SendEvent ivschat:UpdateLoggingConfiguration ivschat:UpdateRoom  | 
| kafka |  kafka:BatchAssociateScramSecret kafka:BatchDisassociateScramSecret kafka:CreateCluster kafka:CreateClusterV2 kafka:CreateConfiguration kafka:CreateReplicator kafka:CreateVpcConnection kafka:DeleteCluster kafka:DeleteClusterPolicy kafka:DeleteConfiguration kafka:DeleteReplicator kafka:DeleteVpcConnection kafka:DescribeCluster kafka:DescribeClusterOperation kafka:DescribeClusterOperationV2 kafka:DescribeClusterV2 kafka:DescribeConfiguration kafka:DescribeConfigurationRevision kafka:DescribeVpcConnection kafka:GetBootstrapBrokers kafka:GetClusterPolicy kafka:GetCompatibleKafkaVersions kafka:ListClientVpcConnections kafka:ListClusterOperations kafka:ListClusterOperationsV2 kafka:ListClusters kafka:ListClustersV2 kafka:ListConfigurationRevisions kafka:ListConfigurations kafka:ListKafkaVersions kafka:ListNodes kafka:ListReplicators kafka:ListScramSecrets kafka:ListVpcConnections kafka:PutClusterPolicy kafka:RebootBroker kafka:RejectClientVpcConnection kafka:UpdateBrokerCount kafka:UpdateBrokerStorage kafka:UpdateBrokerType kafka:UpdateClusterConfiguration kafka:UpdateClusterKafkaVersion kafka:UpdateConfiguration kafka:UpdateConnectivity kafka:UpdateMonitoring kafka:UpdateRebalancing kafka:UpdateReplicationInfo kafka:UpdateSecurity kafka:UpdateStorage  | 
| kafkaconnect |  kafkaconnect:CreateConnector kafkaconnect:CreateCustomPlugin kafkaconnect:CreateWorkerConfiguration kafkaconnect:DeleteConnector kafkaconnect:DeleteCustomPlugin kafkaconnect:DeleteWorkerConfiguration kafkaconnect:DescribeConnector kafkaconnect:DescribeCustomPlugin kafkaconnect:DescribeWorkerConfiguration kafkaconnect:ListConnectorOperations kafkaconnect:ListConnectors kafkaconnect:ListCustomPlugins kafkaconnect:ListWorkerConfigurations kafkaconnect:UpdateConnector  | 
| kendra |  kendra:AssociateEntitiesToExperience kendra:AssociatePersonasToEntities kendra:BatchDeleteDocument kendra:BatchDeleteFeaturedResultsSet kendra:BatchGetDocumentStatus kendra:BatchPutDocument kendra:ClearQuerySuggestions kendra:CreateAccessControlConfiguration kendra:CreateDataSource kendra:CreateExperience kendra:CreateFaq kendra:CreateFeaturedResultsSet kendra:CreateIndex kendra:CreateQuerySuggestionsBlockList kendra:CreateThesaurus kendra:DeleteDataSource kendra:DeleteExperience kendra:DeleteFaq kendra:DeleteIndex kendra:DeletePrincipalMapping kendra:DeleteQuerySuggestionsBlockList kendra:DeleteThesaurus kendra:DescribeAccessControlConfiguration kendra:DescribeDataSource kendra:DescribeExperience kendra:DescribeFaq kendra:DescribeFeaturedResultsSet kendra:DescribeIndex kendra:DescribePrincipalMapping kendra:DescribeQuerySuggestionsBlockList kendra:DescribeQuerySuggestionsConfig kendra:DescribeThesaurus kendra:DisassociateEntitiesFromExperience kendra:DisassociatePersonasFromEntities kendra:GetQuerySuggestions kendra:GetSnapshots kendra:ListAccessControlConfigurations kendra:ListDataSourceSyncJobs kendra:ListDataSources kendra:ListEntityPersonas kendra:ListExperienceEntities kendra:ListExperiences kendra:ListFaqs kendra:ListFeaturedResultsSets kendra:ListGroupsOlderThanOrderingId kendra:ListIndices kendra:ListQuerySuggestionsBlockLists kendra:ListThesauri kendra:PutPrincipalMapping kendra:Query kendra:Retrieve kendra:StartDataSourceSyncJob kendra:StopDataSourceSyncJob kendra:SubmitFeedback kendra:UpdateDataSource kendra:UpdateExperience kendra:UpdateFeaturedResultsSet kendra:UpdateIndex kendra:UpdateQuerySuggestionsBlockList kendra:UpdateQuerySuggestionsConfig kendra:UpdateThesaurus  | 
| kinesis |  kinesis:CreateStream kinesis:DecreaseStreamRetentionPeriod kinesis:DeleteStream kinesis:DeregisterStreamConsumer kinesis:DescribeAccountSettings kinesis:DescribeLimits kinesis:DescribeStream kinesis:DescribeStreamConsumer kinesis:DescribeStreamSummary kinesis:DisableEnhancedMonitoring kinesis:EnableEnhancedMonitoring kinesis:IncreaseStreamRetentionPeriod kinesis:ListShards kinesis:ListStreamConsumers kinesis:ListStreams kinesis:MergeShards kinesis:RegisterStreamConsumer kinesis:SplitShard kinesis:StartStreamEncryption kinesis:StopStreamEncryption kinesis:UpdateAccountSettings kinesis:UpdateShardCount kinesis:UpdateStreamMode  | 
| kinesisanalytics |  kinesisanalytics:AddApplicationCloudWatchLoggingOption kinesisanalytics:AddApplicationInput kinesisanalytics:AddApplicationInputProcessingConfiguration kinesisanalytics:AddApplicationOutput kinesisanalytics:AddApplicationReferenceDataSource kinesisanalytics:AddApplicationVpcConfiguration kinesisanalytics:CreateApplication kinesisanalytics:CreateApplicationPresignedUrl kinesisanalytics:CreateApplicationSnapshot kinesisanalytics:DeleteApplication kinesisanalytics:DeleteApplicationCloudWatchLoggingOption kinesisanalytics:DeleteApplicationInputProcessingConfiguration kinesisanalytics:DeleteApplicationOutput kinesisanalytics:DeleteApplicationReferenceDataSource kinesisanalytics:DeleteApplicationSnapshot kinesisanalytics:DeleteApplicationVpcConfiguration kinesisanalytics:DescribeApplication kinesisanalytics:DescribeApplicationOperation kinesisanalytics:DescribeApplicationSnapshot kinesisanalytics:DescribeApplicationVersion kinesisanalytics:DiscoverInputSchema kinesisanalytics:ListApplicationOperations kinesisanalytics:ListApplicationSnapshots kinesisanalytics:ListApplicationVersions kinesisanalytics:ListApplications kinesisanalytics:RollbackApplication kinesisanalytics:StartApplication kinesisanalytics:StopApplication kinesisanalytics:UpdateApplication kinesisanalytics:UpdateApplicationMaintenanceConfiguration  | 
| kms |  kms:CancelKeyDeletion kms:ConnectCustomKeyStore kms:CreateAlias kms:CreateCustomKeyStore kms:CreateGrant kms:CreateKey kms:Decrypt kms:DeleteAlias kms:DeleteCustomKeyStore kms:DeleteImportedKeyMaterial kms:DeriveSharedSecret kms:DescribeCustomKeyStores kms:DescribeKey kms:DisableKey kms:DisableKeyRotation kms:DisconnectCustomKeyStore kms:EnableKey kms:EnableKeyRotation kms:Encrypt kms:GenerateDataKey kms:GenerateDataKeyPair kms:GenerateDataKeyPairWithoutPlaintext kms:GenerateDataKeyWithoutPlaintext kms:GenerateMac kms:GenerateRandom kms:GetKeyPolicy kms:GetKeyRotationStatus kms:GetParametersForImport kms:GetPublicKey kms:ImportKeyMaterial kms:ListAliases kms:ListGrants kms:ListKeyPolicies kms:ListKeyRotations kms:ListKeys kms:ListRetirableGrants kms:ReplicateKey kms:RetireGrant kms:RevokeGrant kms:RotateKeyOnDemand kms:ScheduleKeyDeletion kms:Sign kms:UpdateAlias kms:UpdateCustomKeyStore kms:UpdateKeyDescription kms:UpdatePrimaryRegion kms:Verify kms:VerifyMac  | 
| lambda |  lambda:AddLayerVersionPermission lambda:AddPermission lambda:CreateAlias lambda:CreateCodeSigningConfig lambda:CreateEventSourceMapping lambda:CreateFunction lambda:CreateFunctionUrlConfig lambda:DeleteAlias lambda:DeleteCapacityProvider lambda:DeleteCodeSigningConfig lambda:DeleteEventSourceMapping lambda:DeleteFunction lambda:DeleteFunctionCodeSigningConfig lambda:DeleteFunctionConcurrency lambda:DeleteFunctionEventInvokeConfig lambda:DeleteFunctionUrlConfig lambda:DeleteLayerVersion lambda:DeleteProvisionedConcurrencyConfig lambda:GetAccountSettings lambda:GetAlias lambda:GetCapacityProvider lambda:GetCodeSigningConfig lambda:GetEventSourceMapping lambda:GetFunction lambda:GetFunctionCodeSigningConfig lambda:GetFunctionConcurrency lambda:GetFunctionConfiguration lambda:GetFunctionEventInvokeConfig lambda:GetFunctionRecursionConfig lambda:GetFunctionScalingConfig lambda:GetFunctionUrlConfig lambda:GetLayerVersion lambda:GetLayerVersionPolicy lambda:GetPolicy lambda:GetProvisionedConcurrencyConfig lambda:GetRuntimeManagementConfig lambda:ListAliases lambda:ListCapacityProviders lambda:ListCodeSigningConfigs lambda:ListDurableExecutionsByFunction lambda:ListEventSourceMappings lambda:ListFunctionEventInvokeConfigs lambda:ListFunctionUrlConfigs lambda:ListFunctions lambda:ListFunctionsByCodeSigningConfig lambda:ListLayerVersions lambda:ListLayers lambda:ListProvisionedConcurrencyConfigs lambda:ListVersionsByFunction lambda:PublishLayerVersion lambda:PublishVersion lambda:PutFunctionCodeSigningConfig lambda:PutFunctionConcurrency lambda:PutFunctionEventInvokeConfig lambda:PutFunctionRecursionConfig lambda:PutFunctionScalingConfig lambda:PutProvisionedConcurrencyConfig lambda:PutRuntimeManagementConfig lambda:RemoveLayerVersionPermission lambda:RemovePermission lambda:UpdateAlias lambda:UpdateCapacityProvider lambda:UpdateCodeSigningConfig lambda:UpdateEventSourceMapping lambda:UpdateFunctionCode lambda:UpdateFunctionConfiguration lambda:UpdateFunctionEventInvokeConfig lambda:UpdateFunctionUrlConfig  | 
| lex |  lex:BatchCreateCustomVocabularyItem lex:BatchDeleteCustomVocabularyItem lex:BatchUpdateCustomVocabularyItem lex:BuildBotLocale lex:CreateBotAlias lex:CreateBotReplica lex:CreateBotVersion lex:CreateExport lex:CreateIntentVersion lex:CreateResourcePolicy lex:CreateSlotTypeVersion lex:CreateTestSetDiscrepancyReport lex:CreateUploadUrl lex:DeleteBot lex:DeleteBotChannelAssociation lex:DeleteBotReplica lex:DeleteExport lex:DeleteImport lex:DeleteIntentVersion lex:DeleteResourcePolicy lex:DeleteSlotTypeVersion lex:DeleteTestSet lex:DeleteUtterances lex:DescribeBotAlias lex:DescribeBotRecommendation lex:DescribeBotReplica lex:DescribeBotResourceGeneration lex:DescribeBotVersion lex:DescribeCustomVocabularyMetadata lex:DescribeExport lex:DescribeImport lex:DescribeResourcePolicy lex:DescribeTestExecution lex:DescribeTestSet lex:DescribeTestSetDiscrepancyReport lex:DescribeTestSetGeneration lex:GenerateBotElement lex:GetBot lex:GetBotAlias lex:GetBotAliases lex:GetBotChannelAssociation lex:GetBotChannelAssociations lex:GetBotVersions lex:GetBots lex:GetBuiltinIntent lex:GetBuiltinIntents lex:GetBuiltinSlotTypes lex:GetExport lex:GetImport lex:GetIntent lex:GetIntentVersions lex:GetIntents lex:GetMigration lex:GetMigrations lex:GetSlotType lex:GetSlotTypeVersions lex:GetSlotTypes lex:GetTestExecutionArtifactsUrl lex:GetUtterancesView lex:ListBotAliasReplicas lex:ListBotAliases lex:ListBotRecommendations lex:ListBotReplicas lex:ListBotResourceGenerations lex:ListBotVersionReplicas lex:ListBotVersions lex:ListBots lex:ListBuiltInIntents lex:ListBuiltInSlotTypes lex:ListCustomVocabularyItems lex:ListExports lex:ListImports lex:ListIntentMetrics lex:ListIntentPaths lex:ListRecommendedIntents lex:ListSessionAnalyticsData lex:ListSessionMetrics lex:ListTestExecutionResultItems lex:ListTestExecutions lex:ListTestSets lex:PutBot lex:PutBotAlias lex:PutIntent lex:PutSlotType lex:SearchAssociatedTranscripts lex:StartBotRecommendation lex:StartImport lex:StartMigration lex:StartTestExecution lex:StartTestSetGeneration lex:StopBotRecommendation lex:UpdateBotAlias lex:UpdateBotRecommendation lex:UpdateExport lex:UpdateResourcePolicy  | 
| license-manager-linux-subscriptions |  license-manager-linux-subscriptions:DeregisterSubscriptionProvider license-manager-linux-subscriptions:GetRegisteredSubscriptionProvider license-manager-linux-subscriptions:GetServiceSettings license-manager-linux-subscriptions:ListLinuxSubscriptionInstances license-manager-linux-subscriptions:ListLinuxSubscriptions license-manager-linux-subscriptions:ListRegisteredSubscriptionProviders license-manager-linux-subscriptions:RegisterSubscriptionProvider license-manager-linux-subscriptions:UpdateServiceSettings  | 
| lightsail |  lightsail:AllocateStaticIp lightsail:AttachCertificateToDistribution lightsail:AttachDisk lightsail:AttachInstancesToLoadBalancer lightsail:AttachLoadBalancerTlsCertificate lightsail:AttachStaticIp lightsail:CloseInstancePublicPorts lightsail:CopySnapshot lightsail:CreateBucket lightsail:CreateBucketAccessKey lightsail:CreateCertificate lightsail:CreateCloudFormationStack lightsail:CreateContactMethod lightsail:CreateContainerService lightsail:CreateContainerServiceDeployment lightsail:CreateContainerServiceRegistryLogin lightsail:CreateDisk lightsail:CreateDiskFromSnapshot lightsail:CreateDiskSnapshot lightsail:CreateDistribution lightsail:CreateDomain lightsail:CreateGUISessionAccessDetails lightsail:CreateInstanceSnapshot lightsail:CreateInstances lightsail:CreateInstancesFromSnapshot lightsail:CreateKeyPair lightsail:CreateLoadBalancer lightsail:CreateLoadBalancerTlsCertificate lightsail:CreateRelationalDatabase lightsail:CreateRelationalDatabaseFromSnapshot lightsail:CreateRelationalDatabaseSnapshot lightsail:DeleteAlarm lightsail:DeleteAutoSnapshot lightsail:DeleteBucket lightsail:DeleteBucketAccessKey lightsail:DeleteCertificate lightsail:DeleteContactMethod lightsail:DeleteContainerImage lightsail:DeleteContainerService lightsail:DeleteDisk lightsail:DeleteDiskSnapshot lightsail:DeleteDistribution lightsail:DeleteDomain lightsail:DeleteDomainEntry lightsail:DeleteInstance lightsail:DeleteInstanceSnapshot lightsail:DeleteKeyPair lightsail:DeleteKnownHostKeys lightsail:DeleteLoadBalancer lightsail:DeleteLoadBalancerTlsCertificate lightsail:DeleteRelationalDatabase lightsail:DeleteRelationalDatabaseSnapshot lightsail:DetachCertificateFromDistribution lightsail:DetachDisk lightsail:DetachInstancesFromLoadBalancer lightsail:DetachStaticIp lightsail:DisableAddOn lightsail:DownloadDefaultKeyPair lightsail:EnableAddOn lightsail:ExportSnapshot lightsail:GetActiveNames lightsail:GetAlarms lightsail:GetAutoSnapshots lightsail:GetBlueprints lightsail:GetBucketAccessKeys lightsail:GetBucketBundles lightsail:GetBucketMetricData lightsail:GetBuckets lightsail:GetBundles lightsail:GetCertificates lightsail:GetCloudFormationStackRecords lightsail:GetContactMethods lightsail:GetContainerAPIMetadata lightsail:GetContainerImages lightsail:GetContainerLog lightsail:GetContainerServiceDeployments lightsail:GetContainerServiceMetricData lightsail:GetContainerServicePowers lightsail:GetContainerServices lightsail:GetCostEstimate lightsail:GetDisk lightsail:GetDiskSnapshot lightsail:GetDiskSnapshots lightsail:GetDisks lightsail:GetDistributionBundles lightsail:GetDistributionLatestCacheReset lightsail:GetDistributionMetricData lightsail:GetDistributions lightsail:GetDomain lightsail:GetExportSnapshotRecords lightsail:GetInstance lightsail:GetInstanceMetricData lightsail:GetInstancePortStates lightsail:GetInstanceSnapshot lightsail:GetInstanceSnapshots lightsail:GetInstanceState lightsail:GetInstances lightsail:GetKeyPair lightsail:GetKeyPairs lightsail:GetLoadBalancer lightsail:GetLoadBalancerMetricData lightsail:GetLoadBalancerTlsCertificates lightsail:GetLoadBalancerTlsPolicies lightsail:GetLoadBalancers lightsail:GetOperation lightsail:GetOperations lightsail:GetOperationsForResource lightsail:GetRegions lightsail:GetRelationalDatabase lightsail:GetRelationalDatabaseBlueprints lightsail:GetRelationalDatabaseBundles lightsail:GetRelationalDatabaseEvents lightsail:GetRelationalDatabaseLogEvents lightsail:GetRelationalDatabaseLogStreams lightsail:GetRelationalDatabaseMasterUserPassword lightsail:GetRelationalDatabaseMetricData lightsail:GetRelationalDatabaseParameters lightsail:GetRelationalDatabaseSnapshot lightsail:GetRelationalDatabaseSnapshots lightsail:GetRelationalDatabases lightsail:GetSetupHistory lightsail:GetStaticIp lightsail:GetStaticIps lightsail:ImportKeyPair lightsail:IsVpcPeered lightsail:OpenInstancePublicPorts lightsail:PeerVpc lightsail:PutAlarm lightsail:PutInstancePublicPorts lightsail:RebootInstance lightsail:RebootRelationalDatabase lightsail:RegisterContainerImage lightsail:ReleaseStaticIp lightsail:ResetDistributionCache lightsail:SendContactMethodVerification lightsail:SetIpAddressType lightsail:SetResourceAccessForBucket lightsail:SetupInstanceHttps lightsail:StartGUISession lightsail:StartInstance lightsail:StartRelationalDatabase lightsail:StopGUISession lightsail:StopInstance lightsail:StopRelationalDatabase lightsail:TestAlarm lightsail:UnpeerVpc lightsail:UpdateBucket lightsail:UpdateBucketBundle lightsail:UpdateContainerService lightsail:UpdateDistribution lightsail:UpdateDistributionBundle lightsail:UpdateDomainEntry lightsail:UpdateInstanceMetadataOptions lightsail:UpdateLoadBalancerAttribute lightsail:UpdateRelationalDatabase lightsail:UpdateRelationalDatabaseParameters  | 
| 로그 |  logs:AssociateKmsKey logs:AssociateSourceToS3TableIntegration logs:CancelExportTask logs:CancelImportTask logs:CreateDelivery logs:CreateExportTask logs:CreateLogAnomalyDetector logs:CreateLogGroup logs:CreateLogStream logs:DeleteDataProtectionPolicy logs:DeleteDelivery logs:DeleteDeliveryDestination logs:DeleteDeliveryDestinationPolicy logs:DeleteDeliverySource logs:DeleteDestination logs:DeleteIndexPolicy logs:DeleteIntegration logs:DeleteLogAnomalyDetector logs:DeleteLogGroup logs:DeleteLogStream logs:DeleteMetricFilter logs:DeleteQueryDefinition logs:DeleteResourcePolicy logs:DeleteRetentionPolicy logs:DeleteScheduledQuery logs:DeleteSubscriptionFilter logs:DeleteTransformer logs:DescribeAccountPolicies logs:DescribeConfigurationTemplates logs:DescribeDeliveries logs:DescribeDeliveryDestinations logs:DescribeDeliverySources logs:DescribeDestinations logs:DescribeExportTasks logs:DescribeFieldIndexes logs:DescribeImportTaskBatches logs:DescribeImportTasks logs:DescribeIndexPolicies logs:DescribeLogGroups logs:DescribeLogStreams logs:DescribeMetricFilters logs:DescribeQueries logs:DescribeQueryDefinitions logs:DescribeResourcePolicies logs:DescribeSubscriptionFilters logs:DisassociateKmsKey 로그:DisassociateSourceFromS3TableIntegration logs:GetDataProtectionPolicy logs:GetDelivery logs:GetDeliveryDestination logs:GetDeliveryDestinationPolicy logs:GetDeliverySource logs:GetIntegration logs:GetLogAnomalyDetector logs:GetLogFields logs:GetLogGroupFields logs:GetLogRecord logs:GetQueryResults logs:GetScheduledQuery logs:GetScheduledQueryHistory logs:GetTransformer 로그:IntegrateWithS3Table logs:ListAnomalies logs:ListIntegrations logs:ListLogAnomalyDetectors logs:ListLogGroupsForQuery logs:ListScheduledQueries logs:ListSourcesForS3TableIntegration 로그:ProcessWithPipeline logs:PutDataProtectionPolicy logs:PutDeliveryDestination logs:PutDeliveryDestinationPolicy logs:PutDeliverySource logs:PutDestination logs:PutDestinationPolicy logs:PutIndexPolicy logs:PutIntegration logs:PutLogGroupDeletionProtection logs:PutMetricFilter logs:PutQueryDefinition logs:PutResourcePolicy logs:PutRetentionPolicy logs:PutSubscriptionFilter logs:PutTransformer logs:StartLiveTail logs:StartQuery logs:StopQuery logs:TestMetricFilter logs:TestTransformer logs:UpdateAnomaly logs:UpdateDeliveryConfiguration logs:UpdateLogAnomalyDetector  | 
| lookoutequipment |  lookoutequipment:CreateDataset lookoutequipment:CreateInferenceScheduler lookoutequipment:CreateLabel lookoutequipment:CreateLabelGroup lookoutequipment:CreateModel lookoutequipment:DeleteDataset lookoutequipment:DeleteInferenceScheduler lookoutequipment:DeleteLabel lookoutequipment:DeleteLabelGroup lookoutequipment:DeleteModel lookoutequipment:DeleteResourcePolicy lookoutequipment:DeleteRetrainingScheduler lookoutequipment:DescribeDataIngestionJob lookoutequipment:DescribeDataset lookoutequipment:DescribeInferenceScheduler lookoutequipment:DescribeLabelGroup lookoutequipment:DescribeModel lookoutequipment:DescribeModelVersion lookoutequipment:DescribeResourcePolicy lookoutequipment:DescribeRetrainingScheduler lookoutequipment:Describelabel lookoutequipment:ImportDataset lookoutequipment:ImportModelVersion lookoutequipment:ListDataIngestionJobs lookoutequipment:ListDatasets lookoutequipment:ListInferenceEvents lookoutequipment:ListInferenceExecutions lookoutequipment:ListInferenceSchedulers lookoutequipment:ListLabelGroups lookoutequipment:ListLabels lookoutequipment:ListModelVersions lookoutequipment:ListModels lookoutequipment:ListRetrainingSchedulers lookoutequipment:ListSensorStatistics lookoutequipment:PutResourcePolicy lookoutequipment:StartDataIngestionJob lookoutequipment:StartInferenceScheduler lookoutequipment:StartRetrainingScheduler lookoutequipment:StopInferenceScheduler lookoutequipment:StopRetrainingScheduler lookoutequipment:UpdateActiveModelVersion lookoutequipment:UpdateInferenceScheduler lookoutequipment:UpdateLabelGroup lookoutequipment:UpdateModel lookoutequipment:UpdateRetrainingScheduler  | 
| lookoutmetrics |  lookoutmetrics:ActivateAnomalyDetector lookoutmetrics:BackTestAnomalyDetector lookoutmetrics:CreateAlert lookoutmetrics:CreateAnomalyDetector lookoutmetrics:CreateMetricSet lookoutmetrics:DeactivateAnomalyDetector lookoutmetrics:DeleteAlert lookoutmetrics:DeleteAnomalyDetector lookoutmetrics:DescribeAlert lookoutmetrics:DescribeAnomalyDetectionExecutions lookoutmetrics:DescribeAnomalyDetector lookoutmetrics:DescribeMetricSet lookoutmetrics:DetectMetricSetConfig lookoutmetrics:GetAnomalyGroup lookoutmetrics:GetDataQualityMetrics lookoutmetrics:GetFeedback lookoutmetrics:GetSampleData lookoutmetrics:ListAlerts lookoutmetrics:ListAnomalyDetectors lookoutmetrics:ListAnomalyGroupRelatedMetrics lookoutmetrics:ListAnomalyGroupSummaries lookoutmetrics:ListAnomalyGroupTimeSeries lookoutmetrics:ListMetricSets lookoutmetrics:PutFeedback lookoutmetrics:UpdateAlert lookoutmetrics:UpdateAnomalyDetector lookoutmetrics:UpdateMetricSet  | 
| lookoutvision |  lookoutvision:CreateDataset lookoutvision:CreateModel lookoutvision:CreateProject lookoutvision:DeleteDataset lookoutvision:DeleteModel lookoutvision:DeleteProject lookoutvision:DescribeDataset lookoutvision:DescribeModel lookoutvision:DescribeModelPackagingJob lookoutvision:DescribeProject lookoutvision:DetectAnomalies lookoutvision:ListDatasetEntries lookoutvision:ListModelPackagingJobs lookoutvision:ListModels lookoutvision:ListProjects lookoutvision:StartModel lookoutvision:StartModelPackagingJob lookoutvision:StopModel lookoutvision:UpdateDatasetEntries  | 
| m2 |  m2:CancelBatchJobExecution m2:CreateApplication m2:CreateDataSetExportTask m2:CreateDataSetImportTask m2:CreateDeployment m2:CreateEnvironment m2:DeleteApplication m2:DeleteApplicationFromEnvironment m2:DeleteEnvironment m2:GetApplication m2:GetApplicationVersion m2:GetBatchJobExecution m2:GetDataSetDetails m2:GetDataSetExportTask m2:GetDataSetImportTask m2:GetDeployment m2:GetEnvironment m2:GetSignedBluinsightsUrl m2:ListApplicationVersions m2:ListApplications m2:ListBatchJobDefinitions m2:ListBatchJobExecutions m2:ListBatchJobRestartPoints m2:ListDataSetExportHistory m2:ListDataSetImportHistory m2:ListDataSets m2:ListDeployments m2:ListEngineVersions m2:ListEnvironments m2:StartApplication m2:StartBatchJob m2:StopApplication m2:UpdateApplication m2:UpdateEnvironment  | 
| managedblockchain |  managedblockchain:CreateAccessor managedblockchain:CreateMember managedblockchain:CreateNetwork managedblockchain:CreateNode managedblockchain:CreateProposal managedblockchain:DeleteAccessor managedblockchain:DeleteMember managedblockchain:DeleteNode managedblockchain:GetAccessor managedblockchain:GetMember managedblockchain:GetNetwork managedblockchain:GetNode managedblockchain:GetProposal managedblockchain:InvokeRpcPolygonMainnet managedblockchain:InvokeRpcPolygonMumbaiTestnet managedblockchain:ListAccessors managedblockchain:ListInvitations managedblockchain:ListMembers managedblockchain:ListNetworks managedblockchain:ListNodes managedblockchain:ListProposalVotes managedblockchain:ListProposals managedblockchain:RejectInvitation managedblockchain:UpdateMember managedblockchain:UpdateNode managedblockchain:VoteOnProposal  | 
| mediaconnect |  mediaconnect:AddBridgeOutputs mediaconnect:AddBridgeSources mediaconnect:AddFlowMediaStreams mediaconnect:AddFlowOutputs mediaconnect:AddFlowSources mediaconnect:AddFlowVpcInterfaces mediaconnect:CreateBridge mediaconnect:CreateFlow mediaconnect:CreateGateway mediaconnect:DeleteBridge mediaconnect:DeleteFlow mediaconnect:DeleteGateway mediaconnect:DeleteRouterInput mediaconnect:DeleteRouterNetworkInterface mediaconnect:DeleteRouterOutput mediaconnect:DeregisterGatewayInstance mediaconnect:DescribeBridge mediaconnect:DescribeFlow mediaconnect:DescribeFlowSourceMetadata mediaconnect:DescribeFlowSourceThumbnail mediaconnect:DescribeGateway mediaconnect:DescribeGatewayInstance mediaconnect:DescribeOffering mediaconnect:DescribeReservation mediaconnect:GetRouterInput mediaconnect:GetRouterInputSourceMetadata mediaconnect:GetRouterInputThumbnail mediaconnect:GetRouterNetworkInterface mediaconnect:GetRouterOutput mediaconnect:GrantFlowEntitlements mediaconnect:ListBridges mediaconnect:ListEntitlements mediaconnect:ListFlows mediaconnect:ListGatewayInstances mediaconnect:ListGateways mediaconnect:ListOfferings mediaconnect:ListReservations mediaconnect:ListRouterInputs mediaconnect:ListRouterNetworkInterfaces mediaconnect:ListRouterOutputs mediaconnect:PurchaseOffering mediaconnect:RemoveBridgeOutput mediaconnect:RemoveBridgeSource mediaconnect:RemoveFlowMediaStream mediaconnect:RemoveFlowOutput mediaconnect:RemoveFlowSource mediaconnect:RemoveFlowVpcInterface mediaconnect:RestartRouterInput mediaconnect:RestartRouterOutput mediaconnect:RevokeFlowEntitlement mediaconnect:StartFlow mediaconnect:StartRouterInput mediaconnect:StartRouterOutput mediaconnect:StopFlow mediaconnect:StopRouterInput mediaconnect:StopRouterOutput mediaconnect:TakeRouterInput mediaconnect:UpdateBridge mediaconnect:UpdateBridgeOutput mediaconnect:UpdateBridgeSource mediaconnect:UpdateBridgeState mediaconnect:UpdateFlow mediaconnect:UpdateFlowEntitlement mediaconnect:UpdateFlowMediaStream mediaconnect:UpdateGatewayInstance  | 
| mediaconvert |  mediaconvert:AssociateCertificate mediaconvert:CancelJob mediaconvert:CreateJob mediaconvert:CreateJobTemplate mediaconvert:CreatePreset mediaconvert:CreateQueue mediaconvert:CreateResourceShare mediaconvert:DeleteJobTemplate mediaconvert:DeletePolicy mediaconvert:DeletePreset mediaconvert:DeleteQueue mediaconvert:DescribeEndpoints mediaconvert:DisassociateCertificate mediaconvert:GetJob mediaconvert:GetJobTemplate mediaconvert:GetPolicy mediaconvert:GetPreset mediaconvert:GetQueue mediaconvert:ListJobTemplates mediaconvert:ListJobs mediaconvert:ListPresets mediaconvert:ListQueues mediaconvert:ListVersions mediaconvert:Probe mediaconvert:PutPolicy mediaconvert:SearchJobs mediaconvert:UpdateJobTemplate mediaconvert:UpdatePreset mediaconvert:UpdateQueue  | 
| medialive |  medialive:AcceptInputDeviceTransfer medialive:BatchDelete medialive:BatchStart medialive:BatchStop medialive:BatchUpdateSchedule medialive:CancelInputDeviceTransfer medialive:ClaimDevice medialive:CreateChannel medialive:CreateChannelPlacementGroup medialive:CreateCloudWatchAlarmTemplate medialive:CreateCloudWatchAlarmTemplateGroup medialive:CreateCluster medialive:CreateEventBridgeRuleTemplate medialive:CreateEventBridgeRuleTemplateGroup medialive:CreateInput medialive:CreateInputSecurityGroup medialive:CreateMultiplex medialive:CreateMultiplexProgram medialive:CreateNetwork medialive:CreateNode medialive:CreateNodeRegistrationScript medialive:CreatePartnerInput medialive:CreateSdiSource medialive:CreateSignalMap medialive:DeleteChannel medialive:DeleteChannelPlacementGroup medialive:DeleteCloudWatchAlarmTemplate medialive:DeleteCloudWatchAlarmTemplateGroup medialive:DeleteCluster medialive:DeleteEventBridgeRuleTemplate medialive:DeleteEventBridgeRuleTemplateGroup medialive:DeleteInput medialive:DeleteInputSecurityGroup medialive:DeleteMultiplex medialive:DeleteMultiplexProgram medialive:DeleteNetwork medialive:DeleteNode medialive:DeleteReservation medialive:DeleteSchedule medialive:DeleteSdiSource medialive:DeleteSignalMap medialive:DescribeAccountConfiguration medialive:DescribeChannel medialive:DescribeChannelPlacementGroup medialive:DescribeCluster medialive:DescribeInput medialive:DescribeInputDevice medialive:DescribeInputDeviceThumbnail medialive:DescribeInputSecurityGroup medialive:DescribeMultiplex medialive:DescribeMultiplexProgram medialive:DescribeNetwork medialive:DescribeNode medialive:DescribeOffering medialive:DescribeReservation medialive:DescribeSchedule medialive:DescribeSdiSource medialive:DescribeThumbnails medialive:GetCloudWatchAlarmTemplate medialive:GetCloudWatchAlarmTemplateGroup medialive:GetEventBridgeRuleTemplate medialive:GetEventBridgeRuleTemplateGroup medialive:GetSignalMap medialive:ListAlerts medialive:ListChannelPlacementGroups medialive:ListChannels medialive:ListCloudWatchAlarmTemplateGroups medialive:ListCloudWatchAlarmTemplates medialive:ListClusterAlerts medialive:ListClusters medialive:ListEventBridgeRuleTemplateGroups medialive:ListEventBridgeRuleTemplates medialive:ListInputDeviceTransfers medialive:ListInputDevices medialive:ListInputSecurityGroups medialive:ListInputs medialive:ListMultiplexAlerts medialive:ListMultiplexPrograms medialive:ListMultiplexes medialive:ListNetworks medialive:ListNodes medialive:ListOfferings medialive:ListReservations medialive:ListSdiSources medialive:ListSignalMaps medialive:ListVersions medialive:PurchaseOffering medialive:RebootInputDevice medialive:RejectInputDeviceTransfer medialive:RestartChannelPipelines medialive:StartChannel medialive:StartDeleteMonitorDeployment medialive:StartInputDevice medialive:StartInputDeviceMaintenanceWindow medialive:StartMonitorDeployment medialive:StartMultiplex medialive:StartUpdateSignalMap medialive:StopChannel medialive:StopInputDevice medialive:StopMultiplex medialive:TransferInputDevice medialive:UpdateAccountConfiguration medialive:UpdateChannel medialive:UpdateChannelClass medialive:UpdateChannelPlacementGroup medialive:UpdateCloudWatchAlarmTemplate medialive:UpdateCloudWatchAlarmTemplateGroup medialive:UpdateCluster medialive:UpdateEventBridgeRuleTemplate medialive:UpdateEventBridgeRuleTemplateGroup medialive:UpdateInput medialive:UpdateInputDevice medialive:UpdateInputSecurityGroup medialive:UpdateMultiplex medialive:UpdateMultiplexProgram medialive:UpdateNetwork medialive:UpdateNode medialive:UpdateNodeState medialive:UpdateReservation medialive:UpdateSdiSource  | 
| mediastore |  mediastore:CreateContainer mediastore:DeleteContainer mediastore:DeleteContainerPolicy mediastore:DeleteCorsPolicy mediastore:DeleteLifecyclePolicy mediastore:DeleteMetricPolicy mediastore:DescribeContainer mediastore:GetContainerPolicy mediastore:GetCorsPolicy mediastore:GetLifecyclePolicy mediastore:GetMetricPolicy mediastore:ListContainers mediastore:PutContainerPolicy mediastore:PutCorsPolicy mediastore:PutLifecyclePolicy mediastore:PutMetricPolicy mediastore:StartAccessLogging mediastore:StopAccessLogging  | 
| mediatailor |  mediatailor:ConfigureLogsForPlaybackConfiguration mediatailor:CreateChannel mediatailor:CreateLiveSource mediatailor:CreatePrefetchSchedule mediatailor:CreateProgram mediatailor:CreateSourceLocation mediatailor:CreateVodSource mediatailor:DeleteChannel mediatailor:DeleteChannelPolicy mediatailor:DeleteLiveSource mediatailor:DeletePlaybackConfiguration mediatailor:DeletePrefetchSchedule mediatailor:DeleteProgram mediatailor:DeleteSourceLocation mediatailor:DeleteVodSource mediatailor:DescribeChannel mediatailor:DescribeLiveSource mediatailor:DescribeProgram mediatailor:DescribeSourceLocation mediatailor:DescribeVodSource mediatailor:GetChannelPolicy mediatailor:GetChannelSchedule mediatailor:GetPlaybackConfiguration mediatailor:GetPrefetchSchedule mediatailor:ListAlerts mediatailor:ListChannels mediatailor:ListLiveSources mediatailor:ListPlaybackConfigurations mediatailor:ListPrefetchSchedules mediatailor:ListSourceLocations mediatailor:ListVodSources mediatailor:PutChannelPolicy mediatailor:PutPlaybackConfiguration mediatailor:StartChannel mediatailor:StopChannel mediatailor:UpdateChannel mediatailor:UpdateLiveSource mediatailor:UpdateProgram mediatailor:UpdateSourceLocation mediatailor:UpdateVodSource  | 
| memorydb |  memorydb:BatchUpdateCluster memorydb:CopySnapshot memorydb:CreateAcl memorydb:CreateCluster memorydb:CreateMultiRegionCluster memorydb:CreateParameterGroup memorydb:CreateSnapshot memorydb:CreateSubnetGroup memorydb:CreateUser memorydb:DeleteAcl memorydb:DeleteCluster memorydb:DeleteMultiRegionCluster memorydb:DeleteParameterGroup memorydb:DeleteSnapshot memorydb:DeleteSubnetGroup memorydb:DeleteUser memorydb:DescribeAcls memorydb:DescribeClusters memorydb:DescribeEngineVersions memorydb:DescribeEvents memorydb:DescribeMultiRegionClusters memorydb:DescribeMultiRegionParameterGroups memorydb:DescribeMultiRegionParameters memorydb:DescribeParameterGroups memorydb:DescribeParameters memorydb:DescribeReservedNodes memorydb:DescribeReservedNodesOfferings memorydb:DescribeServiceUpdates memorydb:DescribeSnapshots memorydb:DescribeSubnetGroups memorydb:DescribeUsers memorydb:FailoverShard memorydb:ListAllowedMultiRegionClusterUpdates memorydb:ListAllowedNodeTypeUpdates memorydb:PurchaseReservedNodesOffering memorydb:ResetParameterGroup memorydb:UpdateAcl memorydb:UpdateCluster memorydb:UpdateMultiRegionCluster memorydb:UpdateParameterGroup memorydb:UpdateSubnetGroup memorydb:UpdateUser  | 
| mgh |  mgh:AssociateCreatedArtifact mgh:AssociateDiscoveredResource mgh:AssociateSourceResource mgh:CreateHomeRegionControl mgh:CreateProgressUpdateStream mgh:DeleteHomeRegionControl mgh:DeleteProgressUpdateStream mgh:DescribeApplicationState mgh:DescribeHomeRegionControls mgh:DescribeMigrationTask mgh:DisassociateCreatedArtifact mgh:DisassociateDiscoveredResource mgh:DisassociateSourceResource mgh:GetHomeRegion mgh:ImportMigrationTask mgh:ListApplicationStates mgh:ListCreatedArtifacts mgh:ListDiscoveredResources mgh:ListMigrationTaskUpdates mgh:ListMigrationTasks mgh:ListProgressUpdateStreams mgh:ListSourceResources mgh:NotifyApplicationState mgh:NotifyMigrationTaskState mgh:PutResourceAttributes  | 
| mgn |  mgn:ArchiveApplication mgn:ArchiveWave mgn:AssociateApplications mgn:AssociateSourceServers mgn:ChangeServerLifeCycleState mgn:CreateApplication mgn:CreateConnector mgn:CreateLaunchConfigurationTemplate mgn:CreateReplicationConfigurationTemplate mgn:CreateWave mgn:DeleteApplication mgn:DeleteConnector mgn:DeleteJob mgn:DeleteLaunchConfigurationTemplate mgn:DeleteReplicationConfigurationTemplate mgn:DeleteSourceServer mgn:DeleteVcenterClient mgn:DeleteWave mgn:DescribeJobLogItems mgn:DescribeJobs mgn:DescribeLaunchConfigurationTemplates mgn:DescribeReplicationConfigurationTemplates mgn:DescribeVcenterClients mgn:DisassociateApplications mgn:DisassociateSourceServers mgn:DisconnectFromService mgn:FinalizeCutover mgn:GetReplicationConfiguration mgn:InitializeService mgn:ListConnectors mgn:ListExportErrors mgn:ListExports mgn:ListImportErrors mgn:ListImports mgn:ListManagedAccounts mgn:ListSourceServerActions mgn:ListTemplateActions mgn:MarkAsArchived mgn:PauseReplication mgn:PutSourceServerAction mgn:PutTemplateAction mgn:RemoveSourceServerAction mgn:RemoveTemplateAction mgn:ResumeReplication mgn:RetryDataReplication mgn:StartCutover mgn:StartExport mgn:StartImport mgn:StartReplication mgn:StartTest mgn:StopReplication mgn:TerminateTargetInstances mgn:UnarchiveApplication mgn:UnarchiveWave mgn:UpdateApplication mgn:UpdateConnector mgn:UpdateLaunchConfigurationTemplate mgn:UpdateReplicationConfiguration mgn:UpdateReplicationConfigurationTemplate mgn:UpdateSourceServer mgn:UpdateSourceServerReplicationType mgn:UpdateWave  | 
| migrationhub-strategy |  migrationhub-strategy:GetAntiPattern migrationhub-strategy:GetApplicationComponentDetails migrationhub-strategy:GetApplicationComponentStrategies migrationhub-strategy:GetAssessment migrationhub-strategy:GetImportFileTask migrationhub-strategy:GetLatestAssessmentId migrationhub-strategy:GetMessage migrationhub-strategy:GetPortfolioPreferences migrationhub-strategy:GetPortfolioSummary migrationhub-strategy:GetRecommendationReportDetails migrationhub-strategy:GetServerDetails migrationhub-strategy:GetServerStrategies migrationhub-strategy:ListAnalyzableServers migrationhub-strategy:ListAntiPatterns migrationhub-strategy:ListApplicationComponents migrationhub-strategy:ListCollectors migrationhub-strategy:ListImportFileTask migrationhub-strategy:ListJarArtifacts migrationhub-strategy:ListServers migrationhub-strategy:PutLogData migrationhub-strategy:PutMetricData migrationhub-strategy:PutPortfolioPreferences migrationhub-strategy:RegisterCollector migrationhub-strategy:SendMessage migrationhub-strategy:StartAssessment migrationhub-strategy:StartImportFileTask migrationhub-strategy:StartRecommendationReportGeneration migrationhub-strategy:StopAssessment migrationhub-strategy:UpdateApplicationComponentConfig migrationhub-strategy:UpdateCollectorConfiguration migrationhub-strategy:UpdateServerConfig  | 
| mobiletargeting |  mobiletargeting:CreateApp mobiletargeting:CreateCampaign mobiletargeting:CreateEmailTemplate mobiletargeting:CreateExportJob mobiletargeting:CreateImportJob mobiletargeting:CreateInAppTemplate mobiletargeting:CreateJourney mobiletargeting:CreatePushTemplate mobiletargeting:CreateRecommenderConfiguration mobiletargeting:CreateSegment mobiletargeting:CreateSmsTemplate mobiletargeting:CreateVoiceTemplate mobiletargeting:DeleteAdmChannel mobiletargeting:DeleteApnsChannel mobiletargeting:DeleteApnsSandboxChannel mobiletargeting:DeleteApnsVoipChannel mobiletargeting:DeleteApnsVoipSandboxChannel mobiletargeting:DeleteApp mobiletargeting:DeleteBaiduChannel mobiletargeting:DeleteCampaign mobiletargeting:DeleteEmailChannel mobiletargeting:DeleteEmailTemplate mobiletargeting:DeleteEndpoint mobiletargeting:DeleteEventStream mobiletargeting:DeleteGcmChannel mobiletargeting:DeleteInAppTemplate mobiletargeting:DeleteJourney mobiletargeting:DeletePushTemplate mobiletargeting:DeleteRecommenderConfiguration mobiletargeting:DeleteSegment mobiletargeting:DeleteSmsChannel mobiletargeting:DeleteSmsTemplate mobiletargeting:DeleteUserEndpoints mobiletargeting:DeleteVoiceChannel mobiletargeting:DeleteVoiceTemplate mobiletargeting:GetAdmChannel mobiletargeting:GetApnsChannel mobiletargeting:GetApnsSandboxChannel mobiletargeting:GetApnsVoipChannel mobiletargeting:GetApnsVoipSandboxChannel mobiletargeting:GetApp mobiletargeting:GetApplicationDateRangeKpi mobiletargeting:GetApplicationSettings mobiletargeting:GetApps mobiletargeting:GetBaiduChannel mobiletargeting:GetCampaign mobiletargeting:GetCampaignActivities mobiletargeting:GetCampaignDateRangeKpi mobiletargeting:GetCampaignVersion mobiletargeting:GetCampaignVersions mobiletargeting:GetCampaigns mobiletargeting:GetChannels mobiletargeting:GetEmailChannel mobiletargeting:GetEmailTemplate mobiletargeting:GetEndpoint mobiletargeting:GetEventStream mobiletargeting:GetExportJob mobiletargeting:GetExportJobs mobiletargeting:GetGcmChannel mobiletargeting:GetImportJob mobiletargeting:GetImportJobs mobiletargeting:GetInAppMessages mobiletargeting:GetInAppTemplate mobiletargeting:GetJourney mobiletargeting:GetJourneyDateRangeKpi mobiletargeting:GetJourneyExecutionActivityMetrics mobiletargeting:GetJourneyExecutionMetrics mobiletargeting:GetJourneyRunExecutionActivityMetrics mobiletargeting:GetJourneyRunExecutionMetrics mobiletargeting:GetJourneyRuns mobiletargeting:GetPushTemplate mobiletargeting:GetRecommenderConfiguration mobiletargeting:GetRecommenderConfigurations mobiletargeting:GetSegment mobiletargeting:GetSegmentExportJobs mobiletargeting:GetSegmentImportJobs mobiletargeting:GetSegmentVersion mobiletargeting:GetSegmentVersions mobiletargeting:GetSegments mobiletargeting:GetSmsChannel mobiletargeting:GetSmsTemplate mobiletargeting:GetUserEndpoints mobiletargeting:GetVoiceChannel mobiletargeting:GetVoiceTemplate mobiletargeting:ListJourneys mobiletargeting:ListTemplateVersions mobiletargeting:ListTemplates mobiletargeting:PhoneNumberValidate mobiletargeting:PutEventStream mobiletargeting:RemoveAttributes mobiletargeting:UpdateAdmChannel mobiletargeting:UpdateApnsChannel mobiletargeting:UpdateApnsSandboxChannel mobiletargeting:UpdateApnsVoipChannel mobiletargeting:UpdateApnsVoipSandboxChannel mobiletargeting:UpdateApplicationSettings mobiletargeting:UpdateBaiduChannel mobiletargeting:UpdateCampaign mobiletargeting:UpdateEmailChannel mobiletargeting:UpdateEmailTemplate mobiletargeting:UpdateEndpoint mobiletargeting:UpdateEndpointsBatch mobiletargeting:UpdateGcmChannel mobiletargeting:UpdateInAppTemplate mobiletargeting:UpdateJourney mobiletargeting:UpdateJourneyState mobiletargeting:UpdatePushTemplate mobiletargeting:UpdateRecommenderConfiguration mobiletargeting:UpdateSegment mobiletargeting:UpdateSmsChannel mobiletargeting:UpdateSmsTemplate mobiletargeting:UpdateTemplateActiveVersion mobiletargeting:UpdateVoiceChannel mobiletargeting:UpdateVoiceTemplate mobiletargeting:VerifyOTPMessage  | 
| mq |  mq:CreateBroker mq:CreateConfiguration mq:CreateUser mq:DeleteBroker mq:DeleteConfiguration mq:DeleteUser mq:DescribeBroker mq:DescribeBrokerEngineTypes mq:DescribeBrokerInstanceOptions mq:DescribeConfiguration mq:DescribeConfigurationRevision mq:DescribeUser mq:ListBrokers mq:ListConfigurationRevisions mq:ListConfigurations mq:ListUsers mq:Promote mq:RebootBroker mq:UpdateBroker mq:UpdateConfiguration mq:UpdateUser  | 
| networkmanager |  networkmanager:AcceptAttachment networkmanager:AssociateConnectPeer networkmanager:AssociateCustomerGateway networkmanager:AssociateLink networkmanager:AssociateTransitGatewayConnectPeer networkmanager:CreateConnectAttachment networkmanager:CreateConnectPeer networkmanager:CreateConnection networkmanager:CreateCoreNetwork networkmanager:CreateDevice networkmanager:CreateDirectConnectGatewayAttachment networkmanager:CreateGlobalNetwork networkmanager:CreateLink networkmanager:CreateSite networkmanager:CreateSiteToSiteVpnAttachment networkmanager:CreateTransitGatewayPeering networkmanager:CreateTransitGatewayRouteTableAttachment networkmanager:CreateVpcAttachment networkmanager:DeleteAttachment networkmanager:DeleteConnectPeer networkmanager:DeleteConnection networkmanager:DeleteCoreNetwork networkmanager:DeleteCoreNetworkPolicyVersion networkmanager:DeleteDevice networkmanager:DeleteGlobalNetwork networkmanager:DeleteLink networkmanager:DeletePeering networkmanager:DeleteResourcePolicy networkmanager:DeleteSite networkmanager:DeregisterTransitGateway networkmanager:DescribeGlobalNetworks networkmanager:DisassociateConnectPeer networkmanager:DisassociateCustomerGateway networkmanager:DisassociateLink networkmanager:DisassociateTransitGatewayConnectPeer networkmanager:ExecuteCoreNetworkChangeSet networkmanager:GetConnectAttachment networkmanager:GetConnectPeer networkmanager:GetConnectPeerAssociations networkmanager:GetConnections networkmanager:GetCoreNetwork networkmanager:GetCoreNetworkChangeEvents networkmanager:GetCoreNetworkChangeSet networkmanager:GetCoreNetworkPolicy networkmanager:GetCustomerGatewayAssociations networkmanager:GetDevices networkmanager:GetLinkAssociations networkmanager:GetLinks networkmanager:GetNetworkResourceCounts networkmanager:GetNetworkResourceRelationships networkmanager:GetNetworkResources networkmanager:GetNetworkRoutes networkmanager:GetNetworkTelemetry networkmanager:GetResourcePolicy networkmanager:GetRouteAnalysis networkmanager:GetSiteToSiteVpnAttachment networkmanager:GetSites networkmanager:GetTransitGatewayConnectPeerAssociations networkmanager:GetTransitGatewayPeering networkmanager:GetTransitGatewayRegistrations networkmanager:GetTransitGatewayRouteTableAttachment networkmanager:GetVpcAttachment networkmanager:ListAttachmentRoutingPolicyAssociations networkmanager:ListAttachments networkmanager:ListConnectPeers networkmanager:ListCoreNetworkPolicyVersions networkmanager:ListCoreNetworkPrefixListAssociations networkmanager:ListCoreNetworkRoutingInformation networkmanager:ListCoreNetworks networkmanager:ListOrganizationServiceAccessStatus networkmanager:ListPeerings networkmanager:PutAttachmentRoutingPolicyLabel networkmanager:PutCoreNetworkPolicy networkmanager:PutResourcePolicy networkmanager:RegisterTransitGateway networkmanager:RejectAttachment networkmanager:RemoveAttachmentRoutingPolicyLabel networkmanager:RestoreCoreNetworkPolicyVersion networkmanager:StartOrganizationServiceAccessUpdate networkmanager:StartRouteAnalysis networkmanager:UpdateConnection networkmanager:UpdateCoreNetwork networkmanager:UpdateDevice networkmanager:UpdateDirectConnectGatewayAttachment networkmanager:UpdateGlobalNetwork networkmanager:UpdateLink networkmanager:UpdateNetworkResourceMetadata networkmanager:UpdateSite networkmanager:UpdateVpcAttachment  | 
| nimble |  nimble:AcceptEulas nimble:CreateLaunchProfile nimble:CreateStreamingImage nimble:CreateStreamingSession nimble:CreateStreamingSessionStream nimble:CreateStudio nimble:CreateStudioComponent nimble:DeleteLaunchProfile nimble:DeleteLaunchProfileMember nimble:DeleteStreamingImage nimble:DeleteStreamingSession nimble:DeleteStudio nimble:DeleteStudioComponent nimble:DeleteStudioMember nimble:GetEula nimble:GetLaunchProfileDetails nimble:GetStreamingImage nimble:GetStreamingSession nimble:GetStreamingSessionBackup nimble:GetStreamingSessionStream nimble:GetStudio nimble:GetStudioComponent nimble:GetStudioMember nimble:ListEulas nimble:ListLaunchProfileMembers nimble:ListLaunchProfiles nimble:ListStreamingImages nimble:ListStreamingSessionBackups nimble:ListStreamingSessions nimble:ListStudioComponents nimble:ListStudioMembers nimble:ListStudios nimble:PutLaunchProfileMembers nimble:PutStudioMembers nimble:StartStreamingSession nimble:StartStudioSSOConfigurationRepair nimble:StopStreamingSession nimble:UpdateLaunchProfile nimble:UpdateLaunchProfileMember nimble:UpdateStreamingImage nimble:UpdateStudio nimble:UpdateStudioComponent  | 
| omics |  omics:AbortMultipartReadSetUpload omics:AcceptShare omics:BatchDeleteReadSet omics:CancelAnnotationImportJob omics:CancelRun omics:CancelVariantImportJob omics:CompleteMultipartReadSetUpload omics:CreateAnnotationStore omics:CreateAnnotationStoreVersion omics:CreateMultipartReadSetUpload omics:CreateReferenceStore omics:CreateRunGroup omics:CreateSequenceStore omics:CreateShare omics:CreateVariantStore omics:CreateWorkflow omics:CreateWorkflowVersion omics:DeleteAnnotationStore omics:DeleteAnnotationStoreVersions omics:DeleteReference omics:DeleteReferenceStore omics:DeleteRun omics:DeleteRunGroup omics:DeleteSequenceStore omics:DeleteShare omics:DeleteVariantStore omics:DeleteWorkflow omics:DeleteWorkflowVersion omics:GetAnnotationImportJob omics:GetAnnotationStore omics:GetAnnotationStoreVersion omics:GetReadSet omics:GetReadSetActivationJob omics:GetReadSetExportJob omics:GetReadSetImportJob omics:GetReadSetMetadata omics:GetReference omics:GetReferenceImportJob omics:GetReferenceMetadata omics:GetReferenceStore omics:GetRun omics:GetRunGroup omics:GetRunTask omics:GetSequenceStore omics:GetShare omics:GetVariantImportJob omics:GetVariantStore omics:GetWorkflow omics:GetWorkflowVersion omics:ListAnnotationImportJobs omics:ListAnnotationStoreVersions omics:ListAnnotationStores omics:ListMultipartReadSetUploads omics:ListReadSetActivationJobs omics:ListReadSetExportJobs omics:ListReadSetImportJobs omics:ListReadSetUploadParts omics:ListReadSets omics:ListReferenceImportJobs omics:ListReferenceStores omics:ListReferences omics:ListRunGroups omics:ListRunTasks omics:ListRuns omics:ListSequenceStores omics:ListShares omics:ListVariantImportJobs omics:ListVariantStores omics:ListWorkflowVersions omics:ListWorkflows omics:StartAnnotationImportJob omics:StartReadSetActivationJob omics:StartReadSetExportJob omics:StartReadSetImportJob omics:StartReferenceImportJob omics:StartRun omics:StartVariantImportJob omics:UpdateAnnotationStore omics:UpdateAnnotationStoreVersion omics:UpdateRunGroup omics:UpdateVariantStore omics:UpdateWorkflow omics:UpdateWorkflowVersion omics:UploadReadSetPart  | 
| opsworks |  opsworks:AssignInstance opsworks:AssignVolume opsworks:AssociateElasticIp opsworks:AttachElasticLoadBalancer opsworks:CloneStack opsworks:CreateApp opsworks:CreateDeployment opsworks:CreateInstance opsworks:CreateLayer opsworks:CreateStack opsworks:CreateUserProfile opsworks:DeleteApp opsworks:DeleteInstance opsworks:DeleteLayer opsworks:DeleteStack opsworks:DeleteUserProfile opsworks:DeregisterEcsCluster opsworks:DeregisterElasticIp opsworks:DeregisterInstance opsworks:DeregisterRdsDbInstance opsworks:DeregisterVolume opsworks:DescribeAgentVersions opsworks:DescribeApps opsworks:DescribeCommands opsworks:DescribeDeployments opsworks:DescribeEcsClusters opsworks:DescribeElasticIps opsworks:DescribeElasticLoadBalancers opsworks:DescribeInstances opsworks:DescribeLayers opsworks:DescribeLoadBasedAutoScaling opsworks:DescribeMyUserProfile opsworks:DescribeOperatingSystems opsworks:DescribePermissions opsworks:DescribeRaidArrays opsworks:DescribeRdsDbInstances opsworks:DescribeServiceErrors opsworks:DescribeStackProvisioningParameters opsworks:DescribeStackSummary opsworks:DescribeStacks opsworks:DescribeTimeBasedAutoScaling opsworks:DescribeUserProfiles opsworks:DescribeVolumes opsworks:DetachElasticLoadBalancer opsworks:DisassociateElasticIp opsworks:GetHostnameSuggestion opsworks:GrantAccess opsworks:RebootInstance opsworks:RegisterEcsCluster opsworks:RegisterElasticIp opsworks:RegisterInstance opsworks:RegisterRdsDbInstance opsworks:RegisterVolume opsworks:SetLoadBasedAutoScaling opsworks:SetPermission opsworks:SetTimeBasedAutoScaling opsworks:StartInstance opsworks:StartStack opsworks:StopInstance opsworks:StopStack opsworks:UnassignInstance opsworks:UnassignVolume opsworks:UpdateApp opsworks:UpdateElasticIp opsworks:UpdateInstance opsworks:UpdateLayer opsworks:UpdateMyUserProfile opsworks:UpdateRdsDbInstance opsworks:UpdateStack opsworks:UpdateUserProfile opsworks:UpdateVolume  | 
| opsworks-cm |  opsworks-cm:AssociateNode opsworks-cm:CreateBackup opsworks-cm:CreateServer opsworks-cm:DeleteBackup opsworks-cm:DeleteServer opsworks-cm:DescribeAccountAttributes opsworks-cm:DescribeBackups opsworks-cm:DescribeEvents opsworks-cm:DescribeNodeAssociationStatus opsworks-cm:DescribeServers opsworks-cm:DisassociateNode opsworks-cm:ExportServerEngineAttribute opsworks-cm:RestoreServer opsworks-cm:StartMaintenance opsworks-cm:UpdateServer opsworks-cm:UpdateServerEngineAttributes  | 
| 조직 |  organizations:AcceptHandshake organizations:AttachPolicy organizations:CancelHandshake organizations:CloseAccount organizations:CreateAccount organizations:CreateGovCloudAccount organizations:CreateOrganization organizations:CreateOrganizationalUnit organizations:CreatePolicy organizations:DeclineHandshake organizations:DeleteOrganization organizations:DeleteOrganizationalUnit organizations:DeletePolicy organizations:DeleteResourcePolicy organizations:DeregisterDelegatedAdministrator organizations:DescribeAccount organizations:DescribeCreateAccountStatus organizations:DescribeEffectivePolicy organizations:DescribeHandshake organizations:DescribeOrganization organizations:DescribeOrganizationalUnit organizations:DescribePolicy organizations:DescribeResourcePolicy organizations:DescribeResponsibilityTransfer organizations:DetachPolicy organizations:DisableAWSServiceAccess organizations:DisablePolicyType organizations:EnableAWSServiceAccess organizations:EnableAllFeatures organizations:EnablePolicyType organizations:InviteAccountToOrganization organizations:LeaveOrganization organizations:ListAWSServiceAccessForOrganization organizations:ListAccounts organizations:ListAccountsForParent organizations:ListAccountsWithInvalidEffectivePolicy organizations:ListChildren organizations:ListCreateAccountStatus organizations:ListDelegatedAdministrators organizations:ListDelegatedServicesForAccount organizations:ListHandshakesForAccount organizations:ListHandshakesForOrganization organizations:ListInboundResponsibilityTransfers organizations:ListOrganizationalUnitsForParent organizations:ListOutboundResponsibilityTransfers organizations:ListParents organizations:ListPolicies organizations:ListPoliciesForTarget organizations:ListRoots organizations:ListTargetsForPolicy organizations:MoveAccount organizations:PutResourcePolicy organizations:RegisterDelegatedAdministrator organizations:RemoveAccountFromOrganization organizations:TerminateResponsibilityTransfer organizations:UpdateOrganizationalUnit organizations:UpdatePolicy organizations:UpdateResponsibilityTransfer  | 
| outposts |  outposts:CancelCapacityTask outposts:CancelOrder outposts:CreateOrder outposts:CreateOutpost outposts:CreatePrivateConnectivityConfig outposts:CreateSite outposts:DeleteOutpost outposts:DeleteSite outposts:GetCapacityTask outposts:GetCatalogItem outposts:GetConnection outposts:GetOrder outposts:GetOutpost outposts:GetOutpostBillingInformation outposts:GetOutpostInstanceTypes outposts:GetOutpostSupportedInstanceTypes outposts:GetPrivateConnectivityConfig outposts:GetSite outposts:GetSiteAddress outposts:ListAssetInstances outposts:ListAssets outposts:ListBlockingInstancesForCapacityTask outposts:ListCapacityTasks outposts:ListCatalogItems outposts:ListOrders outposts:ListOutposts outposts:ListSites outposts:StartCapacityTask outposts:StartConnection outposts:UpdateOutpost outposts:UpdateSite outposts:UpdateSiteAddress outposts:UpdateSiteRackPhysicalProperties  | 
| panorama |  panorama:CreateApplicationInstance panorama:CreateJobForDevices panorama:CreateNodeFromTemplateJob panorama:CreatePackage panorama:CreatePackageImportJob panorama:DeleteDevice panorama:DeletePackage panorama:DeregisterPackageVersion panorama:DescribeApplicationInstance panorama:DescribeApplicationInstanceDetails panorama:DescribeDevice panorama:DescribeDeviceJob panorama:DescribeNode panorama:DescribeNodeFromTemplateJob panorama:DescribePackage panorama:DescribePackageImportJob panorama:DescribePackageVersion panorama:ListApplicationInstanceDependencies panorama:ListApplicationInstanceNodeInstances panorama:ListApplicationInstances panorama:ListDevices panorama:ListDevicesJobs panorama:ListNodeFromTemplateJobs panorama:ListNodes panorama:ListPackageImportJobs panorama:ListPackages panorama:ProvisionDevice panorama:RegisterPackageVersion panorama:RemoveApplicationInstance panorama:SignalApplicationInstanceNodeInstances panorama:UpdateDeviceMetadata  | 
| pi |  pi:CreatePerformanceAnalysisReport pi:DeletePerformanceAnalysisReport pi:DescribeDimensionKeys pi:GetDimensionKeyDetails pi:GetPerformanceAnalysisReport pi:GetResourceMetadata pi:GetResourceMetrics pi:ListAvailableResourceDimensions pi:ListAvailableResourceMetrics pi:ListPerformanceAnalysisReports  | 
| pipes |  pipes:CreatePipe pipes:DeletePipe pipes:DescribePipe pipes:ListPipes pipes:StartPipe pipes:StopPipe pipes:UpdatePipe  | 
| polly |  polly:DeleteLexicon polly:DescribeVoices polly:GetLexicon polly:GetSpeechSynthesisTask polly:ListLexicons polly:ListSpeechSynthesisTasks polly:PutLexicon polly:StartSpeechSynthesisTask polly:SynthesizeSpeech  | 
| profile |  profile:AddProfileKey profile:BatchGetCalculatedAttributeForProfile profile:BatchGetProfile profile:CreateCalculatedAttributeDefinition profile:CreateDomain profile:CreateEventStream profile:CreateProfile profile:CreateRecommender profile:CreateSegmentDefinition profile:CreateSegmentEstimate profile:CreateSegmentSnapshot profile:CreateUploadJob profile:DeleteCalculatedAttributeDefinition profile:DeleteDomain profile:DeleteDomainObjectType profile:DeleteEventStream profile:DeleteIntegration profile:DeleteProfile profile:DeleteProfileKey profile:DeleteProfileObject profile:DeleteProfileObjectType profile:DeleteRecommender profile:DeleteSegmentDefinition profile:DeleteWorkflow profile:DetectProfileObjectType profile:GetAutoMergingPreview profile:GetCalculatedAttributeDefinition profile:GetCalculatedAttributeForProfile profile:GetDomain profile:GetDomainObjectType profile:GetEventStream profile:GetIdentityResolutionJob profile:GetIntegration profile:GetMatches profile:GetObjectTypeAttributeStatistics profile:GetProfileObjectType profile:GetProfileObjectTypeTemplate profile:GetProfileRecommendations profile:GetRecommender profile:GetSegmentDefinition profile:GetSegmentEstimate profile:GetSegmentMembership profile:GetSegmentSnapshot profile:GetSimilarProfiles profile:GetUploadJob profile:GetUploadJobPath profile:GetWorkflow profile:GetWorkflowSteps profile:ListAccountIntegrations profile:ListCalculatedAttributeDefinitions profile:ListCalculatedAttributesForProfile profile:ListDomainLayouts profile:ListDomainObjectTypes profile:ListDomains profile:ListEventStreams profile:ListIdentityResolutionJobs profile:ListIntegrations profile:ListObjectTypeAttributeValues profile:ListObjectTypeAttributes profile:ListProfileAttributeValues profile:ListProfileObjectTypeTemplates profile:ListProfileObjectTypes profile:ListProfileObjects profile:ListRecommenderRecipes profile:ListRecommenders profile:ListRuleBasedMatches profile:ListSegmentDefinitions profile:ListUploadJobs profile:ListWorkflows profile:MergeProfiles profile:PutDomainObjectType profile:PutIntegration profile:PutProfileObject profile:PutProfileObjectType profile:SearchProfiles profile:StartRecommender profile:StartUploadJob profile:StopRecommender profile:StopUploadJob profile:UpdateCalculatedAttributeDefinition profile:UpdateDomain profile:UpdateProfile profile:UpdateRecommender  | 
| qldb |  qldb:CancelJournalKinesisStream qldb:CreateLedger qldb:DeleteLedger qldb:DescribeJournalKinesisStream qldb:DescribeJournalS3Export qldb:DescribeLedger qldb:ExportJournalToS3 qldb:GetBlock qldb:GetDigest qldb:GetRevision qldb:ListJournalKinesisStreamsForLedger qldb:ListJournalS3Exports qldb:ListJournalS3ExportsForLedger qldb:ListLedgers qldb:StreamJournalToKinesis qldb:UpdateLedger qldb:UpdateLedgerPermissionsMode  | 
| ram |  ram:AcceptResourceShareInvitation ram:AssociateResourceShare ram:AssociateResourceSharePermission ram:CreatePermission ram:CreatePermissionVersion ram:CreateResourceShare ram:DeletePermission ram:DeletePermissionVersion ram:DeleteResourceShare ram:DisassociateResourceShare ram:DisassociateResourceSharePermission ram:EnableSharingWithAwsOrganization ram:GetPermission ram:GetResourcePolicies ram:GetResourceShareAssociations ram:GetResourceShareInvitations ram:GetResourceShares ram:ListPendingInvitationResources ram:ListPermissionAssociations ram:ListPermissionVersions ram:ListPermissions ram:ListPrincipals ram:ListReplacePermissionAssociationsWork ram:ListResourceSharePermissions ram:ListResourceTypes ram:ListResources ram:PromotePermissionCreatedFromPolicy ram:PromoteResourceShareCreatedFromPolicy ram:RejectResourceShareInvitation ram:ReplacePermissionAssociations ram:SetDefaultPermissionVersion ram:UpdateResourceShare  | 
| rbin |  rbin:CreateRule rbin:DeleteRule rbin:GetRule rbin:ListRules rbin:LockRule rbin:UnlockRule rbin:UpdateRule  | 
| RDS |  rds:AddRoleToDBCluster rds:AddRoleToDBInstance rds:AddSourceIdentifierToSubscription rds:ApplyPendingMaintenanceAction rds:AuthorizeDBSecurityGroupIngress rds:BacktrackDBCluster rds:CancelExportTask rds:CopyDBClusterParameterGroup rds:CopyDBClusterSnapshot rds:CopyDBParameterGroup rds:CopyDBSnapshot rds:CopyOptionGroup rds:CreateCustomDBEngineVersion rds:CreateDBClusterParameterGroup rds:CreateDBParameterGroup rds:CreateDBProxy rds:CreateDBProxyEndpoint rds:CreateDBSecurityGroup rds:CreateDBSubnetGroup rds:CreateEventSubscription rds:CreateGlobalCluster rds:CreateOptionGroup rds:DeleteBlueGreenDeployment rds:DeleteDBClusterAutomatedBackup rds:DeleteDBClusterParameterGroup rds:DeleteDBClusterSnapshot rds:DeleteDBInstanceAutomatedBackup rds:DeleteDBParameterGroup rds:DeleteDBProxy rds:DeleteDBProxyEndpoint rds:DeleteDBSecurityGroup rds:DeleteDBSnapshot rds:DeleteDBSubnetGroup rds:DeleteEventSubscription rds:DeleteGlobalCluster rds:DeleteOptionGroup rds:DeregisterDBProxyTargets rds:DescribeAccountAttributes rds:DescribeBlueGreenDeployments rds:DescribeCertificates rds:DescribeDBClusterAutomatedBackups rds:DescribeDBClusterBacktracks rds:DescribeDBClusterEndpoints rds:DescribeDBClusterParameterGroups rds:DescribeDBClusterParameters rds:DescribeDBClusterSnapshotAttributes rds:DescribeDBClusterSnapshots rds:DescribeDBClusters rds:DescribeDBEngineVersions rds:DescribeDBInstanceAutomatedBackups rds:DescribeDBInstances rds:DescribeDBLogFiles rds:DescribeDBMajorEngineVersions rds:DescribeDBParameterGroups rds:DescribeDBParameters rds:DescribeDBProxies rds:DescribeDBProxyEndpoints rds:DescribeDBProxyTargetGroups rds:DescribeDBProxyTargets rds:DescribeDBRecommendations rds:DescribeDBSecurityGroups rds:DescribeDBSnapshotAttributes rds:DescribeDbSnapshotTenantDatabases rds:DescribeDBSnapshots rds:DescribeDBSubnetGroups rds:DescribeEngineDefaultClusterParameters rds:DescribeEngineDefaultParameters rds:DescribeEventCategories rds:DescribeEventSubscriptions rds:DescribeEvents rds:DescribeExportTasks rds:DescribeGlobalClusters rds:DescribeIntegrations rds:DescribeOptionGroupOptions rds:DescribeOptionGroups rds:DescribeOrderableDBInstanceOptions rds:DescribePendingMaintenanceActions rds:DescribeReservedDBInstances rds:DescribeReservedDBInstancesOfferings rds:DescribeSourceRegions rds:DescribeTenantDatabases rds:DescribeValidDBInstanceModifications rds:DownloadCompleteDBLogFile rds:DownloadDBLogFilePortion rds:FailoverDBCluster rds:FailoverGlobalCluster rds:ModifyActivityStream rds:ModifyCertificates rds:ModifyCurrentDBClusterCapacity rds:ModifyDBClusterEndpoint rds:ModifyDBClusterParameterGroup rds:ModifyDBClusterSnapshotAttribute rds:ModifyDBParameterGroup rds:ModifyDBProxy rds:ModifyDBProxyEndpoint rds:ModifyDBProxyTargetGroup rds:ModifyDBRecommendation rds:ModifyDBSnapshot rds:ModifyDBSnapshotAttribute rds:ModifyDBSubnetGroup rds:ModifyEventSubscription rds:ModifyGlobalCluster rds:ModifyOptionGroup rds:ModifyTenantDatabase rds:PurchaseReservedDBInstancesOffering rds:RebootDBCluster rds:RegisterDBProxyTargets rds:RemoveFromGlobalCluster rds:RemoveRoleFromDBCluster rds:RemoveRoleFromDBInstance rds:RemoveSourceIdentifierFromSubscription rds:ResetDBClusterParameterGroup rds:ResetDBParameterGroup rds:RestoreDBClusterFromS3 rds:RestoreDBClusterFromSnapshot rds:RestoreDBClusterToPointInTime rds:RestoreDBInstanceFromDBSnapshot rds:RestoreDBInstanceFromS3 rds:RestoreDBInstanceToPointInTime rds:RevokeDBSecurityGroupIngress rds:StartActivityStream rds:StartDBCluster rds:StartDBInstance rds:StartDBInstanceAutomatedBackupsReplication rds:StartExportTask rds:StopActivityStream rds:StopDBCluster rds:StopDBInstance rds:StopDBInstanceAutomatedBackupsReplication rds:SwitchoverBlueGreenDeployment rds:SwitchoverGlobalCluster rds:SwitchoverReadReplica  | 
| redshift |  redshift:AcceptReservedNodeExchange redshift:AddPartner redshift:AssociateDataShareConsumer redshift:AuthorizeClusterSecurityGroupIngress redshift:AuthorizeDataShare redshift:AuthorizeEndpointAccess redshift:AuthorizeSnapshotAccess redshift:BatchDeleteClusterSnapshots redshift:BatchModifyClusterSnapshots redshift:CancelQuery redshift:CancelResize redshift:CopyClusterSnapshot redshift:CreateAuthenticationProfile redshift:CreateCluster redshift:CreateClusterParameterGroup redshift:CreateClusterSecurityGroup redshift:CreateClusterSnapshot redshift:CreateClusterSubnetGroup redshift:CreateCustomDomainAssociation redshift:CreateEndpointAccess redshift:CreateEventSubscription redshift:CreateHsmClientCertificate redshift:CreateHsmConfiguration redshift:CreateIntegration redshift:CreateRedshiftIdcApplication redshift:CreateScheduledAction redshift:CreateSnapshotCopyGrant redshift:CreateSnapshotSchedule redshift:CreateUsageLimit redshift:DeauthorizeDataShare redshift:DeleteAuthenticationProfile redshift:DeleteCluster redshift:DeleteClusterParameterGroup redshift:DeleteClusterSecurityGroup redshift:DeleteClusterSnapshot redshift:DeleteClusterSubnetGroup redshift:DeleteCustomDomainAssociation redshift:DeleteEndpointAccess redshift:DeleteEventSubscription redshift:DeleteHsmClientCertificate redshift:DeleteHsmConfiguration redshift:DeletePartner redshift:DeleteRedshiftIdcApplication redshift:DeleteResourcePolicy redshift:DeleteScheduledAction redshift:DeleteSnapshotCopyGrant redshift:DeleteSnapshotSchedule redshift:DeleteUsageLimit redshift:DeregisterNamespace redshift:DescribeAccountAttributes redshift:DescribeAuthenticationProfiles redshift:DescribeClusterDbRevisions redshift:DescribeClusterParameterGroups redshift:DescribeClusterParameters redshift:DescribeClusterSecurityGroups redshift:DescribeClusterSnapshots redshift:DescribeClusterSubnetGroups redshift:DescribeClusterTracks redshift:DescribeClusterVersions redshift:DescribeClusters redshift:DescribeCustomDomainAssociations redshift:DescribeDataShares redshift:DescribeDataSharesForConsumer redshift:DescribeDataSharesForProducer redshift:DescribeDefaultClusterParameters redshift:DescribeEndpointAccess redshift:DescribeEndpointAuthorization redshift:DescribeEventCategories redshift:DescribeEventSubscriptions redshift:DescribeEvents redshift:DescribeHsmClientCertificates redshift:DescribeHsmConfigurations redshift:DescribeInboundIntegrations redshift:DescribeIntegrations redshift:DescribeLoggingStatus redshift:DescribeNodeConfigurationOptions redshift:DescribeOrderableClusterOptions redshift:DescribePartners redshift:DescribeRedshiftIdcApplications redshift:DescribeReservedNodeExchangeStatus redshift:DescribeReservedNodeOfferings redshift:DescribeReservedNodes redshift:DescribeResize redshift:DescribeScheduledActions redshift:DescribeSnapshotCopyGrants redshift:DescribeSnapshotSchedules redshift:DescribeStorage redshift:DescribeTableRestoreStatus redshift:DescribeUsageLimits redshift:DisableLogging redshift:DisableSnapshotCopy redshift:DisassociateDataShareConsumer redshift:EnableLogging redshift:EnableSnapshotCopy redshift:FailoverPrimaryCompute redshift:GetClusterCredentials redshift:GetClusterCredentialsWithIAM redshift:GetIdentityCenterAuthToken redshift:GetReservedNodeExchangeConfigurationOptions redshift:GetReservedNodeExchangeOfferings redshift:GetResourcePolicy redshift:ListRecommendations redshift:ModifyAquaConfiguration redshift:ModifyAuthenticationProfile redshift:ModifyCluster redshift:ModifyClusterDbRevision redshift:ModifyClusterIamRoles redshift:ModifyClusterMaintenance redshift:ModifyClusterParameterGroup redshift:ModifyClusterSnapshot redshift:ModifyClusterSnapshotSchedule redshift:ModifyClusterSubnetGroup redshift:ModifyCustomDomainAssociation redshift:ModifyEndpointAccess redshift:ModifyEventSubscription redshift:ModifyRedshiftIdcApplication redshift:ModifyScheduledAction redshift:ModifySnapshotCopyRetentionPeriod redshift:ModifySnapshotSchedule redshift:ModifyUsageLimit redshift:PauseCluster redshift:PurchaseReservedNodeOffering redshift:PutResourcePolicy redshift:RebootCluster redshift:RegisterNamespace redshift:RejectDataShare redshift:ResetClusterParameterGroup redshift:ResizeCluster redshift:RestoreFromClusterSnapshot redshift:RestoreTableFromClusterSnapshot redshift:ResumeCluster redshift:RevokeClusterSecurityGroupIngress redshift:RevokeEndpointAccess redshift:RevokeSnapshotAccess redshift:RotateEncryptionKey redshift:UpdatePartnerStatus  | 
| redshift-data |  redshift-data:BatchExecuteStatement redshift-data:CancelStatement redshift-data:DescribeStatement redshift-data:DescribeTable redshift-data:ExecuteStatement redshift-data:GetStatementResult redshift-data:ListDatabases redshift-data:ListSchemas redshift-data:ListStatements redshift-data:ListTables  | 
| refactor-spaces |  refactor-spaces:CreateApplication refactor-spaces:CreateEnvironment refactor-spaces:CreateRoute refactor-spaces:CreateService refactor-spaces:DeleteApplication refactor-spaces:DeleteEnvironment refactor-spaces:DeleteResourcePolicy refactor-spaces:DeleteRoute refactor-spaces:DeleteService refactor-spaces:GetApplication refactor-spaces:GetEnvironment refactor-spaces:GetResourcePolicy refactor-spaces:GetRoute refactor-spaces:GetService refactor-spaces:ListApplications refactor-spaces:ListEnvironmentVpcs refactor-spaces:ListEnvironments refactor-spaces:ListRoutes refactor-spaces:ListServices refactor-spaces:PutResourcePolicy refactor-spaces:UpdateRoute  | 
| rekognition |  rekognition:AssociateFaces rekognition:CompareFaces rekognition:CopyProjectVersion rekognition:CreateCollection rekognition:CreateDataset rekognition:CreateFaceLivenessSession rekognition:CreateProject rekognition:CreateProjectVersion rekognition:CreateStreamProcessor rekognition:CreateUser rekognition:DeleteCollection rekognition:DeleteDataset rekognition:DeleteFaces rekognition:DeleteProject rekognition:DeleteProjectPolicy rekognition:DeleteProjectVersion rekognition:DeleteStreamProcessor rekognition:DeleteUser rekognition:DescribeCollection rekognition:DescribeDataset rekognition:DescribeProjectVersions rekognition:DescribeProjects rekognition:DescribeStreamProcessor rekognition:DetectCustomLabels rekognition:DetectFaces rekognition:DetectLabels rekognition:DetectModerationLabels rekognition:DetectProtectiveEquipment rekognition:DetectText rekognition:DisassociateFaces rekognition:DistributeDatasetEntries rekognition:GetCelebrityInfo rekognition:GetCelebrityRecognition rekognition:GetContentModeration rekognition:GetFaceDetection rekognition:GetFaceLivenessSessionResults rekognition:GetFaceSearch rekognition:GetLabelDetection rekognition:GetMediaAnalysisJob rekognition:GetPersonTracking rekognition:GetSegmentDetection rekognition:GetTextDetection rekognition:IndexFaces rekognition:ListCollections rekognition:ListDatasetEntries rekognition:ListDatasetLabels rekognition:ListFaces rekognition:ListMediaAnalysisJobs rekognition:ListProjectPolicies rekognition:ListStreamProcessors rekognition:ListUsers rekognition:PutProjectPolicy rekognition:RecognizeCelebrities rekognition:SearchFaces rekognition:SearchFacesByImage rekognition:SearchUsers rekognition:SearchUsersByImage rekognition:StartCelebrityRecognition rekognition:StartContentModeration rekognition:StartFaceDetection rekognition:StartFaceLivenessSession rekognition:StartFaceSearch rekognition:StartLabelDetection rekognition:StartMediaAnalysisJob rekognition:StartPersonTracking rekognition:StartProjectVersion rekognition:StartSegmentDetection rekognition:StartStreamProcessor rekognition:StartTextDetection rekognition:StopProjectVersion rekognition:StopStreamProcessor rekognition:UpdateDatasetEntries rekognition:UpdateStreamProcessor  | 
| resiliencehub |  resiliencehub:AcceptResourceGroupingRecommendations resiliencehub:AddDraftAppVersionResourceMappings resiliencehub:BatchUpdateRecommendationStatus resiliencehub:CreateApp resiliencehub:CreateAppVersionAppComponent resiliencehub:CreateAppVersionResource resiliencehub:CreateRecommendationTemplate resiliencehub:CreateResiliencyPolicy resiliencehub:DeleteApp resiliencehub:DeleteAppAssessment resiliencehub:DeleteAppInputSource resiliencehub:DeleteAppVersionAppComponent resiliencehub:DeleteAppVersionResource resiliencehub:DeleteRecommendationTemplate resiliencehub:DeleteResiliencyPolicy resiliencehub:DescribeApp resiliencehub:DescribeAppAssessment resiliencehub:DescribeAppVersion resiliencehub:DescribeAppVersionAppComponent resiliencehub:DescribeAppVersionResource resiliencehub:DescribeAppVersionResourcesResolutionStatus resiliencehub:DescribeAppVersionTemplate resiliencehub:DescribeDraftAppVersionResourcesImportStatus resiliencehub:DescribeMetricsExport resiliencehub:DescribeResiliencyPolicy resiliencehub:DescribeResourceGroupingRecommendationTask resiliencehub:ImportResourcesToDraftAppVersion resiliencehub:ListAlarmRecommendations resiliencehub:ListAppAssessmentComplianceDrifts resiliencehub:ListAppAssessmentResourceDrifts resiliencehub:ListAppAssessments resiliencehub:ListAppComponentCompliances resiliencehub:ListAppComponentRecommendations resiliencehub:ListAppInputSources resiliencehub:ListAppVersionAppComponents resiliencehub:ListAppVersionResourceMappings resiliencehub:ListAppVersionResources resiliencehub:ListAppVersions resiliencehub:ListApps resiliencehub:ListMetrics resiliencehub:ListRecommendationTemplates resiliencehub:ListResiliencyPolicies resiliencehub:ListResourceGroupingRecommendations resiliencehub:ListSopRecommendations resiliencehub:ListSuggestedResiliencyPolicies resiliencehub:ListTestRecommendations resiliencehub:ListUnsupportedAppVersionResources resiliencehub:PublishAppVersion resiliencehub:PutDraftAppVersionTemplate resiliencehub:RejectResourceGroupingRecommendations resiliencehub:RemoveDraftAppVersionResourceMappings resiliencehub:ResolveAppVersionResources resiliencehub:StartAppAssessment resiliencehub:StartResourceGroupingRecommendationTask resiliencehub:UpdateApp resiliencehub:UpdateAppVersion resiliencehub:UpdateAppVersionAppComponent resiliencehub:UpdateAppVersionResource resiliencehub:UpdateResiliencyPolicy  | 
| resource-explorer-2 |  resource-explorer-2:AssociateDefaultView resource-explorer-2:BatchGetView resource-explorer-2:CreateIndex resource-explorer-2:CreateResourceExplorerSetup resource-explorer-2:CreateView resource-explorer-2:DeleteIndex resource-explorer-2:DeleteResourceExplorerSetup resource-explorer-2:DeleteView resource-explorer-2:DisassociateDefaultView resource-explorer-2:GetAccountLevelServiceConfiguration resource-explorer-2:GetDefaultView resource-explorer-2:GetIndex resource-explorer-2:GetManagedView resource-explorer-2:GetResourceExplorerSetup resource-explorer-2:GetServiceIndex resource-explorer-2:GetServiceView resource-explorer-2:ListIndexes resource-explorer-2:ListIndexesForMembers resource-explorer-2:ListManagedViews resource-explorer-2:ListServiceIndexes resource-explorer-2:ListServiceViews resource-explorer-2:ListStreamingAccessForServices resource-explorer-2:ListSupportedResourceTypes resource-explorer-2:ListViews resource-explorer-2:Search resource-explorer-2:UpdateIndexType resource-explorer-2:UpdateView  | 
| resource-groups |  resource-groups:CancelTagSyncTask resource-groups:GetAccountSettings resource-groups:GetGroup resource-groups:GetGroupConfiguration resource-groups:GetGroupQuery resource-groups:GetTagSyncTask resource-groups:GroupResources resource-groups:ListGroupResources resource-groups:ListGroupingStatuses resource-groups:ListGroups resource-groups:ListTagSyncTasks resource-groups:PutGroupConfiguration resource-groups:SearchResources resource-groups:StartTagSyncTask resource-groups:UngroupResources resource-groups:UpdateAccountSettings resource-groups:UpdateGroup resource-groups:UpdateGroupQuery  | 
| robomaker |  robomaker:BatchDeleteWorlds robomaker:BatchDescribeSimulationJob robomaker:CancelDeploymentJob robomaker:CancelSimulationJob robomaker:CancelSimulationJobBatch robomaker:CancelWorldExportJob robomaker:CancelWorldGenerationJob robomaker:CreateDeploymentJob robomaker:CreateFleet robomaker:CreateRobot robomaker:CreateRobotApplication robomaker:CreateRobotApplicationVersion robomaker:CreateSimulationApplication robomaker:CreateSimulationApplicationVersion robomaker:CreateSimulationJob robomaker:CreateWorldExportJob robomaker:CreateWorldGenerationJob robomaker:CreateWorldTemplate robomaker:DeleteFleet robomaker:DeleteRobot robomaker:DeleteRobotApplication robomaker:DeleteSimulationApplication robomaker:DeleteWorldTemplate robomaker:DeregisterRobot robomaker:DescribeDeploymentJob robomaker:DescribeFleet robomaker:DescribeRobot robomaker:DescribeRobotApplication robomaker:DescribeSimulationApplication robomaker:DescribeSimulationJob robomaker:DescribeSimulationJobBatch robomaker:DescribeWorld robomaker:DescribeWorldExportJob robomaker:DescribeWorldGenerationJob robomaker:DescribeWorldTemplate robomaker:GetWorldTemplateBody robomaker:ListDeploymentJobs robomaker:ListFleets robomaker:ListRobotApplications robomaker:ListRobots robomaker:ListSimulationApplications robomaker:ListSimulationJobBatches robomaker:ListSimulationJobs robomaker:ListWorldExportJobs robomaker:ListWorldGenerationJobs robomaker:ListWorldTemplates robomaker:ListWorlds robomaker:RegisterRobot robomaker:RestartSimulationJob robomaker:StartSimulationJobBatch robomaker:SyncDeploymentJob robomaker:UpdateRobotApplication robomaker:UpdateSimulationApplication robomaker:UpdateWorldTemplate  | 
| rolesanywhere |  rolesanywhere:CreateProfile rolesanywhere:CreateTrustAnchor rolesanywhere:DeleteAttributeMapping rolesanywhere:DeleteCrl rolesanywhere:DeleteProfile rolesanywhere:DeleteTrustAnchor rolesanywhere:DisableCrl rolesanywhere:DisableProfile rolesanywhere:DisableTrustAnchor rolesanywhere:EnableCrl rolesanywhere:EnableProfile rolesanywhere:EnableTrustAnchor rolesanywhere:GetCrl rolesanywhere:GetProfile rolesanywhere:GetSubject rolesanywhere:GetTrustAnchor rolesanywhere:ImportCrl rolesanywhere:ListCrls rolesanywhere:ListProfiles rolesanywhere:ListSubjects rolesanywhere:ListTrustAnchors rolesanywhere:PutAttributeMapping rolesanywhere:PutNotificationSettings rolesanywhere:ResetNotificationSettings rolesanywhere:UpdateCrl rolesanywhere:UpdateProfile rolesanywhere:UpdateTrustAnchor  | 
| route53 |  route53:ActivateKeySigningKey route53:AssociateVPCWithHostedZone route53:ChangeCidrCollection route53:ChangeResourceRecordSets route53:CreateCidrCollection route53:CreateHealthCheck route53:CreateHostedZone route53:CreateKeySigningKey route53:CreateQueryLoggingConfig route53:CreateReusableDelegationSet route53:CreateTrafficPolicy route53:CreateTrafficPolicyInstance route53:CreateTrafficPolicyVersion route53:CreateVPCAssociationAuthorization route53:DeactivateKeySigningKey route53:DeleteCidrCollection route53:DeleteHealthCheck route53:DeleteHostedZone route53:DeleteKeySigningKey route53:DeleteQueryLoggingConfig route53:DeleteReusableDelegationSet route53:DeleteTrafficPolicy route53:DeleteTrafficPolicyInstance route53:DeleteVPCAssociationAuthorization route53:DisableHostedZoneDNSSEC route53:DisassociateVPCFromHostedZone route53:EnableHostedZoneDNSSEC route53:GetAccountLimit route53:GetChange route53:GetCheckerIpRanges route53:GetDNSSEC route53:GetGeoLocation route53:GetHealthCheck route53:GetHealthCheckCount route53:GetHealthCheckLastFailureReason route53:GetHealthCheckStatus route53:GetHostedZone route53:GetHostedZoneCount route53:GetHostedZoneLimit route53:GetQueryLoggingConfig route53:GetReusableDelegationSet route53:GetReusableDelegationSetLimit route53:GetTrafficPolicy route53:GetTrafficPolicyInstance route53:GetTrafficPolicyInstanceCount route53:ListCidrBlocks route53:ListCidrCollections route53:ListCidrLocations route53:ListGeoLocations route53:ListHealthChecks route53:ListHostedZones route53:ListHostedZonesByName route53:ListHostedZonesByVPC route53:ListQueryLoggingConfigs route53:ListResourceRecordSets route53:ListReusableDelegationSets route53:ListTrafficPolicies route53:ListTrafficPolicyInstances route53:ListTrafficPolicyInstancesByHostedZone route53:ListTrafficPolicyInstancesByPolicy route53:ListTrafficPolicyVersions route53:ListVPCAssociationAuthorizations route53:TestDNSAnswer route53:UpdateHealthCheck route53:UpdateHostedZoneComment route53:UpdateTrafficPolicyComment route53:UpdateTrafficPolicyInstance  | 
| route53-recovery-control-config |  route53-recovery-control-config:CreateCluster route53-recovery-control-config:CreateControlPanel route53-recovery-control-config:CreateRoutingControl route53-recovery-control-config:CreateSafetyRule route53-recovery-control-config:DeleteCluster route53-recovery-control-config:DeleteControlPanel route53-recovery-control-config:DeleteRoutingControl route53-recovery-control-config:DeleteSafetyRule route53-recovery-control-config:DescribeCluster route53-recovery-control-config:DescribeControlPanel route53-recovery-control-config:DescribeRoutingControl route53-recovery-control-config:DescribeSafetyRule route53-recovery-control-config:GetResourcePolicy route53-recovery-control-config:ListAssociatedRoute53HealthChecks route53-recovery-control-config:ListClusters route53-recovery-control-config:ListControlPanels route53-recovery-control-config:ListRoutingControls route53-recovery-control-config:ListSafetyRules route53-recovery-control-config:UpdateCluster route53-recovery-control-config:UpdateControlPanel route53-recovery-control-config:UpdateRoutingControl route53-recovery-control-config:UpdateSafetyRule  | 
| route53-recovery-readiness |  route53-recovery-readiness:CreateCell route53-recovery-readiness:CreateCrossAccountAuthorization route53-recovery-readiness:CreateReadinessCheck route53-recovery-readiness:CreateRecoveryGroup route53-recovery-readiness:CreateResourceSet route53-recovery-readiness:DeleteCell route53-recovery-readiness:DeleteCrossAccountAuthorization route53-recovery-readiness:DeleteReadinessCheck route53-recovery-readiness:DeleteRecoveryGroup route53-recovery-readiness:DeleteResourceSet route53-recovery-readiness:GetArchitectureRecommendations route53-recovery-readiness:GetCell route53-recovery-readiness:GetCellReadinessSummary route53-recovery-readiness:GetReadinessCheck route53-recovery-readiness:GetReadinessCheckResourceStatus route53-recovery-readiness:GetReadinessCheckStatus route53-recovery-readiness:GetRecoveryGroup route53-recovery-readiness:GetRecoveryGroupReadinessSummary route53-recovery-readiness:GetResourceSet route53-recovery-readiness:ListCells route53-recovery-readiness:ListCrossAccountAuthorizations route53-recovery-readiness:ListReadinessChecks route53-recovery-readiness:ListRecoveryGroups route53-recovery-readiness:ListResourceSets route53-recovery-readiness:ListRules route53-recovery-readiness:UpdateCell route53-recovery-readiness:UpdateReadinessCheck route53-recovery-readiness:UpdateRecoveryGroup route53-recovery-readiness:UpdateResourceSet  | 
| route53resolver |  route53resolver:AssociateFirewallRuleGroup route53resolver:AssociateResolverEndpointIpAddress route53resolver:AssociateResolverQueryLogConfig route53resolver:AssociateResolverRule route53resolver:CreateFirewallDomainList route53resolver:CreateFirewallRule route53resolver:CreateFirewallRuleGroup route53resolver:CreateResolverEndpoint route53resolver:CreateResolverQueryLogConfig route53resolver:CreateResolverRule route53resolver:DeleteFirewallDomainList route53resolver:DeleteFirewallRule route53resolver:DeleteFirewallRuleGroup route53resolver:DeleteOutpostResolver route53resolver:DeleteResolverEndpoint route53resolver:DeleteResolverQueryLogConfig route53resolver:DeleteResolverRule route53resolver:DisassociateFirewallRuleGroup route53resolver:DisassociateResolverEndpointIpAddress route53resolver:DisassociateResolverQueryLogConfig route53resolver:DisassociateResolverRule route53resolver:GetFirewallConfig route53resolver:GetFirewallDomainList route53resolver:GetFirewallRuleGroup route53resolver:GetFirewallRuleGroupAssociation route53resolver:GetFirewallRuleGroupPolicy route53resolver:GetOutpostResolver route53resolver:GetResolverConfig route53resolver:GetResolverDnssecConfig route53resolver:GetResolverEndpoint route53resolver:GetResolverQueryLogConfig route53resolver:GetResolverQueryLogConfigAssociation route53resolver:GetResolverQueryLogConfigPolicy route53resolver:GetResolverRule route53resolver:GetResolverRuleAssociation route53resolver:GetResolverRulePolicy route53resolver:ImportFirewallDomains route53resolver:ListFirewallConfigs route53resolver:ListFirewallDomainLists route53resolver:ListFirewallDomains route53resolver:ListFirewallRuleGroupAssociations route53resolver:ListFirewallRuleGroups route53resolver:ListFirewallRules route53resolver:ListOutpostResolvers route53resolver:ListResolverConfigs route53resolver:ListResolverDnssecConfigs route53resolver:ListResolverEndpointIpAddresses route53resolver:ListResolverEndpoints route53resolver:ListResolverQueryLogConfigAssociations route53resolver:ListResolverQueryLogConfigs route53resolver:ListResolverRuleAssociations route53resolver:ListResolverRules route53resolver:PutFirewallRuleGroupPolicy route53resolver:PutResolverQueryLogConfigPolicy route53resolver:UpdateFirewallConfig route53resolver:UpdateFirewallDomains route53resolver:UpdateFirewallRule route53resolver:UpdateFirewallRuleGroupAssociation route53resolver:UpdateOutpostResolver route53resolver:UpdateResolverConfig route53resolver:UpdateResolverDnssecConfig route53resolver:UpdateResolverEndpoint route53resolver:UpdateResolverRule  | 
| rum |  rum:BatchCreateRumMetricDefinitions rum:BatchDeleteRumMetricDefinitions rum:BatchGetRumMetricDefinitions rum:CreateAppMonitor rum:DeleteAppMonitor rum:DeleteResourcePolicy rum:DeleteRumMetricsDestination rum:GetAppMonitor rum:GetAppMonitorData rum:GetResourcePolicy rum:ListAppMonitors rum:ListRumMetricsDestinations rum:PutResourcePolicy rum:PutRumMetricsDestination rum:UpdateAppMonitor rum:UpdateRumMetricDefinition  | 
| s3 |  s3:AssociateAccessGrantsIdentityCenter s3:CreateAccessGrant s3:CreateAccessGrantsInstance s3:CreateAccessGrantsLocation s3:CreateAccessPoint s3:CreateAccessPointForObjectLambda s3:CreateBucket s3:CreateBucketMetadataTableConfiguration s3:CreateJob s3:CreateMultiRegionAccessPoint s3:DeleteAccessGrant s3:DeleteAccessGrantsInstance s3:DeleteAccessGrantsInstanceResourcePolicy s3:DeleteAccessGrantsLocation s3:DeleteAccessPoint s3:DeleteAccessPointForObjectLambda s3:DeleteAccessPointPolicy s3:DeleteAccessPointPolicyForObjectLambda s3:DeleteBucket s3:DeleteBucketMetadataTableConfiguration s3:DeleteBucketPolicy s3:DeleteBucketWebsite s3:DeleteMultiRegionAccessPoint s3:DeleteStorageLensConfiguration s3:DescribeJob s3:DescribeMultiRegionAccessPointOperation s3:DissociateAccessGrantsIdentityCenter s3:GetAccelerateConfiguration s3:GetAccessGrant s3:GetAccessGrantsInstance s3:GetAccessGrantsInstanceForPrefix s3:GetAccessGrantsInstanceResourcePolicy s3:GetAccessGrantsLocation s3:GetAccessPoint s3:GetAccessPointConfigurationForObjectLambda s3:GetAccessPointForObjectLambda s3:GetAccessPointPolicy s3:GetAccessPointPolicyForObjectLambda s3:GetAccessPointPolicyStatus s3:GetAccessPointPolicyStatusForObjectLambda s3:GetAccountPublicAccessBlock s3:GetAnalyticsConfiguration s3:GetBucketAbac s3:GetBucketAcl s3:GetBucketCORS s3:GetBucketLocation s3:GetBucketLogging s3:GetBucketNotification s3:GetBucketObjectLockConfiguration s3:GetBucketOwnershipControls s3:GetBucketPolicy s3:GetBucketPolicyStatus s3:GetBucketPublicAccessBlock s3:GetBucketRequestPayment s3:GetBucketVersioning s3:GetBucketWebsite s3:GetDataAccess s3:GetEncryptionConfiguration s3:GetIntelligentTieringConfiguration s3:GetInventoryConfiguration s3:GetLifecycleConfiguration s3:GetMetricsConfiguration s3:GetMultiRegionAccessPoint s3:GetMultiRegionAccessPointPolicy s3:GetMultiRegionAccessPointPolicyStatus s3:GetMultiRegionAccessPointRoutes s3:GetReplicationConfiguration s3:GetStorageLensConfiguration s3:GetStorageLensDashboard s3:ListAccessGrants s3:ListAccessGrantsInstances s3:ListAccessGrantsLocations s3:ListAccessPoints s3:ListAccessPointsForObjectLambda s3:ListAllMyBuckets s3:ListBucketMultipartUploads s3:ListCallerAccessGrants s3:ListJobs s3:ListMultiRegionAccessPoints s3:ListStorageLensConfigurations s3:PutAccelerateConfiguration s3:PutAccessGrantsInstanceResourcePolicy s3:PutAccessPointConfigurationForObjectLambda s3:PutAccessPointPolicy s3:PutAccessPointPolicyForObjectLambda s3:PutAccountPublicAccessBlock s3:PutAnalyticsConfiguration s3:PutBucketAbac s3:PutBucketAcl s3:PutBucketCORS s3:PutBucketLogging s3:PutBucketNotification s3:PutBucketObjectLockConfiguration s3:PutBucketOwnershipControls s3:PutBucketPolicy s3:PutBucketPublicAccessBlock s3:PutBucketRequestPayment s3:PutBucketVersioning s3:PutBucketWebsite s3:PutEncryptionConfiguration s3:PutIntelligentTieringConfiguration s3:PutInventoryConfiguration s3:PutLifecycleConfiguration s3:PutMetricsConfiguration s3:PutMultiRegionAccessPointPolicy s3:PutReplicationConfiguration s3:PutStorageLensConfiguration s3:SubmitMultiRegionAccessPointRoutes s3:UpdateAccessGrantsLocation s3:UpdateBucketMetadataJournalTableConfiguration s3:UpdateJobPriority s3:UpdateJobStatus  | 
| s3-outposts |  s3-outposts:CreateEndpoint s3-outposts:DeleteEndpoint s3-outposts:ListEndpoints s3-outposts:ListOutpostsWithS3 s3-outposts:ListSharedEndpoints  | 
| sagemaker-geospatial |  sagemaker-geospatial:DeleteEarthObservationJob sagemaker-geospatial:DeleteVectorEnrichmentJob sagemaker-geospatial:ExportEarthObservationJob sagemaker-geospatial:ExportVectorEnrichmentJob sagemaker-geospatial:GetEarthObservationJob sagemaker-geospatial:GetRasterDataCollection sagemaker-geospatial:GetTile sagemaker-geospatial:GetVectorEnrichmentJob sagemaker-geospatial:ListEarthObservationJobs sagemaker-geospatial:ListRasterDataCollections sagemaker-geospatial:ListVectorEnrichmentJobs sagemaker-geospatial:SearchRasterDataCollection sagemaker-geospatial:StartEarthObservationJob sagemaker-geospatial:StartVectorEnrichmentJob sagemaker-geospatial:StopEarthObservationJob sagemaker-geospatial:StopVectorEnrichmentJob  | 
| savingsplans |  savingsplans:CreateSavingsPlan savingsplans:DeleteQueuedSavingsPlan savingsplans:DescribeSavingsPlanRates savingsplans:DescribeSavingsPlans savingsplans:DescribeSavingsPlansOfferingRates savingsplans:DescribeSavingsPlansOfferings savingsplans:ReturnSavingsPlan  | 
| schemas |  schemas:CreateDiscoverer schemas:CreateRegistry schemas:CreateSchema schemas:DeleteDiscoverer schemas:DeleteRegistry schemas:DeleteResourcePolicy schemas:DeleteSchema schemas:DeleteSchemaVersion schemas:DescribeCodeBinding schemas:DescribeDiscoverer schemas:DescribeRegistry schemas:DescribeSchema schemas:ExportSchema schemas:GetCodeBindingSource schemas:GetDiscoveredSchema schemas:GetResourcePolicy schemas:ListDiscoverers schemas:ListRegistries schemas:ListSchemaVersions schemas:ListSchemas schemas:PutCodeBinding schemas:PutResourcePolicy schemas:SearchSchemas schemas:StartDiscoverer schemas:StopDiscoverer schemas:UpdateDiscoverer schemas:UpdateRegistry schemas:UpdateSchema  | 
| sdb |  sdb:CreateDomain sdb:DeleteDomain sdb:DomainMetadata sdb:ListDomains  | 
| secretsmanager |  secretsmanager:CancelRotateSecret secretsmanager:CreateSecret secretsmanager:DeleteResourcePolicy secretsmanager:DeleteSecret secretsmanager:DescribeSecret secretsmanager:GetRandomPassword secretsmanager:GetResourcePolicy secretsmanager:GetSecretValue secretsmanager:ListSecretVersionIds secretsmanager:ListSecrets secretsmanager:PutResourcePolicy secretsmanager:PutSecretValue secretsmanager:RemoveRegionsFromReplication secretsmanager:ReplicateSecretToRegions secretsmanager:RestoreSecret secretsmanager:RotateSecret secretsmanager:StopReplicationToReplica secretsmanager:UpdateSecret secretsmanager:ValidateResourcePolicy  | 
| securityhub |  securityhub:AcceptAdministratorInvitation securityhub:AcceptInvitation securityhub:BatchDeleteAutomationRules securityhub:BatchDisableStandards securityhub:BatchEnableStandards securityhub:BatchGetAutomationRules securityhub:BatchGetConfigurationPolicyAssociations securityhub:BatchGetSecurityControls securityhub:BatchGetStandardsControlAssociations securityhub:BatchImportFindings securityhub:BatchUpdateAutomationRules securityhub:BatchUpdateFindings securityhub:BatchUpdateStandardsControlAssociations securityhub:ConnectorRegistrationsV2 securityhub:CreateActionTarget securityhub:CreateAggregatorV2 securityhub:CreateAutomationRule securityhub:CreateAutomationRuleV2 securityhub:CreateConfigurationPolicy securityhub:CreateConnectorV2 securityhub:CreateFindingAggregator securityhub:CreateInsight securityhub:CreateMembers securityhub:CreateTicketV2 securityhub:DeclineInvitations securityhub:DeleteActionTarget securityhub:DeleteAggregatorV2 securityhub:DeleteAutomationRuleV2 securityhub:DeleteConfigurationPolicy securityhub:DeleteConnectorV2 securityhub:DeleteFindingAggregator securityhub:DeleteInsight securityhub:DeleteInvitations securityhub:DeleteMembers securityhub:DescribeActionTargets securityhub:DescribeHub securityhub:DescribeOrganizationConfiguration securityhub:DescribeProducts securityhub:DescribeSecurityHubV2 securityhub:DescribeStandards securityhub:DisableImportFindingsForProduct securityhub:DisableOrganizationAdminAccount securityhub:DisableSecurityHub securityhub:DisableSecurityHubV2 securityhub:DisassociateFromAdministratorAccount securityhub:DisassociateFromMasterAccount securityhub:DisassociateMembers securityhub:EnableImportFindingsForProduct securityhub:EnableOrganizationAdminAccount securityhub:EnableSecurityHub securityhub:GetAdministratorAccount securityhub:GetAggregatorV2 securityhub:GetAutomationRuleV2 securityhub:GetConfigurationPolicy securityhub:GetConfigurationPolicyAssociation securityhub:GetConnectorV2 securityhub:GetEnabledStandards securityhub:GetFindingAggregator securityhub:GetFindingHistory securityhub:GetFindings securityhub:GetInsightResults securityhub:GetInsights securityhub:GetInvitationsCount securityhub:GetMasterAccount securityhub:GetMembers securityhub:GetSecurityControlDefinition securityhub:InviteMembers securityhub:ListAggregatorsV2 securityhub:ListAutomationRules securityhub:ListAutomationRulesV2 securityhub:ListConfigurationPolicies securityhub:ListConfigurationPolicyAssociations securityhub:ListConnectorsV2 securityhub:ListEnabledProductsForImport securityhub:ListFindingAggregators securityhub:ListInvitations securityhub:ListMembers securityhub:ListOrganizationAdminAccounts securityhub:ListSecurityControlDefinitions securityhub:ListStandardsControlAssociations securityhub:StartConfigurationPolicyAssociation securityhub:StartConfigurationPolicyDisassociation securityhub:UpdateActionTarget securityhub:UpdateAggregatorV2 securityhub:UpdateAutomationRuleV2 securityhub:UpdateConfigurationPolicy securityhub:UpdateConnectorV2 securityhub:UpdateFindingAggregator securityhub:UpdateFindings securityhub:UpdateInsight securityhub:UpdateOrganizationConfiguration securityhub:UpdateSecurityControl securityhub:UpdateSecurityHubConfiguration  | 
| securitylake |  securitylake:CreateAwsLogSource securitylake:CreateCustomLogSource securitylake:CreateDataLakeExceptionSubscription securitylake:CreateDataLakeOrganizationConfiguration securitylake:CreateSubscriber securitylake:CreateSubscriberNotification securitylake:DeleteAwsLogSource securitylake:DeleteCustomLogSource securitylake:DeleteDataLakeExceptionSubscription securitylake:DeleteDataLakeOrganizationConfiguration securitylake:DeleteSubscriber securitylake:DeleteSubscriberNotification securitylake:DeregisterDataLakeDelegatedAdministrator securitylake:GetDataLakeExceptionSubscription securitylake:GetDataLakeOrganizationConfiguration securitylake:GetDataLakeSources securitylake:GetSubscriber securitylake:ListDataLakes securitylake:ListLogSources securitylake:ListSubscribers securitylake:RegisterDataLakeDelegatedAdministrator securitylake:UpdateDataLakeExceptionSubscription securitylake:UpdateSubscriber securitylake:UpdateSubscriberNotification  | 
| serverlessrepo |  serverlessrepo:CreateApplication serverlessrepo:CreateApplicationVersion serverlessrepo:CreateCloudFormationChangeSet serverlessrepo:CreateCloudFormationTemplate serverlessrepo:DeleteApplication serverlessrepo:GetApplication serverlessrepo:GetApplicationPolicy serverlessrepo:GetCloudFormationTemplate serverlessrepo:ListApplicationDependencies serverlessrepo:ListApplicationVersions serverlessrepo:ListApplications serverlessrepo:PutApplicationPolicy serverlessrepo:UnshareApplication serverlessrepo:UpdateApplication  | 
| servicecatalog |  servicecatalog:AcceptPortfolioShare servicecatalog:AssociateBudgetWithResource servicecatalog:AssociatePrincipalWithPortfolio servicecatalog:AssociateProductWithPortfolio servicecatalog:AssociateServiceActionWithProvisioningArtifact servicecatalog:BatchAssociateServiceActionWithProvisioningArtifact servicecatalog:BatchDisassociateServiceActionFromProvisioningArtifact servicecatalog:CopyProduct servicecatalog:CreateAttributeGroup servicecatalog:CreateConstraint servicecatalog:CreatePortfolio servicecatalog:CreatePortfolioShare servicecatalog:CreateProduct servicecatalog:CreateProvisionedProductPlan servicecatalog:CreateProvisioningArtifact servicecatalog:CreateServiceAction servicecatalog:DeleteAttributeGroup servicecatalog:DeleteConstraint servicecatalog:DeletePortfolio servicecatalog:DeletePortfolioShare servicecatalog:DeleteProduct servicecatalog:DeleteProvisionedProductPlan servicecatalog:DeleteProvisioningArtifact servicecatalog:DeleteServiceAction servicecatalog:DescribeConstraint servicecatalog:DescribeCopyProductStatus servicecatalog:DescribePortfolio servicecatalog:DescribePortfolioShareStatus servicecatalog:DescribePortfolioShares servicecatalog:DescribeProduct servicecatalog:DescribeProductAsAdmin servicecatalog:DescribeProductView servicecatalog:DescribeProvisionedProduct servicecatalog:DescribeProvisionedProductPlan servicecatalog:DescribeProvisioningArtifact servicecatalog:DescribeProvisioningParameters servicecatalog:DescribeRecord servicecatalog:DescribeServiceAction servicecatalog:DescribeServiceActionExecutionParameters servicecatalog:DisableAWSOrganizationsAccess servicecatalog:DisassociateBudgetFromResource servicecatalog:DisassociatePrincipalFromPortfolio servicecatalog:DisassociateProductFromPortfolio servicecatalog:DisassociateServiceActionFromProvisioningArtifact servicecatalog:EnableAWSOrganizationsAccess servicecatalog:ExecuteProvisionedProductPlan servicecatalog:ExecuteProvisionedProductServiceAction servicecatalog:GetAWSOrganizationsAccessStatus servicecatalog:GetProvisionedProductOutputs servicecatalog:ImportAsProvisionedProduct servicecatalog:ListAcceptedPortfolioShares servicecatalog:ListAttributeGroups servicecatalog:ListBudgetsForResource servicecatalog:ListConstraintsForPortfolio servicecatalog:ListLaunchPaths servicecatalog:ListOrganizationPortfolioAccess servicecatalog:ListPortfolioAccess servicecatalog:ListPortfolios servicecatalog:ListPortfoliosForProduct servicecatalog:ListPrincipalsForPortfolio servicecatalog:ListProvisionedProductPlans servicecatalog:ListProvisioningArtifacts servicecatalog:ListProvisioningArtifactsForServiceAction servicecatalog:ListRecordHistory servicecatalog:ListServiceActions servicecatalog:ListServiceActionsForProvisioningArtifact servicecatalog:ListStackInstancesForProvisionedProduct servicecatalog:NotifyProvisionProductEngineWorkflowResult servicecatalog:NotifyTerminateProvisionedProductEngineWorkflowResult servicecatalog:NotifyUpdateProvisionedProductEngineWorkflowResult servicecatalog:ProvisionProduct servicecatalog:RejectPortfolioShare servicecatalog:ScanProvisionedProducts servicecatalog:SearchProducts servicecatalog:SearchProductsAsAdmin servicecatalog:SearchProvisionedProducts servicecatalog:TerminateProvisionedProduct servicecatalog:UpdateConstraint servicecatalog:UpdatePortfolio servicecatalog:UpdatePortfolioShare servicecatalog:UpdateProduct servicecatalog:UpdateProvisionedProduct servicecatalog:UpdateProvisionedProductProperties servicecatalog:UpdateProvisioningArtifact servicecatalog:UpdateServiceAction  | 
| servicediscovery |  servicediscovery:CreateHttpNamespace servicediscovery:CreatePrivateDnsNamespace servicediscovery:CreatePublicDnsNamespace servicediscovery:CreateService servicediscovery:DeleteNamespace servicediscovery:DeleteService servicediscovery:DeleteServiceAttributes servicediscovery:DeregisterInstance servicediscovery:GetInstance servicediscovery:GetInstancesHealthStatus servicediscovery:GetNamespace servicediscovery:GetOperation servicediscovery:GetService servicediscovery:ListInstances servicediscovery:ListNamespaces servicediscovery:ListOperations servicediscovery:ListServices servicediscovery:RegisterInstance servicediscovery:UpdateHttpNamespace servicediscovery:UpdateInstanceCustomHealthStatus servicediscovery:UpdatePrivateDnsNamespace servicediscovery:UpdatePublicDnsNamespace servicediscovery:UpdateService servicediscovery:UpdateServiceAttributes  | 
| servicequotas |  servicequotas:AssociateServiceQuotaTemplate servicequotas:CreateSupportCase servicequotas:DeleteServiceQuotaIncreaseRequestFromTemplate servicequotas:DisassociateServiceQuotaTemplate servicequotas:GetAWSDefaultServiceQuota servicequotas:GetAssociationForServiceQuotaTemplate servicequotas:GetAutoManagementConfiguration servicequotas:GetQuotaUtilizationReport servicequotas:GetRequestedServiceQuotaChange servicequotas:GetServiceQuota servicequotas:GetServiceQuotaIncreaseRequestFromTemplate servicequotas:ListAWSDefaultServiceQuotas servicequotas:ListRequestedServiceQuotaChangeHistory servicequotas:ListRequestedServiceQuotaChangeHistoryByQuota servicequotas:ListServiceQuotaIncreaseRequestsInTemplate servicequotas:ListServiceQuotas servicequotas:ListServices servicequotas:PutServiceQuotaIncreaseRequestIntoTemplate servicequotas:RequestServiceQuotaIncrease servicequotas:StartAutoManagement servicequotas:StartQuotaUtilizationReport servicequotas:StopAutoManagement servicequotas:UpdateAutoManagement  | 
| ses |  ses:BatchGetMetricData ses:CloneReceiptRuleSet ses:CreateAddonInstance ses:CreateAddonSubscription ses:CreateAddressList ses:CreateAddressListImportJob ses:CreateArchive ses:CreateConfigurationSet ses:CreateConfigurationSetEventDestination ses:CreateConfigurationSetTrackingOptions ses:CreateContact ses:CreateContactList ses:CreateCustomVerificationEmailTemplate ses:CreateDedicatedIpPool ses:CreateDeliverabilityTestReport ses:CreateEmailIdentity ses:CreateEmailIdentityPolicy ses:CreateEmailTemplate ses:CreateImportJob ses:CreateIngressPoint ses:CreateMultiRegionEndpoint ses:CreateReceiptFilter ses:CreateReceiptRule ses:CreateReceiptRuleSet ses:CreateRelay ses:CreateRuleSet ses:CreateTemplate ses:CreateTenant ses:CreateTenantResourceAssociation ses:CreateTrafficPolicy ses:DeleteAddonInstance ses:DeleteAddonSubscription ses:DeleteAddressList ses:DeleteArchive ses:DeleteConfigurationSet ses:DeleteConfigurationSetEventDestination ses:DeleteConfigurationSetTrackingOptions ses:DeleteContact ses:DeleteContactList ses:DeleteCustomVerificationEmailTemplate ses:DeleteDedicatedIpPool ses:DeleteEmailIdentity ses:DeleteEmailIdentityPolicy ses:DeleteEmailTemplate ses:DeleteIdentity ses:DeleteIdentityPolicy ses:DeleteIngressPoint ses:DeleteMultiRegionEndpoint ses:DeleteReceiptFilter ses:DeleteReceiptRule ses:DeleteReceiptRuleSet ses:DeleteRelay ses:DeleteRuleSet ses:DeleteSuppressedDestination ses:DeleteTemplate ses:DeleteTenant ses:DeleteTenantResourceAssociation ses:DeleteTrafficPolicy ses:DeleteVerifiedEmailAddress ses:DeregisterMemberFromAddressList ses:DescribeActiveReceiptRuleSet ses:DescribeConfigurationSet ses:DescribeReceiptRule ses:DescribeReceiptRuleSet ses:GetAccount ses:GetAccountSendingEnabled ses:GetAddonInstance ses:GetAddonSubscription ses:GetAddressList ses:GetArchive ses:GetArchiveExport ses:GetArchiveMessage ses:GetArchiveMessageContent ses:GetArchiveSearch ses:GetArchiveSearchResults ses:GetBlacklistReports ses:GetConfigurationSet ses:GetConfigurationSetEventDestinations ses:GetContact ses:GetContactList ses:GetCustomVerificationEmailTemplate ses:GetDedicatedIp ses:GetDedicatedIpPool ses:GetDedicatedIps ses:GetDeliverabilityDashboardOptions ses:GetDeliverabilityTestReport ses:GetDomainDeliverabilityCampaign ses:GetDomainStatisticsReport ses:GetEmailAddressInsights ses:GetEmailIdentity ses:GetEmailIdentityPolicies ses:GetEmailTemplate ses:GetIdentityDkimAttributes ses:GetIdentityMailFromDomainAttributes ses:GetIdentityNotificationAttributes ses:GetIdentityPolicies ses:GetIdentityVerificationAttributes ses:GetImportJob ses:GetIngressPoint ses:GetMemberOfAddressList ses:GetMessageInsights ses:GetMultiRegionEndpoint ses:GetRelay ses:GetRuleSet ses:GetSendQuota ses:GetSendStatistics ses:GetSuppressedDestination ses:GetTemplate ses:GetTenant ses:GetTrafficPolicy ses:ListAddonInstances ses:ListAddonSubscriptions ses:ListAddressListImportJobs ses:ListAddressLists ses:ListArchiveExports ses:ListArchiveSearches ses:ListArchives ses:ListConfigurationSets ses:ListContactLists ses:ListContacts ses:ListCustomVerificationEmailTemplates ses:ListDedicatedIpPools ses:ListDeliverabilityTestReports ses:ListDomainDeliverabilityCampaigns ses:ListEmailIdentities ses:ListEmailTemplates ses:ListExportJobs ses:ListIdentities ses:ListIdentityPolicies ses:ListImportJobs ses:ListIngressPoints ses:ListMembersOfAddressList ses:ListMultiRegionEndpoints ses:ListReceiptFilters ses:ListReceiptRuleSets ses:ListRecommendations ses:ListRelays ses:ListReputationEntities ses:ListResourceTenants ses:ListRuleSets ses:ListSuppressedDestinations ses:ListTemplates ses:ListTenantResources ses:ListTenants ses:ListTrafficPolicies ses:ListVerifiedEmailAddresses ses:PutAccountDedicatedIpWarmupAttributes ses:PutAccountDetails ses:PutAccountSendingAttributes ses:PutAccountSuppressionAttributes ses:PutAccountVdmAttributes ses:PutConfigurationSetArchivingOptions ses:PutConfigurationSetDeliveryOptions ses:PutConfigurationSetReputationOptions ses:PutConfigurationSetSendingOptions ses:PutConfigurationSetSuppressionOptions ses:PutConfigurationSetTrackingOptions ses:PutConfigurationSetVdmOptions ses:PutDedicatedIpInPool ses:PutDedicatedIpPoolScalingAttributes ses:PutDedicatedIpWarmupAttributes ses:PutDeliverabilityDashboardOption ses:PutEmailIdentityConfigurationSetAttributes ses:PutEmailIdentityDkimAttributes ses:PutEmailIdentityDkimSigningAttributes ses:PutEmailIdentityFeedbackAttributes ses:PutEmailIdentityMailFromAttributes ses:PutIdentityPolicy ses:PutSuppressedDestination ses:RegisterMemberToAddressList ses:ReorderReceiptRuleSet ses:SendBounce ses:SendCustomVerificationEmail ses:SetActiveReceiptRuleSet ses:SetIdentityDkimEnabled ses:SetIdentityFeedbackForwardingEnabled ses:SetIdentityHeadersInNotificationsEnabled ses:SetIdentityMailFromDomain ses:SetIdentityNotificationTopic ses:SetReceiptRulePosition ses:StartArchiveExport ses:StartArchiveSearch ses:StopArchiveExport ses:StopArchiveSearch ses:TestRenderEmailTemplate ses:TestRenderTemplate ses:UpdateAccountSendingEnabled ses:UpdateArchive ses:UpdateConfigurationSetEventDestination ses:UpdateConfigurationSetReputationMetricsEnabled ses:UpdateConfigurationSetSendingEnabled ses:UpdateConfigurationSetTrackingOptions ses:UpdateContact ses:UpdateContactList ses:UpdateCustomVerificationEmailTemplate ses:UpdateEmailIdentityPolicy ses:UpdateEmailTemplate ses:UpdateIngressPoint ses:UpdateReceiptRule ses:UpdateRelay ses:UpdateRuleSet ses:UpdateTemplate ses:UpdateTrafficPolicy ses:VerifyDomainDkim ses:VerifyDomainIdentity ses:VerifyEmailAddress ses:VerifyEmailIdentity  | 
| shield |  shield:AssociateDRTLogBucket shield:AssociateHealthCheck shield:AssociateProactiveEngagementDetails shield:CreateProtection shield:CreateProtectionGroup shield:CreateSubscription shield:DeleteProtection shield:DeleteProtectionGroup shield:DeleteSubscription shield:DescribeAttack shield:DescribeAttackStatistics shield:DescribeDRTAccess shield:DescribeEmergencyContactSettings shield:DescribeProtection shield:DescribeProtectionGroup shield:DescribeSubscription shield:DisableApplicationLayerAutomaticResponse shield:DisableProactiveEngagement shield:DisassociateDRTLogBucket shield:DisassociateDRTRole shield:DisassociateHealthCheck shield:EnableApplicationLayerAutomaticResponse shield:EnableProactiveEngagement shield:GetSubscriptionState shield:ListAttacks shield:ListProtectionGroups shield:ListProtections shield:ListResourcesInProtectionGroup shield:UpdateApplicationLayerAutomaticResponse shield:UpdateEmergencyContactSettings shield:UpdateProtectionGroup shield:UpdateSubscription  | 
| signer |  signer:AddProfilePermission signer:CancelSigningProfile signer:DescribeSigningJob signer:GetSigningPlatform signer:GetSigningProfile signer:ListProfilePermissions signer:ListSigningJobs signer:ListSigningPlatforms signer:ListSigningProfiles signer:PutSigningProfile signer:RemoveProfilePermission signer:RevokeSignature signer:RevokeSigningProfile signer:SignPayload signer:StartSigningJob  | 
| simspaceweaver |  simspaceweaver:CreateSnapshot simspaceweaver:DeleteApp simspaceweaver:DeleteSimulation simspaceweaver:DescribeApp simspaceweaver:DescribeSimulation simspaceweaver:ListApps simspaceweaver:ListSimulations simspaceweaver:StartApp simspaceweaver:StartClock simspaceweaver:StartSimulation simspaceweaver:StopApp simspaceweaver:StopClock simspaceweaver:StopSimulation  | 
| sms |  sms:CreateApp sms:CreateReplicationJob sms:DeleteApp sms:DeleteAppLaunchConfiguration sms:DeleteAppReplicationConfiguration sms:DeleteAppValidationConfiguration sms:DeleteReplicationJob sms:DeleteServerCatalog sms:DisassociateConnector sms:GenerateChangeSet sms:GenerateTemplate sms:GetApp sms:GetAppLaunchConfiguration sms:GetAppReplicationConfiguration sms:GetAppValidationConfiguration sms:GetAppValidationOutput sms:GetConnectors sms:GetReplicationJobs sms:GetReplicationRuns sms:GetServers sms:ImportAppCatalog sms:ImportServerCatalog sms:LaunchApp sms:ListApps sms:NotifyAppValidationOutput sms:PutAppLaunchConfiguration sms:PutAppReplicationConfiguration sms:PutAppValidationConfiguration sms:StartAppReplication sms:StartOnDemandAppReplication sms:StartOnDemandReplicationRun sms:StopAppReplication sms:TerminateApp sms:UpdateApp sms:UpdateReplicationJob  | 
| sms-voice |  sms-voice:AssociateProtectConfiguration sms-voice:CreateConfigurationSet sms-voice:CreateConfigurationSetEventDestination sms-voice:CreateEventDestination sms-voice:CreateOptOutList sms-voice:CreatePool sms-voice:CreateProtectConfiguration sms-voice:CreateRegistration sms-voice:CreateRegistrationAssociation sms-voice:CreateRegistrationAttachment sms-voice:CreateRegistrationVersion sms-voice:CreateVerifiedDestinationNumber sms-voice:DeleteAccountDefaultProtectConfiguration sms-voice:DeleteConfigurationSet sms-voice:DeleteConfigurationSetEventDestination sms-voice:DeleteDefaultMessageType sms-voice:DeleteDefaultSenderId sms-voice:DeleteEventDestination sms-voice:DeleteKeyword sms-voice:DeleteMediaMessageSpendLimitOverride sms-voice:DeleteOptOutList sms-voice:DeleteOptedOutNumber sms-voice:DeletePool sms-voice:DeleteProtectConfiguration sms-voice:DeleteProtectConfigurationRuleSetNumberOverride sms-voice:DeleteRegistration sms-voice:DeleteRegistrationAttachment sms-voice:DeleteResourcePolicy sms-voice:DeleteTextMessageSpendLimitOverride sms-voice:DeleteVerifiedDestinationNumber sms-voice:DeleteVoiceMessageSpendLimitOverride sms-voice:DescribeAccountAttributes sms-voice:DescribeAccountLimits sms-voice:DescribeConfigurationSets sms-voice:DescribeKeywords sms-voice:DescribeOptOutLists sms-voice:DescribeOptedOutNumbers sms-voice:DescribePhoneNumbers sms-voice:DescribePools sms-voice:DescribeProtectConfigurations sms-voice:DescribeRegistrationAttachments sms-voice:DescribeRegistrationFieldDefinitions sms-voice:DescribeRegistrationFieldValues sms-voice:DescribeRegistrationSectionDefinitions sms-voice:DescribeRegistrationTypeDefinitions sms-voice:DescribeRegistrationVersions sms-voice:DescribeRegistrations sms-voice:DescribeSenderIds sms-voice:DescribeSpendLimits sms-voice:DescribeVerifiedDestinationNumbers sms-voice:DisassociateOriginationIdentity sms-voice:DisassociateProtectConfiguration sms-voice:DiscardRegistrationVersion sms-voice:GetConfigurationSetEventDestinations sms-voice:GetProtectConfigurationCountryRuleSet sms-voice:GetResourcePolicy sms-voice:ListConfigurationSets sms-voice:ListPoolOriginationIdentities sms-voice:ListProtectConfigurationRuleSetNumberOverrides sms-voice:ListRegistrationAssociations sms-voice:PutKeyword sms-voice:PutOptedOutNumber sms-voice:PutProtectConfigurationRuleSetNumberOverride sms-voice:PutResourcePolicy sms-voice:ReleasePhoneNumber sms-voice:ReleaseSenderId sms-voice:RequestPhoneNumber sms-voice:RequestSenderId sms-voice:SendDestinationNumberVerificationCode sms-voice:SetAccountDefaultProtectConfiguration sms-voice:SetDefaultMessageFeedbackEnabled sms-voice:SetDefaultMessageType sms-voice:SetDefaultSenderId sms-voice:SetMediaMessageSpendLimitOverride sms-voice:SetTextMessageSpendLimitOverride sms-voice:SetVoiceMessageSpendLimitOverride sms-voice:SubmitRegistrationVersion sms-voice:UpdateConfigurationSetEventDestination sms-voice:UpdateEventDestination sms-voice:UpdatePhoneNumber sms-voice:UpdatePool sms-voice:UpdateProtectConfiguration sms-voice:UpdateProtectConfigurationCountryRuleSet sms-voice:UpdateSenderId  | 
| snowball |  snowball:CancelCluster snowball:CancelJob snowball:CreateAddress snowball:CreateCluster snowball:CreateJob snowball:CreateLongTermPricing snowball:CreateReturnShippingLabel snowball:DescribeAddress snowball:DescribeAddresses snowball:DescribeCluster snowball:DescribeJob snowball:DescribeReturnShippingLabel snowball:GetJobManifest snowball:GetJobUnlockCode snowball:GetSnowballUsage snowball:GetSoftwareUpdates snowball:ListClusterJobs snowball:ListClusters snowball:ListCompatibleImages snowball:ListJobs snowball:ListLongTermPricing snowball:ListPickupLocations snowball:ListServiceVersions snowball:UpdateCluster snowball:UpdateJob snowball:UpdateJobShipmentState snowball:UpdateLongTermPricing  | 
| sqs |  sqs:AddPermission sqs:CancelMessageMoveTask sqs:CreateQueue sqs:DeleteQueue sqs:PurgeQueue sqs:RemovePermission sqs:SetQueueAttributes  | 
| ssm |  ssm:AssociateOpsItemRelatedItem ssm:CancelCommand ssm:CancelMaintenanceWindowExecution ssm:CreateActivation ssm:CreateAssociation ssm:CreateAssociationBatch ssm:CreateDocument ssm:CreateMaintenanceWindow ssm:CreateOpsItem ssm:CreateOpsMetadata ssm:CreatePatchBaseline ssm:CreateResourceDataSync ssm:DeleteActivation ssm:DeleteAssociation ssm:DeleteDocument ssm:DeleteInventory ssm:DeleteMaintenanceWindow ssm:DeleteOpsItem ssm:DeleteOpsMetadata ssm:DeleteParameter ssm:DeleteParameters ssm:DeletePatchBaseline ssm:DeleteResourceDataSync ssm:DeleteResourcePolicy ssm:DeregisterManagedInstance ssm:DeregisterPatchBaselineForPatchGroup ssm:DeregisterTargetFromMaintenanceWindow ssm:DeregisterTaskFromMaintenanceWindow ssm:DescribeActivations ssm:DescribeAssociation ssm:DescribeAssociationExecutionTargets ssm:DescribeAssociationExecutions ssm:DescribeAutomationExecutions ssm:DescribeAutomationStepExecutions ssm:DescribeAvailablePatches ssm:DescribeDocument ssm:DescribeDocumentParameters ssm:DescribeDocumentPermission ssm:DescribeEffectiveInstanceAssociations ssm:DescribeEffectivePatchesForPatchBaseline ssm:DescribeInstanceAssociationsStatus ssm:DescribeInstanceInformation ssm:DescribeInstancePatchStates ssm:DescribeInstancePatchStatesForPatchGroup ssm:DescribeInstancePatches ssm:DescribeInstanceProperties ssm:DescribeInventoryDeletions ssm:DescribeMaintenanceWindowExecutionTaskInvocations ssm:DescribeMaintenanceWindowExecutionTasks ssm:DescribeMaintenanceWindowExecutions ssm:DescribeMaintenanceWindowSchedule ssm:DescribeMaintenanceWindowTargets ssm:DescribeMaintenanceWindowTasks ssm:DescribeMaintenanceWindows ssm:DescribeMaintenanceWindowsForTarget ssm:DescribeOpsItems ssm:DescribeParameters ssm:DescribePatchBaselines ssm:DescribePatchGroupState ssm:DescribePatchGroups ssm:DescribePatchProperties ssm:DescribeSessions ssm:DisassociateOpsItemRelatedItem ssm:GetAccessToken ssm:GetAutomationExecution ssm:GetCalendarState ssm:GetCommandInvocation ssm:GetConnectionStatus ssm:GetDefaultPatchBaseline ssm:GetDeployablePatchSnapshotForInstance ssm:GetDocument ssm:GetExecutionPreview ssm:GetInventory ssm:GetInventorySchema ssm:GetMaintenanceWindow ssm:GetMaintenanceWindowExecution ssm:GetMaintenanceWindowExecutionTask ssm:GetMaintenanceWindowExecutionTaskInvocation ssm:GetMaintenanceWindowTask ssm:GetOpsItem ssm:GetOpsMetadata ssm:GetOpsSummary ssm:GetParameter ssm:GetParameterHistory ssm:GetParameters ssm:GetParametersByPath ssm:GetPatchBaseline ssm:GetPatchBaselineForPatchGroup ssm:GetResourcePolicies ssm:GetServiceSetting ssm:LabelParameterVersion ssm:ListAssociationVersions ssm:ListAssociations ssm:ListCommandInvocations ssm:ListCommands ssm:ListComplianceItems ssm:ListComplianceSummaries ssm:ListDocumentMetadataHistory ssm:ListDocumentVersions ssm:ListDocuments ssm:ListInstanceAssociations ssm:ListInventoryEntries ssm:ListNodes ssm:ListNodesSummary ssm:ListOpsItemEvents ssm:ListOpsItemRelatedItems ssm:ListOpsMetadata ssm:ListResourceComplianceSummaries ssm:ListResourceDataSync ssm:ModifyDocumentPermission ssm:PutComplianceItems ssm:PutInventory ssm:PutParameter ssm:PutResourcePolicy ssm:RegisterDefaultPatchBaseline ssm:RegisterManagedInstance ssm:RegisterPatchBaselineForPatchGroup ssm:RegisterTargetWithMaintenanceWindow ssm:RegisterTaskWithMaintenanceWindow ssm:ResetServiceSetting ssm:ResumeSession ssm:SendAutomationSignal ssm:SendCommand ssm:StartAssociationsOnce ssm:StartAutomationExecution ssm:StartChangeRequestExecution ssm:StartSession ssm:StopAutomationExecution ssm:TerminateSession ssm:UnlabelParameterVersion ssm:UpdateAssociation ssm:UpdateAssociationStatus ssm:UpdateDocument ssm:UpdateDocumentDefaultVersion ssm:UpdateDocumentMetadata ssm:UpdateInstanceInformation ssm:UpdateMaintenanceWindow ssm:UpdateMaintenanceWindowTarget ssm:UpdateMaintenanceWindowTask ssm:UpdateManagedInstanceRole ssm:UpdateOpsItem ssm:UpdateOpsMetadata ssm:UpdatePatchBaseline ssm:UpdateResourceDataSync ssm:UpdateServiceSetting  | 
| ssm-incidents |  ssm-incidents:BatchGetIncidentFindings ssm-incidents:CreateReplicationSet ssm-incidents:CreateResponsePlan ssm-incidents:CreateTimelineEvent ssm-incidents:DeleteIncidentRecord ssm-incidents:DeleteReplicationSet ssm-incidents:DeleteResourcePolicy ssm-incidents:DeleteResponsePlan ssm-incidents:DeleteTimelineEvent ssm-incidents:GetIncidentRecord ssm-incidents:GetReplicationSet ssm-incidents:GetResourcePolicies ssm-incidents:GetResponsePlan ssm-incidents:GetTimelineEvent ssm-incidents:ListIncidentFindings ssm-incidents:ListIncidentRecords ssm-incidents:ListRelatedItems ssm-incidents:ListReplicationSets ssm-incidents:ListResponsePlans ssm-incidents:ListTimelineEvents ssm-incidents:PutResourcePolicy ssm-incidents:StartIncident ssm-incidents:UpdateDeletionProtection ssm-incidents:UpdateIncidentRecord ssm-incidents:UpdateRelatedItems ssm-incidents:UpdateReplicationSet ssm-incidents:UpdateResponsePlan ssm-incidents:UpdateTimelineEvent  | 
| ssm-sap |  ssm-sap:BackupDatabase ssm-sap:DeleteResourcePermission ssm-sap:DeregisterApplication ssm-sap:GetApplication ssm-sap:GetComponent ssm-sap:GetConfigurationCheckOperation ssm-sap:GetDatabase ssm-sap:GetOperation ssm-sap:GetResourcePermission ssm-sap:ListApplications ssm-sap:ListComponents ssm-sap:ListConfigurationCheckDefinitions ssm-sap:ListConfigurationCheckOperations ssm-sap:ListDatabases ssm-sap:ListOperationEvents ssm-sap:ListOperations ssm-sap:ListSubCheckResults ssm-sap:ListSubCheckRuleResults ssm-sap:PutResourcePermission ssm-sap:RegisterApplication ssm-sap:RestoreDatabase ssm-sap:StartApplication ssm-sap:StartApplicationRefresh ssm-sap:StartConfigurationChecks ssm-sap:StopApplication ssm-sap:UpdateApplicationSettings ssm-sap:UpdateHANABackupSettings  | 
| states |  states:CreateActivity states:CreateStateMachine states:CreateStateMachineAlias states:DeleteActivity states:DeleteStateMachine states:DeleteStateMachineAlias states:DeleteStateMachineVersion states:DescribeActivity states:DescribeExecution states:DescribeMapRun states:DescribeStateMachine states:DescribeStateMachineAlias states:DescribeStateMachineForExecution states:GetExecutionHistory states:ListActivities states:ListExecutions states:ListMapRuns states:ListStateMachineAliases states:ListStateMachineVersions states:ListStateMachines states:SendTaskFailure states:SendTaskHeartbeat states:SendTaskSuccess states:StartExecution states:StopExecution states:UpdateMapRun states:UpdateStateMachine states:UpdateStateMachineAlias states:ValidateStateMachineDefinition  | 
| sts |  sts:AssumeRole sts:AssumeRoleWithSAML sts:AssumeRoleWithWebIdentity sts:DecodeAuthorizationMessage sts:GetAccessKeyInfo sts:GetCallerIdentity sts:GetFederationToken sts:GetSessionToken sts:GetWebIdentityToken  | 
| swf |  swf:DeleteActivityType swf:DeleteWorkflowType swf:DeprecateActivityType swf:DeprecateDomain swf:DeprecateWorkflowType swf:DescribeActivityType swf:DescribeDomain swf:DescribeWorkflowType swf:ListActivityTypes swf:ListDomains swf:ListWorkflowTypes swf:RegisterActivityType swf:RegisterDomain swf:RegisterWorkflowType swf:UndeprecateActivityType swf:UndeprecateDomain swf:UndeprecateWorkflowType  | 
| synthetics |  synthetics:AssociateResource synthetics:CreateCanary synthetics:CreateGroup synthetics:DeleteCanary synthetics:DeleteGroup synthetics:DescribeCanaries synthetics:DescribeCanariesLastRun synthetics:DescribeRuntimeVersions synthetics:DisassociateResource synthetics:GetCanary synthetics:GetCanaryRuns synthetics:GetGroup synthetics:ListAssociatedGroups synthetics:ListGroupResources synthetics:ListGroups synthetics:StartCanary synthetics:StartCanaryDryRun synthetics:StopCanary synthetics:UpdateCanary  | 
| 태그 |  tag:DescribeReportCreation tag:GetComplianceSummary tag:GetResources tag:StartReportCreation  | 
| textract |  textract:AnalyzeDocument textract:AnalyzeExpense textract:AnalyzeID textract:CreateAdapter textract:CreateAdapterVersion textract:DeleteAdapter textract:DeleteAdapterVersion textract:DetectDocumentText textract:GetAdapter textract:GetAdapterVersion textract:GetDocumentAnalysis textract:GetDocumentTextDetection textract:GetExpenseAnalysis textract:GetLendingAnalysis textract:GetLendingAnalysisSummary textract:ListAdapterVersions textract:ListAdapters textract:StartDocumentAnalysis textract:StartDocumentTextDetection textract:StartExpenseAnalysis textract:StartLendingAnalysis textract:UpdateAdapter  | 
| timestream |  timestream:CancelQuery timestream:CreateDatabase timestream:CreateScheduledQuery timestream:CreateTable timestream:DeleteDatabase timestream:DeleteScheduledQuery timestream:DeleteTable timestream:DescribeAccountSettings timestream:DescribeDatabase timestream:DescribeScheduledQuery timestream:DescribeTable timestream:ExecuteScheduledQuery timestream:ListBatchLoadTasks timestream:ListDatabases timestream:ListScheduledQueries timestream:ListTables timestream:PrepareQuery timestream:UpdateAccountSettings timestream:UpdateDatabase timestream:UpdateScheduledQuery timestream:UpdateTable  | 
| tnb |  tnb:CancelSolNetworkOperation tnb:CreateSolFunctionPackage tnb:CreateSolNetworkInstance tnb:CreateSolNetworkPackage tnb:DeleteSolFunctionPackage tnb:DeleteSolNetworkInstance tnb:DeleteSolNetworkPackage tnb:GetSolFunctionInstance tnb:GetSolFunctionPackage tnb:GetSolFunctionPackageContent tnb:GetSolFunctionPackageDescriptor tnb:GetSolNetworkInstance tnb:GetSolNetworkOperation tnb:GetSolNetworkPackage tnb:GetSolNetworkPackageContent tnb:GetSolNetworkPackageDescriptor tnb:InstantiateSolNetworkInstance tnb:ListSolFunctionInstances tnb:ListSolFunctionPackages tnb:ListSolNetworkInstances tnb:ListSolNetworkOperations tnb:ListSolNetworkPackages tnb:PutSolFunctionPackageContent tnb:PutSolNetworkPackageContent tnb:TerminateSolNetworkInstance tnb:UpdateSolFunctionPackage tnb:UpdateSolNetworkInstance tnb:UpdateSolNetworkPackage tnb:ValidateSolFunctionPackageContent tnb:ValidateSolNetworkPackageContent  | 
| transcribe |  transcribe:CreateCallAnalyticsCategory transcribe:CreateLanguageModel transcribe:CreateMedicalVocabulary transcribe:CreateVocabulary transcribe:CreateVocabularyFilter transcribe:DeleteCallAnalyticsCategory transcribe:DeleteCallAnalyticsJob transcribe:DeleteLanguageModel transcribe:DeleteMedicalScribeJob transcribe:DeleteMedicalTranscriptionJob transcribe:DeleteMedicalVocabulary transcribe:DeleteTranscriptionJob transcribe:DeleteVocabulary transcribe:DeleteVocabularyFilter transcribe:DescribeLanguageModel transcribe:GetCallAnalyticsCategory transcribe:GetCallAnalyticsJob transcribe:GetMedicalScribeJob transcribe:GetMedicalTranscriptionJob transcribe:GetMedicalVocabulary transcribe:GetTranscriptionJob transcribe:GetVocabulary transcribe:GetVocabularyFilter transcribe:ListCallAnalyticsCategories transcribe:ListCallAnalyticsJobs transcribe:ListLanguageModels transcribe:ListMedicalScribeJobs transcribe:ListMedicalTranscriptionJobs transcribe:ListMedicalVocabularies transcribe:ListTranscriptionJobs transcribe:ListVocabularies transcribe:ListVocabularyFilters transcribe:StartCallAnalyticsJob transcribe:StartCallAnalyticsStreamTranscription transcribe:StartCallAnalyticsStreamTranscriptionWebSocket transcribe:StartMedicalScribeJob transcribe:StartMedicalStreamTranscription transcribe:StartMedicalStreamTranscriptionWebSocket transcribe:StartMedicalTranscriptionJob transcribe:StartStreamTranscription transcribe:StartStreamTranscriptionWebSocket transcribe:StartTranscriptionJob transcribe:UpdateCallAnalyticsCategory transcribe:UpdateMedicalVocabulary transcribe:UpdateVocabulary transcribe:UpdateVocabularyFilter  | 
| 전송 |  transfer:CreateAccess transfer:CreateAgreement transfer:CreateConnector transfer:CreateProfile transfer:CreateServer transfer:CreateUser transfer:CreateWebApp transfer:CreateWorkflow transfer:DeleteAccess transfer:DeleteAgreement transfer:DeleteCertificate transfer:DeleteConnector transfer:DeleteHostKey transfer:DeleteProfile transfer:DeleteServer transfer:DeleteSshPublicKey transfer:DeleteUser transfer:DeleteWebApp transfer:DeleteWebAppCustomization transfer:DeleteWorkflow transfer:DescribeAccess transfer:DescribeAgreement transfer:DescribeCertificate transfer:DescribeConnector transfer:DescribeExecution transfer:DescribeHostKey transfer:DescribeProfile transfer:DescribeSecurityPolicy transfer:DescribeServer transfer:DescribeUser transfer:DescribeWebApp transfer:DescribeWebAppCustomization transfer:DescribeWorkflow transfer:ImportCertificate transfer:ImportHostKey transfer:ImportSshPublicKey transfer:ListAccesses transfer:ListCertificates transfer:ListConnectors transfer:ListExecutions transfer:ListFileTransferResults transfer:ListHostKeys transfer:ListProfiles transfer:ListSecurityPolicies transfer:ListServers transfer:ListUsers transfer:ListWebApps transfer:ListWorkflows transfer:SendWorkflowStepState transfer:StartDirectoryListing transfer:StartFileTransfer transfer:StartRemoteDelete transfer:StartRemoteMove transfer:StartServer transfer:StopServer transfer:TestConnection transfer:TestIdentityProvider transfer:UpdateAccess transfer:UpdateAgreement transfer:UpdateCertificate transfer:UpdateConnector transfer:UpdateHostKey transfer:UpdateProfile transfer:UpdateServer transfer:UpdateUser transfer:UpdateWebApp transfer:UpdateWebAppCustomization  | 
| translate |  translate:CreateParallelData translate:DeleteParallelData translate:DeleteTerminology translate:DescribeTextTranslationJob translate:GetParallelData translate:GetTerminology translate:ImportTerminology translate:ListLanguages translate:ListParallelData translate:ListTerminologies translate:ListTextTranslationJobs translate:StartTextTranslationJob translate:StopTextTranslationJob translate:TranslateDocument translate:TranslateText translate:UpdateParallelData  | 
| voiceid |  voiceid:AssociateFraudster voiceid:CreateDomain voiceid:CreateWatchlist voiceid:DeleteDomain voiceid:DeleteFraudster voiceid:DeleteSpeaker voiceid:DeleteWatchlist voiceid:DescribeDomain voiceid:DescribeFraudster voiceid:DescribeFraudsterRegistrationJob voiceid:DescribeSpeaker voiceid:DescribeSpeakerEnrollmentJob voiceid:DescribeWatchlist voiceid:DisassociateFraudster voiceid:EvaluateSession voiceid:ListDomains voiceid:ListFraudsterRegistrationJobs voiceid:ListFraudsters voiceid:ListSpeakerEnrollmentJobs voiceid:ListSpeakers voiceid:ListWatchlists voiceid:OptOutSpeaker voiceid:StartFraudsterRegistrationJob voiceid:StartSpeakerEnrollmentJob voiceid:UpdateDomain voiceid:UpdateWatchlist  | 
| vpc-lattice |  vpc-lattice:CreateAccessLogSubscription vpc-lattice:CreateListener vpc-lattice:CreateResourceConfiguration vpc-lattice:CreateResourceGateway vpc-lattice:CreateRule vpc-lattice:CreateService vpc-lattice:CreateServiceNetwork vpc-lattice:CreateServiceNetworkResourceAssociation vpc-lattice:CreateServiceNetworkServiceAssociation vpc-lattice:CreateServiceNetworkVpcAssociation vpc-lattice:CreateTargetGroup vpc-lattice:DeleteAccessLogSubscription vpc-lattice:DeleteAuthPolicy vpc-lattice:DeleteDomainVerification vpc-lattice:DeleteListener vpc-lattice:DeleteResourceConfiguration vpc-lattice:DeleteResourceEndpointAssociation vpc-lattice:DeleteResourceGateway vpc-lattice:DeleteResourcePolicy vpc-lattice:DeleteRule vpc-lattice:DeleteService vpc-lattice:DeleteServiceNetwork vpc-lattice:DeleteServiceNetworkResourceAssociation vpc-lattice:DeleteServiceNetworkServiceAssociation vpc-lattice:DeleteServiceNetworkVpcAssociation vpc-lattice:DeleteTargetGroup vpc-lattice:DeregisterTargets vpc-lattice:GetAccessLogSubscription vpc-lattice:GetAuthPolicy vpc-lattice:GetDomainVerification vpc-lattice:GetListener vpc-lattice:GetResourceConfiguration vpc-lattice:GetResourceGateway vpc-lattice:GetResourcePolicy vpc-lattice:GetRule vpc-lattice:GetService vpc-lattice:GetServiceNetwork vpc-lattice:GetServiceNetworkResourceAssociation vpc-lattice:GetServiceNetworkServiceAssociation vpc-lattice:GetServiceNetworkVpcAssociation vpc-lattice:GetTargetGroup vpc-lattice:ListAccessLogSubscriptions vpc-lattice:ListDomainVerifications vpc-lattice:ListListeners vpc-lattice:ListResourceConfigurations vpc-lattice:ListResourceEndpointAssociations vpc-lattice:ListResourceGateways vpc-lattice:ListRules vpc-lattice:ListServiceNetworkResourceAssociations vpc-lattice:ListServiceNetworkServiceAssociations vpc-lattice:ListServiceNetworkVpcAssociations vpc-lattice:ListServiceNetworkVpcEndpointAssociations vpc-lattice:ListServiceNetworks vpc-lattice:ListServices vpc-lattice:ListTargetGroups vpc-lattice:ListTargets vpc-lattice:PutAuthPolicy vpc-lattice:PutResourcePolicy vpc-lattice:RegisterTargets vpc-lattice:StartDomainVerification vpc-lattice:UpdateAccessLogSubscription vpc-lattice:UpdateListener vpc-lattice:UpdateResourceConfiguration vpc-lattice:UpdateResourceGateway vpc-lattice:UpdateRule vpc-lattice:UpdateService vpc-lattice:UpdateServiceNetwork vpc-lattice:UpdateServiceNetworkVpcAssociation vpc-lattice:UpdateTargetGroup  | 
| wafv2 |  wafv2:AssociateWebACL wafv2:CheckCapacity wafv2:CreateAPIKey wafv2:CreateIPSet wafv2:CreateRegexPatternSet wafv2:CreateRuleGroup wafv2:CreateWebACL wafv2:DeleteAPIKey wafv2:DeleteFirewallManagerRuleGroups wafv2:DeleteIPSet wafv2:DeleteLoggingConfiguration wafv2:DeletePermissionPolicy wafv2:DeleteRegexPatternSet wafv2:DeleteRuleGroup wafv2:DeleteWebACL wafv2:DescribeAllManagedProducts wafv2:DescribeManagedProductsByVendor wafv2:DescribeManagedRuleGroup wafv2:DisassociateWebACL wafv2:GenerateMobileSdkReleaseUrl wafv2:GetDecryptedAPIKey wafv2:GetIPSet wafv2:GetLoggingConfiguration wafv2:GetManagedRuleSet wafv2:GetMobileSdkRelease wafv2:GetRateBasedStatementManagedKeys wafv2:GetRegexPatternSet wafv2:GetRuleGroup wafv2:GetSampledRequests wafv2:GetWebACLForResource wafv2:ListAPIKeys wafv2:ListAvailableManagedRuleGroupVersions wafv2:ListAvailableManagedRuleGroups wafv2:ListIPSets wafv2:ListLoggingConfigurations wafv2:ListManagedRuleSets wafv2:ListMobileSdkReleases wafv2:ListRegexPatternSets wafv2:ListResourcesForWebACL wafv2:ListRuleGroups wafv2:ListWebACLs wafv2:PutLoggingConfiguration wafv2:PutManagedRuleSetVersions wafv2:UpdateIPSet wafv2:UpdateManagedRuleSetVersionExpiryDate wafv2:UpdateRegexPatternSet wafv2:UpdateRuleGroup wafv2:UpdateWebACL  | 
| wellarchitected |  wellarchitected:AssociateLenses wellarchitected:AssociateProfiles wellarchitected:CreateLensShare wellarchitected:CreateLensVersion wellarchitected:CreateMilestone wellarchitected:CreateProfile wellarchitected:CreateProfileShare wellarchitected:CreateReviewTemplate wellarchitected:CreateWorkload wellarchitected:CreateWorkloadShare wellarchitected:DeleteLens wellarchitected:DeleteLensShare wellarchitected:DeleteProfile wellarchitected:DeleteProfileShare wellarchitected:DeleteReviewTemplate wellarchitected:DeleteTemplateShare wellarchitected:DeleteWorkload wellarchitected:DeleteWorkloadShare wellarchitected:DisassociateLenses wellarchitected:DisassociateProfiles wellarchitected:ExportLens wellarchitected:GetAnswer wellarchitected:GetConsolidatedReport wellarchitected:GetGlobalSettings wellarchitected:GetLens wellarchitected:GetLensReview wellarchitected:GetLensReviewReport wellarchitected:GetLensVersionDifference wellarchitected:GetMilestone wellarchitected:GetProfile wellarchitected:GetProfileTemplate wellarchitected:GetReviewTemplate wellarchitected:GetReviewTemplateAnswer wellarchitected:GetReviewTemplateLensReview wellarchitected:GetWorkload wellarchitected:ImportLens wellarchitected:ListAnswers wellarchitected:ListCheckDetails wellarchitected:ListCheckSummaries wellarchitected:ListLensReviewImprovements wellarchitected:ListLensReviews wellarchitected:ListLensShares wellarchitected:ListLenses wellarchitected:ListMilestones wellarchitected:ListNotifications wellarchitected:ListProfileNotifications wellarchitected:ListProfileShares wellarchitected:ListProfiles wellarchitected:ListReviewTemplateAnswers wellarchitected:ListReviewTemplates wellarchitected:ListShareInvitations wellarchitected:ListTemplateShares wellarchitected:ListWorkloadShares wellarchitected:ListWorkloads wellarchitected:UpdateAnswer wellarchitected:UpdateGlobalSettings wellarchitected:UpdateIntegration wellarchitected:UpdateLensReview wellarchitected:UpdateProfile wellarchitected:UpdateReviewTemplate wellarchitected:UpdateReviewTemplateLensReview wellarchitected:UpdateShareInvitation wellarchitected:UpdateWorkload wellarchitected:UpdateWorkloadShare wellarchitected:UpgradeLensReview wellarchitected:UpgradeProfileVersion wellarchitected:UpgradeReviewTemplateLensReview  | 
| wisdom |  wisdom:CreateAssistant wisdom:CreateAssistantAssociation wisdom:CreateContent wisdom:CreateKnowledgeBase wisdom:CreateQuickResponse wisdom:CreateSession wisdom:DeleteAssistant wisdom:DeleteAssistantAssociation wisdom:DeleteContent wisdom:DeleteImportJob wisdom:DeleteKnowledgeBase wisdom:DeleteQuickResponse wisdom:GetAssistant wisdom:GetAssistantAssociation wisdom:GetContent wisdom:GetContentAssociation wisdom:GetContentSummary wisdom:GetImportJob wisdom:GetKnowledgeBase wisdom:GetRecommendations wisdom:GetSession wisdom:ListAssistantAssociations wisdom:ListAssistants wisdom:ListContentAssociations wisdom:ListContents wisdom:ListImportJobs wisdom:ListKnowledgeBases wisdom:ListQuickResponses wisdom:NotifyRecommendationsReceived wisdom:QueryAssistant wisdom:RemoveKnowledgeBaseTemplateUri wisdom:SearchContent wisdom:SearchQuickResponses wisdom:SearchSessions wisdom:StartContentUpload wisdom:StartImportJob wisdom:UpdateContent wisdom:UpdateKnowledgeBaseTemplateUri wisdom:UpdateQuickResponse wisdom:UpdateSession  | 
| worklink |  worklink:AssociateDomain worklink:AssociateWebsiteAuthorizationProvider worklink:AssociateWebsiteCertificateAuthority worklink:CreateFleet worklink:DeleteFleet worklink:DescribeAuditStreamConfiguration worklink:DescribeCompanyNetworkConfiguration worklink:DescribeDevice worklink:DescribeDevicePolicyConfiguration worklink:DescribeDomain worklink:DescribeFleetMetadata worklink:DescribeIdentityProviderConfiguration worklink:DescribeWebsiteCertificateAuthority worklink:DisassociateDomain worklink:DisassociateWebsiteAuthorizationProvider worklink:DisassociateWebsiteCertificateAuthority worklink:ListDevices worklink:ListDomains worklink:ListFleets worklink:ListWebsiteAuthorizationProviders worklink:ListWebsiteCertificateAuthorities worklink:RestoreDomainAccess worklink:RevokeDomainAccess worklink:SignOutUser worklink:UpdateAuditStreamConfiguration worklink:UpdateCompanyNetworkConfiguration worklink:UpdateDevicePolicyConfiguration worklink:UpdateDomainMetadata worklink:UpdateFleetMetadata worklink:UpdateIdentityProviderConfiguration  | 
| WorkSpaces |  workspaces:AcceptAccountLinkInvitation workspaces:AssociateConnectionAlias workspaces:AssociateIpGroups workspaces:AssociateWorkspaceApplication workspaces:CopyWorkspaceImage workspaces:CreateAccountLinkInvitation workspaces:CreateConnectClientAddIn workspaces:CreateConnectionAlias workspaces:CreateIpGroup workspaces:CreateStandbyWorkspaces workspaces:CreateUpdatedWorkspaceImage workspaces:CreateWorkspaceBundle workspaces:CreateWorkspaceImage workspaces:CreateWorkspaces workspaces:CreateWorkspacesPool workspaces:DeleteAccountLinkInvitation workspaces:DeleteClientBranding workspaces:DeleteConnectClientAddIn workspaces:DeleteConnectionAlias workspaces:DeleteIpGroup workspaces:DeleteWorkspaceBundle workspaces:DeleteWorkspaceImage workspaces:DeployWorkspaceApplications workspaces:DeregisterWorkspaceDirectory workspaces:DescribeAccount workspaces:DescribeAccountModifications workspaces:DescribeApplicationAssociations workspaces:DescribeApplications workspaces:DescribeBundleAssociations workspaces:DescribeClientBranding workspaces:DescribeClientProperties workspaces:DescribeConnectClientAddIns workspaces:DescribeConnectionAliasPermissions workspaces:DescribeConnectionAliases workspaces:DescribeCustomWorkspaceImageImport workspaces:DescribeImageAssociations workspaces:DescribeIpGroups workspaces:DescribeWorkspaceAssociations workspaces:DescribeWorkspaceBundles workspaces:DescribeWorkspaceDirectories workspaces:DescribeWorkspaceImagePermissions workspaces:DescribeWorkspaceSnapshots workspaces:DescribeWorkspaces workspaces:DescribeWorkspacesConnectionStatus workspaces:DescribeWorkspacesPoolSessions workspaces:DescribeWorkspacesPools workspaces:DisassociateConnectionAlias workspaces:DisassociateIpGroups workspaces:DisassociateWorkspaceApplication workspaces:GetAccountLink workspaces:ImportClientBranding workspaces:ImportWorkspaceImage workspaces:ListAccountLinks workspaces:ListAvailableManagementCidrRanges workspaces:MigrateWorkspace workspaces:ModifyAccount workspaces:ModifyCertificateBasedAuthProperties workspaces:ModifyClientProperties workspaces:ModifyEndpointEncryptionMode workspaces:ModifySamlProperties workspaces:ModifySelfservicePermissions workspaces:ModifyStreamingProperties workspaces:ModifyWorkspaceAccessProperties workspaces:ModifyWorkspaceCreationProperties workspaces:ModifyWorkspaceProperties workspaces:ModifyWorkspaceState workspaces:RebootWorkspaces workspaces:RebuildWorkspaces workspaces:RegisterWorkspaceDirectory workspaces:RejectAccountLinkInvitation workspaces:RestoreWorkspace workspaces:StartWorkspaces workspaces:StartWorkspacesPool workspaces:StopWorkspaces workspaces:StopWorkspacesPool workspaces:TerminateWorkspaces workspaces:TerminateWorkspacesPool workspaces:TerminateWorkspacesPoolSession workspaces:UpdateConnectClientAddIn workspaces:UpdateConnectionAliasPermission workspaces:UpdateWorkspaceBundle workspaces:UpdateWorkspaceImagePermission workspaces:UpdateWorkspacesPool  | 
| xray |  xray:CreateGroup xray:CreateSamplingRule xray:DeleteGroup xray:DeleteResourcePolicy xray:DeleteSamplingRule xray:GetEncryptionConfig xray:GetGroup xray:GetGroups xray:GetInsight xray:GetInsightEvents xray:GetInsightImpactGraph xray:GetInsightSummaries xray:GetSamplingRules xray:ListResourcePolicies xray:PutEncryptionConfig xray:PutResourcePolicy xray:UpdateGroup xray:UpdateSamplingRule  | 

# 정책 요약
<a name="access_policies_understand"></a>

IAM 콘솔에는 정책에서 각 서비스에 대해 허용되거나 거부되는 액세스 수준, 리소스, 조건을 설명하는 *정책 요약* 테이블이 포함되어 있습니다. 정책은 3가지 테이블, 즉 [정책 요약](access_policies_understand-policy-summary.md), [서비스 요약](access_policies_understand-service-summary.md), [작업 요약](access_policies_understand-action-summary.md)으로 요약됩니다. *정책 요약* 테이블에는 서비스 목록이 포함되어 있습니다. *서비스 요약*을 보려면 여기서 서비스를 선택합니다. 이 요약 테이블에는 작업 목록과 선택한 서비스에 대해 연결된 권한이 포함되어 있습니다. 해당 테이블에서 작업을 선택하여 *작업 요약*을 볼 수 있습니다. 이 테이블에는 리소스 목록과 선택한 작업에 대한 조건이 포함되어 있습니다.

![\[3가지 테이블과 관계를 보여 주는 정책 요약 다이어그램 이미지\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/policy_summaries-diagram.png)


**사용자** 페이지 또는 **역할** 페이지에서 해당 사용자에 연결된 모든 정책(관리형 및 인라인)에 대한 정책 요약을 볼 수 있습니다. **정책** 페이지에서 모든 관리형 정책에 대한 요약을 봅니다. 관리형 정책에는 AWS 관리형 정책, AWS 관리형 직무 정책, 고객 관리형 정책이 포함되어 있습니다. 정책이 사용자 또는 다른 IAM 자격 증명에 연결되어 있는지 여부와 상관없이 **정책** 페이지에서 이러한 정책에 대한 요약을 볼 수 있습니다.

정책 요약의 정보를 사용하여 정책에서 허용되거나 거부된 권한을 확인할 수 있습니다. 정책 요약은 예상한 권한을 제공하지 않는 정책의 [문제를 해결](troubleshoot_policies.md)하고 정책을 수정하는 데 도움이 됩니다.

**Topics**
+ [

# 정책 요약(서비스 목록)
](access_policies_understand-policy-summary.md)
+ [

# 정책 요약 내 액세스 수준
](access_policies_understand-policy-summary-access-level-summaries.md)
+ [

# 서비스 요약(작업 목록)
](access_policies_understand-service-summary.md)
+ [

# 작업 요약(리소스 목록)
](access_policies_understand-action-summary.md)
+ [

# 정책 요약 예시
](access_policies_policy-summary-examples.md)

# 정책 요약(서비스 목록)
<a name="access_policies_understand-policy-summary"></a>

정책은 3가지 테이블, 즉 정책 요약, [서비스 요약](access_policies_understand-service-summary.md), [작업 요약](access_policies_understand-action-summary.md)으로 요약됩니다. *정책 요약* 테이블에는 서비스 목록과 선택한 정책에 의해 정의된 권한의 요약이 포함되어 있습니다.

![\[3가지 테이블과 관계를 보여 주는 정책 요약 다이어그램 이미지\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/policy_summaries-pol-sum.png)


정책 요약 테이블은 하나 이상의 **Uncategorized services(미분류 서비스)**, **명시적 거부**, **허용** 섹션으로 그룹화됩니다. IAM에서 인식하지 못하는 서비스가 정책에 포함되어 있으면 해당 서비스는 테이블의 **미분류 서비스(Uncategorized services)** 섹션에 포함됩니다. IAM에서 서비스를 인식하면 해당 서비스는 정책(`Deny` 또는 `Allow`)의 효과에 따라 테이블의 **명시적 거부** 또는 **허용** 섹션에 포함됩니다.

## 정책 요약의 요소 이해
<a name="understanding-elements-policy-summary"></a>

다음의 정책 세부 정보 페이지 예시에서 **SummaryAllElements** 정책은 사용자에 직접 연결된 관리형 정책(고객 관리형 정책)입니다. 이 정책이 확장되어 정책 요약을 표시합니다.

![\[정책 요약 대화 상자 이미지\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/policies-summary-user-page-dialog.png)


이전 이미지에서 정책 요약은 **정책** 페이지에 표시되어 있습니다.

1. **권한** 탭에는 정책에 정의된 권한이 포함됩니다.

1. 정책에서 정책에 정의된 일부 작업, 리소스 및 조건에 권한을 부여하지 않는 경우 페이지 상단에 경고 또는 오류 배너가 나타납니다. 그런 다음 정책 요약에 문제에 대한 세부 정보가 포함됩니다. 정책 요약이 정책에서 부여하는 권한을 이해하고 문제를 해결하는 데 얼마나 도움이 되는지 알아보려면 [정책이 필요한 권한을 부여하지 않음](troubleshoot_policies.md#policy-summary-not-grant-permissions) 섹션을 참조하세요.

1. **요약** 및 **JSON** 버튼을 사용하여 정책 요약과 JSON 정책 문서 사이를 전환합니다.

1.  **검색** 상자를 사용하여 서비스 목록을 제한하면 용이하게 특정 서비스를 찾을 수 있습니다.

1. 확장된 보기는 **SummaryAllElements** 정책의 세부 정보를 보여 줍니다.

다음 정책 요약 테이블 이미지는 정책 세부 정보 페이지에서 확장된 **SummaryAllElements** 정책을 표시합니다.

![\[정책 요약 대화 상자 이미지\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/policies-summary-table-dialog.png)


이전 이미지에서 정책 요약은 **정책** 페이지에 표시되어 있습니다.

1. IAM에서 인식하는 해당 서비스의 경우 정책이 서비스 사용을 허용하거나 명시적으로 거부하는지 여부에 따라 서비스가 정렬됩니다. 이 예시에서는 정책에 Amazon S3 서비스에 대한 `Deny` 설명문과 결제, CodeDeploy 및 Amazon EC2 서비스에 대한`Allow` 설명문이 포함됩니다.

1. **서비스** - 이 열에는 정책에서 정의된 서비스가 나열되고 각 서비스의 세부 정보를 제공합니다. 정책 요약 테이블에서 각 서비스 이름은 *서비스 요약* 테이블에 대한 링크([서비스 요약(작업 목록)](access_policies_understand-service-summary.md) 단원 참조)입니다. 이 예시에서는 Amazon S3, 결제, CodeDeploy 및 Amazon EC2 서비스에 대해 권한이 정의되어 있습니다.

1. **액세스 수준** - 이 열은 정책이 각 액세스 수준(`List`, `Read`, `Write`, `Permission Management` 및 `Tagging`)의 작업에 대해 `Full` 또는 `Limited` 중 어느 권한을 정의했는지 보여줍니다. 액세스 레벨 요약에 대한 자세한 정보 및 예시는 [정책 요약 내 액세스 수준](access_policies_understand-policy-summary-access-level-summaries.md) 섹션을 참조하세요.
   + **전체 액세스** - 이 항목은 해당 서비스가 서비스에 대해 사용 가능한 4개 액세스 수준 모두에서 모든 작업에 액세스할 수 있음을 나타냅니다.
   + <a name="full-vs-limited-access-summary"></a>항목에 **Full access(전체 액세스)**가 포함되지 않은 경우 해당 서비스는 서비스를 위한 모든 작업이 아니라 일부 작업에 액세스할 수 있습니다. 그러면 액세스 권한이 액세스 레벨(`List`, `Read`, `Write`, `Permission Management` 및 `Tagging`) 각각에 대한 다음의 설명으로 정의됩니다.

     **Full(전체)**: 정책이 나열된 각 액세스 레벨 분류의 모든 작업에 대한 액세스 권한을 제공합니다. 이 예시에서는 정책이 모든 결제 `Read` 작업에 대한 액세스 권한을 제공합니다.

     **Limited(제한)**: 정책이 나열된 각 액세스 레벨 분류에서 하나 이상의 작업(모든 작업은 아님)에 대한 액세스 권한을 제공합니다. 이 예시에서는 정책이 일부 결제 `Write` 작업에 대한 액세스 권한을 제공합니다.

1. **리소스** - 이 열은 정책이 각 서비스에 대해 지정한 리소스를 보여줍니다.
   + **다중** - 정책이 서비스 내 둘 이상(모든 리소스는 아님)의 리소스를 포함합니다. 이 예시에서는 둘 이상의 Amazon S3 리소스에 대한 액세스가 명시적으로 거부됩니다.
   + **모든 리소스** – 정책이 서비스의 모든 리소스에 대해 정의되어 있습니다. 이 예시에서는 정책이 모든 결제 리소스에 대해 나열된 작업을 수행할 수 있도록 허용합니다.
   + Resource text - 정책이 서비스의 리소스 하나를 포함합니다. 이 예시에서는 나열된 작업이 `DeploymentGroupName` CodeDeploy 리소스에서만 허용됩니다. 서비스가 IAM에 제공하는 정보에 따라 ARN이 표시되거나 정의된 리소스 유형이 표시될 수 있습니다.
**참고**  
이 열은 다른 서비스의 리소스를 포함할 수 있습니다. 리소스를 포함하는 정책 설명에 동일한 서비스의 작업과 리소스를 모두 포함하지 않으면 정책에 일치하지 않는 리소스가 포함됩니다. IAM은 정책을 생성하거나 정책 요약에서 정책을 볼 때 일치하지 않는 리소스에 대해 경고하지 않습니다. 이 열에 일치하지 않는 리소스가 포함되어 있으면 정책에 오류가 있는지 검토해야 합니다. 정책을 더 잘 이해하려면 항상 [정책 시뮬레이터](access_policies_testing-policies.md)로 테스트합니다.

1. **요청 조건(Request condition)** - 이 열은 리소스와 연결된 서비스 또는 작업에 조건이 적용되는지 여부를 나타냅니다.
   + **없음** - 정책이 서비스에 대한 조건을 포함하지 않습니다. 이 예시에서는 Amazon S3 서비스에서 거부된 작업에 적용된 조건이 없습니다.
   + Condition text - 정책이 서비스에 대한 조건 하나를 포함합니다. 이 예시에서는 소스의 IP 주소가 `203.0.113.0/24`와 일치하는 경우에만 나열된 결제 작업이 허용됩니다.
   + **다중** - 정책이 서비스에 대해 둘 이상의 조건을 포함합니다. 정책에 대한 여러 조건을 각각 보려면 **JSON**을 선택하여 정책 문서를 봅니다.

1. **나머지 서비스 보기** - 이 버튼을 전환하여 정책에 의해 정의되지 않은 서비스를 포함하도록 테이블을 확장합니다. 이러한 서비스는 이 정책 내에서 *명시적으로 거부*(또는 기본적으로 거부)됩니다. 그러나 다른 정책 문으로 서비스를 사용하여 허용하거나 명시적으로 거부할 수 있습니다. 정책 요약에는 단일 정책의 권한이 요약되어 있습니다. AWS 서비스가 지정된 요청을 허용하거나 거부할지 여부를 결정하는 방법에 대해 알아보려면 [정책 평가 로직](reference_policies_evaluation-logic.md)을 참조하세요.

정책 또는 정책 내 요소가 권한을 부여하지 않는 경우 IAM은 정책 요약에 추가 경고 및 정보를 제공합니다. 다음 정책 요약 테이블은 **SummaryAllElements** 정책 세부 정보 페이지에 확장된 **나머지 서비스 보기** 서비스와 가능한 경고를 보여줍니다.

![\[정책 요약 대화 상자 이미지\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/policies-summary-table-showremaining-dialog.png)


앞의 그림에는 권한이 없이 정의된 작업, 리소스 또는 조건을 포함하는 모든 서비스가 나와 있습니다.

1. **리소스 경고(Resource warnings)** - 포함된 모든 작업이나 리소스에 대해 권한을 제공하지 않는 서비스의 경우 테이블의 **리소스** 열에 다음 경고 중 하나가 나타납니다.
   + **![\[Warning hazard sign icon with yellow triangle background.\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/console-alert-icon.console.png) 정의된 리소스가 없습니다.** - 서비스에 작업이 정의되었지만 정책에 지원되는 리소스가 포함되지 않았음을 의미합니다.
   + **![\[Warning hazard sign icon with yellow triangle background.\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/console-alert-icon.console.png) 하나 이상의 작업이 적용할 리소스가 없습니다.** - 서비스에 정의된 작업이 있지만 일부 작업에 지원되는 리소스가 없음을 의미합니다.
   + **![\[Warning hazard sign icon with yellow triangle background.\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/console-alert-icon.console.png) 하나 이상의 리소스가 적용할 작업이 없습니다.** - 서비스에 정의된 리소스가 있지만 일부 리소스에 지원 작업이 없음을 의미합니다.

   서비스에 적용 가능한 리소스가 없는 작업과 적용 가능한 작업이 있는 리소스가 있는 경우, **하나 이상의 리소스에 적용할 작업이 없습니다.** 경고가 표시됩니다. 그 이유는 서비스에 대한 서비스 요약을 볼 때 어떤 작업에도 적용되지 않는 리소스가 표시되지 않기 때문입니다. `ListAllMyBuckets` 작업의 경우 리소스 수준 권한을 지원하지 않고 `s3:x-amz-acl` 조건 키를 지원하지 않기 때문에 이 정책에 마지막 경고가 포함됩니다. 리소스 문제나 조건 문제를 수정한 경우 나머지 문제가 세부 경고에 나타납니다.

1. **요청 조건 경고(Request condition warnings)** - 포함된 모든 조건에 대해 권한을 제공하지 않는 서비스의 경우 테이블의 **요청 조건(Request condition)**열에 다음 경고 중 하나가 나타납니다.
   + **![\[Warning hazard sign icon with yellow triangle background.\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/console-alert-icon.console.png) 하나 이상의 작업이 적용할 조건이 없습니다.** - 서비스에 정의된 작업이 있지만 일부 작업에 지원되는 조건이 없음을 의미합니다.
   + **![\[Warning hazard sign icon with yellow triangle background.\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/console-alert-icon.console.png) 하나 이상의 조건이 적용할 작업이 없습니다.** - 서비스에 정의된 조건이 있지만 일부 조건에 지원 작업이 없음을 의미합니다.

1. **Multiple \$1 ![\[Warning hazard sign icon with yellow triangle background.\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/console-alert-icon.console.png) 하나 이상의 작업이 적용할 리소스가 없습니다.** - Amazon S3의 `Deny` 문에 리소스가 두 개 이상 포함되어 있습니다. 또한 작업이 두 개 이상 포함되어 있으며, 일부 작업은 리소스를 지원하고, 일부 작업은 리소스를 지원하지 않습니다. 정책을 보려면 [**SummaryAllElements** JSON 정책 문서](#policy-summary-example-json) 섹션을 참조하세요. 이 경우 정책에는 모든 Amazon S3 작업과, 정의된 버킷 또는 버킷 객체에서 수행될 수 있는 작업만 포함됩니다.

1. **![\[Warning hazard sign icon with yellow triangle background.\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/console-alert-icon.console.png) 정의된 리소스가 없음** - 서비스에 정의된 작업이 있지만, 지원되는 리소스가 정책에 없으므로 서비스가 권한을 제공하지 않습니다. 이 경우 정책에 CodeCommit 작업이 포함되지만 CodeCommit 리소스는 포함되지 않습니다.

1. **DeploymentGroupName \$1 문자열 \$1 전체, 리전 \$1 문자열 \$1 us-west-2 \$1![\[Warning hazard sign icon with yellow triangle background.\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/console-alert-icon.console.png) 하나 이상의 작업에 해당 리소스가 없습니다.** - 서비스에 정의된 작업이 한 개 있고, 지원 리소스가 없는 작업이 한 개 이상 있습니다.

1. **없음 \$1 ![\[Warning hazard sign icon with yellow triangle background.\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/console-alert-icon.console.png) 하나 이상의 조건이 적용할 작업이 없습니다.** - 서비스에 지원 작업이 없는 조건 키가 한 개 이상입니다.

## **SummaryAllElements** JSON 정책 문서
<a name="policy-summary-example-json"></a>

**SummaryAllElements** 정책은 해당 계정의 권한을 정의하는 데 사용하기 위한 것이 아닙니다. 이것은 정책 요약을 보는 중 만날 수 있는 오류와 경고를 보여주기 위한 것입니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "billing:Get*",
                "payments:List*",
                "payments:Update*",
                "account:Get*",
                "account:List*",
                "cur:GetUsage*"
            ],
            "Resource": [
                "*"
            ],
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": "203.0.113.0/24"
                }
            }
        },
        {
            "Effect": "Deny",
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "arn:aws:s3:::customer",
                "arn:aws:s3:::customer/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:GetConsoleScreenshots"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "codedploy:*",
                "codecommit:*"
            ],
            "Resource": [
                "arn:aws:codedeploy:us-west-2:123456789012:deploymentgroup:*",
                "arn:aws:codebuild:us-east-1:123456789012:project/my-demo-project"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets",
                "s3:GetObject",
                "s3:DeletObject",
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket",
                "arn:aws:s3:::amzn-s3-demo-bucket/*",
                "arn:aws:autoscling:us-east-2:123456789012:autoscalgrp"
            ],
            "Condition": {
                "StringEquals": {
                    "s3:x-amz-acl": [
                        "public-read"
                    ],
                    "s3:prefix": [
                        "custom",
                        "other"
                    ]
                }
            }
        }
    ]
}
```

------

# 정책 요약 보기
<a name="access_policies_view-policy-summary"></a>

IAM 사용자 또는 역할에 연결된 모든 정책에 대한 정책 요약을 볼 수 있습니다. 관리형 정책의 경우 **정책** 페이지에서 정책 요약을 볼 수 있습니다. 정책에 정책 요약이 포함되지 않은 경우 [정책 요약 누락](troubleshoot_policies.md#missing-policy-summary)을 참조하여 이유를 알아보세요.

## **정책** 페이지에서 정책 요약 보기
<a name="viewing-policy-summaries-from-the-policies-page"></a>

**정책** 페이지에서 관리형 정책에 대한 정책 요약을 볼 수 있습니다.

****정책** 페이지에서 정책 요약을 확인하려면**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 탐색 창에서 **정책**을 선택합니다.

1. 정책 목록에서 보려는 정책의 이름을 선택합니다.

1. 정책 요약을 보려면 해당 정책의 **정책 세부 정보** 페이지에서 **권한** 탭을 확인합니다.

## 사용자에게 연결된 정책에 대한 정책 요약 보기
<a name="viewing-policy-summaries-for-policies-attached-to-users"></a>

IAM 사용자에게 연결된 모든 정책에 대한 정책 요약을 볼 수 있습니다.

**사용자에 연결된 정책의 요약을 확인하려면**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 탐색 창에서 **사용자**를 선택합니다.

1. 사용자 목록에서 정책을 보려는 사용자의 이름을 선택합니다.

1. 사용자에게 직접 연결되거나 그룹에서 연결된 정책의 목록을 보려면 해당 사용자의 **요약** 페이지에서 **권한** 탭을 봅니다.

1. 사용자에 대한 정책 테이블에서 보려는 정책의 행을 확장합니다.

## 역할에 연결된 정책에 대한 정책 요약 보기
<a name="viewing-policy-summaries-for-policies-attached-to-roles"></a>

역할에 연결된 모든 정책에 대한 정책 요약을 볼 수 있습니다.

**역할에 연결된 정책의 요약 정보를 보려면**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 탐색 창에서 **역할**을 선택합니다.

1. 역할 목록에서 정책을 보려는 역할의 이름을 선택합니다.

1. 역할의 **요약** 페이지에서 **권한** 탭을 보고 역할에 연결된 정책 목록을 확인합니다.

1. 역할에 대한 정책 테이블에서 보려는 정책의 행을 확장합니다.

## 정책을 편집하여 경고 수정
<a name="edit-policy-summary"></a>

정책 요약을 보는 동안 정책에서 예상한 권한을 제공하지 않는다는 알림이나 오타를 찾을 수 있습니다. 정책 요약을 직접 편집할 수 없습니다. 그러나 정책 요약이 보고하는 것과 동일한 여러 개의 오류 및 경고를 파악하는 시각적 정책 편집기를 사용하여 고객 관리형 정책을 편집할 수 있습니다. 그런 다음 정책 요약의 변경 사항을 확인하여 모든 문제가 수정되었는지 확인할 수 있습니다. 인라인 정책을 편집하는 방법에 대해 자세히 알아보려면 [IAM 정책 편집](access_policies_manage-edit.md) 섹션을 참조하세요. 단, AWS 관리형 정책은 편집할 수 없습니다.

**시각적** 옵션을 사용하여 정책 요약에 대한 정책을 편집할 수 있습니다.

****시각적** 편집기 옵션을 사용하여 정책 요약에 대한 정책을 편집하려면**

1. 이전 절차에서 설명한 대로 정책의 요약을 엽니다.

1. **편집**을 선택합니다.

   **사용자** 페이지에서 해당 사용자에게 연결된 고객 관리형 정책을 편집하려는 경우, **정책** 페이지로 리디렉션됩니다. 고객 관리형 정책은 **정책** 페이지에서만 편집할 수 있습니다.

1. **시각적** 편집기 옵션을 선택하면 정책의 편집 가능한 시각적 표현을 볼 수 있습니다. IAM은 시각적 편집기에서 모양을 최적화하고 문제를 쉽게 찾아 수정하기 위해 정책을 재구성할 수 있습니다. 페이지의 경고 및 오류 메시지는 정책 문제를 수정하도록 안내할 수 있습니다. IAM 정책을 재구성하는 방법에 대한 자세한 내용은 [정책 재구성](troubleshoot_policies.md#troubleshoot_viseditor-restructure) 섹션을 참조하세요.

1. 정책을 편집하고 **다음**을 선택하여 정책 요약에 반영된 변경 사항을 봅니다. 문제가 계속 표시되면 **이전**을 선택하여 편집 화면으로 돌아갑니다.

1. 변경 사항을 저장하려면 **변경 사항 저장**을 선택합니다.

**JSON** 옵션을 사용하여 정책 요약에 대한 정책을 편집할 수 있습니다.

****JSON** 옵션을 사용하여 정책 요약에 대한 정책을 편집하려면**

1. 이전 절차에서 설명한 대로 정책의 요약을 엽니다.

1. **요약** 및 **JSON** 버튼을 사용하여 정책 요약과 JSON 정책 문서를 비교합니다. 이 정보를 사용하여 정책 문서에서 변경할 행을 결정할 수 있습니다.

1. **편집**을 선택한 다음, **JSON** 옵션을 선택하여 JSON 정책 문서를 편집합니다.
**참고**  
언제든지 **시각적** 편집기 옵션과 **JSON** 편집기 옵션을 서로 전환할 수 있습니다. 그러나 변경을 적용하거나 **시각적** 편집기 옵션에서 **다음**을 선택한 경우 IAM은 시각적 편집기에 최적화되도록 정책을 재구성할 수 있습니다. 자세한 내용은 [정책 재구성](troubleshoot_policies.md#troubleshoot_viseditor-restructure) 섹션을 참조하세요.

   **사용자** 페이지에서 해당 사용자에게 연결된 고객 관리형 정책을 편집하려는 경우, **정책** 페이지로 리디렉션됩니다. 고객 관리형 정책은 **정책** 페이지에서만 편집할 수 있습니다.

1. 정책을 편집합니다. [정책 검증](access_policies_policy-validator.md) 중에 생성되는 모든 보안 경고, 오류 또는 일반 경고를 해결하고 **다음**을 선택합니다. 문제가 계속 표시되면 **이전**을 선택하여 편집 화면으로 돌아갑니다.

1. 변경 사항을 저장하려면 **변경 사항 저장**을 선택합니다.

# 정책 요약 내 액세스 수준
<a name="access_policies_understand-policy-summary-access-level-summaries"></a>

## AWS 액세스 수준 요약
<a name="access_policies_access-level-summaries"></a>

정책 요약에는 해당 정책에서 언급된 각 서비스에 정의된 작업 권한을 설명하는 액세스 레벨 요약이 포함됩니다. 정책 요약에 대한 자세한 내용은 [정책 요약](access_policies_understand.md) 섹션을 참조하세요. 액세스 레벨 요약은 각 액세스 레벨(`List`, `Read`, `Tagging`, `Write` 및 `Permissions management`)의 작업에 정책에서 정의된 `Full` 또는 `Limited` 권한이 있는지 여부를 나타냅니다. 서비스의 각 작업에 할당된 액세스 레벨 분류를 보려면 [AWS 서비스에 사용되는 작업, 리소스 및 조건 키](reference_policies_actions-resources-contextkeys.html)를 참조하세요.

다음 예제에서는 한 정책이 지정된 서비스에 대해 제공하는 액세스 권한을 설명합니다. 전체 JSON 정책 문서 및 관련 요약의 예는 [정책 요약 예시](access_policies_policy-summary-examples.md) 섹션을 참조하세요.


****  

| 서비스 | 액세스 레벨 | 이 정책은 다음을 제공합니다. | 
| --- | --- | --- | 
| IAM | 모든 액세스 | IAM 서비스 내의 모든 작업에 대한 액세스 권한 | 
| CloudWatch | 전체: 목록 | List 액세스 수준의 모든 CloudWatch 작업에 대한 액세스 권한. 하지만 Read, Write 또는 Permissions management 액세스 수준 분류의 작업에 대한 액세스 권한은 제공하지 않음 | 
| Data Pipeline | 제한: 목록, 읽기 | List 및 Read 액세스 레벨의 AWS Data Pipeline 작업 하나 이상(모든 작업은 아님)에 대한 액세스 권한. 단, Write 또는 Permissions management 작업에 대한 액세스 권한은 제외됨 | 
| EC2 | 전체: 목록, 읽기 제한: 쓰기 | 모든 Amazon EC2 List 및 Read 작업에 대한 액세스 권한, 하나 이상의 Amazon EC2 Write 작업(모든 작업은 아님)에 대한 액세스 권한. 단, Permissions management 액세스 수준 분류의 작업에 대한 액세스 권한은 제외됨 | 
| S3 | 제한: 읽기, 쓰기, 권한 관리 | 하나 이상의 Amazon S3 Read, Write 및 Permissions management 작업(모든 작업은 아님)에 대한 액세스 권한 | 
| codedploy | (비어 있음) | 알 수 없는 액세스(IAM에서 이 서비스를 인식하지 않음) | 
| API Gateway | 없음 | 정책에 정의된 액세스 없음 | 
| CodeBuild | ![\[a white exclamation point on an orange triangle background\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/console-alert-icon.console.png)정의된 작업 없음. | 서비스에 대해 작업이 정의되지 않아서 액세스할 수 없습니다. 이 문제를 이해하고 문제를 해결하는 방법을 보려면 [정책이 필요한 권한을 부여하지 않음](troubleshoot_policies.md#policy-summary-not-grant-permissions) 섹션을 참조하세요. | 

정책 요약에서 **전체 액세스**는 정책이 서비스 내 모든 작업에 대한 액세스를 제공함을 나타냅니다. 서비스의 모든 작업이 아니라 일부에 대한 액세스 권한을 제공하는 정책은 액세스 레벨 분류에 따라 추가로 그룹화됩니다. 이는 다음 액세스 레벨 그룹 중 하나에 의해 표시됩니다.
+ **전체**: 정책이 지정된 액세스 레벨 분류의 모든 작업에 대한 액세스 권한을 제공합니다.
+ **제한**: 정책이 지정된 액세스 레벨 분류 내 하나 이상의 작업(모든 작업은 아님)에 대한 액세스 권한을 제공합니다.
+ **없음**: 정책에서 액세스를 제공하지 않습니다.
+ (비어 있음): IAM 에서 이 서비스를 인식하지 않습니다. 서비스 이름에 오타가 포함되어 있으면 정책은 서비스에 대한 액세스를 제공하지 않습니다. 서비스 이름이 정확하면 서비스는 정책 요약을 지원할 수 없거나 프리뷰에 있을 수 있습니다. 이 경우 정책은 액세스를 제공할 수 있지만 해당 액세스를 정책 요약에 표시할 수 없습니다. 일반적으로 사용할 수 있는(GA) 서비스에 대한 정책 요약 지원을 요청하려면 [서비스가 IAM 정책 요약을 지원하지 않음](troubleshoot_policies.md#unsupported-services-actions)을 참조하세요.

작업에 대한 제한적(부분적) 액세스 권한을 포함하는 액세스 레벨 요약은 AWS 액세스 레벨 분류 `List`, `Read`, `Tagging`, `Write` 또는 `Permissions management`을 사용하여 그룹화됩니다.

## AWS 액세스 수준
<a name="access_policies_access-level"></a>

AWS는 서비스의 작업에 대해 다음과 같은 액세스 레벨 분류를 정의합니다.
+ **목록**: 서비스의 리소스를 나열하여 객체가 존재하는지 판단할 수 있는 권한입니다. 이 액세스 레벨의 작업은 객체를 나열할 수 있으나 리소스의 내용을 확인할 수 없습니다. 예를 들어 Amazon S3 작업 `ListBucket`의 액세스 수준은 **목록**입니다.
+ **읽기**: 서비스에서 리소스 내용과 속성을 읽을 수 있으나 편집할 수 없는 권한입니다. 예를 들어 Amazon S3 작업 `GetObject` 및 `GetBucketLocation`의 액세스 수준은 **Read**입니다.
+ **태그 지정**: 리소스 태그의 상태만 변경하는 작업을 수행할 수 있는 권한입니다. 예를 들어 IAM 작업 `TagRole` 및 `UntagRole`은 역할에 대한 **태그 지정** 또는 태그 취소만 허용하므로 태그 지정 액세스 수준입니다. 그러나 `CreateRole` 작업은 사용자가 역할을 생성할 때 역할 리소스에 태그를 지정하도록 허용합니다. 이 작업은 태그를 추가하는 것만이 아니므로 `Write` 액세스 레벨입니다.
+ **쓰기**: 서비스에서 리소스를 생성, 삭제하거나 수정할 수 있는 권한입니다. 예를 들어 Amazon S3 작업 `CreateBucket`, `DeleteBucket` 및 `PutObject`는 **쓰기** 액세스 수준입니다. `Write` 작업은 리소스 태그 수정을 허용할 수도 있습니다. 그러나 태그 변경만 허용하는 작업은 `Tagging` 액세스 레벨입니다.
+ **권한 관리**: 권한 관리는 IAM 및 비 IAM 자격 증명 권한을 포함하여 AWS 서비스 내에서 액세스를 제어하는 작업을 의미하지만, 보안 그룹과 같은 네트워크 수준 액세스 제어는 제외됩니다. 예를 들어 대부분의 IAM 및 AWS Organizations 작업과 Amazon S3 작업 `PutBucketPolicy` 및 `DeleteBucketPolicy`의 액세스 수준은 **권한 관리**입니다.
**도움말**  
AWS 계정의 보안을 개선하려면 **권한 관리** 액세스 레벨 분류를 포함하는 정책을 제한하거나 정기적으로 모니터링합니다.

서비스의 각 작업에 대한 액세스 수준 분류를 보려면 [AWS 서비스에 사용되는 작업, 리소스 및 조건 키](reference_policies_actions-resources-contextkeys.html)를 참조하세요.

# 서비스 요약(작업 목록)
<a name="access_policies_understand-service-summary"></a>

정책은 3가지 테이블, 즉 정책 요약, [서비스 요약](access_policies_understand-policy-summary.md), [작업 요약](access_policies_understand-action-summary.md)으로 요약됩니다. *서비스 요약* 테이블에는 작업 목록과 선택한 서비스의 정책에 의해 정의된 권한의 요약이 포함되어 있습니다.

![\[3가지 테이블과 관계를 보여 주는 정책 요약 다이어그램 이미지\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/policy_summaries-svc-sum.png)


권한을 부여하는 정책 요약에 나열되어 있는 각 서비스에 대해 서비스 요약을 볼 수 있습니다. 이 테이블은 **Uncategorized actions(미분류 작업)**, **Uncategorized resource types(미분류 리소스 유형)** 및 액세스 수준 섹션으로 분류되어 있습니다. IAM에서 인식하지 못하는 작업이 정책에 포함되어 있으면 해당 작업은 테이블의 **미분류 작업(Uncategorized actions)** 섹션에 포함됩니다. IAM에서 작업을 인식하면 해당 작업은 테이블의 액세스 수준(**List(목록)**, **Read(읽기)**, **Write(쓰기)**, **Permissions management(권한 관리)**) 섹션 중 하나에 포함됩니다. 서비스의 각 작업에 할당된 액세스 레벨 분류를 보려면 [AWS 서비스에 사용되는 작업, 리소스 및 조건 키](reference_policies_actions-resources-contextkeys.html)를 참조하세요.

## 서비스 요약의 요소 이해하기
<a name="understanding-elements-service-summary"></a>

아래 예시는 Amazon S3 작업에 대한 서비스 요약이며, 정책 요약에서 허용됩니다. 이 서비스에 대한 작업은 액세스 수준별로 그룹화됩니다. 예를 들어 서비스에서 이용 가능한 총 52개 **읽기** 작업 중에서 35개 **읽기** 작업이 정의됩니다.

![\[서비스 요약 대화 상자 이미지\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/policies-summary-action-dialog.png)


관리형 정책에 대한 서비스 요약 페이지에 포함되는 정보는 다음과 같습니다.

1. 정책에서 정책의 서비스에 대해 정의된 일부 작업, 리소스 및 조건에 권한을 부여하지 않는 경우 페이지 상단에 경고 배너가 나타납니다. 그런 다음 서비스 요약에 문제에 대한 세부 정보가 포함됩니다. 정책 요약이 정책에서 부여하는 권한을 이해하고 문제를 해결하는 데 얼마나 도움이 되는지 알아보려면 [정책이 필요한 권한을 부여하지 않음](troubleshoot_policies.md#policy-summary-not-grant-permissions) 섹션을 참조하세요.

1. **JSON**을 선택하면 정책에 대한 추가 세부 정보를 볼 수 있습니다. 이를 통해 작업에 적용된 모든 조건을 볼 수 있습니다. (사용자에게 직접 연결된 인라인 정책의 서비스 요약을 보려면 서비스 요약 대화 상자를 닫고 정책 요약으로 돌아가 JSON 정책 문서에 액세스해야 합니다.)

1. 특정 작업의 요약을 보려면 **검색** 상자에 키워드를 입력하여, 사용할 수 있는 작업의 목록을 줄이세요.

1. **서비스** 뒤로 화살표 옆에 서비스 이름(이 경우 **S3**)이 표시됩니다. 이 서비스의 서비스 요약에는 정책에서 정의한 허용되거나 거부되는 작업의 목록이 수록되어 있습니다. 서비스가 **권한** 탭의 **(명시적 거부)** 아래에 표시될 경우, 서비스 요약 테이블에 나열된 작업이 명시적으로 거부됩니다. 서비스가 **권한** 탭의 **허용** 아래에 표시될 경우, 서비스 요약 테이블에 나열된 작업이 허용됩니다.

1. **작업** - 이 열에는 정책 내에 정의된 작업이 나열되고 각 작업에 해당하는 리소스와 조건이 제시됩니다. 정책에서 작업에 권한을 부여하거나 거부하는 경우 작업 이름이 *[작업 요약](access_policies_understand-action-summary.md)* 테이블에 링크됩니다. 테이블은 정책이 허용하거나 거부하는 액세스 레벨에 따라 최소 1개 이상에서 최대 5개의 섹션으로 이러한 작업을 그룹화합니다. 섹션은 **목록**, **읽기**, **쓰기**, **권한 관리** 및 **태그 지정**입니다. 개수는 각 액세스 레벨에서 권한을 제공하는 인식할 수 있는 작업의 수를 나타냅니다. 총계는 서비스에 대해 알려진 작업의 수입니다. 이 예시에서는 총 52개의 알려진 S3 **읽기** 작업에서 35개의 작업이 권한을 제공합니다. 서비스의 각 작업에 할당된 액세스 레벨 분류를 보려면 [AWS 서비스에 사용되는 작업, 리소스 및 조건 키](reference_policies_actions-resources-contextkeys.html)를 참조하세요.

1. **나머지 작업 보기** - 알려졌지만 이 서비스에 대한 권한을 제공하지 않는 작업을 포함하는 테이블을 펼치거나 숨기려면 이 버튼을 선택합니다. 버튼을 전환하면 권한을 제공하지 않는 모든 요소에 대해 경고가 표시됩니다.

1. **리소스** - 이 열은 정책이 서비스에 대해 정의한 리소스를 보여줍니다. IAM은 리소스가 각 작업에 적용되는지 여부를 확인하지 않습니다. 이 예시에서는 Amazon S3 서비스의 작업이 `developer_bucket` Amazon S3 버킷 리소스에서만 허용됩니다. 서비스가 IAM에 제공하는 정보에 따라 `arn:aws:s3:::developer_bucket/*` 등의 ARN이 표시되거나 `BucketName = developer_bucket` 등의 정의된 리소스 유형이 표시될 수 있습니다.
**참고**  
이 열은 다른 서비스의 리소스를 포함할 수 있습니다. 리소스를 포함하는 정책 설명에 동일한 서비스의 작업과 리소스를 모두 포함하지 않으면 정책에 일치하지 않는 리소스가 포함됩니다. IAM은 정책을 생성하거나 서비스 요약에서 정책을 볼 때 일치하지 않는 리소스에 대해 경고하지 않습니다. IAM은 작업이 리소스에 적용되는지도 나타내지 않고 서비스 일치 여부만 나타냅니다. 이 열에 일치하지 않는 리소스가 포함되어 있으면 정책에 오류가 있는지 검토해야 합니다. 정책을 더 잘 이해하려면 항상 [정책 시뮬레이터](access_policies_testing-policies.md)로 테스트합니다.

1. **요청 조건** - 이 열은 리소스와 연결된 작업에 조건이 적용되는지 여부를 나타냅니다. 이러한 조건에 대해 자세히 알아보려면 **JSON**을 선택하여 JSON 정책 문서를 검토합니다.

1. **(액세스 권한 없음)** - 이 정책에 권한을 제공하지 않는 작업이 한 개 있습니다.

1. **리소스 경고** - 전체 권한을 제공하지 않는 리소스를 포함하는 작업의 경우 다음 경고 중 하나가 나타납니다.
   + **이 작업은 리소스 수준 권한을 지원하지 않습니다.(This action does not support resource-level permissions.) 리소스에 대한 와일드카드(\$1)가 필요합니다.(This requires a wildcard (\$1) for the resource.)** - 정책에 리소스 수준 권한이 있지만, 이 작업에 대한 권한을 제공하려면 `"Resource": ["*"]`를 포함해야 함을 의미합니다.
   + **이 작업은 적용할 리소스가 없습니다.** - 지원되는 리소스 없이 작업이 정책에 포함됨을 의미합니다.
   + **이 작업은 적용할 리소스 및 조건이 없습니다.** - 지원되는 리소스 및 조건 없이 작업이 정책에 포함됨을 의미합니다. 이 경우 이 서비스의 정책에 포함된 조건도 있지만 이 작업에 적용되는 조건은 없습니다.

1. 권한을 제공하지 않는 작업에는 작업 요약에 대한 링크가 포함됩니다.

# 서비스 요약 보기
<a name="access_policies_view-service-summary"></a>

권한을 부여하는 정책 요약에 나열되어 있는 각 서비스에 대해 서비스 요약을 볼 수 있습니다.

## **정책** 페이지에서 서비스 요약 보기
<a name="viewing-service-summaries-from-the-policies-page"></a>

**정책** 페이지에서는 관리형 정책에 대한 서비스 요약을 볼 수 있습니다.

**관리형 정책의 서비스 요약을 확인하려면**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 탐색 창에서 **정책**을 선택합니다.

1. 정책 목록에서 보려는 정책의 이름을 선택합니다.

1. 정책 요약을 보려면 해당 정책의 **정책 세부 정보** 페이지에서 **권한** 탭을 확인합니다.

1. 서비스의 정책 요약 목록에서 확인하려는 서비스의 이름을 선택합니다.

## 사용자에게 연결된 정책에 대한 서비스 요약 보기
<a name="viewing-service-summaries-for-policies-attached-to-users"></a>

IAM 사용자에게 연결된 모든 정책에 대한 서비스 요약을 볼 수 있습니다.

**사용자에게 연결된 정책의 서비스 요약을 확인하려면**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 탐색 창에서 **사용자**를 선택합니다.

1. 사용자 목록에서 정책을 보려는 사용자의 이름을 선택합니다.

1. 사용자에게 직접 연결되거나 그룹에서 연결된 정책의 목록을 보려면 해당 사용자의 **요약** 페이지에서 **권한** 탭을 봅니다.

1. 사용자에 대한 정책 테이블에서 확인하려는 정책의 이름을 선택합니다.

   **사용자** 페이지에서 해당 사용자에게 연결된 정책의 서비스 요약을 보려고 하는 경우, **정책** 페이지로 리디렉션됩니다. 서비스 요약은 **정책** 페이지에서만 볼 수 있습니다.

1. **요약**을 선택합니다. 서비스의 정책 요약 목록에서 확인하려는 서비스의 이름을 선택합니다.
**참고**  
선택한 정책이 사용자에게 직접 연결된 인라인 정책인 경우 서비스 요약 테이블이 표시됩니다. 정책이 그룹에서 연결한 인라인 정책인 경우 해당 그룹의 JSON 정책 문서로 자동으로 이동합니다. 정책이 관리형 정책인 경우 **정책** 페이지에서 해당 정책의 서비스 요약이 게시된 부분으로 자동으로 이동합니다.

## 역할에 연결된 정책에 대한 서비스 요약 보기
<a name="viewing-service-summaries-for-policies-attached-to-roles"></a>

역할에 연결된 모든 정책에 대한 정책 요약을 볼 수 있습니다.

**역할에 연결된 정책의 서비스 요약 정보를 보려면**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 탐색 창에서 **역할**을 선택합니다.

1. 역할 목록에서 정책을 보려는 역할의 이름을 선택합니다.

1. 역할의 **요약** 페이지에서 **권한** 탭을 보고 역할에 연결된 정책 목록을 확인합니다.

1. 역할에 대한 정책 테이블에서 보려는 정책의 이름을 선택합니다.

   **역할** 페이지에서 해당 사용자에게 연결된 정책의 서비스 요약을 보려고 하는 경우, **정책** 페이지로 리디렉션됩니다. 서비스 요약은 **정책** 페이지에서만 볼 수 있습니다.

1. 서비스의 정책 요약 목록에서 확인하려는 서비스의 이름을 선택합니다.

# 작업 요약(리소스 목록)
<a name="access_policies_understand-action-summary"></a>

정책은 3가지 테이블, 즉 정책 요약, [서비스 요약](access_policies_understand-policy-summary.md), [작업 요약](access_policies_understand-service-summary.md)으로 요약됩니다. *작업 요약* 테이블에는 리소스 목록과 선택한 작업에 적용되는 연결 조건이 포함되어 있습니다.

![\[3개의 테이블과 그 관계를 보여 주는 정책 요약 다이어그램 이미지.\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/policy_summaries-action-sum.png)


권한을 부여하는 각 작업에 대한 작업 요약을 보려면 서비스 요약의 링크를 선택합니다. 작업 요약 테이블에는 리소스의 **리전** 및 **계정**을 비롯하여 리소스에 대한 세부 정보가 포함되어 있습니다. 또한 각 리소스에 적용하는 조건을 볼 수 있습니다. 이를 통해 일부 리소스에 적용되고 다른 리소스에는 적용되지 않는 조건을 볼 수 있습니다.

## 작업 요약의 요소 이해하기
<a name="understanding-elements-action-summary"></a>

아래 예시는 Amazon S3 서비스 요약의 `PutObject`(쓰기) 작업에 대한 작업 요약입니다([서비스 요약(작업 목록)](access_policies_understand-service-summary.md) 참조). 이 작업의 경우 정책이 단일 리소스에 대한 여러 조건을 정의합니다.



![\[작업 요약 대화 상자 이미지\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/policies-summary-resource-dialog.png)


작업 요약 페이지에 포함되는 정보는 다음과 같습니다.

1. **JSON**을 선택하면 작업에 적용되는 여러 가지 조건 등 정책에 관한 추가 세부 정보를 볼 수 있습니다. (사용자에게 직접 연결된 인라인 정책의 서비스 요약을 보려면 단계가 다릅니다. 그 경우 JSON 정책 문서에 액세스하려면 서비스 요약 대화 상자를 닫고 정책 요약으로 돌아가야 합니다.)

1. 특정 리소스의 요약을 보려면 **검색** 상자에 키워드를 입력하여 사용할 수 있는 리소스의 목록을 줄입니다.

1. **작업** 뒤로 화살표 옆에 서비스와 작업의 이름이 `action name action in service` 형식으로 표시됩니다(이 경우 **S3의 PutObject 작업**). 이 서비스의 작업 요약에는 정책에서 정의된 리소스의 목록이 포함되어 있습니다.

1. **리소스** - 이 열에는 정책이 선택한 서비스에 대해 정의한 리소스가 나열됩니다. 이 예시에서는 **PutObject** 작업이 모든 객체 경로와 `developer_bucket` Amazon S3 버킷 리소스에서만 허용됩니다. 서비스가 IAM에 제공하는 정보에 따라 `arn:aws:s3:::developer_bucket/*` 등의 ARN이 표시되거나 `BucketName = developer_bucket, ObjectPath = All` 등의 정의된 리소스 유형이 표시될 수 있습니다.

1. **리전** - 이 열은 리소스가 정의된 리전을 보여줍니다. 리소스는 모든 리전 또는 단일 리전에 대해 정의할 수 있습니다. 리소스는 둘 이상의 리전에 존재할 수 없습니다.
   + **모든 리전** - 리소스와 연결된 작업은 모든 리전에 적용됩니다. 이 예시에서는 작업이 전역적 서비스 Amazon S3에 속합니다. 전역적 서비스에 속하는 작업은 모든 리전에 적용됩니다.
   + 리전 텍스트(Region text) - 리소스와 연결된 작업은 한 리전에 적용됩니다. 예를 들어 정책은 리소스에 대한 `us-east-2` 리전을 지정할 수 있습니다.

1. **계정** - 이 열은 리소스와 연결된 서비스 또는 작업이 특정 계정에 적용되는지를 나타냅니다. 리소스는 모든 계정 또는 단일 계정에 존재할 수 있습니다. 리소스는 둘 이상의 특정 계정에 존재할 수 없습니다.
   + **모든 계정(All accounts)** - 리소스와 연결된 작업은 모든 계정에 적용됩니다. 이 예시에서는 작업이 전역적 서비스 Amazon S3에 속합니다. 전역적 서비스에 속하는 작업은 모든 계정에 적용됩니다.
   + **현재 계정** - 리소스와 연결된 작업은 현재 계정에만 적용됩니다.
   + 계정 번호(Account number) - 리소스와 연결된 작업은 하나의 계정(현재 로그인되지 않은 계정)에 적용됩니다. 예를 들어 정책이 리소스에 대한 `123456789012` 계정을 지정하면 계정 번호가 정책 요약에 나타납니다.

1. **요청 조건(Request condition)** - 이 열은 리소스와 연결된 작업에 조건이 적용되는지를 보여줍니다. 이 예시에는 `s3:x-amz-acl = public-read` 조건이 포함됩니다. 이러한 조건에 대해 자세히 알아보려면 **JSON**을 선택하여 JSON 정책 문서를 검토합니다.

# 작업 요약 보기
<a name="access_policies_view-action-summary"></a>

권한을 부여하는 정책 요약에 나열되어 있는 각 작업에 대한 작업 요약을 볼 수 있습니다.

## **정책** 페이지에서 작업 요약 보기
<a name="viewing-action-summaries-from-the-policies-page"></a>

관리형 정책에 대한 작업 요약을 볼 수 있습니다.

**관리형 정책의 작업 요약을 확인하려면**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 탐색 창에서 **정책**을 선택합니다.

1. 정책 목록에서 보려는 정책의 이름을 선택합니다.

1. 정책 요약을 보려면 해당 정책의 **정책 세부 정보** 페이지에서 **권한** 탭을 확인합니다.

1. 서비스의 정책 요약 목록에서 확인하려는 서비스의 이름을 선택합니다.

1. 작업의 서비스 요약 목록에서 확인하려는 작업의 이름을 선택합니다.

## 사용자에게 연결된 정책의 작업 요약을 보기
<a name="viewing-action-summaries-for-policies-attached-to-users"></a>

사용자에게 연결된 정책에 대한 작업 요약을 볼 수 있습니다.

**사용자에게 연결된 정책의 작업 요약을 확인하려면**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 탐색 창에서 **사용자**를 선택합니다.

1. 사용자 목록에서 정책을 보려는 사용자의 이름을 선택합니다.

1. 사용자에게 직접 연결되거나 그룹에서 연결된 정책의 목록을 보려면 해당 사용자의 **요약** 페이지에서 **권한** 탭을 봅니다.

1. 사용자에 대한 정책 테이블에서 확인하려는 정책의 이름을 선택합니다.

   **사용자** 페이지에서 해당 사용자에게 연결된 정책의 서비스 요약을 보려고 하는 경우, **정책** 페이지로 리디렉션됩니다. 서비스 요약은 **정책** 페이지에서만 볼 수 있습니다.

1. 서비스의 정책 요약 목록에서 확인하려는 서비스의 이름을 선택합니다.
**참고**  
선택한 정책이 사용자에게 직접 연결된 인라인 정책인 경우 서비스 요약 테이블이 표시됩니다. 정책이 그룹에서 연결한 인라인 정책인 경우 해당 그룹의 JSON 정책 문서로 자동으로 이동합니다. 정책이 관리형 정책인 경우 **정책** 페이지에서 해당 정책의 서비스 요약이 게시된 부분으로 자동으로 이동합니다.

1. 작업의 서비스 요약 목록에서 확인하려는 작업의 이름을 선택합니다.

## 역할에 연결된 정책에 대한 작업 요약 보기
<a name="viewing-action-summaries-for-policies-attached-to-roles"></a>

역할에 연결된 모든 정책에 대한 작업 요약을 볼 수 있습니다.

**역할 연결된 정책의 작업 요약을 보려면**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 탐색 창에서 **역할**을 선택합니다.

1. 역할 목록에서 정책을 보려는 역할의 이름을 선택합니다.

1. 역할의 **요약** 페이지에서 **권한** 탭을 보고 역할에 연결된 정책 목록을 확인합니다.

1. 역할에 대한 정책 테이블에서 보려는 정책의 이름을 선택합니다.

   **역할** 페이지에서 해당 사용자에게 연결된 정책의 서비스 요약을 보려고 하는 경우, **정책** 페이지로 리디렉션됩니다. 서비스 요약은 **정책** 페이지에서만 볼 수 있습니다.

1. 서비스의 정책 요약 목록에서 확인하려는 서비스의 이름을 선택합니다.

1. 작업의 서비스 요약 목록에서 확인하려는 작업의 이름을 선택합니다.

# 정책 요약 예시
<a name="access_policies_policy-summary-examples"></a>

다음 예시에는 정책을 통해 부여되는 권한을 이해하는 데 도움이 되는 JSON 정책과 그에 연결된 [정책 요약](access_policies_understand-policy-summary.md), [서비스 요약](access_policies_understand-service-summary.md), [작업 요약](access_policies_understand-action-summary.md)이 포함되어 있습니다.

## 정책 1: DenyCustomerBucket
<a name="example1"></a>

이 정책은 동일한 서비스에 대한 허용과 거부를 보여줍니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "FullAccess",
            "Effect": "Allow",
            "Action": ["s3:*"],
            "Resource": ["*"]
        },
        {
            "Sid": "DenyCustomerBucket",
            "Action": ["s3:*"],
            "Effect": "Deny",
            "Resource": ["arn:aws:s3:::customer", "arn:aws:s3:::customer/*" ]
        }
    ]
}
```

------

***DenyCustomerBucket** 정책 요약:*

![\[정책 요약 대화 상자 이미지\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/policies-summary-example1-dialog.png)


***DenyCustomerBucket S3 (Explicit deny)** 서비스 요약:*

![\[서비스 요약 대화 상자 이미지\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/policies-summary-action-example1-dialog.png)


***GetObject(읽기)** 작업 요약:*

![\[작업 요약 대화 상자 이미지\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/policies-summary-resource-example1-dialog.png)


## 정책 2: DynamoDbRowCognitoID
<a name="policy_example2"></a>

이 정책은 사용자의 Amazon Cognito ID를 기반으로 Amazon DynamoDB에 대한 행 수준 액세스 권한을 제공합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "dynamodb:DeleteItem",
                "dynamodb:GetItem",
                "dynamodb:PutItem",
                "dynamodb:UpdateItem"
            ],
            "Resource": [
                "arn:aws:dynamodb:us-west-1:123456789012:table/myDynamoTable"
            ],
            "Condition": {
                "ForAllValues:StringEquals": {
                    "dynamodb:LeadingKeys": [
                        "${cognito-identity.amazonaws.com:sub}"
                    ]
                }
            }
        }
    ]
}
```

------

***DynamoDbRowCognitoID** 정책 요약:*

![\[정책 요약 대화 상자 이미지\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/policies-summary-example2-dialog.png)


***DynamoDbRowCognitoID DynamoDB(허용)** 서비스 요약:*

![\[서비스 요약 대화 상자 이미지\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/policies-summary-action-example2-dialog.png)


***GetItem(나열)** 작업 요약:*

![\[작업 요약 대화 상자 이미지\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/policies-summary-resource-example2-dialog.png)


## 정책 3: MultipleResourceCondition
<a name="policy_example3"></a>

이 정책에는 다수의 리소스와 조건이 포함됩니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": ["arn:aws:s3:::Apple_bucket/*"],
            "Condition": {"StringEquals": {"s3:x-amz-acl": ["public-read"]}}
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": ["arn:aws:s3:::Orange_bucket/*"],
            "Condition": {"StringEquals": {
                "s3:x-amz-acl": ["custom"],
                "s3:x-amz-grant-full-control": ["1234"]
            }}
        }
    ]
}
```

------

***MultipleResourceCondition** 정책 요약:*

![\[정책 요약 대화 상자 이미지\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/policies-summary-example3-dialog.png)


***MultipleResourceCondition S3(허용)** 서비스 요약:*

![\[서비스 요약 대화 상자 이미지\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/policies-summary-action-example3-dialog.png)


***PutObject(쓰기)** 작업 요약:*

![\[작업 요약 대화 상자 이미지\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/policies-summary-resource-example3-dialog.png)


## 정책 4: EC2\$1troubleshoot
<a name="policy_example4"></a>

다음 정책을 통해 사용자는 실행 중인 Amazon EC2 인스턴스의 스크린샷을 만들어 EC2 문제 해결에 필요한 도움을 얻을 수 있습니다. 또한 이 정책은 Amazon S3 개발자 버킷의 항목에 대한 정보를 확인할 수 있도록 허용합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:GetConsoleScreenshot"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::developer"
            ]
        }
    ]
}
```

------

***EC2\$1Troubleshoot** 정책 요약:*

![\[정책 요약 대화 상자 이미지\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/policies-summary-example4-dialog.png)


***EC2\$1Troubleshoot S3(허용)** 서비스 요약:*

![\[서비스 요약 대화 상자 이미지\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/policies-summary-action-example4-dialog.png)


***ListBucket(나열)** 작업 요약:*

![\[작업 요약 대화 상자 이미지\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/policies-summary-resource-example4-dialog.png)


## 정책 5: CodeBuild\$1CodeCommit\$1CodeDeploy
<a name="example6"></a>

이 정책은 특정 CodeBuild, CodeCommit, CodeDeploy 리소스에 대한 액세스 권한을 제공합니다. 이러한 리소스는 각 서비스에 고유하므로 일치하는 서비스에서만 나타납니다. `Action` 요소에 서비스와 일치하지 않는 리소스를 포함하는 경우 리소스가 모든 작업 요약에 나타납니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Stmt1487980617000",
            "Effect": "Allow",
            "Action": [
                "codebuild:*",
                "codecommit:*",
                "codedeploy:*"
            ],
            "Resource": [
                "arn:aws:codebuild:us-east-2:123456789012:project/my-demo-project",
                "arn:aws:codecommit:us-east-2:123456789012:MyDemoRepo",
                "arn:aws:codedeploy:us-east-2:123456789012:application:WordPress_App",
                "arn:aws:codedeploy:us-east-2:123456789012:instance/AssetTag*"
            ]
        }
    ]
}
```

------

***CodeBuild\$1CodeCommit\$1CodeDeploy** 정책 요약:*

![\[정책 요약 대화 상자 이미지\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/policies-summary-example6-dialog.png)


***CodeBuild\$1CodeCommit\$1CodeDeploy CodeBuild(허용)** 서비스 요약:*

![\[서비스 요약 대화 상자 이미지\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/policies-summary-action-example6-dialog.png)


***CodeBuild\$1CodeCommit\$1CodeDeploy StartBuild (Write)** 작업 요약:*

![\[작업 요약 대화 상자 이미지\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/policies-summary-resource-example6-dialog.png)


# IAM 리소스에 액세스하는 데 필요한 권한
<a name="access_permissions-required"></a>

*리소스*는 서비스 내의 객체입니다. IAM 리소스에는 그룹, 사용자, 역할 및 정책이 있습니다. AWS 계정 루트 사용자 보안 인증 정보로 로그인한 경우 IAM 보안 인증 또는 IAM 리소스를 관리하는 데 아무런 제한이 없습니다. 하지만 IAM 사용자가 자격 증명이나 IAM 리소스를 관리하려면 그러한 권한이 명시적으로 부여되어야 합니다. 자격 증명 기반 정책을 사용자에 연결하여 권한을 부여할 수 있습니다.

**참고**  
AWS 설명서 전체에서 특정 범주를 언급하지 않고 IAM 정책을 칭할 때는 자격 증명 기반 고객 관리형 정책을 의미합니다. 정책 범주에 대한 자세한 내용은 [AWS Identity and Access Management의 정책 및 권한](access_policies.md) 섹션을 참조하세요.

## IAM 자격 증명을 관리하기 위한 권한
<a name="access_permissions-required-identities"></a>

IAM 그룹, 사용자, 역할 및 자격 증명을 관리하는 데 필요한 권한은 일반적으로 작업에 대한 API 작업에 해당합니다. 예를 들어 IAM 사용자를 생성하려면 해당하는 API 명령 [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateUser.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateUser.html)가 있는 `iam:CreateUser` 권한이 있어야 합니다. IAM 사용자가 다른 IAM 사용자를 생성할 수 있도록 다음과 같은 IAM 정책을 해당 사용자에게 연결할 수 있습니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": "iam:CreateUser",
    "Resource": "*"
  }
}
```

------

정책에서 `Resource` 요소의 값은 작업 및 그 작업이 적용될 수 있는 리소스에 따라 다릅니다. 앞의 예에서 정책은 사용자가 어떤 사용자도 생성할 수 있도록 허용합니다(`*`는 모든 문자열을 나타내는 와일드카드). 반면에, 사용자가 자신의 액세스 키(API 작업 [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateAccessKey.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateAccessKey.html) 및 [https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccessKey.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccessKey.html))만 변경할 수 있도록 하는 정책에는 일반적으로 `Resource` 요소가 포함됩니다. 이 경우 ARN에는 다음 예제와 같이 현재 사용자의 이름을 해석하는 변수(`${aws:username}`)가 포함됩니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ListUsersForConsole",
            "Effect": "Allow",
            "Action": "iam:ListUsers",
            "Resource": "arn:aws:iam::*:*"
        },
        {
            "Sid": "ViewAndUpdateAccessKeys",
            "Effect": "Allow",
            "Action": [
                "iam:UpdateAccessKey",
                "iam:CreateAccessKey",
                "iam:ListAccessKeys"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        }
    ]
}
```

------

앞의 예에서 `${aws:username}`은 현재 사용자의 사용자 이름으로 변환되는 변수입니다. 정책 변수에 대한 자세한 내용은 [IAM 정책 요소: 변수 및 태그](reference_policies_variables.md) 섹션을 참조하세요.

작업 이름에 와일드카드 문자(`*`)를 사용하면 특정 작업에 관련된 모든 작업에 대한 권한을 쉽게 부여할 수 있습니다. 예를 들어 사용자가 IAM 작업을 수행할 수 있게 하려면 그 작업에 대해 `iam:*`를 사용하면 됩니다. 사용자가 액세스 키에 관련된 작업만 수행할 수 있게 하려면 정책 문의 `iam:*AccessKey*` 요소에 `Action`를 사용하면 됩니다. 이렇게 하면 사용자에게 [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateAccessKey.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateAccessKey.html), [https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteAccessKey.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteAccessKey.html), [https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccessKeyLastUsed.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccessKeyLastUsed.html), [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAccessKeys.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAccessKeys.html), [https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccessKey.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccessKey.html) 작업을 수행할 수 있는 권한이 부여됩니다. (나중에 이름에 "AccessKey"가 포함되는 작업이 IAM에 추가될 경우에도 `iam:*AccessKey*` 요소에 대해 `Action`를 사용하며 사용자에게 새 작업에 대한 권한이 부여됩니다.) 다음 예는 사용자가 자신의 액세스 키에 속하는 모든 작업을 수행할 수 있게 허용하는 정책을 보여 줍니다(`account-id`를 해당 AWS 계정 ID로 변경).

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": "iam:*AccessKey*",
        "Resource": "arn:aws:iam::111122223333:user/${aws:username}"
    }
}
```

------

그룹 삭제와 같은 일부 작업에는 여러 작업이 포함됩니다. 즉, 먼저 그룹에서 사용자를 제거한 후 그룹의 정책을 분리 또는 삭제하고 나서 실제로 그룹을 삭제합니다. 사용자가 그룹을 삭제할 수 있게 하려는 경우 이러한 모든 관련 작업을 수행할 수 있는 권한을 부여해야 합니다.

## AWS Management Console에서의 작업 권한
<a name="Credentials-Permissions-overview-console"></a>

앞의 예는 사용자가 [AWS CLI](https://aws.amazon.com/cli/) 또는 [AWS SDK](https://aws.amazon.com/tools/)를 사용하여 작업을 수행할 수 있게 허용하는 정책을 보여 줍니다.

사용자가 콘솔에서 작업할 경우 콘솔은 그룹, 사용자, 역할 및 정책을 나열하고 그룹, 사용자 또는 역할과 연결된 정책을 가져오는 요청을 IAM에 보냅니다. 또한 콘솔은 AWS 계정 정보와 보안 주체에 대한 정보를 가져오는 요청도 보냅니다. 보안 주체는 콘솔에서 요청하는 사용자입니다.

일반적으로 작업을 수행하려면 일치하는 작업만 정책에 포함해야 합니다. 사용자를 생성하려면 `CreateUser` 작업을 호출하는 권한이 필요합니다. 콘솔을 사용하여 작업을 수행할 때 경우에 따라 콘솔에서 리소스를 표시하고 나열하며 가져오거나 볼 권한이 있어야 합니다. 이는 콘솔을 탐색하여 지정된 작업을 수행하기 위해 필요합니다. 예를 들어 Jorge라는 사용자가 콘솔을 사용하여 자신의 액세스 키를 변경하려면 IAM 콘솔에서 **사용자**를 선택할 것입니다. 이 작업은 콘솔에서 [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUsers.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUsers.html) 요청을 생성하게 합니다. Jorge에게 `iam:ListUsers` 작업에 대한 권한이 없을 경우 사용자를 나열하려고 시도할 때 콘솔이 액세스를 거부합니다. 그 결과, Jorge는 [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateAccessKey.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateAccessKey.html) 및 [https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccessKey.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccessKey.html) 작업에 대한 권한이 있는 경우에도 자신의 이름과 액세스 키를 가져올 수 없습니다.

사용자에게 AWS Management Console에서 그룹, 사용자, 역할, 정책, 자격 증명을 관리할 수 있는 권한을 부여하려면 콘솔에서 수행하는 작업에 대한 권한도 포함시켜야 합니다. 사용자에게 이러한 권한들을 부여하는 데 사용할 수 있는 몇 가지 정책의 예를 보려면 [IAM 리소스를 관리하기 위한 정책의 예](id_credentials_delegate-permissions_examples.md) 섹션을 참조하세요.

## AWS 계정 전반에 걸쳐 권한 부여
<a name="UserPermissionsAcrossAccounts"></a>

계정의 IAM 사용자에게 리소스에 대한 액세스 권한을 직접 부여할 수 있습니다. 다른 계정의 사용자에게 리소스에 대한 액세스 권한이 필요한 경우, 권한을 포함하지만 특정 사용자와 연결되지 않는 엔터티인 IAM 역할을 생성할 수 있습니다. 다른 계정의 사용자는 해당 역할을 사용하여 해당 역할에 할당된 권한에 따라 리소스에 액세스할 수 있습니다. 자세한 내용은 [소유한 다른 AWS 계정의 IAM 사용자에 대한 액세스](id_roles_common-scenarios_aws-accounts.md) 섹션을 참조하세요.

**참고**  
일부 서비스만이 [자격 증명 기반 정책 및 리소스 기반 정책](access_policies_identity-vs-resource.md)(예: Amazon S3, Amazon SNS, Amazon SQS)에 설명된 리소스 기반 정책을 지원합니다. 그런 서비스의 역할 사용 대안은 공유할 리소스(버킷, 주제 또는 대기열)에 정책을 연결하는 것입니다. 리소스 기반 정책은 리소스에 대한 액세스 허가를 받은 AWS 계정을 지정할 수 있습니다.

## 한 서비스에서 다른 서비스에 액세스할 권한
<a name="UserPermissionsAcrossAWS_ARCHIVE"></a>

많은 AWS 제품은 다른 AWS 제품에 액세스합니다. 예를 들어, 여러 AWS 서비스(Amazon EMR, Elastic Load Balancing, Amazon EC2 Auto Scaling 포함)는 Amazon EC2 인스턴스를 관리합니다. 기타 AWS 서비스는 Amazon S3 버킷, Amazon SNS 주제, Amazon SQS 대기열 등을 사용합니다.

이러한 경우 권한 관리 시나리오가 서비스별로 다릅니다. 다음은 다양한 서비스에 대한 권한을 처리하는 방법의 예입니다.
+ Amazon EC2 Auto Scaling에서 사용자에게 Auto Scaling을 사용할 권한이 있어야 하지만, Amazon EC2 인스턴스를 관리할 권한을 명시적으로 부여할 필요는 없습니다.
+ AWS Data Pipeline에서 IAM 역할은 파이프라인에서 수행할 수 있는 작업을 결정합니다. 또한 사용자에게는 해당 역할을 수임할 권한이 필요합니다. (자세한 내용은 *AWS Data Pipeline 개발자 가이드의* [IAM으로 파이프라인에 대한 권한 부여](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html)를 참조하세요.) 

AWS 제품에서 원하는 작업을 수행할 수 있도록 권한을 적절히 구성하는 방법에 대한 자세한 내용은 요청할 서비스 설명서를 참조하세요. 서비스에 대한 역할을 생성하는 방법에 대해 알아보려면 [AWS 서비스에 대한 권한을 위임할 역할 생성](id_roles_create_for-service.md) 섹션을 참조하세요.

**사용자를 대신하여 작동하도록 IAM 역할로 서비스 구성**  
AWS 서비스를 사용자를 대신하여 작동하도록 구성하려면 일반적으로 서비스에서 수행할 수 있는 작업을 정의하는 IAM 역할의 ARN을 입력합니다. AWS는 사용자에게 서비스에 역할을 전달할 권한이 있는지 확인합니다. 자세한 내용은 [사용자에게 AWS 서비스에 역할을 전달할 권한 부여](id_roles_use_passrole.md) 섹션을 참조하세요.

## 필수 작업
<a name="access_permissions-required-dependent-actions"></a>

작업은 리소스 보기, 생성, 편집 및 삭제와 같이 리소스에 대해 수행할 수 있는 사항입니다. 작업은 각 AWS 서비스별로 정의됩니다.

누군가 작업을 수행할 수 있도록 허용하려면 호출 자격 증명 또는 영향을 받은 리소스에 적용되는 정책에 필요한 작업을 포함시켜야 합니다. 일반적으로 작업을 수행하는 데 필요한 권한을 제공하려면 정책에 해당 작업을 포함시켜야 합니다. 예를 들어 사용자를 생성하려면 정책에 CreateUser 작업을 추가해야 합니다.

경우에 따라 정책에 관련된 작업을 추가로 포함해야 할 수도 있습니다. 예를 들어, `ds:CreateDirectory` 작업을 사용하여 AWS Directory Service에서 누군가에게 디렉터리를 생성할 권한을 제공하려면 정책에 다음 작업을 포함시켜야 합니다.
+ `ds:CreateDirectory`
+ `ec2:DescribeSubnets`
+ `ec2:DescribeVpcs`
+ `ec2:CreateSecurityGroup`
+ `ec2:CreateNetworkInterface`
+ `ec2:DescribeNetworkInterfaces`
+ `ec2:AuthorizeSecurityGroupIngress`
+ `ec2:AuthorizeSecurityGroupEgress`

시각적 편집기를 사용하여 정책을 생성하거나 편집할 때 경고 및 정책에 필요한 모든 작업을 선택하라는 메시지가 표시됩니다.

AWS Directory Service에서 디렉터리를 생성하는 데 필요한 권한에 대한 자세한 내용은 [예제 2: 사용자에게 디렉터리 생성 허용](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/IAM_Auth_Access_IdentityBased.html#IAMPolicyExamples_DS_create_directory)을 참조하세요.

# IAM 리소스를 관리하기 위한 정책의 예
<a name="id_credentials_delegate-permissions_examples"></a>

다음은 사용자가 IAM 사용자, 그룹 및 자격 증명을 관리하기 위한 작업을 수행할 수 있게 하는 IAM 정책의 예시입니다. 여기에는 사용자가 자신의 암호, 액세스 키 및 멀티 팩터 인증(MFA) 디바이스를 관리할 수 있게 하는 정책이 포함됩니다.

사용자가 다른 AWS 제품 Amazon S3, Amazon EC2, DynamoDB 등으로 작업을 수행할 수 있도록 허용하는 예제 정책은 [IAM 자격 증명 기반 정책의 예](access_policies_examples.md) 섹션을 참조하세요.

**Topics**
+ [

## 사용자가 보고를 목적으로 계정의 그룹, 사용자, 정책 및 그 이상의 정보를 조회할 수 있도록 허용
](#iampolicy-example-userlistall)
+ [

## 사용자가 그룹의 멤버십을 관리할 수 있도록 허용
](#iampolicy-example-usermanagegroups)
+ [

## IAM 사용자를 관리할 수 있도록 허용
](#creds-policies-users)
+ [

## 사용자가 계정 암호 정책을 설정할 수 있도록 허용
](#creds-policies-set-password-policy)
+ [

## 사용자가 IAM 자격 증명 보고서를 생성하고 검색할 수 있도록 허용
](#iampolicy-generate-credential-report)
+ [

## 모든 IAM 작업 허용(관리자 액세스 권한)
](#creds-policies-all-iam)

## 사용자가 보고를 목적으로 계정의 그룹, 사용자, 정책 및 그 이상의 정보를 조회할 수 있도록 허용
<a name="iampolicy-example-userlistall"></a>

다음 정책은 사용자가 `Get` 또는 `List` 문자열로 시작하는 모든 IAM 작업을 호출하고, 보고서를 생성할 수 있게 허용합니다. 예시 정책을 보려면 [IAM: 콘솔에 대한 읽기 전용 액세스 허용](reference_policies_examples_iam_read-only-console.md) 섹션을 참조하세요.

## 사용자가 그룹의 멤버십을 관리할 수 있도록 허용
<a name="iampolicy-example-usermanagegroups"></a>

다음 정책은 사용자가 *MarketingGroup*이라는 그룹의 멤버십을 업데이트할 수 있도록 허용합니다. 예시 정책을 보려면 [IAM: 프로그래밍 방식으로, 그리고 콘솔에서 그룹의 멤버십을 관리하도록 허용](reference_policies_examples_iam_manage-group-membership.md) 섹션을 참조하세요.

## IAM 사용자를 관리할 수 있도록 허용
<a name="creds-policies-users"></a>

다음 정책은 사용자가 IAM 사용자 관리와 관련된 모든 작업을 수행할 수 있게 허용하지만 그룹이나 정책의 생성과 같은 다른 엔터티에 대한 작업 수행은 허용하지 않습니다. 허용되는 작업은 다음과 같습니다.
+ 사용자 생성([https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateUser.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateUser.html) 작업).
+ 사용자 삭제. 이 작업은 [https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteSigningCertificate.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteSigningCertificate.html), [https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteLoginProfile.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteLoginProfile.html), [https://docs.aws.amazon.com/IAM/latest/APIReference/API_RemoveUserFromGroup.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_RemoveUserFromGroup.html), [https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteUser.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteUser.html) 작업 모두를 수행할 수 있는 권한이 필요합니다.
+ 계정 및 그룹의 사용자 나열([https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUser.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUser.html), [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUsers.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUsers.html) 및 [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListGroupsForUser.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListGroupsForUser.html) 작업).
+ 사용자의 정책 나열 및 제거([https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUserPolicies.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUserPolicies.html), [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedUserPolicies.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedUserPolicies.html), [https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachUserPolicy.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachUserPolicy.html), [https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteUserPolicy.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteUserPolicy.html) 작업) 
+ 사용자의 경로 이름 바꾸기 또는 변경([https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateUser.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateUser.html) 작업). `Resource` 요소에는 소스 경로와 대상 경로를 모두 다루는 ARN이 포함되어야 합니다. 경로에 대한 자세한 내용은 [표시 이름 및 경로](reference_identifiers.md#identifiers-friendly-names) 섹션을 참조하세요.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowUsersToPerformUserActions",
            "Effect": "Allow",
            "Action": [
                "iam:ListPolicies",
                "iam:GetPolicy",
                "iam:UpdateUser",
                "iam:AttachUserPolicy",
                "iam:ListEntitiesForPolicy",
                "iam:DeleteUserPolicy",
                "iam:DeleteUser",
                "iam:ListUserPolicies",
                "iam:CreateUser",
                "iam:RemoveUserFromGroup",
                "iam:AddUserToGroup",
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:PutUserPolicy",
                "iam:ListAttachedUserPolicies",
                "iam:ListUsers",
                "iam:GetUser",
                "iam:DetachUserPolicy"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowUsersToSeeStatsOnIAMConsoleDashboard",
            "Effect": "Allow",
            "Action": [
                "iam:GetAccount*",
                "iam:ListAccount*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

위의 정책에 포함된 많은 권한은 사용자가 AWS Management Console에서 작업을 수행하도록 허용합니다. 사용자가 [AWS CLI](https://aws.amazon.com/cli/), [AWS SDK](https://aws.amazon.com/tools/) 또는 IAM HTTP 쿼리 API를 사용하여 사용자 관련 작업을 수행할 경우 특정 권한이 필요하지 않을 수 있습니다. 예를 들어 사용자가 어떤 사용자에게서 연결을 해제할 정책의 ARN을 이미 알고 있다면 `iam:ListAttachedUserPolicies` 권한이 필요하지 않습니다. 사용자에게 필요한 권한의 정확한 목록은 사용자가 다른 사용자를 관리할 때 수행해야 하는 작업에 따라 다릅니다.

정책에 있는 다음 권한들은 AWS Management Console을 통해 사용자 작업에 액세스할 수 있도록 허용합니다.
+ `iam:GetAccount*`
+ `iam:ListAccount*`

## 사용자가 계정 암호 정책을 설정할 수 있도록 허용
<a name="creds-policies-set-password-policy"></a>

일부 사용자들에게 AWS 계정의 [암호 정책](id_credentials_passwords_account-policy.md)을 확인하고 업데이트할 수 있는 권한을 부여할 수 있습니다. 예시 정책을 보려면 [IAM: 프로그래밍 방식으로, 그리고 콘솔에서 계정 암호 요구 사항을 설정하도록 허용](reference_policies_examples_iam_set-account-pass-policy.md) 섹션을 참조하세요.

## 사용자가 IAM 자격 증명 보고서를 생성하고 검색할 수 있도록 허용
<a name="iampolicy-generate-credential-report"></a>

AWS 계정에 있는 모든 사용자가 나열된 보고서를 생성하고 다운로드할 수 있는 권한을 사용자에게 부여할 수 있습니다. 이 보고서에는 암호, 액세스 키, MFA 디바이스, 서명 인증서를 포함한 다양한 사용자 자격 증명의 상태도 나열됩니다. 자격 증명 보고서에 대한 자세한 정보는 섹션을 참조하세요[AWS 계정의 자격 증명 보고서 생성](id_credentials_getting-report.md). 예시 정책을 보려면 [IAM: IAM 자격 증명 보고서 생성 및 검색](reference_policies_examples_iam-credential-report.md) 섹션을 참조하세요.

## 모든 IAM 작업 허용(관리자 액세스 권한)
<a name="creds-policies-all-iam"></a>

일부 사용자들에게 암호, 액세스 키, MFA 디바이스, 사용자 인증서 관리를 비롯하여 IAM에서의 모든 작업을 수행할 수 있는 권한을 부여할 수 있습니다. 다음 예시와 같은 정책은 이러한 권한들을 부여합니다.

**주의**  
사용자에게 IAM에 대한 모든 액세스 권한을 부여하면 해당 사용자가 자기 자신 또는 다른 사용자에게 부여할 수 있는 권한에 제한이 없습니다. 사용자는 새로운 IAM 엔터티(사용자나 역할)를 생성하고 그러한 엔터티에 AWS 계정의 모든 리소스에 대한 모든 액세스 권한을 부여할 수 있습니다. 사용자에게 IAM에 대한 모든 액세스 권한을 부여하면 실제로 사용자들에게 AWS 계정의 모든 리소스에 대한 모든 액세스 권한을 부여하는 것입니다. 여기에는 모든 리소스를 삭제하는 권한도 포함됩니다. 이러한 권한은 신뢰할 수 있는 관리자에게만 부여해야 하며, 그러한 관리자에 대해 멀티 팩터 인증(MFA)을 적용해야 합니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": "iam:*",
    "Resource": "*"
  }
}
```

------

# IAM 임시 위임
<a name="access_policies-temporary-delegation"></a>

## 개요
<a name="temporary-delegation-overview"></a>

임시 위임은 온보딩을 가속화하고 AWS 계정과 통합되는 Amazon 및 AWS 파트너의 제품 관리를 간소화합니다. 여러 AWS 서비스를 수동으로 구성할 필요 없이, 자동화된 배포 워크플로를 통해 제품 제공업체가 몇 분 만에 사용자를 대신하여 설정 작업을 완료할 수 있도록 허용하는 제한된 임시 권한을 위임할 수 있습니다. 사용자가 승인 요구 사항 및 권한 경계를 통해 관리 통제권을 유지하며, 제품 제공업체 권한은 수동 정리 없이 승인된 기간 후에 자동으로 만료됩니다. 제품에 지속적인 작업에 대한 지속적인 액세스가 필요한 경우 공급자는 임시 위임을 사용하여 역할의 최대 권한을 정의하는 권한 경계가 있는 IAM 역할을 생성할 수 있습니다. 모든 제품 제공업체 활동은 규정 준수 및 보안 모니터링을 위해 AWS CloudTrail을 통해 추적됩니다.

**참고**  
임시 위임 요청은 기능 온보딩 프로세스를 완료한 Amazon 제품 및 적격 AWS 파트너만 생성할 수 있습니다. 고객은 이러한 요청을 검토하고 승인하지만 직접 생성할 수는 없습니다. IAM 임시 위임을 제품에 통합하려는 AWS 파트너의 경우 온보딩 및 통합 지침은 [파트너 통합 가이드](access_policies-temporary-delegation-partner-guide.md)를 참조하세요.

## 임시 위임 작동 방식
<a name="temporary-delegation-how-it-works"></a>

임시 위임을 통해 Amazon과 AWS 파트너는 계정에 대한 일시적이고 제한된 액세스를 요청할 수 있습니다. 승인되면 위임된 권한을 사용하여 사용자 대신 작업을 수행할 수 있습니다. 위임 요청은 제품 제공업체가 AWS 계정에서 리소스를 배포하거나 구성하는 데 필요한 AWS 서비스 및 작업에 대한 특정 권한을 정의합니다. 이러한 권한은 제한된 시간 동안만 사용할 수 있으며 요청에 지정된 기간이 지나면 자동으로 만료됩니다.

**참고**  
위임된 액세스의 최대 기간은 12시간입니다. 하지만 루트 사용자는 4시간 이하의 기간으로만 위임 요청을 승인할 수 있습니다. 요청이 4시간 이상을 지정하는 경우 루트가 아닌 ID를 사용하여 요청을 승인해야 합니다. 자세한 내용은 [권한 시뮬레이션 베타 기능](temporary-delegation-initiate-request.md#temporary-delegation-permission-simulation)을 참조하세요.

Amazon S3 버킷에서 읽기 등의 진행 중인 작업의 경우, 위임 요청에는 임시 액세스가 만료된 후 리소스 및 작업에 대한 지속적인 액세스를 허용하는 IAM 역할 생성이 포함될 수 있습니다. 제품 제공업체는 임시 위임을 통해 생성된 모든 IAM 역할에 권한 경계를 연결해야 합니다. 권한 경계는 역할의 최대 권한을 제한하되, 자체적으로 권한을 부여하지는 않습니다. 권한 경계를 승인하기 전에 요청의 일부로 검토할 수 있습니다. 자세한 내용은 [권한 경계](access_policies_boundaries.md)를 참조하세요.

이 프로세스는 다음과 같이 작동합니다.

1. Amazon 또는 AWS 파트너 제품에 로그인하여 AWS 환경과 통합합니다.

1. 제품 제공업체는 사용자를 대신하여 위임 요청을 시작하고 사용자를 AWS Management Console로 리디렉션합니다.

1. 요청된 권한을 검토하고 요청을 승인할지, 거부할지, 아니면 관리자에게 전달할지 결정합니다.

1. 사용자 또는 관리자가 요청을 승인하면 제품 제공업체는 필요한 작업을 수행하기 위해 승인자의 임시 자격 증명을 얻을 수 있습니다.

1. 지정된 기간이 지나면 제품 제공업체 액세스가 자동으로 만료됩니다. 하지만 임시 위임 요청을 통해 생성된 모든 IAM 역할은 이 기간 이후에도 유지되므로, 제품 제공업체는 지속적인 관리 작업을 위해 리소스 및 작업에 계속 액세스할 수 있습니다.

![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/delegation-flow.png)


**참고**  
임시 위임 요청에 포함된 서비스 및 작업에 대한 권한이 있는 경우에만 제품 제공업체에 권한을 위임할 수 있습니다. 요청된 서비스 및 작업에 액세스할 수 없는 경우 요청을 승인할 때 제품 제공업체는 이러한 권한을 받지 않습니다.

권한 검사에 성공할 가능성이 있는 것으로 표시되면 임시 위임 요청을 승인하고 워크플로를 계속 진행할 수 있습니다.

권한 검사에 충분한 권한이 없는 것으로 표시되면 승인을 위해 관리자에게 요청을 전달합니다. 이메일이나 티켓과 같은 선호하는 방법을 사용하여 이 요청에 대해 관리자에게 알리는 것이 좋습니다.

관리자가 요청을 승인하면 다음 단계는 제품 제공업체의 구성에 따라 달라집니다.
+ 제품 제공업체가 즉시 액세스를 요청하면 자동으로 임시 권한을 받고 액세스 기간이 시작됩니다.
+ 제품 제공업체가 소유자(최초 수신자)의 릴리스를 요청한 경우 액세스 기간이 시작되기 전에 요청으로 돌아가 임시 계정 액세스를 명시적으로 공유해야 합니다. 제품 제공업체는 일반적으로 필요한 작업을 완료하기 위해 리소스 선택 또는 구성 세부 정보와 같은 추가 입력이 필요한 경우 이 옵션을 사용합니다.

# 임시 위임 요청 시작
<a name="temporary-delegation-initiate-request"></a>

지원되는 Amazon 또는 AWS 파트너 제품에서만 임시 위임 요청을 시작할 수 있습니다. 임시 위임을 지원하는 워크플로 중에 제품 제공업체에 계정에서 필요한 AWS 리소스를 구성할 수 있는 일시적이고 제한된 권한을 부여하라는 메시지가 표시됩니다. 이 자동화된 접근 방식을 사용하면 이러한 리소스를 수동으로 구성할 필요가 없으므로 보다 간소화된 환경이 제공됩니다.

액세스 권한을 부여하기 전에 제품 제공업체에 필요한 특정 IAM 역할, 정책 및 AWS 서비스와 같은 위임 요청 세부 정보를 검토할 수 있습니다. 충분한 권한이 있는 경우 직접 요청을 승인하거나 계정 관리자에게 요청을 전달하여 승인을 받을 수 있습니다. 모든 제품 제공업체 액세스는 시간 제한이 있으며 필요에 따라 모니터링하고 취소할 수 있습니다.

**임시 위임 요청을 시작하려면**

1. AWS 계정과의 통합이 필요한 Amazon 또는 AWS 파트너가 지원하는 제품의 콘솔로 이동합니다.

1. *IAM 임시 위임으로 배포*를 선택합니다. 옵션 이름은 지원되는 제품마다 다를 수 있습니다. 자세한 내용은 제품 제공업체의 설명서를 참조하세요.
**참고**  
AWS Management Console에 아직 로그인하지 않은 경우 AWS 로그인 페이지에 새 창이 열립니다. 제품 콘솔에서 임시 위임 요청을 시작하기 전에 AWS 계정에 로그인하는 것이 좋습니다. 사용자 유형 및 액세스하려는 AWS 리소스에 따라 로그인하는 방법에 대한 자세한 내용은 [AWS 로그인 사용 설명서](docs---aws.amazon.com.rproxy.goskope.comsignin/latest/userguide/what-is-sign-in.html)를 참조하세요.

1. 요청 세부 정보를 검토하여 제품 제공업체의 제품 이름 및 AWS 계정을 확인합니다. 제품 제공업체가 사용자를 대신하여 작업을 수행하는 데 사용할 AWS ID를 검토할 수도 있습니다.

1. 이 요청을 승인하여 임시로 위임할 권한에 대한 *액세스 세부 정보*를 검토합니다.
   + *권한 요약* 섹션은 AI에서 생성한 개략적인 개요를 제공하므로, 액세스할 수 있는 AWS 서비스 범주와 각 서비스에서 수행할 수 있는 작업 유형을 이해하는 데 도움이 됩니다.
   + *JSON 보기*를 선택하여 액세스 범위, 리소스 제한 등, 제품 제공업체가 AWS 계정에 배포해야 하는 특정 권한을 검토합니다.
   + 제품 제공업체가 임시 위임 요청의 일부로 IAM 역할을 생성하는 경우 권한 경계를 역할에 연결해야 합니다. 이러한 IAM 역할에는 요청된 액세스 기간이 만료된 후에도 리소스 및 작업에 대한 액세스를 계속 허용하는 권한이 있습니다. *세부 정보 보기*를 선택하여 역할이 가질 수 있는 최대 권한을 정의하는 권한 경계를 검토합니다. 제품 제공업체는 생성 중에 실제 권한을 정의하는 추가 정책을 역할에 적용합니다. 이러한 정책은 제품 제공업체가 정책을 정의하는 방식에 따라 경계보다 더 좁거나 광범위해 보일 수 있습니다. 하지만 권한 경계는 역할에 연결된 정책에 관계없이 역할의 유효 권한이 요청 승인 중에 표시되는 권한을 초과하지 않도록 보장합니다. 권한 경계에 대한 자세한 내용은 [권한 경계](access_policies_boundaries.md)를 참조하세요.

1. 권한 시뮬레이션 결과를 검토합니다. 권한 시뮬레이션 기능은 요청에 포함된 권한을 기준으로 ID의 권한을 자동으로 평가합니다. 이 분석 결과를 바탕으로 현재 ID로 요청을 승인할지 아니면 관리자에게 요청을 전달할지 여부를 나타내는 권장 사항이 표시됩니다. 자세한 내용은 [권한 시뮬레이션 베타 기능](#temporary-delegation-permission-simulation)을 참조하세요.

1. 대화 상자에서 진행 방법을 선택합니다.
   + ID에 제품 제공업체가 사용자를 대신하여 온보딩 절차를 수행할 수 있는 충분한 권한이 있는 경우 *액세스 허용*을 선택합니다. 이 옵션을 선택할 경우, 액세스를 제공하면 제품 제공업체의 액세스 기간이 시작됩니다.
   + ID에 제품 제공업체가 사용자를 대신하여 온보딩 절차를 수행할 수 있는 충분한 권한이 없는 경우 *요청 승인*을 선택합니다. 그런 다음 *승인 요청 생성*을 선택합니다. 이 옵션을 선택하면 계정 관리자와 공유할 수 있는 임시 위임 요청 링크가 생성됩니다. 관리자는 AWS Management Console에 액세스하거나 액세스 링크를 통해 임시 위임 요청을 검토하여 요청을 승인하고 요청자와 임시 액세스를 공유할 수 있습니다.

**참고**  
제품 제공업체에 액세스 권한을 부여하려면 위임 요청 수락(`AcceptDelegationRequest`)과 교환 토큰 릴리스(`SendDelegatedToken`)라는 두 가지 작업이 필요합니다. AWS Management Console은 요청을 승인할 때 이 두 단계를 자동으로 수행합니다. AWS CLI 또는 API를 사용하는 경우 두 단계를 별도로 실행해야 합니다.

## 권한 시뮬레이션 기능 - 베타
<a name="temporary-delegation-permission-simulation"></a>

임시 위임 요청을 받으면 직접 승인하거나 승인을 위해 계정 관리자에게 전달할 수 있습니다. 임시 위임 요청에 포함된 서비스 및 작업에 대한 권한이 있는 경우에만 제품 제공업체에 권한을 위임할 수 있습니다. 요청된 서비스 및 작업에 액세스할 수 없는 경우 제품 제공업체는 요청에 포함되어 있더라도 이러한 권한을 받지 못합니다.

예를 들어 임시 위임 요청에는 Amazon S3 버킷을 생성하고, Amazon EC2에서 인스턴스를 시작 및 중지하고, IAM 역할을 수임할 수 있는 기능이 필요합니다. 요청을 승인하는 ID는 Amazon EC2에서 인스턴스를 시작 및 중지하고 IAM 역할을 수임할 수 있지만 Amazon S3 버킷을 생성할 권한이 없습니다. 이 ID가 요청을 승인하면 제품 제공업체는 이러한 권한이 임시 위임 요청에 포함되었더라도 Amazon S3 버킷을 생성할 수 없습니다.

이미 보유한 권한만 위임할 수 있으므로 승인하기 전에 요청된 권한이 있는지 평가하는 것이 중요합니다. 권한 시뮬레이션 베타 기능은 권한을 요청에 포함된 권한과 비교하여 이 평가를 지원합니다. 평가는 현재 ID로 요청을 승인할 수 있는지 아니면 관리자에게 전달해야 하는지를 나타냅니다. 분석에서 충분한 권한이 있는지 확인할 수 없는 경우 검토를 위해 관리자에게 요청을 전달합니다. 이 평가는 시뮬레이션된 권한 분석을 기반으로 하며 라이브 AWS 환경과 다를 수 있으므로 진행하기 전에 요청된 권한을 주의 깊게 검토해야 합니다.

## 다음 단계
<a name="temporary-delegation-next-steps"></a>

임시 위임 요청을 시작한 후 수명 주기 동안 요청을 관리하고 모니터링할 수 있습니다. 다음 절차는 임시 액세스를 추적, 승인 및 제어하는 데 도움이 됩니다.
+ [임시 위임 요청 검토](temporary-delegation-review-requests.md) - 액세스 요청의 상태를 모니터링하고 임시 위임 요청을 승인하거나 거부하는 요청에 대한 자세한 정보를 봅니다.
+ [임시 위임 액세스 취소](temporary-delegation-revoke-access.md) - 활성 임시 위임 세션이 자연스럽게 만료되기 전에 즉시 종료합니다.

# 임시 위임 요청 검토
<a name="temporary-delegation-review-requests"></a>

임시 위임 요청을 시작한 후 IAM 콘솔에서 요청을 모니터링, 승인 및 거부할 수 있습니다. 임시 위임 요청 페이지에서는 승인 보류 중이거나 완료되었거나 거부된 요청을 포함하여 모든 요청을 한곳에서 볼 수 있습니다. 관리자는 이러한 요청을 검토하여 제품 제공업체에 AWS 리소스에 대한 액세스 권한을 부여하거나 조직의 보안 정책, 비즈니스 요구 사항 또는 규정 준수 표준에 따라 리소스를 거부할 수 있습니다. 이러한 가시성은 제품 제공업체 액세스의 수명 주기를 추적하고 임시 권한에 대한 감독을 유지하는 데 도움이 됩니다.

**참고**  
임시 위임 요청을 승인하려면 iam:AcceptDelegationRequest 권한이 있어야 합니다.

**임시 위임 요청을 승인하려면**

1. AWS Management Console에 로그인하여 https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

1. 왼쪽 탐색 창에서 *임시 위임 요청*을 선택합니다.

1. 기본 페이지에 다음 정보와 함께 임시 위임 요청 목록이 표시됩니다.
   + *requestId:* 요청의 고유 식별자
   + *상태* - 현재 상태(보류 중, 승인됨, 거부됨, 공유됨, 만료됨)
   + *요청자* - 요청과 연결된 제품 제공업체
   + *작성자* - 제품 제공업체를 위한 요청을 시작한 계정의 IAM 위탁자
   + *요청 생성됨* - 요청이 제출되었을 때
   + *요청 만료됨* - 요청이 만료되거나 만료될 때

1. (선택 사항) 필터 옵션을 사용하여 상태별로 요청을 봅니다.
   + *모든 요청* - 상태에 관계없이 모든 요청 보기
   + *대기 중* - 관리자 승인 대기 중인 요청 보기
   + *승인됨* - 승인된 요청 보기
   + *공유됨* - 액세스가 공유된 요청 보기
   + *거부됨* - 거부 이유와 함께 거부된 요청 보기

1. 특정 요청에 대한 세부 정보를 보거나 승인 대기 중인 요청을 검토하려면 요청 ID를 선택합니다.

1. 자세한 요청 정보를 검토합니다.
   + 제품 제공업체 정보
   + 요청 이유 및 타당성
   + 요청된 기간
   + 요청된 AWS 권한

1. 대기 중인 요청을 검토하는 관리자인 경우 다음 옵션 중 하나를 선택합니다.
   + 요청을 승인하려면 *승인*을 선택합니다. 승인 대화 상자에서 권한 시뮬레이션의 결과를 볼 수 있습니다. 자세한 내용은 [권한 시뮬레이션 베타 기능](temporary-delegation-initiate-request.md#temporary-delegation-permission-simulation)을 참조하세요. 액세스 기간과 AWS ID를 확인한 후 *승인*을 선택하여 액세스 권한을 부여합니다. 제품 제공업체가 즉시 액세스를 요청하면 자동으로 임시 권한을 받고 액세스 기간이 시작됩니다. 그렇지 않으면 제품 제공업체에 대한 액세스 권한을 해제하도록 요청을 시작한 사람에게 알립니다.
   + 요청을 거부하려면 *거부*를 선택합니다.
     + 거부 대화 상자에서 요청자가 요청이 거부된 이유를 이해하는 데 도움이 되도록 거부에 대한 명확한 이유를 제시합니다.
     + *거부*를 선택하여 액세스를 거부합니다.

1. 요청 목록이 자동으로 새로 고쳐져 최신 상태 정보가 표시됩니다. 페이지를 수동으로 새로 고쳐 상태 업데이트를 확인할 수도 있습니다.

# 임시 위임 액세스 취소
<a name="temporary-delegation-revoke-access"></a>

제품 제공업체 액세스 세션은 승인된 기간 이후에 자동으로 만료되도록 설계되었지만 특정 상황에서는 액세스를 즉시 종료해야 할 수 있습니다. 활성 제품 제공업체 액세스를 취소하면 보안 문제가 발생하거나, 제품 제공업체의 작업이 조기에 완료되거나, 비즈니스 요구 사항이 변경될 때 비상 제어 메커니즘이 제공됩니다. 요청 이니시에이터와 관리자 모두 보안 및 운영 제어를 유지하기 위해 액세스를 취소할 수 있습니다.

**임시 위임 액세스를 취소하려면**

1. AWS Management Console에 로그인하여 https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

1. 왼쪽 탐색 창에서 *임시 위임 요청*을 선택합니다.

1. 취소하려는 액세스 세션의 요청 ID를 찾습니다.

1. *작업*을 선택한 다음 *액세스 권한 취소*를 선택합니다.

1. 대화 상자에서 *액세스 권한 취소*를 선택하여 액세스 세션을 즉시 종료하겠다는 의사를 확인합니다.

액세스를 취소한 후에는 제품 제공업체가 더 이상 AWS 리소스에 액세스할 수 없습니다. 취소는 감사 목적으로 AWS CloudTrail에 기록됩니다.

**중요**  
액세스를 취소하면 제품 제공업체 액세스 세션이 즉시 종료됩니다. 액세스를 사용하는 모든 진행 중인 작업 또는 프로세스가 중단됩니다. 취소로 인해 중요한 작업이 중단되지 않도록 하세요.

**참고**  
루트 사용자를 사용하여 승인된 요청에 대한 액세스는 취소할 수 없습니다. AWS는 루트 사용자를 사용하여 위임 요청을 승인하지 않도록 권장합니다. 적절한 권한이 있는 IAM 역할을 대신 사용하세요.

## 위임 요청의 권한 관리
<a name="temporary-delegation-managing-permissions"></a>

관리자는 IAM 위탁자에게 제품 제공업체의 위임 요청을 관리할 수 있는 권한을 부여할 수 있습니다. 이는 조직의 특정 사용자 또는 팀에 승인 권한을 위임하려는 경우 또는 위임 요청에 대해 특정 작업을 수행할 수 있는 사용자를 제어해야 하는 경우에 유용합니다.

위임 요청을 관리하는 데 사용 가능한 IAM 권한은 다음과 같습니다.


| 권한 | 설명 | 
| --- | --- | 
| iam:AssociateDelegationRequest | 할당되지 않은 위임 요청을 AWS 계정과 연결 | 
| iam:GetDelegationRequest | 위임 요청의 세부 정보 보기 | 
| iam:UpdateDelegationRequest | 승인을 위해 관리자에게 위임 요청 전달 | 
| iam:AcceptDelegationRequest | 위임 요청 승인 | 
| iam:SendDelegationToken | 승인 후 교환 토큰을 제품 제공업체에 릴리스 | 
| iam:RejectDelegationRequest | 위임 요청 거부 | 
| iam:ListDelegationRequests | 계정에 대한 위임 요청 나열 | 

**참고**  
기본적으로 위임 요청을 시작하는 IAM 위탁자에게는 해당 특정 요청을 관리할 수 있는 권한이 자동으로 부여됩니다. 계정과 연결하고, 요청 세부 정보를 보고, 요청을 거부하고, 승인을 위해 관리자에게 전달하고, 관리자 승인 후 제품 제공업체에 교환 토큰을 릴리스하고, 자신이 소유한 위임 요청을 나열할 수 있습니다.

# 알림
<a name="temporary-delegation-notifications"></a>

IAM 임시 위임은 AWS 사용자 알림과 통합되어 위임 요청 상태 변경에 대한 최신 정보를 얻는 데 도움이 됩니다. 알림은 위임 요청을 검토하고 승인해야 하는 관리자에게 특히 유용합니다.

AWS 사용자 알림을 사용하면 이메일, Amazon Simple Notification Service(SNS), Slack 또는 Microsoft Teams용 AWS Chatbot, AWS 콘솔 모바일 애플리케이션을 비롯한 여러 채널을 통해 전달되도록 알림을 구성할 수 있습니다. 이렇게 하면 적절한 사람에게 적시에 알림을 보내 대기 중인 승인 또는 액세스 변경을 인지했을 때 더 빠르게 대응할 수 있습니다. 조직의 요구 사항 및 보안 요구 사항에 따라 알림을 트리거하는 이벤트를 사용자 지정할 수도 있습니다.

## 사용 가능한 알림 이벤트
<a name="temporary-delegation-notification-events"></a>

다음 IAM 임시 위임 이벤트에 대한 알림을 수신하도록 구독할 수 있습니다.
+ IAM 임시 위임 요청 생성됨
+ IAM 임시 위임 요청 할당됨
+ IAM 임시 위임 요청 승인 대기 중
+ IAM 임시 위임 요청 거부됨
+ IAM 임시 위임 요청 수락됨
+ IAM 임시 위임 요청 완료됨
+ IAM 임시 위임 요청 만료됨

## 알림 구성
<a name="temporary-delegation-configuring-notifications"></a>

IAM 임시 위임 이벤트에 대한 알림을 구성하려면:

1. AWS 사용자 알림 콘솔 열기

1. 알림 구성을 생성 또는 업데이트하려면

1. 서비스로 AWS IAM 선택

1. 알림을 받을 위임 요청 이벤트 선택

1. 전송 채널 구성(이메일, AWS Chatbot 등)

전송 채널 설정 및 알림 규칙 관리를 포함하여 AWS 사용자 알림을 구성하는 방법에 대한 자세한 지침은 AWS 사용자 알림 설명서를 참조하세요.

# CloudTrail
<a name="temporary-delegation-cloudtrail"></a>

제품 제공업체가 임시 위임된 액세스를 사용하여 수행하는 모든 작업은 AWS CloudTrail에 자동으로 로깅됩니다. 이를 통해 AWS 계정에서 제품 제공업체 활동을 완벽하게 파악하고 감사할 수 있습니다. 제품 제공업체가 어떤 작업을 수행했는지, 언제 수행했는지, 어떤 제품 제공업체 계정에서 수행했는지 식별할 수 있습니다.

자체 IAM 위탁자가 수행한 작업과 액세스 권한이 위임된 제품 제공업체가 수행한 작업을 구분하는 데 도움이 되도록 CloudTrail 이벤트에는 `userIdentity` 요소 아래에 `invokedByDelegate`라는 새 필드가 포함됩니다. 이 필드에는 제품 제공업체의 AWS 계정 ID가 포함되어 있으므로 위임된 모든 작업을 쉽게 필터링하고 감사할 수 있습니다.

## CloudTrail 이벤트 구조
<a name="temporary-delegation-cloudtrail-event-structure"></a>

다음 예시는 제품 제공업체가 임시 위임된 액세스를 사용하여 수행한 작업에 대한 CloudTrail 이벤트를 보여줍니다.

```
{
    "eventVersion": "1.09",		 	 	 
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AIDACKCEVSQ6C2EXAMPLE:Role-Session-Name",
        "arn": "arn:aws:sts::111122223333:assumed-role/Role-Name/Role-Session-Name",
        "accountId": "111122223333",
        "accessKeyId": "[REDACTED:AWS_ACCESS_KEY]",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AIDACKCEVSQ6C2EXAMPLE",
                "arn": "arn:aws:iam::111122223333:role/Admin",
                "accountId": "111122223333",
                "userName": "Admin"
            },
            "attributes": {
                "creationDate": "2024-09-09T17:50:16Z",
                "mfaAuthenticated": "false"
            }
        },
        "invokedByDelegate": {
            "accountId": "444455556666"
        }
    },
    "eventTime": "2024-09-09T17:51:44Z",
    "eventSource": "iam.amazonaws.com",
    "eventName": "GetUserPolicy",
    "awsRegion": "us-east-1",
    "requestParameters": {
        "userName": "ExampleIAMUserName",
        "policyName": "ExamplePolicyName"
    },
    "eventType": "AwsApiCall",
    "recipientAccountId": "111122223333"
}
```

`invokedByDelegate` 필드에는 위임된 액세스를 사용하여 작업을 수행한 제품 제공업체의 AWS 계정 ID가 포함됩니다. 이 예시의 경우 계정 444455556666(제품 제공업체)이 계정 111122223333(고객 계정)에서 작업을 수행했습니다.

# AWS 파트너를 위한 IAM 임시 위임
<a name="access_policies-temporary-delegation-partner-guide"></a>

## 개요
<a name="temporary-delegation-partner-overview"></a>

IAM 임시 위임을 사용하면 AWS 고객이 대화형 안내 워크플로를 통해 AWS 파트너 제품을 원활하게 온보딩 및/또는 AWS 환경에 통합할 수 있습니다. 고객은 AWS 파트너에게 필요한 AWS 서비스를 구성할 수 있는 제한된 임시 액세스 권한을 부여하여 온보딩 마찰을 줄이고 가치 실현 시간을 단축할 수 있습니다.

파트너는 IAM 임시 위임을 통해 다음을 수행할 수 있습니다.
+ 자동화된 리소스 프로비저닝으로 고객 온보딩 간소화
+ 수동 구성 단계를 없애 통합 복잡성 최소화
+ 고객이 승인한 투명한 권한을 통해 신뢰 구축
+ 권한 경계를 사용하여 장기 액세스 패턴으로 지속적인 작업 지원

## 작동 방식
<a name="temporary-delegation-how-it-works"></a>

1. *파트너가 위임 요청 생성* - 파트너가 필요한 권한과 기간을 지정하는 요청을 생성합니다.

1. *고객이 AWS Console에서 검토* - 고객이 어떤 권한 파트너가 왜 요청하는지 정확하게 확인합니다.

1. *고객 승인* - 고객이 요청을 승인하고 교환 토큰을 릴리스합니다. 토큰이 지정된 해당 SNS 주제의 파트너에게 전송됩니다.

1. *파트너가 임시 자격 증명 수신* - 파트너가 토큰을 임시 AWS 자격 증명으로 교환합니다.

1. *파트너가 리소스 구성* - 파트너가 자격 증명을 사용하여 고객 계정에 필요한 리소스를 설정합니다.

## 파트너 자격
<a name="temporary-delegation-partner-qualification"></a>

임시 위임 통합을 받으려면 파트너가 다음 요구 사항을 충족해야 합니다.
+ *ISV Accelerate 참여* - [ISV Accelerate(ISVA)](https://aws.amazon.com/partners/programs/isv-accelerate/) 프로그램에 등록해야 합니다.
+ *AWS Marketplace 목록* - 제품이 AWS Marketplace에 ‘Deployed on AWS‘ 배지와 함께 나열되어 있어야 합니다.

## 온보딩 프로세스
<a name="temporary-delegation-onboarding-process"></a>

다음 단계를 완료하여 임시 위임을 제품에 통합합니다.

1. *1단계: 요건 검토*

   이 설명서를 검토하여 자격 요건을 이해하고 아래 파트너 설문지를 작성합니다.

1. *2단계: 온보딩 요청 제출*

   aws-iam-partner-onboarding@amazon.com으로 이메일을 보내거나 AWS 담당자에게 문의합니다. 아래 표의 모든 필수 필드와 함께 작성된 파트너 설문지를 포함합니다.

1. *3단계: AWS 검증 및 검토*

   AWS는 다음을 수행합니다.
   + 자격 기준을 충족하는지 검증
   + 정책 템플릿 및 권한 경계 검토
   + 제출된 아티팩트에 대한 피드백 제공

1. *4단계: 정책 구체화*

   AWS 피드백에 답하고 필요에 따라 업데이트된 정책 템플릿 또는 권한 경계를 제출합니다.

1. *5단계: 등록 완료*

   승인되면 AWS는 다음을 수행합니다.
   + 지정된 계정에 대한 API 액세스 활성화
   + 정책 템플릿 및 권한 경계에 대한 ARN 공유(해당하는 경우)

   온보딩이 완료되면 확인 메시지가 표시됩니다. 그런 다음 등록된 계정에서 임시 위임 API, CreateDelegationRequest 및 GetDelegatedAccessToken에 액세스하고, 위임 요청 워크플로를 제품에 통합할 수 있습니다.

## 파트너 설문지
<a name="temporary-delegation-partner-questionnaire"></a>

다음 표에는 파트너 온보딩에 필요한 정보가 나열되어 있습니다.


| 정보 | 설명 | 필수 | 
| --- | --- | --- | 
| Partner Central AccountID | [AWS Partner Central](https://partnercentral.awspartner.com/partnercentral2/s/login)에 등록된 계정의 AWS 계정 ID입니다. | 예 | 
| PartnerId | [AWS Partner Central](https://partnercentral.awspartner.com/partnercentral2/s/login)에서 제공하는 파트너 ID입니다. | 아니요 | 
| AWS Marketplace 제품 ID | [AWS Partner Central](https://partnercentral.awspartner.com/partnercentral2/s/login)에서 제공하는 제품의 제품 ID입니다. | 예 | 
| AWS accountIDs | 임시 위임 API를 직접 호출하는 데 사용할 AWS 계정 ID 목록입니다. 여기에는 프로덕션 계정과 비프로덕션/테스트 계정이 모두 포함되어야 합니다. | 예 | 
| 파트너 이름 | 이 이름은 고객이 임시 위임 요청을 검토할 때 AWS Management Console에 표시됩니다. | 예 | 
| 연락처 이메일 | 통합에 대해 연락하는 데 사용할 수 있는 하나 이상의 이메일 주소입니다. | 예 | 
| 요청자 도메인 | 사용자의 도메인(예: www.example.com) | 예 | 
| 통합 설명 | 이 기능을 사용하여 해결하려는 사용 사례에 대한 간단한 설명입니다. 설명서 또는 기타 공개 자료에 대한 참조 링크를 포함할 수 있습니다. | 예 | 
| 아키텍처 다이어그램 | 통합 사용 사례를 보여주는 아키텍처 다이어그램입니다. | 아니요 | 
| 정책 템플릿 | 이 기능에 대해 하나 이상의 정책 템플릿을 등록해야 합니다. 정책 템플릿은 고객의 AWS 계정에서 요청하려는 임시 권한을 정의합니다. 자세한 내용은 정책 템플릿 섹션을 참조하세요. | 예 | 
| 정책 템플릿 이름 | 등록할 정책 템플릿의 이름입니다. | 예 | 
| 권한 경계 | 임시 권한을 사용하여 고객 계정에서 IAM 역할을 생성하려면 IAM에 권한 경계를 등록해야 합니다. 권한 경계는 역할에 대한 최대 권한을 제한하기 위해 생성한 IAM 역할에 연결됩니다. 선택한 AWS 관리형 정책을 권한 경계로 사용하거나 새 사용자 지정 권한 경계(JSON)를 등록할 수 있습니다. 자세한 내용은 권한 경계 섹션을 참조하세요. | 아니요 | 
| 권한 경계 이름 | 권한 경계의 이름입니다. 형식은 arn:aws:iam::partner:policy/permission\$1boundary/<partner\$1domain>/<policy\$1name>\$1<date>입니다. 정책 이름에는 생성 날짜가 접미사로 포함되어야 합니다. 권한 경계가 생성된 후에는 이름을 업데이트할 수 없습니다. 기존 AWS 관리형 정책을 사용하는 경우, 관리형 정책 ARN을 대신 제공합니다. | 아니요 | 
| 권한 경계 설명 | 권한 경계에 대한 설명입니다. 권한 경계가 생성된 후에는 이 설명을 업데이트할 수 없습니다. | 아니요 | 

# 통합 이해
<a name="temporary-delegation-understanding-integration"></a>

온보딩 프로세스를 완료한 후 IAM 임시 위임과의 통합을 구축할 수 있습니다. 완전한 통합에는 일반적으로 세 가지 주요 작업 범주가 포함됩니다.

## 1. 사용자 경험 및 워크플로 설계
<a name="temporary-delegation-user-experience"></a>

임시 위임 워크플로를 통해 고객을 안내하는 파트너 애플리케이션에서 프런트엔드 환경을 구축합니다. 파트너 애플리케이션은 다음을 수행해야 합니다.
+ 고객이 임시 액세스 권한을 부여할 수 있는 명확한 온보딩 또는 구성 흐름을 제시합니다. 이 작업에 ‘IAM 임시 위임으로 배포’와 같이 명확하게 레이블을 지정합니다.
+ CreateDelegationRequest API에서 반환한 콘솔 링크를 사용하여 고객을 AWS Management Console로 리디렉션하여 위임 요청을 검토하고 승인합니다.
+ 요청되는 권한과 이유에 대한 적절한 메시지를 제공합니다. 고객은 위임 요청 세부 정보 페이지에서 이 메시지를 볼 수 있습니다.
+ 고객이 AWS에서 승인을 완료한 후 애플리케이션에 대한 고객의 반환을 처리합니다.

## 2. API 통합
<a name="temporary-delegation-api-integration"></a>

IAM 임시 위임 API 사용하여 위임 요청을 보내고 관리합니다. AWS 계정이 등록되면 다음 API에 액세스할 수 있습니다.
+ *IAM CreateDelegationRequest* - 고객 AWS 계정에 대한 위임 요청을 생성합니다. 이 API는 요청을 검토하고 승인하기 위해 고객을 리디렉션하는 콘솔 링크를 반환합니다.
+ *AWS STS GetDelegatedAccessToken* - 고객이 위임 요청을 승인한 후 임시 AWS 자격 증명을 검색합니다. 이러한 자격 증명을 사용하여 고객 계정에서 작업을 수행합니다.

통합은 요청 생성, 상태 모니터링, 승인 시 임시 자격 증명 검색 등 위임 요청의 전체 수명 주기를 처리해야 합니다.

## 3. 리소스 구성 및 오케스트레이션
<a name="temporary-delegation-resource-configuration"></a>

임시 자격 증명을 얻으면 필요한 워크플로를 오케스트레이션하여 고객 AWS 계정의 리소스를 구성합니다. 여기에는 다음이 포함될 수 있습니다.
+ AWS 서비스 API를 직접 호출하여 리소스 생성 및 구성
+ AWS CloudFormation 템플릿을 사용하여 인프라 배포
+ 지속적인 액세스를 위한 IAM 역할 생성(권한 경계 사용 필요)

오케스트레이션 로직은 멱등성이 있어야 하며 고객이 위임 승인을 재시도하거나 수정해야 할 수 있으므로 실패를 정상적으로 처리해야 합니다.

# 권한 이해
<a name="temporary-delegation-understanding-permissions"></a>

기능 온보딩 프로세스의 일환으로 고객 AWS 계정에서 요청하려는 권한을 정의하는 정책을 IAM에 등록해야 합니다. 이 등록 프로세스는 고객에게 보다 일관된 경험을 제공하고 정책 작성의 일반적인 위험을 방지하는 데 도움이 됩니다.

등록 중에는 AWS가 일련의 검증을 기준으로 정책을 평가합니다. 이러한 검증은 정책 형식 및 구조를 표준화하고 알려진 안티 패턴에 대한 기본 보호를 제공하기 위한 것입니다. 또한 검증을 통해 권한 에스컬레이션, 의도하지 않은 교차 계정 액세스, 고객 계정의 고부가가치 리소스에 대한 광범위한 액세스의 리스크를 줄일 수 있습니다.

## 권한 유형
<a name="temporary-delegation-permission-types"></a>

AWS는 임시 및 장기 권한이라는 두 가지 권한 범주를 고려합니다.

### 임시 권한
<a name="temporary-delegation-temporary-permissions"></a>

임시 권한은 임시 위임된 액세스 세션에 할당된 권한을 제한합니다. 임시 권한은 위임된 세션에 적용되는 정책 템플릿에 설명되어 있습니다. 템플릿은 위임 요청을 생성할 때 제공하는 파라미터를 지원합니다. 그러면 이러한 파라미터 값이 세션에 바인딩됩니다. 임시 권한은 현재 AWS STS에서 사용할 수 있는 세션 정책과 동일한 방식으로 작동합니다. 정책은 기본 사용자의 기능을 제한하지만 추가 액세스 권한은 부여하지 않습니다. 자세한 내용은 AWS STS 설명서의 세션 정책을 참조하세요.

### 장기 권한
<a name="temporary-delegation-long-term-permissions"></a>

장기 권한은 임시 액세스를 통해 생성되거나 관리되는 모든 역할의 권한을 제한합니다. 장기 권한은 IAM 권한 경계로 구현됩니다. 온보딩의 일부로 AWS에 하나 이상의 권한 경계를 제출할 수 있습니다. 승인되면 AWS는 정책에서 참조할 수 있는 정책 ARN을 사용자와 공유합니다.

이러한 경계 정책에는 두 가지 주목할 만한 특징이 있습니다. 첫째, 변경할 수 없습니다. 권한을 업데이트하려면 새 권한 경계를 등록할 수 있습니다. 그런 다음 새 위임 요청을 전송하여 새 권한 경계를 고객의 역할에 연결할 수 있습니다. 둘째, 정책이 템플릿화되지 않습니다. 동일한 경계 정책은 전역적으로 공유되므로 고객별로 변경할 수 없습니다.

**중요**  
권한 경계의 최대 크기 제한은 6,144자입니다.

**참고**  
권한 경계 또는 정책 템플릿을 업데이트하려면 aws-iam-partner-onboarding@amazon.com으로 IAM에 문의하세요. 새 권한 경계가 등록되면 고객에게 위임 요청을 보내 IAM 역할을 업데이트하고 새로 등록된 권한 경계를 연결할 수 있습니다. 자세한 내용은 예시 섹션을 참조하세요.

## 사용 사례 예시: 데이터 처리 워크로드
<a name="temporary-delegation-example-use-case"></a>

고객 계정에서 데이터 처리 워크로드를 실행하는 제품 제공업체를 예로 들어보겠습니다. 이 제공업체는 초기 온보딩 중에 인프라를 설정해야 하지만 워크로드를 운영하려면 지속적인 액세스도 필요합니다.

*임시 권한(최초 설정용):*
+ Amazon EC2 인스턴스, VPC 및 보안 그룹 생성
+ 처리된 데이터를 위한 Amazon S3 버킷 생성
+ 지속적인 작업을 위한 IAM 역할 생성
+ IAM 역할에 권한 경계 연결

*장기 권한(진행 중인 작업에 대한 권한 경계가 있는 IAM 역할):*
+ Amazon EC2 인스턴스를 시작하고 중지하여 처리 작업 실행
+ Amazon S3 버킷에서 입력 데이터 읽기
+ 처리된 결과를 Amazon S3 버킷에 쓰기

임시 권한은 온보딩 중에 인프라를 구성하는 데 한 번 사용됩니다. 이 프로세스 중에 생성된 IAM 역할에는 최대 권한을 지속적인 워크로드 관리에 필요한 작업으로만 제한하는 권한 경계가 있습니다. 이는 역할의 정책이 수정되더라도 경계에 정의된 권한을 초과하지 않도록 보장합니다.

# 정책 평가 지침
<a name="temporary-delegation-policy-evaluation-guidelines"></a>

AWS는 일련의 지침에 따라 제출된 정책을 평가합니다. 정책 템플릿과 권한 경계 모두에 동일한 평가 지침이 적용되며, 적절한 경우 사소한 차이가 기록됩니다.

평가를 위해 서비스를 개별 그룹으로 구분합니다. 가장 중요한 차이점은 액세스, 자격 증명 및 키를 관리하는 보안에 민감한 서비스입니다. 이러한 서비스에 대한 액세스 권한을 부여하는 정책은 수행 중인 작업에 좁게 초점을 맞춰야 합니다. 보안에 민감한 서비스로는 AWS Identity and Access Management(IAM), AWS Key Management Service(KMS), AWS Resource Access Manager(RAM), AWS IAM Identity Center, AWS Organizations, AWS Secrets Manager 등이 있습니다.

두 번째 차이점은 계정 경계를 넘어 데이터에 액세스할 수 있는 서비스입니다. 이러한 서비스에 대한 정책에는 의도하지 않은 교차 계정 액세스를 방지하기 위한 보호가 포함되어야 합니다.

## 일반적인 검증
<a name="temporary-delegation-common-validations"></a>

모든 정책 설명은 다음 지침을 따라야 합니다.
+ 모든 문에는 효과, 작업(또는 NotAction), 리소스 및 조건 필드가 순서대로 포함되어야 합니다.
+ 단일 문 내의 모든 작업은 알파벳순으로 나열되어야 합니다.
+ 정책에 포함된 모든 ARN 관련 서비스에 대한 공개 설명서에 정의된 구문을 따라야 합니다.
+ NotAction 필드는 거부 문에서만 사용할 수 있습니다.
+ Allow 문의 작업에는 서비스 코드가 포함되어야 합니다. 일반 와일드카드(‘\$1’)는 허용되지 않습니다.

## 보안에 민감한 서비스 제한
<a name="temporary-delegation-security-sensitive-restrictions"></a>

위에서 언급한 보안에 민감한 서비스에는 다음과 같은 제한 사항이 적용됩니다.
+ Allow 문의 작업은 [service]:\$1보다 구체적이어야 합니다.
+ 임시 액세스 정책 템플릿에 대한 명령문 허용의 작업에는 와일드카드가 포함되어서는 안 됩니다.
+ iam:PassRole 또는 iam:CreateServiceLinkedRole과 같은 민감한 작업에는 특정 리소스 또는 조건부 검사와 같은 추가 범위가 필요합니다. 이 작업에는 다음이 포함됩니다.
  + IAM 역할 전달 중
  + IAM 역할 수정 작업
  + IAM 정책 수정 작업
  + AWS KMS 쓰기 또는 암호화 작업
  + AWS RAM 쓰기 또는 공유 작업
  + AWS 보안 암호를 검색 또는 수정하거나 리소스 정책을 수정하기 위한 Secrets Manager 작업
+ 다른 작업에는 iam:ListUsers 또는 iam:GetPolicy와 같은 와일드카드 리소스를 사용할 수 있습니다.
+ iam:CreateAccessKey와 같은 자격 증명을 관리하는 작업은 차단됩니다.

## IAM 관련 제한 사항
<a name="temporary-delegation-iam-specific-restrictions"></a>

IAM의 경우:
+ IAM 역할 및 정책에는 제한된 쓰기 작업만 허용됩니다. 사용자, 그룹 및 인증서와 같은 다른 IAM 리소스에 대한 권한은 요청할 수 없습니다.
+ 정책 연결 또는 인라인 정책 관리 작업은 권한 경계가 있는 역할로 제한됩니다. 권한 경계는 파트너가 제공하거나 허용된 AWS 관리형 정책 목록에 있어야 합니다. AWS 관리형 정책은 권한이 높거나 관리 권한을 부여하지 않는 경우 허용될 수 있습니다. 예를 들어 특정 직무에 대한 AWS 관리형 정책 또는 SecurityAudit 정책이 허용될 수 있습니다. AWS는 온보딩 프로세스 중에 각 AWS 관리형 정책을 건별로 검토합니다.
+ 정책 관리는 파트너별 경로가 arn:aws:iam::@\$1AccountId\$1:policy/partner\$1domain.com/[feature]\$1인 정책에만 허용됩니다.
+ 태그는 리소스 생성 중에만, 그리고 역할 및 정책에 대해서만 적용할 수 있습니다.
+ iam:PassRole 검사는 특정 이름 또는 경로 접두사와 일치해야 합니다.

## AWS STS 관련 제한 사항
<a name="temporary-delegation-sts-specific-restrictions"></a>

AWS STS의 경우:
+ sts:AssumeRole은 특정 역할 ARN, 역할 ARN 접두사로 범위가 지정되거나 계정 또는 조직 ID/조직 단위 집합으로 제한되어야 합니다.

## IAM Identity Center 제한 사항
<a name="temporary-delegation-identity-center-restrictions"></a>

AWS IAM Identity Center의 경우 다음 작업이 차단됩니다.
+ 권한 관리를 처리하는 모든 작업(예: sso:AttachCustomerManagedPolicyReferenceToPermissionSet)
+ AWS Identity Store의 사용자, 그룹 및 멤버십 수정
+ 태그 관리

## AWS Organizations 제한 사항
<a name="temporary-delegation-organizations-restrictions"></a>

AWS Organizations의 경우 읽기 작업만 허용됩니다.

## 추가 서비스별 검증
<a name="temporary-delegation-additional-service-validations"></a>
+ glue:GetConnection 또는 redshift:GetClusterCredentials와 같은 보안 암호 또는 자격 증명을 획득하는 작업에는 전체 ARN, ARN 접두사 또는 태그와 일치하는 조건이 있어야 합니다.
+ Amazon Redshift의 경우: redshift:GetClusterCredentials는 특정 데이터베이스 이름에만 허용되고 redshift:GetClusterCredentialsWithIAM은 특정 작업 그룹 이름에만 허용됩니다.

**참고**  
계정에서 IAM 리소스를 관리할 때는 arn:aws:iam::111122223333:role/partner.com/rolename 같은 이름을 나타내는 경로를 사용하는 것이 좋습니다. 이렇게 하면 통합과 관련된 리소스를 차별화하고 고객이 검색, 감사 및 분석을 더 쉽게 수행할 수 있습니다.

## 교차 계정 액세스 요구 사항
<a name="temporary-delegation-cross-account-requirements"></a>

교차 계정 액세스를 잠재적으로 허용하는 문에는 다음 중 하나 이상이 포함되어야 합니다.
+ 리소스의 계정 또는 조직을 지정하는 조건(예: 하나 이상의 예상 값과 일치하는 aws:ResourceOrgId)
+ 특정 계정을 포함하는 리소스 필드(예: arn:aws:sqs:\$1:111122223333:\$1)
+ 와일드카드가 아닌 계정과 전체 리소스 이름을 포함하는 리소스 필드(예: arn:aws:s3:::full-bucket-name)

**참고**  
교차 계정 액세스는 명확한 비즈니스 타당성이 요구되는 필요한 민감한 기능입니다. AWS는 온보딩 프로세스 중에 교차 계정 액세스의 필요성을 신중하게 검토합니다.

# 정책 템플릿
<a name="temporary-delegation-policy-templates"></a>

정책 템플릿은 파트너가 고객의 계정에서 요청하는 임시 권한을 정의하도록 설계된 새로운 IAM 구문입니다. 일반 IAM 정책과 마찬가지로 Effect, Action, Resource 및 Condition 요소가 있는 문을 사용하여 권한을 정의합니다. 주요 차이점은 위임 요청을 생성할 때 정책 템플릿에 실제 값으로 대체되는 파라미터(예: @\$1bucketName\$1)가 포함되어 있다는 것입니다.

## 정책 템플릿의 작동 방식
<a name="temporary-delegation-how-policy-templates-work"></a>

온보딩 프로세스의 일환으로 정책 템플릿을 AWS에 등록합니다. AWS는 위임 요청을 생성할 때 참조하는 고유한 ARN을 각 템플릿에 할당합니다.

위임 요청을 생성할 때 다음을 지정합니다.
+ 정책 템플릿 ARN
+ 템플릿으로 대체할 파라미터 값

AWS는 템플릿을 파라미터 값과 결합하여 표준 IAM 정책을 생성합니다. 고객은 위임 요청을 승인할 때 이 최종 렌더링된 정책을 검토하여 부여될 권한을 정확히 확인합니다.

**참고**  
최종 렌더링된 정책의 최대 크기 제한은 2,048자입니다.

다음은 템플릿 대체의 작동 방식을 보여주는 간단한 예입니다.

정책 템플릿:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::@{bucketName}/*"
        }
    ]
}
```

위임 요청에 제공된 파라미터:

```
{
    "Name": "bucketName",
    "Values": ["customer-data-bucket"],
    "Type": "String"
}
```

최종 렌더링된 정책(고객이 보는 내용):

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::customer-data-bucket/*"
        }
    ]
}
```

## 템플릿 구문
<a name="temporary-delegation-template-syntax"></a>

정책 템플릿은 두 가지 주요 기능인 파라미터 대체와 조건문을 사용하여 유연성을 제공합니다. 파라미터 대체를 사용하면 위임 요청을 생성할 때 실제 값으로 대체되는 템플릿의 자리 표시자를 정의할 수 있습니다. 조건부 문을 사용하면 파라미터 값을 기반으로 전체 정책 문을 포함하거나 제외할 수 있습니다.

### 파라미터 대체 및 유형
<a name="temporary-delegation-parameter-substitution"></a>

@\$1parameterName\$1 구문을 사용하여 정책 템플릿에서 파라미터를 정의합니다. 위임 요청을 생성할 때 각 파라미터의 유형을 지정해야 합니다.

#### 문자열
<a name="temporary-delegation-string-type"></a>

템플릿으로 직접 대체되는 단일 값입니다.

템플릿:

```
"Resource": "arn:aws:s3:::@{bucketName}/*"
```

파라미터:

```
{
    "Name": "bucketName",
    "Values": ["my-bucket"],
    "Type": "String"
}
```

렌더링된 결과:

```
"Resource": "arn:aws:s3:::my-bucket/*"
```

#### StringList
<a name="temporary-delegation-stringlist-type"></a>

여러 리소스 항목을 생성하는 여러 값입니다. 리소스 ARN에서 StringList 파라미터를 사용하면 확장되어 각 값에 대해 별도의 리소스 항목을 생성합니다.

템플릿:

```
"Resource": "arn:aws:s3:::@{bucketNames}/*"
```

파라미터:

```
{
    "Name": "bucketNames",
    "Values": ["bucket-1", "bucket-2"],
    "Type": "StringList"
}
```

렌더링된 결과:

```
"Resource": [
    "arn:aws:s3:::bucket-1/*",
    "arn:aws:s3:::bucket-2/*"
]
```

#### 제품 간 동작
<a name="temporary-delegation-cross-product-behavior"></a>

동일한 리소스 ARN에 여러 파라미터가 사용되는 경우 StringList 파라미터는 모든 조합의 교차 곱을 생성합니다.

템플릿:

```
"Resource": "arn:aws:s3:::@{bucketNames}/@{prefix}/*"
```

파라미터:

```
[
    {
        "Name": "bucketNames",
        "Values": ["bucket-1", "bucket-2"],
        "Type": "StringList"
    },
    {
        "Name": "prefix",
        "Values": ["data"],
        "Type": "String"
    }
]
```

렌더링된 결과:

```
"Resource": [
    "arn:aws:s3:::bucket-1/data/*",
    "arn:aws:s3:::bucket-2/data/*"
]
```

### 조건문
<a name="temporary-delegation-conditional-statements"></a>

@Enabled 지시문을 사용하여 파라미터 값을 기반으로 전체 문을 조건부로 포함하거나 제외합니다.

구문:
+ @Enabled: "parameterName" - 파라미터 값이 ‘True’일 때 문 포함
+ @Enabled: "\$1parameterName" - 파라미터 값이 ‘True’가 아닐 때(음수) 문 포함

템플릿:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": ["s3:GetObject"],
            "Resource": "*"
        },
        {
            "@Enabled": "ENABLE_S3_WRITE",
            "Effect": "Allow",
            "Action": ["s3:PutObject"],
            "Resource": "arn:aws:s3:::@{bucketName}/*"
        }
    ]
}
```

파라미터(ENABLE\$1S3\$1WRITE가 ‘True’인 경우):

```
[
    {
        "Name": "bucketName",
        "Values": ["my-bucket"],
        "Type": "String"
    },
    {
        "Name": "ENABLE_S3_WRITE",
        "Values": ["True"],
        "Type": "String"
    }
]
```

렌더링된 결과:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": ["s3:GetObject"],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": ["s3:PutObject"],
            "Resource": "arn:aws:s3:::my-bucket/*"
        }
    ]
}
```

파라미터(ENABLE\$1S3\$1WRITE가 ‘False’인 경우):

```
[
    {
        "Name": "bucketName",
        "Values": ["my-bucket"],
        "Type": "String"
    },
    {
        "Name": "ENABLE_S3_WRITE",
        "Values": ["False"],
        "Type": "String"
    }
]
```

렌더링된 결과:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": ["s3:GetObject"],
            "Resource": "*"
        }
    ]
}
```

ENABLE\$1S3\$1WRITE가 ‘True’로 설정되면 조건문이 포함됩니다. ‘False’로 설정되면 문이 렌더링된 정책에서 제외됩니다.

## 추가 예제
<a name="temporary-delegation-additional-examples"></a>

다음 예시에서는 임시 위임에서 정책 템플릿을 사용하는 일반적인 패턴을 보여줍니다. 장기 액세스를 위한 권한 경계가 있는 IAM 역할을 생성하는 데 중점을 두고 특정 리소스에 대한 권한 범위를 조정하기 위한 다양한 전략을 보여줍니다. 이 예에서는 ARN 접두사, 리소스 태깅 및 권한 경계 업데이트와 같은 기술을 사용하여 유연성과 보안의 균형을 맞추는 방법을 보여줍니다.

### 예시 1: 특정 리소스에 대한 장기 액세스 권한 부여
<a name="temporary-delegation-example-1"></a>

다음 권한 경계는 ‘partner.com’에 대한 ‘SQSAccessorBoundary’로 제출됩니다.

```
{
    "Effect": "Allow",
    "Action": [
        "sqs:DeleteMessage",
        "sqs:ReceiveMessage",
        "sqs:SendMessage"
    ],
    "Resource": "arn:aws:sqs:*:*:*",
    "Condition": {
        "StringEquals": {
            "aws:ResourceAccount": "${aws:PrincipalAccount}"
        }
    }
}
```

**참고**  
여기에는 열린 리소스 정책이 있는 다른 계정의 대기열에 대한 액세스 권한을 부여하지 않도록 하는 동일한 계정 조건이 포함됩니다. 경계는 모든 고객에 걸쳐 공유되고 템플릿화할 수 없으므로 고객의 계정 ID에 대한 직접 참조를 포함할 수 없습니다.

이 정책의 첫 번째 버전이므로 ARN은 arn:aws:iam::partner:policy/permissions-boundary/partner.com/SQSAccessorBoundary\$12025\$101\$115입니다.

임시 액세스 권한을 위해 다음 정책 템플릿이 제출됩니다.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sqs:ListQueues"
            ],
            "Resource": "arn:aws:sqs:*:*:*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:CreateRole",
                "iam:PutRolePermissionsBoundary",
                "iam:PutRolePolicy"
            ],
            "Resource": "arn:aws:iam::@{AccountId}:role/partner.com/SQSAccessor",
            "Condition": {
                "StringEquals": {
                    "iam:PermissionsBoundary": "arn:aws:iam::partner:policy/permissions-boundary/partner.com/SQSAccessorBoundary_2025_01_15"
                }
            }
        }
    ]
}
```

### 예시 2: ARN 접두사 사용
<a name="temporary-delegation-example-2"></a>

권한 경계는 액세스를 제한하는 리소스 ARN 접두사를 지정할 수 있습니다.

```
"Resource": "arn:aws:sqs:*:@{AccountId}:PartnerPrefix*"
```

이렇게 하면 해당 접두사가 있는 리소스에만 액세스할 수 있으므로 액세스 가능한 리소스의 범위가 줄어듭니다.

### 예시 3: 리소스 액세스 제어에 태그 사용
<a name="temporary-delegation-example-3"></a>

임시로 위임된 액세스 중에 리소스에 태그를 지정하고 장기 액세스 제어를 위해 해당 태그에 의존할 수 있습니다.

태깅된 리소스에 대한 액세스를 허용하는 권한 경계:

```
{
    "Effect": "Allow",
    "Action": [
        "sqs:DeleteMessage",
        "sqs:ReceiveMessage",
        "sqs:SendMessage"
    ],
    "Resource": "arn:aws:sqs:*:*:*",
    "Condition": {
        "Null": {
            "aws:ResourceTag/ManagedByPartnerDotCom": "false"
        },
        "StringEquals": {
            "aws:ResourceAccount": "${aws:PrincipalAccount}"
        }
    }
}
```

생성 시 새 대기열에 태그를 지정하는 정책 템플릿:

```
{
    "Effect": "Allow",
    "Action": [
        "sqs:CreateQueue",
        "sqs:TagQueue"
    ],
    "Resource": "arn:aws:sqs:*:*:*",
    "Condition": {
        "Null": {
            "aws:RequestTag/ManagedByPartnerDotCom": "false"
        }
    }
}
```

기존 대기열에 태깅하고 역할을 생성하는 정책 템플릿:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sqs:TagQueue"
            ],
            "Resource": "arn:aws:sqs:*:@{AccountId}:@{QueueName}",
            "Condition": {
                "ForAllValues:StringEquals": {
                    "aws:TagKeys": "ManagedByPartnerDotCom"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:CreateRole",
                "iam:PutRolePermissionsBoundary",
                "iam:PutRolePolicy"
            ],
            "Resource": "arn:aws:iam::@{AccountId}:role/partner.com/SQSAccessor",
            "Condition": {
                "StringEquals": {
                    "iam:PermissionsBoundary": "arn:aws:iam::partner:policy/permissions-boundary/partner.com/SQSAccessorBoundary_2025_01_15"
                }
            }
        }
    ]
}
```

이 접근 방식을 통해 고객은 장기적으로 액세스할 수 있는 특정 리소스를 명시적으로 확인할 수 있습니다.

### 예시 4: 권한 경계 업데이트
<a name="temporary-delegation-example-4"></a>

권한 경계를 업데이트하려면 새 버전을 새 날짜 접미사로 등록하고 대체 권한을 요청합니다.

추가 권한으로 권한 경계를 업데이트:

```
{
    "Effect": "Allow",
    "Action": [
        "sqs:DeleteMessage",
        "sqs:PurgeQueue",
        "sqs:ReceiveMessage",
        "sqs:SendMessage"
    ],
    "Resource": "arn:aws:sqs:*:*:*",
    "Condition": {
        "StringEquals": {
            "aws:ResourceAccount": "${aws:PrincipalAccount}"
        }
    }
}
```

두 번째 버전으로 이 정책에는 ARN: arn:aws:iam::partner:policy/permissions-boundary/partner.com/SQSAccessorBoundary\$12025\$101\$120이 있습니다.

기존 역할의 권한 경계를 업데이트하는 정책 템플릿:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:PutRolePermissionsBoundary"
            ],
            "Resource": "arn:aws:iam::@{AccountId}:role/partner.com/SQSAccessor",
            "Condition": {
                "StringEquals": {
                    "iam:PermissionsBoundary": "arn:aws:iam::partner:policy/permissions-boundary/partner.com/SQSAccessorBoundary_2025_01_20"
                }
            }
        }
    ]
}
```

고객은 이 위임 요청을 승인하여 기존 역할에 대한 권한 경계를 업데이트해야 합니다.

# 통합 구축
<a name="temporary-delegation-building-integration"></a>

## 요청 수명 주기 이해
<a name="temporary-delegation-request-lifecycle"></a>

통합을 구축하기 전에, 생성부터 완료까지 위임 요청이 어떻게 진행되는지 이해하는 것이 중요합니다.

### 요청 상태
<a name="temporary-delegation-request-states"></a>

위임 요청은 다음 상태로 진행됩니다.


| State | 설명 | 
| --- | --- | 
| 할당되지 않음 | 요청이 생성되었지만 아직 고객 계정 및 IAM 위탁자와 연결되지 않았습니다. 요청이 대상 계정을 지정하지 않거나 대상 계정 ID로 생성되었지만 계정 소유자가 아직 요청하지 않았을 수 있습니다. | 
| 할당됨 | 요청이 고객 계정과 연결되고 검토 대기 중입니다. | 
| 승인 보류 중 | 고객이 승인을 위해 관리자에게 요청을 전달했습니다. | 
| 수락됨 | 고객이 요청을 승인했지만 교환 토큰이 아직 릴리스되지 않았습니다. | 
| 완료됨 | 교환 토큰이 제품 제공업체에 릴리스되었습니다. 위임 기간(교환 토큰 유효성)은 요청이 완료 상태에 도달하면 시작됩니다. | 
| 거부됨 | 고객이 요청을 거부함 | 
| 만료됨 | 비활성 또는 제한 시간으로 인해 요청이 만료되었습니다. | 

### 상태 전환
<a name="temporary-delegation-state-transitions"></a>

*정상 흐름(승인 경로)*
+ 할당되지 않음 → 할당됨: 고객이 요청을 자신의 계정과 연결
+ 할당됨 → 수락됨 또는 할당됨 → 승인 대기 중: 고객이 요청을 직접 승인하거나 검토를 위해 관리자에게 전달
+ 승인 보류 중 → 수락됨: 관리자가 요청을 승인
+ 수락됨 → 완료됨: 고객이 교환 토큰을 릴리스

*거부 경로*
+ 할당됨 → 거부됨: 고객이 요청을 거부
+ 승인 보류 중 → 거부됨: 관리자가 요청을 거부
+ 수락됨 → 거부됨: 고객이 토큰을 릴리스하기 전에 승인을 취소

*만료 경로*

지정된 기간 내에 조치를 취하지 않으면 요청이 자동으로 만료됩니다.
+ 할당되지 않음 → 만료됨(1일)
+ 할당됨 → 만료됨(7일)
+ 승인 대기 중 → 만료됨(7일)
+ 수락됨 → 만료됨(7일)
+ 거부됨 → 만료됨(7일)
+ 완료됨 → 만료됨(7일)

*터미널 상태*

다음은 최종 상태입니다(추가 전환 없음).
+ 완료됨: 교환 토큰 전송됨
+ 거부됨: 요청이 거부됨
+ 만료됨: 요청 시간 초과 또는 위임 기간 종료

만료된 요청은 보존 기간 이후에 시스템에서 최종 삭제됩니다.

### 애플리케이션에서 위임 요청 상태 관리
<a name="temporary-delegation-managing-states"></a>

파트너는 시스템에서 위임 요청 상태를 추적하고 고객에게 표시해야 합니다. 상태 변경에 대한 SNS 알림을 받으면 이러한 업데이트를 백엔드에 저장하고 고객용 UI에 반영합니다. 대기 중 승인 상태에 특히 주의하세요. 고객이 검토를 위해 관리자에게 요청을 전달하면 AWS가 대기 중 승인 알림을 보냅니다. 요청은 관리자 작업을 기다리는 동안 최대 7일 동안이 상태를 유지할 수 있습니다. 이 시간 동안 고객의 요청이 애플리케이션에서 관리자 승인 대기 중임을 고객에게 보여줍니다. 고객이 요청 상태를 확인하거나 관리자에게 후속 조치를 취할 수 있는 AWS Console에 대한 딥 링크를 제공하는 것이 좋습니다. 백엔드에서 상태 시스템을 올바르게 처리하고 각 단계에서 고객에게 올바른 상태 정보를 표시하는 것이 우수한 통합 경험을 위해 중요합니다.

![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/delegation-states.png)


## 알림 구성
<a name="temporary-delegation-configuring-notifications"></a>

IAM은 Amazon Simple Notification Service(SNS)를 사용하여 위임 요청 상태 변경 사항을 사용자에게 전달합니다. 위임 요청을 생성할 때 등록된 AWS 계정의 SNS 주제 ARN을 제공해야 합니다. IAM은 고객이 요청을 승인 또는 거부할 때와 교환 토큰이 준비될 때를 포함하여 중요한 이벤트에 대한 메시지를 이 주제에 게시합니다.

**참고**  
SNS 주제는 옵트인 AWS 리전에 있을 수 없습니다. SNS 주제는 기본적으로 활성화된 AWS 리전에 있어야 합니다. 옵트인 리전 목록은 AWS 계정 관리 가이드의 AWS 리전 관리를 참조하세요.

### SNS 주제 구성
<a name="temporary-delegation-sns-topic-configuration"></a>

위임 요청 알림을 받으려면 메시지를 게시할 수 있는 IAM 권한을 부여하도록 SNS 주제를 구성해야 합니다. SNS 주제 정책에 다음 정책 문을 추가합니다.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowIAMServiceToPublish",
            "Effect": "Allow",
            "Principal": {
                "Service": "iam.amazonaws.com"
            },
            "Action": "SNS:Publish",
            "Resource": "arn:aws:sns:REGION:ACCOUNT-ID:TOPIC-NAME"
        }
    ]
}
```

**중요**  
SNS 주제는 등록된 AWS 계정 중 하나에 있어야 합니다. IAM은 다른 계정의 SNS 주제를 수락하지 않습니다. 주제 정책이 올바르게 구성되지 않은 경우 상태 변경 알림 또는 교환 토큰이 수신되지 않습니다.

### 알림 유형
<a name="temporary-delegation-notification-types"></a>

IAM은 두 가지 유형의 알림을 보냅니다.

*StateChange 알림*

위임 요청이 새 상태(할당됨, 승인 보류 중, 수락됨, 완료됨, 거부됨, 만료됨)로 전환될 때 전송됩니다.

*ExchangeToken 알림*

고객이 위임 토큰을 릴리스하면 전송됩니다(완료됨 상태). 이 알림에는 자격 증명을 얻는 데 필요한 교환 토큰이 포함되어 있습니다.

### 알림 상태
<a name="temporary-delegation-notification-states"></a>

다음 위임 요청 상태에 대한 알림을 받게 됩니다.


| State | 알림 유형 | 설명 | 
| --- | --- | --- | 
| 할당됨 | StateChange | 요청이 고객 계정과 연결되었습니다. | 
| 승인 보류 중 | StateChange | 고객이 승인을 위해 관리자에게 요청을 전달했습니다. | 
| 수락됨 | StateChange | 고객이 요청을 승인했지만 아직 토큰을 릴리스하지 않았습니다. | 
| 완료됨 | StateChange | 고객이 교환 토큰을 릴리스했습니다. | 
| 완료됨 | ExchangeToken | 이 알림에는 Exchange 토큰이 포함되어 있습니다. | 
| REJECTED | StateChange | 고객이 요청을 거부함 | 
| EXPIRED | StateChange | 완료 전에 요청이 만료됨 | 

### 알림 메시지 형식
<a name="temporary-delegation-notification-message-format"></a>

IAM은 표준 SNS 알림을 게시합니다. 위임 요청 정보는 메시지 필드에 JSON 문자열로 포함됩니다.

*공통 필드(모든 알림)*


| Field | Type | 설명 | 
| --- | --- | --- | 
| Type | 문자열 | ‘StateChange’ 또는 ‘ExchangeToken’ | 
| RequestId | 문자열 | IAM 위임 요청 ID | 
| RequestorWorkflowId | 문자열 | 요청을 생성할 때 제공한 워크플로 ID | 
| State | 문자열 | 요청의 현재 상태 | 
| OwnerAccountId | 문자열 | 고객의 AWS 계정 ID | 
| UpdatedAt | 문자열 | 상태 변경 시점의 타임스탬프(ISO 8601 형식) | 

*추가 필드(ExchangeToken 알림만 해당)*


| Field | Type | 설명 | 
| --- | --- | --- | 
| ExchangeToken | 문자열 | AWS STS GetDelegatedAccessToken API를 사용하여 자격 증명과 교환할 토큰 | 
| ExpiresAt | 문자열 | 위임된 액세스가 만료되는 경우(ISO 8601 형식) | 

### 알림 예제
<a name="temporary-delegation-example-notifications"></a>

*StateChange 알림*

```
{
  "Type": "Notification",
  "MessageId": "61ee8ad4-6eec-56b5-8f3d-eba57556aa13",
  "TopicArn": "arn:aws:sns:us-east-1:123456789012:partner-notifications",
  "Message": "{\"RequestorWorkflowId\":\"workflow-12345\",\"Type\":\"StateChange\",\"RequestId\":\"dr-abc123\",\"State\":\"ACCEPTED\",\"OwnerAccountId\":\"111122223333\",\"UpdatedAt\":\"2025-01-15T10:30:00.123Z\"}",
  "Timestamp": "2025-01-15T10:30:00.456Z",
  "SignatureVersion": "1",
  "Signature": "...",
  "SigningCertURL": "...",
  "UnsubscribeURL": "..."
}
```

*ExchangeToken 알림*

```
{
  "Type": "Notification",
  "MessageId": "e44e5435-c72c-5333-aba3-354406782f5b",
  "TopicArn": "arn:aws:sns:us-east-1:123456789012:partner-notifications",
  "Message": "{\"RequestId\":\"dr-abc123\",\"RequestorWorkflowId\":\"workflow-12345\",\"State\":\"FINALIZED\",\"OwnerAccountId\":\"111122223333\",\"ExchangeToken\":\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",\"ExpiresAt\":\"2025-01-15T18:30:00.123Z\",\"UpdatedAt\":\"2025-01-15T10:30:00.456Z\",\"Type\":\"ExchangeToken\"}",
  "Timestamp": "2025-01-15T10:30:00.789Z",
  "SignatureVersion": "1",
  "Signature": "...",
  "SigningCertURL": "...",
  "UnsubscribeURL": "..."
}
```

## 교환 토큰
<a name="temporary-delegation-exchange-tokens"></a>

고객이 위임 요청을 수락하고 완료하면 IAM에서 교환 토큰 또는 거래 토큰이 발급됩니다. 제품 제공업체는 이 교환 또는 거래 토큰을 사용하여 AWS AWS STS GetDelegatedAccessToken API를 직접 호출함으로써 고객이 승인한 권한으로 임시 AWS 자격 증명을 얻습니다. 교환 토큰 자체는 AWS 리소스에 대한 액세스 권한을 부여하지 않으므로 AWS STS를 통해 실제 자격 증명으로 교환해야 합니다.

교환 토큰은 위임 요청을 생성한 제품 제공업체 계정에서만 사용할 수 있습니다. 요청 계정은 토큰에 포함되어 있으므로 승인된 제품 제공업체만 고객 계정에 액세스할 수 있는 자격 증명을 얻을 수 있습니다.

### 액세스 기간
<a name="temporary-delegation-access-duration"></a>

위임 기간은 고객이 교환 토큰을 릴리스할 때 시작되며 제품 제공업체가 교환 토큰을 사용할 때가 아닙니다. 고객이 토큰을 릴리스하면:
+ 제품 제공업체가 SNS 알림을 통해 토큰을 수신합니다.
+ 자격 증명으로 즉시 교환할 수 있습니다.
+ 자격 증명 만료 시점: 릴리스 시간 \$1 승인 기간
+ 제품 제공업체는 만료 전에 토큰을 여러 번 교환하여 필요한 경우 새 자격 증명을 얻을 수 있습니다.

### 다중 재시도
<a name="temporary-delegation-multiple-redemptions"></a>

제품 제공업체는 유효 기간 동안 토큰을 여러 번 교환하여 새 자격 증명을 얻을 수 있습니다. 하지만 동일한 교환 토큰에서 얻은 모든 자격 증명은 토큰을 릴리스한 시기에 따라 동시에 만료됩니다.

예: 2시간 위임 요청을 승인하고 오전 10시에 토큰을 릴리스하는 경우:


| 토큰 릴리스 시간 | 토큰 교환 시간 | 자격 증명 만료 | 사용 가능한 시간 | 
| --- | --- | --- | --- | 
| 오전 10시 00분 | 오전 10시 00분 | 오후 12시 | 2시간 | 
| 오전 10시 00분 | 오전 10시 20분 | 오후 12시 | 1시간 40분 | 
| 오전 10시 00분 | 오전 11시 40분 | 오후 12시 | 20분 | 
| 오전 10시 00분 | 오후 12:10 | 실패(토큰 만료됨) | 0분 | 

표에 나와 있듯이 유효 기간 후반에 토큰을 교환하면 제품 제공업체의 사용 시간이 줄어듭니다.