

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

# MemoryDB의 ID 및 액세스 관리
<a name="iam"></a>





AWS Identity and Access Management (IAM)는 관리자가 AWS 리소스에 대한 액세스를 안전하게 제어하는 데 도움이 AWS 서비스 되는 입니다. IAM 관리자는 누가 MemoryDB 리소스를 사용하도록 *인증되고*(로그인됨) *권한이 부여되는*지(권한 있음)를 제어합니다. IAM은 추가 비용 없이 사용할 수 AWS 서비스 있는 입니다.

**Topics**
+ [대상](#security_iam_audience)
+ [ID를 통한 인증](#security_iam_authentication)
+ [정책을 사용하여 액세스 관리](#security_iam_access-manage)
+ [MemoryDB에서 IAM을 사용하는 방식](security_iam_service-with-iam.md)
+ [MemoryDB 보안 인증 기반 정책 예제](security_iam_id-based-policy-examples.md)
+ [MemoryDB ID 및 액세스 문제 해결](security_iam_troubleshoot.md)
+ [액세스 관리](#iam.accesscontrol)
+ [MemoryDB 리소스에 대한 액세스 권한 관리 개요](iam.overview.md)

## 대상
<a name="security_iam_audience"></a>

 AWS Identity and Access Management (IAM)를 사용하는 방법은 역할에 따라 다릅니다.
+ **서비스 사용자** - 기능에 액세스할 수 없는 경우 관리자에게 권한 요청(참조[MemoryDB ID 및 액세스 문제 해결](security_iam_troubleshoot.md))
+ **서비스 관리자** - 사용자 액세스 결정 및 권한 요청 제출([MemoryDB에서 IAM을 사용하는 방식](security_iam_service-with-iam.md) 참조)
+ **IAM 관리자** - 액세스를 관리하기 위한 정책 작성([MemoryDB 보안 인증 기반 정책 예제](security_iam_id-based-policy-examples.md) 참조)

## ID를 통한 인증
<a name="security_iam_authentication"></a>

인증은 자격 증명 자격 증명을 AWS 사용하여에 로그인하는 방법입니다. AWS 계정 루트 사용자, IAM 사용자 또는 IAM 역할을 수임하여 인증해야 합니다.

 AWS IAM Identity Center (IAM Identity Center), Single Sign-On 인증 또는 Google/Facebook 자격 증명과 같은 자격 증명 소스의 자격 증명을 사용하여 페더레이션 자격 증명으로 로그인할 수 있습니다. 로그인하는 방법에 대한 자세한 내용은 *AWS Sign-In 사용 설명서*의 [AWS 계정에 로그인하는 방법](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) 섹션을 참조하세요.

프로그래밍 방식 액세스를 위해는 요청에 암호화 방식으로 서명할 수 있는 SDK 및 CLI를 AWS 제공합니다. 자세한 내용은 *IAM 사용 설명서*의 [API 요청용AWS Signature Version 4](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) 섹션을 참조하세요.

### AWS 계정 루트 사용자
<a name="security_iam_authentication-rootuser"></a>

 를 생성할 때 모든 AWS 서비스 및 리소스에 대한 완전한 액세스 권한이 있는 AWS 계정 *theroot 사용자*라는 하나의 로그인 자격 증명으로 AWS 계정시작합니다. 일상적인 태스크에 루트 사용자를 사용하지 않을 것을 강력히 권장합니다. 루트 사용자 자격 증명이 필요한 작업은 *IAM 사용 설명서*의 [루트 사용자 자격 증명이 필요한 작업](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks) 섹션을 참조하세요.

### 페더레이션 ID
<a name="security_iam_authentication-federated"></a>

가장 좋은 방법은 인간 사용자에게 자격 증명 공급자와의 페더레이션을 사용하여 임시 자격 증명을 AWS 서비스 사용하여에 액세스하도록 요구하는 것입니다.

*페더레이션 자격 증명*은 엔터프라이즈 디렉터리, 웹 자격 증명 공급자 또는 자격 증명 소스의 자격 증명을 AWS 서비스 사용하여 Directory Service 에 액세스하는 사용자입니다. 페더레이션 ID는 임시 자격 증명을 제공하는 역할을 수임합니다.

중앙 집중식 액세스 관리를 위해 AWS IAM Identity Center를 추천합니다. 자세한 정보는 *AWS IAM Identity Center 사용 설명서*의 [What is IAM Identity Center?](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)를 참조하세요.

### IAM 사용자 및 그룹
<a name="security_iam_authentication-iamuser"></a>

*[IAM 사용자](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)*는 단일 개인 또는 애플리케이션에 대한 특정 권한을 가진 ID입니다. 장기 자격 증명이 있는 IAM 사용자 대신 임시 자격 증명을 사용하는 것이 좋습니다. 자세한 내용은 *IAM 사용 설명서*의 자격 [증명 공급자와의 페더레이션을 사용하여 임시 자격 증명을 AWS 사용하여에 액세스하도록 인간 사용자에게 요구](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp)하기를 참조하세요.

[https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html)은 IAM 사용자 모음을 지정하고 대규모 사용자 집합에 대한 관리 권한을 더 쉽게 만듭니다. 자세한 내용은 *IAM 사용 설명서*의 [IAM 사용자 사용 사례](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html) 섹션을 참조하세요.

### IAM 역할
<a name="security_iam_authentication-iamrole"></a>

*[IAM 역할](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)*은 임시 자격 증명을 제공하는 특정 권한이 있는 자격 증명입니다. [사용자에서 IAM 역할(콘솔)로 전환하거나 또는 API 작업을 호출하여 역할을](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html) 수임할 수 있습니다. AWS CLI AWS 자세한 내용은 *IAM 사용 설명서*의 [역할 수임 방법](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html)을 참조하세요.

IAM 역할은 페더레이션 사용자 액세스, 임시 IAM 사용자 권한, 교차 계정 액세스, 교차 서비스 액세스 및 Amazon EC2에서 실행되는 애플리케이션에 유용합니다. 자세한 내용은 *IAM 사용 설명서*의 [교차 계정 리소스 액세스](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)를 참조하세요.

## 정책을 사용하여 액세스 관리
<a name="security_iam_access-manage"></a>

정책을 AWS 생성하고 자격 증명 또는 리소스에 연결하여 AWS 에서 액세스를 제어합니다. 정책은 자격 증명 또는 리소스와 연결될 때 권한을 정의합니다.는 보안 주체가 요청할 때 이러한 정책을 AWS 평가합니다. 대부분의 정책은에 JSON 문서 AWS 로 저장됩니다. JSON 정책 문서에 대한 자세한 내용은 *IAM 사용 설명서*의 [JSON 정책 개요](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) 섹션을 참조하세요.

정책을 사용하여 관리자는 어떤 **보안 주체**가 어떤 **리소스**에 대해 어떤 **조건**에서 **작업**을 수행할 수 있는지 정의하여 누가 무엇을 액세스할 수 있는지 지정합니다.

기본적으로 사용자 및 역할에는 어떠한 권한도 없습니다. IAM 관리자는 IAM 정책을 생성하고 사용자가 수임할 수 있는 역할에 추가합니다. IAM 정책은 작업을 수행하기 위해 사용하는 방법과 관계없이 작업에 대한 권한을 정의합니다.

### ID 기반 정책
<a name="security_iam_access-manage-id-based-policies"></a>

ID 기반 정책은 ID(사용자, 사용자 그룹 또는 역할)에 연결하는 JSON 권한 정책 문서입니다. 이러한 정책은 자격 증명이 수행할 수 있는 작업, 대상 리소스 및 이에 관한 조건을 제어합니다. ID 기반 정책을 생성하는 방법을 알아보려면 *IAM 사용 설명서*에서 [고객 관리형 정책으로 사용자 지정 IAM 권한 정의](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)를 참조하세요.

ID 기반 정책은 *인라인 정책*(단일 ID에 직접 포함) 또는 *관리형 정책*(여러 ID에 연결된 독립 실행형 정책)일 수 있습니다. 관리형 정책 또는 인라인 정책을 선택하는 방법을 알아보려면 *IAM 사용 설명서*의 [관리형 정책 및 인라인 정책 중에서 선택](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html) 섹션을 참조하세요.

### 리소스 기반 정책
<a name="security_iam_access-manage-resource-based-policies"></a>

리소스 기반 정책은 리소스에 연결하는 JSON 정책 설명서입니다. 예를 들어 IAM *역할 신뢰 정책* 및 Amazon S3 *버킷 정책*이 있습니다. 리소스 기반 정책을 지원하는 서비스에서 서비스 관리자는 이러한 정책을 사용하여 특정 리소스에 대한 액세스를 통제할 수 있습니다. 리소스 기반 정책에서 [보안 주체를 지정](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)해야 합니다.

리소스 기반 정책은 해당 서비스에 있는 인라인 정책입니다. 리소스 기반 정책에서는 IAM의 AWS 관리형 정책을 사용할 수 없습니다.

### 기타 정책 유형
<a name="security_iam_access-manage-other-policies"></a>

AWS 는 보다 일반적인 정책 유형에서 부여한 최대 권한을 설정할 수 있는 추가 정책 유형을 지원합니다.
+ **권한 경계** - ID 기반 정책에서 IAM 엔터티에 부여할 수 있는 최대 권한을 설정합니다. 자세한 정보는 *IAM 사용 설명서*의 [IAM 엔터티의 권한 범위](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)를 참조하세요.
+ **서비스 제어 정책(SCP)** - AWS Organizations내 조직 또는 조직 단위에 대한 최대 권한을 지정합니다. 자세한 내용은AWS Organizations 사용 설명서의 [서비스 제어 정책](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)을 참조하세요.**
+ **리소스 제어 정책(RCP)** – 계정의 리소스에 사용할 수 있는 최대 권한을 설정합니다. 자세한 내용은 *AWS Organizations 사용 설명서*의 [리소스 제어 정책(RCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html)을 참조하세요.
+ **세션 정책** – 역할 또는 페더레이션 사용자에 대해 임시 세션을 프로그래밍 방식으로 생성할 때 파라미터로 전달하는 고급 정책입니다. 자세한 내용은 *IAM 사용 설명서*의 [세션 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)을 참조하세요.

### 여러 정책 유형
<a name="security_iam_access-manage-multiple-policies"></a>

여러 정책 유형이 요청에 적용되는 경우, 결과 권한은 이해하기가 더 복잡합니다. 에서 여러 정책 유형이 관련될 때 요청을 허용할지 여부를 AWS 결정하는 방법을 알아보려면 *IAM 사용 설명서*의 [정책 평가 로직](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html)을 참조하세요.

# MemoryDB에서 IAM을 사용하는 방식
<a name="security_iam_service-with-iam"></a>

IAM을 사용하여 MemoryDB에 대한 액세스를 관리하기 전에 MemoryDB와 함께 사용할 수 있는 IAM 기능을 알아보세요.






**MemoryDB에서 사용할 수 있는 IAM 기능**  

| IAM 특성 | MemoryDB 지원 | 
| --- | --- | 
|  [자격 증명 기반 정책](#security_iam_service-with-iam-id-based-policies)  |   예  | 
|  [리소스 기반 정책](#security_iam_service-with-iam-resource-based-policies)  |  아니요  | 
|  [정책 작업](#security_iam_service-with-iam-id-based-policies-actions)  |   예  | 
|  [정책 리소스](#security_iam_service-with-iam-id-based-policies-resources)  |   예  | 
|  [정책 조건 키](#security_iam_service-with-iam-id-based-policies-conditionkeys)  |   예  | 
|  [ACL](#security_iam_service-with-iam-acls)  |  예  | 
|  [ABAC(정책의 태그)](#security_iam_service-with-iam-tags)  |   예  | 
|  [임시 보안 인증](#security_iam_service-with-iam-roles-tempcreds)  |   예  | 
|  [엔터티 권한](#security_iam_service-with-iam-principal-permissions)  |   예  | 
|  [서비스 역할](#security_iam_service-with-iam-roles-service)  |  예  | 
|  [서비스 연결 역할](#security_iam_service-with-iam-roles-service-linked)  |  예  | 

MemoryDB 및 기타 AWS 서비스가 대부분의 IAM 기능과 작동하는 방식을 전체적으로 알아보려면 *IAM 사용 설명서*의 [AWS IAM으로 작업하는 서비스를](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) 참조하세요.

## MemoryDB에 대한 보안 인증 기반 정책
<a name="security_iam_service-with-iam-id-based-policies"></a>

**ID 기반 정책 지원:** 예

ID 기반 정책은 IAM 사용자, 사용자 그룹 또는 역할과 같은 ID에 연결할 수 있는 JSON 권한 정책 문서입니다. 이러한 정책은 사용자 및 역할이 어떤 리소스와 어떤 조건에서 어떤 작업을 수행할 수 있는지를 제어합니다. 자격 증명 기반 정책을 생성하는 방법을 알아보려면 *IAM 사용 설명서*에서 [고객 관리형 정책으로 사용자 지정 IAM 권한 정의](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)를 참조하세요.

IAM ID 기반 정책을 사용하면 허용되거나 거부되는 작업과 리소스뿐 아니라 작업이 허용되거나 거부되는 조건을 지정할 수 있습니다. JSON 정책에서 사용할 수 있는 모든 요소에 대해 알아보려면 *IAM 사용 설명서*의 [IAM JSON 정책 요소 참조](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)를 참조하세요.

### MemoryDB 보안 인증 기반 정책 예제
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>



MemoryDB 보안 인증 기반 정책의 예를 보려면 [MemoryDB 보안 인증 기반 정책 예제](security_iam_id-based-policy-examples.md) 단원을 참조하세요.

## MemoryDB 내 리소스 기반 정책
<a name="security_iam_service-with-iam-resource-based-policies"></a>

**리소스 기반 정책 지원:** 아니요 

리소스 기반 정책은 리소스에 연결하는 JSON 정책 설명서입니다. 리소스 기반 정책의 예제는 IAM *역할 신뢰 정책*과 Amazon S3 *버킷 정책*입니다. 리소스 기반 정책을 지원하는 서비스에서 서비스 관리자는 이러한 정책을 사용하여 특정 리소스에 대한 액세스를 통제할 수 있습니다. 정책이 연결된 리소스의 경우 정책은 지정된 보안 주체가 해당 리소스와 어떤 조건에서 어떤 작업을 수행할 수 있는지를 정의합니다. 리소스 기반 정책에서 [보안 주체를 지정](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)해야 합니다. 보안 주체에는 계정, 사용자, 역할, 페더레이션 사용자 또는이 포함될 수 있습니다 AWS 서비스.

교차 계정 액세스를 활성화하려는 경우, 전체 계정이나 다른 계정의 IAM 개체를 리소스 기반 정책의 보안 주체로 지정할 수 있습니다. 자세한 내용은 *IAM 사용 설명서*의 [IAM에서 교차 계정 리소스 액세스](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)를 참조하세요.

## MemoryDB의 정책 작업
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

**정책 작업 지원:** 예

관리자는 AWS JSON 정책을 사용하여 누가 무엇에 액세스할 수 있는지 지정할 수 있습니다. 즉, 어떤 **보안 주체**가 어떤 **리소스**와 어떤 **조건**에서 **작업**을 수행할 수 있는지를 지정할 수 있습니다.

JSON 정책의 `Action`요소는 정책에서 액세스를 허용하거나 거부하는 데 사용할 수 있는 작업을 설명합니다. 연결된 작업을 수행할 수 있는 권한을 부여하기 위한 정책에 작업을 포함하세요.



MemoryDB 작업 목록을 보려면 *서비스 승인 참조*의 [MemoryDB에서 정의한 작업](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awskeymanagementservice.html#awskeymanagementservice-actions-as-permissions)을 참조하세요.

MemoryDB의 정책 작업은 작업 앞에 다음 접두사를 사용합니다.

```
MemoryDB
```

단일 문에서 여러 작업을 지정하려면 쉼표로 구분합니다.

```
"Action": [
      "MemoryDB:action1",
      "MemoryDB:action2"
         ]
```





와일드카드(\$1)를 사용하여 여러 작업을 지정할 수 있습니다. 예를 들어, `Describe`라는 단어로 시작하는 모든 작업을 지정하려면 다음 작업을 포함합니다.

```
"Action": "MemoryDB:Describe*"
```

MemoryDB 보안 인증 기반 정책의 예를 보려면 [MemoryDB 보안 인증 기반 정책 예제](security_iam_id-based-policy-examples.md) 단원을 참조하세요.

## MemoryDB의 정책 리소스
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

**정책 리소스 지원:** 예

관리자는 AWS JSON 정책을 사용하여 누가 무엇에 액세스할 수 있는지 지정할 수 있습니다. 즉, 어떤 **보안 주체**가 어떤 **리소스**와 어떤 **조건**에서 **작업**을 수행할 수 있는지를 지정할 수 있습니다.

`Resource` JSON 정책 요소는 작업이 적용되는 하나 이상의 객체를 지정합니다. 모범 사례에 따라 [Amazon 리소스 이름(ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html)을 사용하여 리소스를 지정합니다. 리소스 수준 권한을 지원하지 않는 작업의 경우, 와일드카드(\$1)를 사용하여 해당 문이 모든 리소스에 적용됨을 나타냅니다.

```
"Resource": "*"
```

MemoryDB 리소스 유형 및 해당 ARN의 목록을 보려면 *서비스 승인 참조*의 [MemoryDB에서 정의한 리소스](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awskeymanagementservice.html#awskeymanagementservice-resources-for-iam-policies)를 참조하세요. 각 리소스의 ARN을 지정할 수 있는 작업을 알아보려면 [MemoryDB에서 정의한 작업](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awskeymanagementservice.html#awskeymanagementservice-actions-as-permissions)을 참조하세요.





MemoryDB 보안 인증 기반 정책의 예를 보려면 [MemoryDB 보안 인증 기반 정책 예제](security_iam_id-based-policy-examples.md) 단원을 참조하세요.

## MemoryDB의 정책 조건 키
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

**서비스별 정책 조건 키 지원:** 예

관리자는 AWS JSON 정책을 사용하여 누가 무엇에 액세스할 수 있는지 지정할 수 있습니다. 즉, 어떤 **보안 주체**가 어떤 **리소스**와 어떤 **조건**에서 **작업**을 수행할 수 있는지를 지정할 수 있습니다.

`Condition` 요소는 정의된 기준에 따라 문이 실행되는 시기를 지정합니다. 같음(equals) 또는 미만(less than)과 같은 [조건 연산자](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)를 사용하여 정책의 조건을 요청의 값과 일치시키는 조건식을 생성할 수 있습니다. 모든 AWS 전역 조건 키를 보려면 *IAM 사용 설명서*의 [AWS 전역 조건 컨텍스트 키를](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) 참조하세요.

MemoryDB 보안 인증 기반 정책의 예를 보려면 [MemoryDB 보안 인증 기반 정책 예제](security_iam_id-based-policy-examples.md) 단원을 참조하세요.

### 조건 키 사용
<a name="IAM.ConditionKeys"></a>

IAM 정책이 적용되는 방식을 결정하는 조건을 지정할 수 있습니다. MemoryDB에서 JSON 정책의 `Condition` 요소를 사용하여 요청 컨텍스트의 키를 정책에서 지정한 키 값과 비교할 수 있습니다. 자세한 정보는 [IAM JSON 정책 요소: 조건](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)을 참조하세요.

MemoryDB 조건 키 목록을 보려면 *서비스 승인 참조*의 [MemoryDB의 조건 키](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awskeymanagementservice.html#awskeymanagementservice-policy-keys)를 참조하세요.

글로벌 조건 키의 목록은 [AWS 글로벌 조건 컨텍스트 키](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)를 참조하세요.

#### 조건 지정: 조건 키 사용
<a name="IAM.SpecifyingConditions"></a>

세분화된 제어를 구현하려는 경우 특정 요청에 대한 개별 파라미터 집합을 제어하는 조건을 지정하는 IAM 권한 정책을 작성할 수 있습니다. 그런 다음 IAM 콘솔을 사용하여 만드는 IAM 사용자, 그룹 또는 역할에 정책을 적용할 수 있습니다.

조건을 적용하려면 IAM 정책 설명에 조건 정보를 추가합니다. 예를 들어 TLS가 비활성화된 MemoryDB 클러스터의 생성을 허용하지 않으려면 정책 문에 다음 조건을 지정할 수 있습니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "memorydb:CreateCluster"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "Bool": {
          "memorydb:TLSEnabled": "false"
        }
      }
    }
  ]
}
```

------

태그 지정에 대한 자세한 내용은 [MemoryDB 리소스 태그 지정](tagging-resources.md) 섹션을 참조하세요.

정책 조건 연산자 사용에 대한 자세한 내용은 [MemoryDB API 권한: 작업, 리소스 및 조건 참조](iam.APIReference.md) 섹션을 참조하세요.

#### 정책 예: 조건을 사용하여 세부적인 파라미터 제어 구현
<a name="IAM.ExamplePolicies"></a>

이 섹션에서는 이전에 나열된 MemoryDB 파라미터에 대한 세분화된 액세스 제어를 구현하기 위한 정책 예를 보여 줍니다.

1. **memorydb:TLSEnabled** - TLS가 활성화된 상태에서만 클러스터를 생성하도록 지정합니다.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
                 {
               "Effect": "Allow",
               "Action": [
                   "memorydb:CreateCluster"
               ],
               "Resource": [
                   "arn:aws:memorydb:*:*:parametergroup/*",
                   "arn:aws:memorydb:*:*:subnetgroup/*",
                   "arn:aws:memorydb:*:*:acl/*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "memorydb:CreateCluster"
               ],
               "Resource": [
                   "*"
               ],
               "Condition": {
                   "Bool": {
                       "memorydb:TLSEnabled": "true"
                   }
               }
           }
       ]
   }
   ```

------

1. **memorydb:UserAuthenticationMode:** - 특정 유형의 인증 모드(예: IAM)로 사용자를 생성할 수 있도록 지정합니다.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "memorydb:Createuser"
               ],
               "Resource": [
                   "arn:aws:memorydb:*:*:user/*"
               ],
               "Condition": {
                   "StringEquals": {
                       "memorydb:UserAuthenticationMode": "iam"
                   }
               }
           }
       ]
   }
   ```

------

   ‘거부’ 기반 정책을 설정하는 경우 대소문자에 관계없이 특정 사용자 인증 모드 유형의 모든 직접 호출을 방지하려면 [StringEqualsIgnoreCase](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String) 연산자를 사용하는 것이 좋습니다.

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Deny",
         "Action": [
           "memorydb:CreateUser"
         ],
         "Resource": "*",
         "Condition": {
           "StringEqualsIgnoreCase": {
             "memorydb:UserAuthenticationMode": "password"
           }
         }
       }
     ]
   }
   ```

------

## MemoryDB의 액세스 제어 목록(ACL)
<a name="security_iam_service-with-iam-acls"></a>

**ACL 지원:** 예

액세스 제어 목록(ACL)은 어떤 보안 주체(계정 멤버, 사용자 또는 역할)가 리소스에 액세스할 수 있는 권한을 가지고 있는지를 제어합니다. ACL은 JSON 정책 문서 형식을 사용하지 않지만 리소스 기반 정책과 유사합니다.

## MemoryDB에서 속성 기반 액세스 제어(ABAC)
<a name="security_iam_service-with-iam-tags"></a>

**ABAC 지원(정책의 태그):** 예

속성 기반 액세스 제어(ABAC)는 태그라고 불리는 속성을 기반으로 권한을 정의하는 권한 부여 전략입니다. IAM 엔터티 및 AWS 리소스에 태그를 연결한 다음 보안 주체의 태그가 리소스의 태그와 일치할 때 작업을 허용하는 ABAC 정책을 설계할 수 있습니다.

태그에 근거하여 액세스를 제어하려면 `aws:ResourceTag/key-name`, `aws:RequestTag/key-name`또는 `aws:TagKeys`조건 키를 사용하여 정책의 [조건 요소](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)에 태그 정보를 제공합니다.

서비스가 모든 리소스 유형에 대해 세 가지 조건 키를 모두 지원하는 경우, 값은 서비스에 대해 **예**입니다. 서비스가 일부 리소스 유형에 대해서만 세 가지 조건 키를 모두 지원하는 경우, 값은 **부분적**입니다.

ABAC에 대한 자세한 내용은 *IAM 사용 설명서*의 [ABAC 권한 부여를 통한 권한 정의](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)를 참조하세요. ABAC 설정 단계가 포함된 자습서를 보려면 *IAM 사용 설명서*의 [속성 기반 액세스 제어(ABAC) 사용](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html)을 참조하세요.

## MemoryDB에서 임시 보안 인증 정보 사용
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

**임시 자격 증명 지원:** 예

임시 자격 증명은 AWS 리소스에 대한 단기 액세스를 제공하며 페더레이션 또는 전환 역할을 사용할 때 자동으로 생성됩니다. 장기 액세스 키를 사용하는 대신 임시 자격 증명을 동적으로 생성하는 것이 AWS 좋습니다. 자세한 내용은 *IAM 사용 설명서*의 [IAM의 임시 보안 자격 증명](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) 및 [IAM으로 작업하는AWS 서비스](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) 섹션을 참조하세요.

## MemoryDB의 서비스 간 보안 주체 권한
<a name="security_iam_service-with-iam-principal-permissions"></a>

**전달 액세스 세션(FAS) 지원:** 예

 전달 액세스 세션(FAS)은를 호출하는 보안 주체의 권한을 다운스트림 서비스에 AWS 서비스 대한 요청과 AWS 서비스함께 사용합니다. FAS 요청 시 정책 세부 정보는 [전달 액세스 세션](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html)을 참조하세요.

## MemoryDB의 서비스 역할
<a name="security_iam_service-with-iam-roles-service"></a>

**서비스 역할 지원:** 예

 서비스 역할은 서비스가 사용자를 대신하여 작업을 수행하는 것으로 가정하는 [IAM 역할](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)입니다. IAM 관리자는 IAM 내에서 서비스 역할을 생성, 수정 및 삭제할 수 있습니다. 자세한 내용은 *IAM 사용 설명서*의 [AWS 서비스 AWS에 권한을 위임할 역할 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)을 참조하세요.

**주의**  
서비스 역할에 대한 권한을 변경하면 MemoryDB 기능이 중단될 수 있습니다. MemoryDB에서 관련 지침을 제공하는 경우에만 서비스 역할을 편집하세요.

## MemoryDB에 대한 서비스 연결 역할
<a name="security_iam_service-with-iam-roles-service-linked"></a>

**서비스 연결 역할 지원:** 예

 서비스 연결 역할은에 연결된 서비스 역할의 한 유형입니다 AWS 서비스. 서비스는 사용자를 대신하여 작업을 수행하기 위해 역할을 수임할 수 있습니다. 서비스 연결 역할은에 나타나 AWS 계정 며 서비스가 소유합니다. IAM 관리자는 서비스 연결 역할의 권한을 볼 수 있지만 편집은 할 수 없습니다.

서비스 연결 역할 생성 또는 관리에 대한 자세한 내용은 [IAM으로 작업하는AWS 서비스](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)를 참조하세요. **서비스 연결 역할** 열에서 `Yes`가 포함된 서비스를 테이블에서 찾습니다. 해당 서비스에 대한 서비스 연결 역할 설명서를 보려면 **예(Yes)** 링크를 선택합니다.

# MemoryDB 보안 인증 기반 정책 예제
<a name="security_iam_id-based-policy-examples"></a>

기본적으로 사용자 및 역할에는 MemoryDB 리소스를 생성하거나 수정할 수 있는 권한이 없습니다. 사용자에게 사용자가 필요한 리소스에서 작업을 수행할 권한을 부여하려면 IAM 관리자가 IAM 정책을 생성하면 됩니다.

이러한 예제 JSON 정책 문서를 사용하여 IAM ID 기반 정책을 생성하는 방법을 알아보려면 *IAM 사용 설명서*의 [IAM 정책 생성(콘솔)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)을 참조하세요.

각 리소스 유형의 ARN 형식을 포함하여 MemoryDB에서 정의한 작업 및 리소스 유형에 대한 자세한 내용은 *서비스 승인 참조*의 [MemoryDB에 사용되는 작업, 리소스 및 조건 키](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awskeymanagementservice.html)를 참조하세요.

**Topics**
+ [정책 모범 사례](#security_iam_service-with-iam-policy-best-practices)
+ [MemoryDB 콘솔 사용](#security_iam_id-based-policy-examples-console)
+ [사용자가 자신의 고유한 권한을 볼 수 있도록 허용](#security_iam_id-based-policy-examples-view-own-permissions)

## 정책 모범 사례
<a name="security_iam_service-with-iam-policy-best-practices"></a>

보안 인증 기반 정책에 따라 계정에서 사용자가 MemoryDB 리소스를 생성, 액세스 또는 삭제할 수 있는지 여부가 결정됩니다. 이 작업으로 인해 AWS 계정에 비용이 발생할 수 있습니다. ID 기반 정책을 생성하거나 편집할 때는 다음 지침과 권장 사항을 따르세요.
+ ** AWS 관리형 정책을 시작하고 최소 권한으로 전환 -** 사용자 및 워크로드에 권한 부여를 시작하려면 많은 일반적인 사용 사례에 대한 권한을 부여하는 *AWS 관리형 정책을* 사용합니다. 에서 사용할 수 있습니다 AWS 계정. 사용 사례에 맞는 AWS 고객 관리형 정책을 정의하여 권한을 추가로 줄이는 것이 좋습니다. 자세한 내용은 *IAM 사용 설명서*의 [AWS 관리형 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) 또는 [AWS 직무에 대한 관리형 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)을 참조하세요.
+ **최소 권한 적용** – IAM 정책을 사용하여 권한을 설정하는 경우, 작업을 수행하는 데 필요한 권한만 부여합니다. 이렇게 하려면 *최소 권한*으로 알려진 특정 조건에서 특정 리소스에 대해 수행할 수 있는 작업을 정의합니다. IAM을 사용하여 권한을 적용하는 방법에 대한 자세한 정보는 *IAM 사용 설명서*에 있는 [IAM의 정책 및 권한](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)을 참조하세요.
+ **IAM 정책의 조건을 사용하여 액세스 추가 제한** – 정책에 조건을 추가하여 작업 및 리소스에 대한 액세스를 제한할 수 있습니다. 예를 들어, SSL을 사용하여 모든 요청을 전송해야 한다고 지정하는 정책 조건을 작성할 수 있습니다. AWS 서비스와 같은 특정를 통해 사용되는 경우 조건을 사용하여 서비스 작업에 대한 액세스 권한을 부여할 수도 있습니다 CloudFormation. 자세한 내용은 *IAM 사용 설명서*의 [IAM JSON 정책 요소: 조건](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)을 참조하세요.
+ **IAM Access Analyzer를 통해 IAM 정책을 확인하여 안전하고 기능적인 권한 보장** - IAM Access Analyzer에서는 IAM 정책 언어(JSON)와 모범 사례가 정책에서 준수되도록 새로운 및 기존 정책을 확인합니다. IAM Access Analyzer는 100개 이상의 정책 확인 항목과 실행 가능한 추천을 제공하여 안전하고 기능적인 정책을 작성하도록 돕습니다. 자세한 내용은 *IAM 사용 설명서*의 [IAM Access Analyzer에서 정책 검증](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html)을 참조하세요.
+ **다중 인증(MFA) 필요 -**에서 IAM 사용자 또는 루트 사용자가 필요한 시나리오가 있는 경우 추가 보안을 위해 MFA를 AWS 계정켭니다. API 작업을 직접적으로 호출할 때 MFA가 필요하면 정책에 MFA 조건을 추가합니다. 자세한 내용은 *IAM 사용 설명서*의 [MFA를 통한 보안 API 액세스](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html)를 참조하세요.

IAM의 모범 사례에 대한 자세한 내용은 *IAM 사용 설명서*의 [IAM의 보안 모범 사례](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)를 참조하세요.

## MemoryDB 콘솔 사용
<a name="security_iam_id-based-policy-examples-console"></a>

MemoryDB 콘솔에 액세스하려면 최소 권한 세트가 있어야 합니다. 이러한 권한은에서 MemoryDB 리소스에 대한 세부 정보를 나열하고 볼 수 있도록 허용해야 합니다 AWS 계정. 최소 필수 권한보다 더 제한적인 ID 기반 정책을 생성하는 경우, 콘솔이 해당 정책에 연결된 엔티티(사용자 또는 역할)에 대해 의도대로 작동하지 않습니다.

 AWS CLI 또는 AWS API만 호출하는 사용자에게는 최소 콘솔 권한을 허용할 필요가 없습니다. 대신, 수행하려는 API 작업과 일치하는 작업에만 액세스할 수 있도록 합니다.

사용자와 역할이 MemoryDB 콘솔을 계속 사용할 수 있도록 하려면 MemoryDB `ConsoleAccess` 또는 `ReadOnly` AWS 관리형 정책도 엔터티에 연결합니다. 자세한 내용은 *IAM 사용 설명서*의 [사용자에게 권한 추가](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)를 참조하세요.

## 사용자가 자신의 고유한 권한을 볼 수 있도록 허용
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

이 예제는 IAM 사용자가 자신의 사용자 ID에 연결된 인라인 및 관리형 정책을 볼 수 있도록 허용하는 정책을 생성하는 방법을 보여줍니다. 이 정책에는 콘솔에서 또는 AWS CLI 또는 AWS API를 사용하여 프로그래밍 방식으로이 작업을 완료할 수 있는 권한이 포함됩니다.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```







# MemoryDB ID 및 액세스 문제 해결
<a name="security_iam_troubleshoot"></a>

다음 정보를 사용하여 MemoryDB 및 IAM에서 발생할 수 있는 공통적인 문제를 진단하고 수정할 수 있습니다.

**Topics**
+ [MemoryDB에서 작업을 수행할 권한이 없음](#security_iam_troubleshoot-no-permissions)
+ [iam:PassRole을 수행하도록 인증되지 않음](#security_iam_troubleshoot-passrole)
+ [내 AWS 계정 외부의 사용자가 내 MemoryDB 리소스에 액세스하도록 허용하고 싶습니다.](#security_iam_troubleshoot-cross-account-access)

## MemoryDB에서 작업을 수행할 권한이 없음
<a name="security_iam_troubleshoot-no-permissions"></a>

에서 작업을 수행할 권한이 없다는 AWS Management Console 메시지가 표시되면 관리자에게 문의하여 지원을 받아야 합니다. 관리자는 사용자 이름과 암호를 제공한 사람입니다.

다음 예제 오류는 `mateojackson` 사용자가 콘솔을 사용하여 가상 `my-example-widget` 리소스에 대한 세부 정보를 보려고 하지만 가상 `MemoryDB:GetWidget` 권한이 없을 때 발생합니다.

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: MemoryDB:GetWidget on resource: my-example-widget
```

이 경우 Mateo는 `my-example-widget` 작업을 사용하여 `MemoryDB:GetWidget` 리소스에 액세스하도록 허용하는 정책을 업데이트하라고 관리자에게 요청합니다.

## iam:PassRole을 수행하도록 인증되지 않음
<a name="security_iam_troubleshoot-passrole"></a>

`iam:PassRole` 작업을 수행할 수 있는 권한이 없다는 오류가 수신되면 MemoryDB에 역할을 전달할 수 있도록 정책을 업데이트해야 합니다.

일부 AWS 서비스 에서는 새 서비스 역할 또는 서비스 연결 역할을 생성하는 대신 기존 역할을 해당 서비스에 전달할 수 있습니다. 이렇게 하려면 역할을 서비스에 전달할 권한이 있어야 합니다.

다음 예제 오류는 `marymajor`(이)라는 IAM 사용자가 콘솔을 사용하여 MemoryDB에서 작업을 수행하려고 하는 경우에 발생합니다. 하지만 작업을 수행하려면 서비스 역할이 부여한 권한이 서비스에 있어야 합니다. Mary는 서비스에 역할을 전달할 권한이 없습니다.

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

이 경우, Mary가 `iam:PassRole`작업을 수행할 수 있도록 Mary의 정책을 업데이트해야 합니다.

도움이 필요한 경우 AWS 관리자에게 문의하세요. 관리자는 로그인 자격 증명을 제공한 사람입니다.

## 내 AWS 계정 외부의 사용자가 내 MemoryDB 리소스에 액세스하도록 허용하고 싶습니다.
<a name="security_iam_troubleshoot-cross-account-access"></a>

다른 계정의 사용자 또는 조직 외부의 사람이 리소스에 액세스할 때 사용할 수 있는 역할을 생성할 수 있습니다. 역할을 수임할 신뢰할 수 있는 사람을 지정할 수 있습니다. 리소스 기반 정책 또는 액세스 제어 목록(ACL)을 지원하는 서비스의 경우, 이러한 정책을 사용하여 다른 사람에게 리소스에 대한 액세스 권한을 부여할 수 있습니다.

자세한 내용은 다음을 참조하세요.
+ MemoryDB에서 이러한 기능을 지원하는지 여부를 알아보려면 [MemoryDB에서 IAM을 사용하는 방식](security_iam_service-with-iam.md) 단원을 참조하세요.
+ 소유 AWS 계정 한의 리소스에 대한 액세스 권한을 제공하는 방법을 알아보려면 [IAM 사용 설명서의 소유한 다른의 IAM 사용자에게 액세스 권한 제공을 참조 AWS 계정 하세요](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html). ** 
+ 타사에 리소스에 대한 액세스 권한을 제공하는 방법을 알아보려면 *IAM 사용 설명서*의 [타사가 AWS 계정 소유한에 대한 액세스 권한 제공을](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html) AWS 계정참조하세요.
+ ID 페더레이션을 통해 액세스 권한을 제공하는 방법을 알아보려면 *IAM 사용 설명서*의 [외부에서 인증된 사용자에게 액세스 권한 제공(ID 페더레이션)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html)을 참조하세요.
+ 크로스 계정 액세스에 대한 역할과 리소스 기반 정책 사용의 차이점을 알아보려면 *IAM 사용 설명서*의 [IAM의 크로스 계정 리소스 액세스](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)를 참조하세요.

## 액세스 관리
<a name="iam.accesscontrol"></a>

요청을 인증하는 데 유효한 자격 증명이 있더라도 권한이 없다면 MemoryDB 리소스를 생성하거나 액세스할 수 없습니다. 예를 들어, MemoryDB 클러스터를 생성할 권한이 있어야 합니다.

다음 섹션에서는 MemoryDB에 대한 권한을 관리하는 방법을 설명합니다. 먼저 개요를 읽어보면 도움이 됩니다.
+ [MemoryDB 리소스에 대한 액세스 권한 관리 개요](iam.overview.md)
+ [MemoryDB에 대한 ID 기반 정책(IAM 정책) 사용](iam.identitybasedpolicies.md)

# MemoryDB 리소스에 대한 액세스 권한 관리 개요
<a name="iam.overview"></a>

모든 AWS 리소스는 AWS 계정이 소유하며, 리소스를 생성하거나 액세스할 수 있는 권한은 권한 정책에 의해 관리됩니다. 계정 관리자는 IAM ID(사용자, 그룹 및 역할)에 권한 정책을 연결할 수 있습니다. 또한 MemoryDB에서는 리소스에 권한 정책 연결을 지원합니다.

**참고**  
*계정 관리자* 또는 관리자 사용자는 관리자 권한이 있는 사용자입니다. 자세한 설명은 *IAM 사용자 가이드*의 [IAM 모범 사례](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) 섹션을 참조하십시오.

액세스 권한을 제공하려면 사용자, 그룹 또는 역할에 권한을 추가하세요.
+ 의 사용자 및 그룹 AWS IAM Identity Center:

  권한 세트를 생성합니다. *AWS IAM Identity Center 사용자 안내서*에서 [권한 세트 생성](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html)의 지침을 따릅니다.
+ ID 제공업체를 통해 IAM에서 관리되는 사용자:

  ID 페더레이션을 위한 역할을 생성합니다. *IAM 사용자 설명서*의 [Create a role for a third-party identity provider (federation)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html)의 지침을 따릅니다.
+ IAM 사용자:
  + 사용자가 맡을 수 있는 역할을 생성합니다. *IAM 사용자 설명서*에서 [Create a role for an IAM user](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html)의 지침을 따릅니다.
  + (권장되지 않음) 정책을 사용자에게 직접 연결하거나 사용자를 사용자 그룹에 추가합니다. *IAM 사용 설명서*에서 [사용자(콘솔)에 권한 추가](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)의 지침을 따릅니다.

**Topics**
+ [MemoryDB 리소스 및 작업](#iam.overview.resourcesandoperations)
+ [리소스 소유권 이해](#access-control-resource-ownership)
+ [리소스 액세스 관리](#iam.overview.managingaccess)
+ [MemoryDB에 대한 ID 기반 정책(IAM 정책) 사용](iam.identitybasedpolicies.md)
+ [리소스 수준 권한](iam.resourcelevelpermissions.md)
+ [MemoryDB에 대한 서비스 연결 역할 사용](using-service-linked-roles.md)
+ [AWS MemoryDB에 대한 관리형 정책](security-iam-awsmanpol.md)
+ [MemoryDB API 권한: 작업, 리소스 및 조건 참조](iam.APIReference.md)

## MemoryDB 리소스 및 작업
<a name="iam.overview.resourcesandoperations"></a>

MemoryDB의 기본 리소스는 *클러스터*입니다.

다음에 나와 있는 것처럼 이러한 리소스에는 고유한 Amazon 리소스 이름(ARN)이 연결됩니다.

**참고**  
리소스 수준 권한이 유효하려면 ARN 문자열의 리소스 이름이 소문자여야 합니다.


****  

| 리소스 유형 | ARN 형식 | 
| --- | --- | 
| User  | arn:aws:memorydb:*us-east-1:123456789012*:user/user1 | 
| 액세스 제어 목록(ACL)  | arn:aws:memorydb:*us-east-1:123456789012*:acl/myacl | 
| Cluster  | arn:aws:memorydb:*us-east-1:123456789012*:cluster/my-cluster | 
| 스냅샷  | arn:aws:memorydb:*us-east-1:123456789012*:snapshot/my-snapshot | 
| 파라미터 그룹  | arn:aws:memorydb:*us-east-1:123456789012*:parametergroup/my-parameter-group | 
| 서브넷 그룹  | arn:aws:memorydb:*us-east-1:123456789012*:subnetgroup/my-subnet-group | 

MemoryDB는 MemoryDB 리소스를 처리하기 위한 일련의 작업을 제공합니다. 사용 가능한 작업 목록은 MemoryDB [작업](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_Operations.html)을 참조하세요.

## 리소스 소유권 이해
<a name="access-control-resource-ownership"></a>

*리소스 소유자*는 리소스를 생성한 AWS 계정입니다. 즉, 리소스 소유자는 리소스를 생성하는 요청을 인증하는 보안 주체 엔터티의 AWS 계정입니다. *보안주체 엔터티*는 루트 계정, IAM 사용자 또는 IAM 역할일 수 있습니다. 다음 예제에서는 이러한 작동 방법을 설명합니다.
+  AWS 계정의 루트 계정 자격 증명을 사용하여 클러스터를 생성한다고 가정해 보겠습니다. 이 경우 AWS 계정은 리소스의 소유자입니다. MemoryDB에서 리소스는 클러스터입니다.
+  AWS 계정에서 IAM 사용자를 생성하고 해당 사용자에게 클러스터를 생성할 수 있는 권한을 부여한다고 가정해 보겠습니다. 이러한 경우, 이 사용자가 클러스터를 생성할 수 있습니다. 하지만 사용자가 속한 AWS 계정이 클러스터 리소스를 소유합니다.
+  AWS 계정에서 클러스터를 생성할 권한이 있는 IAM 역할을 생성한다고 가정해 보겠습니다. 이러한 경우, 이 역할을 수임할 사람은 클러스터를 생성할 수 있습니다. 역할이 속한 AWS 계정이 클러스터 리소스를 소유합니다.

## 리소스 액세스 관리
<a name="iam.overview.managingaccess"></a>

*권한 정책*은 누가 무엇에 액세스 할 수 있는지를 나타냅니다. 다음 섹션에서는 권한 정책을 만드는 데 사용 가능한 옵션에 대해 설명합니다.

**참고**  
이 섹션에서는 MemoryDB의 맥락에서 IAM을 사용하는 방법을 설명하며, IAM 서비스에 대한 자세한 내용은 다루지 않습니다. IAM 설명서의 전체 내용은 *IAM 사용자 안내서*의 [IAM이란?](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)을 참조하세요. IAM 정책 구문과 설명에 대한 자세한 내용은 *IAM 사용 설명서*의 [AWS IAM 정책 참조](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) 섹션을 참조하세요.

IAM 보안 인증에 연결된 정책을 *보안 인증 기반* 정책(IAM 정책)이라고 합니다. 리소스에 연결된 정책을 *리소스 기반* 정책이라고 합니다.

**Topics**
+ [자격 증명 기반 정책(IAM 정책)](#iam.overview.managingaccess.identitybasedpolicies)
+ [정책 요소 지정: 작업, 효과, 리소스, 보안 주체](#iam.overview.policyelements)
+ [정책에서 조건 지정](#iam.specifyconditions)

### 자격 증명 기반 정책(IAM 정책)
<a name="iam.overview.managingaccess.identitybasedpolicies"></a>

정책을 IAM 보안 인증에 연결할 수 있습니다. 예를 들면, 다음을 수행할 수 있습니다.
+ **계정 내 사용자 또는 그룹에 권한 정책 연결** - 계정 관리자는 권한을 부여하기 위해 특정 사용자에 연결된 권한 정책을 사용할 수 있습니다. 이 경우, 해당 사용자는 클러스터, 파라미터 그룹 또는 보안 그룹과 같은 MemoryDB 리소스를 생성할 수 있습니다.
+ **역할에 권한 정책 연결(교차 계정 권한 부여)** - 자격 증명 기반 권한 정책을 IAM 역할에 연결하여 교차 계정 권한을 부여할 수 있습니다. 예를 들어 계정 A의 관리자는 다음과 같이 다른 AWS 계정(예: 계정 B) 또는 AWS 서비스에 교차 계정 권한을 부여하는 역할을 생성할 수 있습니다.

  1. 계정 A 관리자는 IAM 역할을 생성하고 계정 A의 리소스에 대한 권한을 부여하는 역할에 권한 정책을 연결합니다.

  1. 계정 A 관리자는 계정 B를 역할을 수임할 보안 주체로 식별하는 역할에 신뢰 정책을 연결합니다.

  1. 그런 다음 계정 B 관리자는 계정 B의 모든 사용자에게 역할을 수임할 권한을 위임할 수 있습니다. 이렇게 하면 계정 B의 사용자가 계정 A의 리소스를 생성하거나 액세스할 수 있습니다. 경우에 따라 역할을 수임할 수 있는 AWS 서비스 권한을 부여할 수 있습니다. 이러한 접근 방식을 지원하려면, 신뢰 정책의 보안 주체는 AWS 서비스 보안 주체일 수도 있습니다.

  IAM을 사용하여 권한을 위임하는 방법에 대한 자세한 내용은 *IAM 사용 설명서*의 [액세스 관리](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html) 섹션을 참조하세요.

다음은 사용자가 AWS 계정에 대해 `DescribeClusters` 작업을 수행하도록 허용하는 정책의 예입니다. 또한 MemoryDB는 API 작업에 대한 리소스 ARN을 사용하여 특정 리소스를 식별할 수 있도록 지원합니다. (이러한 접근 방식을 리소스 수준 권한이라고도 합니다.) 

MemoryDB에서 보안 인증 기반 정책을 사용하는 방법에 대한 자세한 내용은 [MemoryDB에 대한 ID 기반 정책(IAM 정책) 사용](iam.identitybasedpolicies.md) 단원을 참조하세요. 사용자, 그룹, 역할 및 권한에 대한 자세한 내용은 *IAM 사용 설명서*의 [자격 증명(사용자, 그룹 및 역할)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html)을 참조하세요.

### 정책 요소 지정: 작업, 효과, 리소스, 보안 주체
<a name="iam.overview.policyelements"></a>

각 MemoryDB 리소스([MemoryDB 리소스 및 작업](#iam.overview.resourcesandoperations) 참조)에 대해 서비스는 일련의 API 작업([작업](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_Operations.html) 참조)을 정의합니다. 이러한 API 작업에 대한 권한을 부여하기 위해 MemoryDB에서는 정책에서 지정할 수 있는 작업을 정의합니다. 예를 들어 MemoryDB 클러스터 리소스에 대해 `CreateCluster`, `DeleteCluster` 및 `DescribeClusters` 작업을 정의합니다. API 작업을 실시하려면 둘 이상의 작업에 대한 권한이 필요할 수 있습니다.

다음은 가장 기본적인 정책 요소입니다.
+ **리소스** – 정책에서 Amazon 리소스 이름(ARN)을 사용하여 정책을 적용할 리소스를 식별합니다. 자세한 내용은 [MemoryDB 리소스 및 작업](#iam.overview.resourcesandoperations) 단원을 참조하십시오.
+ **작업** – 작업 키워드를 사용하여 허용 또는 거부할 리소스 작업을 식별합니다. 예를 들면, 지정된 `Effect`에 따라 `memorydb:CreateCluster` 권한은 MemoryDB `CreateCluster` 작업을 수행할 수 있는 사용자 권한을 허용하거나 거부합니다.
+ **결과** – 사용자가 특정 작업을 요청하는 경우의 결과를 지정합니다. 이는 허용 또는 거부 중에 하나가 될 수 있습니다. 명시적으로 리소스에 대한 액세스 권한을 부여(허용)하지 않는 경우, 액세스는 묵시적으로 거부됩니다. 리소스에 대한 액세스를 명시적으로 거부할 수도 있습니다. 예를 들어, 다른 정책에서 액세스 권한을 부여하더라도 사용자가 해당 리소스에 액세스할 수 없도록 하려고 할 때 이러한 작업을 수행할 수 있습니다.
+ **보안 주체** – 자격 증명 기반 정책(IAM 정책)에서 정책이 연결되는 사용자는 암시적인 보안 주체입니다. 리소스 기반 정책의 경우, 사용자, 계정, 서비스 또는 권한의 수신자인 기타 개체를 지정합니다(리소스 기반 정책에만 해당).

IAM 정책 구문과 설명에 대한 자세한 내용은 *IAM 사용 설명서*의 [AWS IAM 정책 참조](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) 섹션을 참조하세요.

모든 MemoryDB API 작업을 보여 주는 표는 [MemoryDB API 권한: 작업, 리소스 및 조건 참조](iam.APIReference.md) 섹션을 참조하세요.

### 정책에서 조건 지정
<a name="iam.specifyconditions"></a>

권한을 부여할 때 IAM 정책 언어를 사용하여 정책이 적용되는 조건을 지정할 수 있습니다. 예를 들어, 특정 날짜 이후에만 정책을 적용할 수 있습니다. 정책 언어에서의 조건 지정에 관한 자세한 내용은 *IAM 사용자 안내서*의 [조건](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Condition)을 참조하세요.



# MemoryDB에 대한 ID 기반 정책(IAM 정책) 사용
<a name="iam.identitybasedpolicies"></a>

이 항목에서는 계정 관리자가 IAM 자격 증명(사용자, 그룹, 역할)에 권한 정책을 연결할 수 있는 자격 증명 기반 정책의 예를 제공합니다.

**중요**  
MemoryDB 리소스 액세스를 관리하기 위한 기본 개념과 옵션을 설명하는 주제를 먼저 읽어보는 것이 좋습니다. 자세한 내용은 [MemoryDB 리소스에 대한 액세스 권한 관리 개요](iam.overview.md) 단원을 참조하십시오.

이 주제의 섹션에서는 다음 내용을 학습합니다.
+ [MemoryDB 콘솔 사용에 필요한 권한](#iam.identitybasedpolicies.minconpolicies)
+ [MemoryDB에 대한AWS관리형 (사전 정의된) 정책](security-iam-awsmanpol.md#iam.identitybasedpolicies.predefinedpolicies)
+ [고객 관리형 정책 예제](#iam.identitybasedpolicies.customermanagedpolicies)

다음은 권한 정책의 예입니다.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [{
       "Sid": "AllowClusterPermissions",
       "Effect": "Allow",
       "Action": [
          "memorydb:CreateCluster",          
          "memorydb:DescribeClusters",
          "memorydb:UpdateCluster"],
       "Resource": "*"
       },
       {
         "Sid": "AllowUserToPassRole",
         "Effect": "Allow",
         "Action": [ "iam:PassRole" ],
         "Resource": "arn:aws:iam::123456789012:role/EC2-roles-for-cluster"
       }
   ]
}
```

------

이 정책에는 두 명령문이 있습니다:
+ 첫 번째 명령문은 계정이 소유하는 임의의 클러스터에서 MemoryDB 작업(`memorydb:CreateCluster`, `memorydb:DescribeClusters`, 및 `memorydb:UpdateCluster`)에 대한 권한을 부여합니다.
+ 두 번째 명령문은 `Resource` 값의 끝에 지정된 IAM 역할 이름에서 IAM 작업(`iam:PassRole`)에 대한 권한을 부여합니다.

자격 증명 기반 정책에서는 권한을 가질 보안 주체를 지정하지 않으므로 이 정책은 `Principal` 요소를 지정하지 않습니다. 정책을 사용자에게 연결할 경우, 사용자는 암시적인 보안 주체입니다. IAM 역할에 권한 정책을 연결하면 역할의 신뢰 정책에서 식별된 보안 주체가 권한을 얻습니다.

모든 MemoryDB API 작업과 해당 작업이 적용되는 리소스를 보여주는 표는 [MemoryDB API 권한: 작업, 리소스 및 조건 참조](iam.APIReference.md) 섹션을 참조하세요.

## MemoryDB 콘솔 사용에 필요한 권한
<a name="iam.identitybasedpolicies.minconpolicies"></a>

권한 참조 표에 MemoryDB API 작업과 각 작업에 필요한 권한이 나열되어 있습니다. MemoryDB API 작업에 대한 자세한 내용은 [MemoryDB API 권한: 작업, 리소스 및 조건 참조](iam.APIReference.md) 단원을 참조하세요.

 MemoryDB 콘솔을 사용하려면 먼저 다음 권한 정책과 같이 추가 작업에 대한 권한을 부여해야 합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Sid": "MinPermsForMemDBConsole",
        "Effect": "Allow",
        "Action": [
            "memorydb:Describe*",
            "memorydb:List*",
            "ec2:DescribeAvailabilityZones",
            "ec2:DescribeVpcs",
            "ec2:DescribeAccountAttributes",
            "ec2:DescribeSecurityGroups",
            "cloudwatch:GetMetricStatistics",
            "cloudwatch:DescribeAlarms",
            "s3:ListAllMyBuckets",
            "sns:ListTopics",
            "sns:ListSubscriptions" ],
        "Resource": "*"
        }
    ]
}
```

------

MemoryDB 콘솔에 이러한 추가 권한이 필요한 이유는 다음과 같습니다.
+ MemoryDB 작업 권한이 있으면 콘솔에서 계정의 MemoryDB 리소스를 표시할 수 있습니다.
+ 콘솔에 Amazon EC2 쿼리를 위한 `ec2` 작업 권한이 있어야 합니다. 그래야 가용 영역, VPC, 보안 그룹 및 계정 속성을 표시할 수 있습니다.
+ `cloudwatch` 작업에 대한 권한이 있으면 콘솔에서 Amazon CloudWatch 지표와 경보를 검색하고 콘솔에 표시할 수 있습니다.
+ `sns` 작업에 대한 권한이 있으면 콘솔에서 Amazon Simple Notification Service(Amazon SNS) 주제와 구독을 검색하고 콘솔에 표시할 수 있습니다.

## 고객 관리형 정책 예제
<a name="iam.identitybasedpolicies.customermanagedpolicies"></a>

기본 정책을 사용하지 않고 고객 관리형 정책을 사용할 경우, 두 가지 중 하나가 가능한지 확인해야 합니다. `iam:createServiceLinkedRole`을 호출할 수 있는 권한이 있어야 합니다(자세한 내용은 [예제 4: 사용자에게 IAM CreateServiceLinkedRole API 호출 허용](#create-service-linked-role-policy) 섹션을 참조하세요). 또는 MemoryDB 서비스 연결 역할을 생성해야 합니다.

MemoryDB 콘솔을 사용하는 데 필요한 최소 권한과 함께 이 섹션의 예제 정책을 사용할 경우 추가 권한이 부여됩니다. 이 예제는 AWS SDKs AWS CLI. MemoryDB 콘솔을 사용하는 데 필요한 권한에 대한 자세한 내용은 [MemoryDB 콘솔 사용에 필요한 권한](#iam.identitybasedpolicies.minconpolicies) 단원을 참조하세요.

IAM 사용자 및 그룹을 설정하는 것에 대한 지침은 *IAM 사용 설명서*의 [IAM 사용자와 관리자 그룹 처음 만들기](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html) 섹션을 참조하세요.

**중요**  
프로덕션에서 IAM 정책을 사용하기 전에 항상 철저히 테스트하세요. 나타나는 일부 MemoryDB 작업을 MemoryDB 콘솔을 사용할 때 다른 작업이 해당 작업을 지원해야 할 수도 있습니다. 예를 들어, `memorydb:CreateCluster`이(가) MemoryDB 클러스터를 생성하기 위한 권한을 부여합니다. 그러나 이 작업을 수행하기 위해 MemoryDB 콘솔에서 여러 `Describe` 및 `List` 작업을 사용하여 콘솔 목록을 채웁니다.

**Topics**
+ [예제 1: 사용자에게 MemoryDB 리소스에 대한 읽기 전용 액세스 허용](#example-allow-list-current-memorydb-resources)
+ [예제 2: 사용자가 일반 MemoryDB 시스템 관리자 작업을 수행하도록 허용](#example-allow-specific-memorydb-actions)
+ [예제 3: 사용자가 모든 MemoryDB API 작업에 액세스하도록 허용](#allow-unrestricted-access)
+ [예제 4: 사용자에게 IAM CreateServiceLinkedRole API 호출 허용](#create-service-linked-role-policy)

### 예제 1: 사용자에게 MemoryDB 리소스에 대한 읽기 전용 액세스 허용
<a name="example-allow-list-current-memorydb-resources"></a>

다음 정책은 사용자에게 리소스를 나열하도록 허용하는 MemoryDB 작업에 대한 권한을 부여합니다. 일반적으로 이 유형의 권한 정책을 관리자 그룹에 연결합니다.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[{
      "Sid": "MemDBUnrestricted",
      "Effect":"Allow",
      "Action": [
          "memorydb:Describe*",
          "memorydb:List*"],
      "Resource":"*"
      }
   ]
}
```

------

### 예제 2: 사용자가 일반 MemoryDB 시스템 관리자 작업을 수행하도록 허용
<a name="example-allow-specific-memorydb-actions"></a>

일반 시스템 관리자 작업에는 클러스터, 파라미터 및 파라미터 그룹 수정이 포함됩니다. 시스템 관리자가 MemoryDB 이벤트에 대한 정보를 보고 싶어할 수도 있습니다. 다음 정책은 이러한 일반 시스템 관리자 작업을 위한 MemoryDB 작업을 수행할 권한을 사용자에게 부여합니다. 일반적으로 이 유형의 권한 정책을 시스템 관리자 그룹에 연결합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "MDBAllowSpecific",
            "Effect": "Allow",
            "Action": [
                "memorydb:UpdateCluster",
                "memorydb:DescribeClusters",
                "memorydb:DescribeEvents",
                "memorydb:UpdateParameterGroup",
                "memorydb:DescribeParameterGroups",
                "memorydb:DescribeParameters",
                "memorydb:ResetParameterGroup"
            ],
            "Resource": "*"
        }
    ]
}
```

------

### 예제 3: 사용자가 모든 MemoryDB API 작업에 액세스하도록 허용
<a name="allow-unrestricted-access"></a>

다음 정책은 사용자가 모든 MemoryDB 작업을 호출할 수 있도록 허용합니다. 관리자 사용자에게만 이 유형의 권한 정책을 부여하는 것이 좋습니다.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[{
      "Sid": "MDBAllowAll",
      "Effect":"Allow",
      "Action":[
          "memorydb:*" ],
      "Resource":"*"
      }
   ]
}
```

------

### 예제 4: 사용자에게 IAM CreateServiceLinkedRole API 호출 허용
<a name="create-service-linked-role-policy"></a>

다음 정책은 사용자가 IAM `CreateServiceLinkedRole` API를 호출하도록 허용합니다. 변화하기 쉬운 MemoryDB 작업을 간접적으로 호출하는 사용자에게 이 유형의 권한 정책을 부여하는 것이 좋습니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement":[
    {
      "Sid":"CreateSLRAllows",
      "Effect":"Allow",
      "Action":[
        "iam:CreateServiceLinkedRole"
      ],
      "Resource":"*",
      "Condition":{
        "StringLike":{
          "iam:AWS ServiceName":"memorydb.amazonaws.com"
        }
      }
    }
  ]
}
```

------

# 리소스 수준 권한
<a name="iam.resourcelevelpermissions"></a>

IAM 정책에 리소스를 지정하여 권한의 범위를 제한할 수 있습니다. 많은 AWS CLI API 작업은 작업의 동작에 따라 달라지는 리소스 유형을 지원합니다. 각 IAM 정책 구문은 리소스에 대해 수행되는 작업에 대한 권한을 부여합니다. 지명된 리소스에서 이루어지는 작업이 아니거나 모든 리소스에 대해 그 작업을 수행할 수 있도록 권한을 부여하는 경우, 정책에서 해당 리소스의 값은 와일드카드(\$1)가 됩니다. 대부분의 API 작업에서는 리소스의 Amazon 리소스 이름(ARN) 또는 복수의 리소스에 맞는 ARN 패턴을 지정함으로써 사용자 수정이 가능한 리소스를 제한할 수 있습니다. 리소스별 권한을 제한하려면 ARN으로 리소스를 지정하세요.

**MemoryDB 리소스 ARN 포맷**

**참고**  
리소스 수준 권한이 유효하려면 ARN 문자열의 리소스 이름이 소문자여야 합니다.
+ *사용자 - arn:aws:memorydb:us-east-1:123456789012*:user/user1
+ ACL – arn:aws:memorydb:*us-east-1:123456789012*:acl/my-acl
+ 클러스터 – arn:aws:memorydb:*us-east-1:123456789012*:cluster/my-cluster
+ 스냅샷 – arn:aws:memorydb:*us-east-1:123456789012*:snapshot/my-snapshot
+ *파라미터 그룹 - arn:aws:memorydb:us-east-1:123456789012*:parametergroup/my-parameter-group
+ *서브넷 그룹 - arn:aws:memorydb:us-east-1:123456789012*:subnetgroup/my-subnet-group

**Topics**
+ [예제 1: 사용자에게 특정 MemoryDB 리소스 유형에 대한 모든 액세스 권한 허용](#example-allow-list-current-memorydb-resources-resource)
+ [예 2: 클러스터에 대한 사용자 액세스 거부](#example-allow-specific-memorydb-actions-resource)

## 예제 1: 사용자에게 특정 MemoryDB 리소스 유형에 대한 모든 액세스 권한 허용
<a name="example-allow-list-current-memorydb-resources-resource"></a>

다음 정책은 서브넷 그룹, 보안 그룹 및 클러스터 유형의 모든 리소스에 대해 지정된 `account-id` 전체 액세스를 명시적으로 허용합니다.

```
{
        "Sid": "Example1",
        "Effect": "Allow",
        "Action": "memorydb:*",
        "Resource": [
             "arn:aws:memorydb:us-east-1:account-id:subnetgroup/*",
             "arn:aws:memorydb:us-east-1:account-id:securitygroup/*",
             "arn:aws:memorydb:us-east-1:account-id:cluster/*"
        ]
}
```

## 예 2: 클러스터에 대한 사용자 액세스 거부
<a name="example-allow-specific-memorydb-actions-resource"></a>

다음 예제에서는 특정 클러스터에 대한 지정된 `account-id` 액세스를 명시적으로 거부합니다.

```
{
        "Sid": "Example2",
        "Effect": "Deny",
        "Action": "memorydb:*",
        "Resource": [
                "arn:aws:memorydb:us-east-1:account-id:cluster/name"
        ]
}
```

# MemoryDB에 대한 서비스 연결 역할 사용
<a name="using-service-linked-roles"></a>

MemoryDB는 AWS Identity and Access Management (IAM) [서비스 연결 역할을](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) 사용합니다. 서비스 연결 역할은 MemoryDB와 같은 AWS 서비스에 직접 연결된 고유한 유형의 IAM 역할입니다. MemoryDB 서비스 연결 역할은 MemoryDB에 의해 사전 정의됩니다. 서비스에서 클러스터를 대신하여 AWS 서비스를 호출하기 위해 필요한 모든 권한을 포함합니다.

서비스 연결 역할을 사용하면 필요한 권한을 수동으로 추가할 필요가 없으므로 MemoryDB를 더 쉽게 설정할 수 있습니다. 역할은 이미 AWS 계정 내에 존재하지만 MemoryDB 사용 사례에 연결되며 사전 정의된 권한이 있습니다. MemoryDB만 이러한 역할을 맡을 수 있고 이러한 역할만 사전 정의된 권한 정책을 사용할 수 있습니다. 먼저 역할의 관련 리소스를 삭제해야만 역할을 삭제할 수 있습니다. 이렇게 하면 MemoryDB 리소스에 대한 필수 액세스 권한을 부주의로 삭제할 수 없기 때문에 리소스가 보호됩니다.

서비스 연결 역할을 지원하는 기타 서비스에 대한 자세한 내용은 [IAM으로 작업하는AWS 서비스](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)를 참조해 **서비스 연결 역할** 열이 **예(Yes)**인 서비스를 찾으세요. 해당 서비스에 대한 서비스 연결 역할 설명서를 보려면 **예(Yes)** 링크를 선택합니다.

**Contents**
+ [서비스 연결 역할 권한](#service-linked-role-permissions)
+ [서비스 연결 역할 생성(IAM)](#create-service-linked-role-iam)
  + [IAM 콘솔 사용](#create-service-linked-role-iam-console)
  + [IAM CLI 사용](#create-service-linked-role-iam-cli)
  + [IAM API 사용](#create-service-linked-role-iam-api)
+ [서비스 연결 역할 설명 편집](#edit-service-linked-role)
  + [IAM 콘솔 사용](#edit-service-linked-role-iam-console)
  + [IAM CLI 사용](#edit-service-linked-role-iam-cli)
  + [IAM API 사용](#edit-service-linked-role-iam-api)
+ [MemoryDB에 대한 서비스 연결 역할 삭제](#delete-service-linked-role)
  + [서비스 연결 역할 정리](#service-linked-role-review-before-delete)
  + [서비스 연결 역할 삭제(IAM 콘솔)](#delete-service-linked-role-iam-console)
  + [서비스 연결 역할 삭제(IAM CLI)](#delete-service-linked-role-iam-cli)
  + [서비스 연결 역할 삭제(IAM API)](#delete-service-linked-role-iam-api)

## MemoryDB에 대한 서비스 연결 역할 권한
<a name="service-linked-role-permissions"></a>

MemoryDB는 **AWSServiceRoleForMemoryDB**라는 서비스 연결 역할을 사용합니다.이 정책은 MemoryDB가 클러스터 관리에 필요한 대로 사용자를 대신하여 AWS 리소스를 관리할 수 있도록 허용합니다.

AWSServiceRoleForMemoryDB 서비스 연결 역할의 권한 정책은 MemoryDB가 지정된 리소스에 대해 다음 작업을 수행하도록 허용합니다.

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

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Effect": "Allow",
			"Action": [
				"ec2:CreateTags"
			],
			"Resource": "arn:aws-cn:ec2:*:*:network-interface/*",
			"Condition": {
				"StringEquals": {
					"ec2:CreateAction": "CreateNetworkInterface"
				},
				"ForAllValues:StringEquals": {
					"aws:TagKeys": [
						"AmazonMemoryDBManaged"
					]
				}
			}
		},
		{
			"Effect": "Allow",
			"Action": [
				"ec2:CreateNetworkInterface"
			],
			"Resource": [
				"arn:aws-cn:ec2:*:*:network-interface/*",
				"arn:aws-cn:ec2:*:*:subnet/*",
				"arn:aws-cn:ec2:*:*:security-group/*"
			]
		},
		{
			"Effect": "Allow",
			"Action": [
				"ec2:DeleteNetworkInterface",
				"ec2:ModifyNetworkInterfaceAttribute"
			],
			"Resource": "arn:aws-cn:ec2:*:*:network-interface/*",
			"Condition": {
				"StringEquals": {
					"ec2:ResourceTag/AmazonMemoryDBManaged": "true"
				}
			}
		},
		{
			"Effect": "Allow",
			"Action": [
				"ec2:DeleteNetworkInterface",
				"ec2:ModifyNetworkInterfaceAttribute"
			],
			"Resource": "arn:aws-cn:ec2:*:*:security-group/*"
		},
		{
			"Effect": "Allow",
			"Action": [
				"ec2:DescribeSecurityGroups",
				"ec2:DescribeNetworkInterfaces",
				"ec2:DescribeAvailabilityZones",
				"ec2:DescribeSubnets",
				"ec2:DescribeVpcs"
			],
			"Resource": "*"
		},
		{
			"Effect": "Allow",
			"Action": [
				"cloudwatch:PutMetricData"
			],
			"Resource": "*",
			"Condition": {
				"StringEquals": {
					"cloudwatch:namespace": "AWS/MemoryDB"
				}
			}
		}
	]
}
```

------

자세한 내용은 [AWS 관리형 정책: MemoryDBServiceRolePolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-memorydbServiceRolePolicy) 단원을 참조하십시오.

**IAM 엔터티가 AWSServiceRoleForMemoryDB 서비스 연결 역할을 생성하도록 허용**

IAM 개체에 대한 권한에 다음 정책 설명을 추가합니다.

```
{
    "Effect": "Allow",
    "Action": [
        "iam:CreateServiceLinkedRole",
        "iam:PutRolePolicy"
    ],
    "Resource": "arn:aws:iam::*:role/aws-service-role/memorydb.amazonaws.com/AWSServiceRoleForMemoryDB*",
    "Condition": {"StringLike": {"iam:AWS ServiceName": "memorydb.amazonaws.com"}}
}
```

**IAM 엔터티가 AWSServiceRoleForMemoryDB 서비스 연결 역할을 삭제하도록 허용**

IAM 개체에 대한 권한에 다음 정책 설명을 추가합니다.

```
{
    "Effect": "Allow",
    "Action": [
        "iam:DeleteServiceLinkedRole",
        "iam:GetServiceLinkedRoleDeletionStatus"
    ],
    "Resource": "arn:aws:iam::*:role/aws-service-role/memorydb.amazonaws.com/AWSServiceRoleForMemoryDB*",
    "Condition": {"StringLike": {"iam:AWS ServiceName": "memorydb.amazonaws.com"}}
}
```

또는 AWS 관리형 정책을 사용하여 MemoryDB에 대한 전체 액세스를 제공할 수 있습니다.

## 서비스 연결 역할 생성(IAM)
<a name="create-service-linked-role-iam"></a>

IAM 콘솔, CLI 또는 API를 사용하여 서비스 연결 역할을 생성할 수 있습니다.

### 서비스 연결 역할 생성(IAM 콘솔)
<a name="create-service-linked-role-iam-console"></a>

IAM 콘솔을 사용하여 서비스 연결 역할을 생성할 수 있습니다.

**서비스 연결 역할을 만드는 방법(콘솔)**

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

1. IAM 콘솔의 왼쪽 탐색 창에서 **역할(Roles)**을 선택합니다. 그런 다음 **새 역할 생성(Create new role)**을 선택합니다.

1. **신뢰할 수 있는 유형의 엔터티 선택** 아래에서 **AWS 서비스**를 선택합니다.

1. **또는 사용 사례를 표시하도록 서비스 선택(Or select a service to view its use cases)**에서 **MemoryDB**를 선택합니다.

1. **다음: 권한**을 선택합니다.

1. **정책 이름**에서 이 역할에 `MemoryDBServiceRolePolicy`가 있는지 확인합니다. **다음: 태그**를 선택합니다.

1. 서비스 연결 역할에는 태그가 지원되지 않습니다. **다음: 검토**를 선택합니다.

1. (선택 사항) **역할 설명(Role description)**에서 새로운 서비스 연결 역할에 대한 설명을 편집합니다.

1. 역할을 검토한 다음 **역할 생성**을 선택합니다.

### 서비스 연결 역할 생성(IAM CLI)
<a name="create-service-linked-role-iam-cli"></a>

에서 IAM 작업을 사용하여 서비스 연결 역할을 AWS Command Line Interface 생성할 수 있습니다. 이 역할에는 서비스가 역할을 수임하는 데 필요한 신뢰 정책 및 인라인 정책이 포함될 수 있습니다.

**서비스 연결 역할을 만드는 방법(CLI)**

다음 작업을 사용합니다.

```
$ aws iam [create-service-linked-role](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceLinkedRole.html) --aws-service-name memorydb.amazonaws.com
```

### 서비스 연결 역할 생성(IAM API)
<a name="create-service-linked-role-iam-api"></a>

IAM API를 사용하여 서비스 연결 역할을 생성할 수 있습니다. 이 역할에는 서비스가 역할을 수임하는 데 필요한 신뢰 정책 및 인라인 정책이 포함될 수 있습니다.

**서비스 연결 역할을 만드는 방법(API 사용)**

[CreateServiceLinkedRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceLinkedRole.html) API 호출을 사용합니다. 요청 시 `memorydb.amazonaws.com` 서비스 이름을 지정합니다.

## MemoryDB에 대한 서비스 연결 역할의 설명 편집
<a name="edit-service-linked-role"></a>

MemoryDB는 AWSServiceRoleForMemoryDB 서비스 연결 역할을 편집하도록 허용하지 않습니다. 서비스 연결 역할을 생성한 후에는 다양한 개체가 역할을 참조할 수 있기 때문에 역할 이름을 변경할 수 없습니다. 하지만 IAM을 사용하여 역할의 설명을 편집할 수 있습니다.

### 서비스 연결 역할 설명 편집(IAM 콘솔)
<a name="edit-service-linked-role-iam-console"></a>

IAM 콘솔을 사용하여 서비스 연결 역할의 설명을 편집할 수 있습니다.

**서비스 연결 역할의 설명을 편집하는 방법(콘솔)**

1. IAM 콘솔의 왼쪽 탐색 창에서 **역할(Roles)**을 선택합니다.

1. 변경할 역할 이름을 선택합니다.

1. **역할 설명**의 맨 오른쪽에서 **편집**을 선택합니다.

1. 상자에 새 설명을 입력하고 **저장**을 선택합니다.

### 서비스 연결 역할 설명 편집(IAM CLI)
<a name="edit-service-linked-role-iam-cli"></a>

에서 IAM 작업을 사용하여 서비스 연결 역할 설명을 AWS Command Line Interface 편집할 수 있습니다.

**서비스 연결 역할의 설명을 변경하는 방법(CLI)**

1. (선택 사항) 역할에 대한 현재 설명을 보려면 IAM 작업 AWS CLI 용를 사용합니다`[get-role](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRole.html)`.  
**Example**  

   ```
   $ aws iam [get-role](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRole.html) --role-name AWSServiceRoleForMemoryDB
   ```

   CLI 작업에서 역할을 참조하려면 ARN이 아니라 역할 이름을 사용해야 합니다. 예를 들어 어떤 역할의 ARN이 `arn:aws:iam::123456789012:role/myrole`인 경우 참조할 역할은 **myrole**입니다.

1. 서비스 연결 역할의 설명을 업데이트하려면 IAM 작업 AWS CLI 용를 사용합니다`[update-role-description](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateRoleDescription.html)`.

   Linux, macOS, Unix의 경우:

   ```
   $ aws iam [update-role-description](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateRoleDescription.html) \
       --role-name AWSServiceRoleForMemoryDB \
       --description "new description"
   ```

   Windows의 경우:

   ```
   $ aws iam [update-role-description](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateRoleDescription.html) ^
       --role-name AWSServiceRoleForMemoryDB ^
       --description "new description"
   ```

### 서비스 연결 역할 설명 편집(IAM API)
<a name="edit-service-linked-role-iam-api"></a>

IAM API를 사용하여 서비스 연결 역할의 설명을 편집할 수 있습니다.

**서비스 연결 역할의 설명을 변경하는 방법(API)**

1. (선택 사항) 역할의 현재 설명을 보려면 IAM API 작업 [GetRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRole.html)을 사용하세요.  
**Example**  

   ```
   https://iam.amazonaws.com/
      ?Action=[GetRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRole.html)
      &RoleName=AWSServiceRoleForMemoryDB
      &Version=2010-05-08
      &AUTHPARAMS
   ```

1. 역할 설명을 업데이트하려면 IAM API 작업 [UpdateRoleDescription](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateRoleDescription.html)을 사용하세요.  
**Example**  

   ```
   https://iam.amazonaws.com/
      ?Action=[UpdateRoleDescription](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateRoleDescription.html)
      &RoleName=AWSServiceRoleForMemoryDB
      &Version=2010-05-08
      &Description="New description"
   ```

## MemoryDB에 대한 서비스 연결 역할 삭제
<a name="delete-service-linked-role"></a>

서비스 연결 역할이 필요한 기능 또는 서비스가 더 이상 필요 없는 경우에는 해당 역할을 삭제하는 것이 좋습니다. 따라서 적극적으로 모니터링하거나 유지하지 않는 미사용 엔터티가 없도록 합니다. 단, 삭제 전에 서비스 연결 역할을 정리해야 합니다.

MemoryDB에서는 서비스 연결 역할을 자동으로 삭제하지 않습니다.

### 서비스 연결 역할 정리
<a name="service-linked-role-review-before-delete"></a>

IAM을 사용하여 서비스 연결 역할을 삭제하기 전에 먼저 역할에 해당 역할과 연결된 리소스(클러스터)가 없는지 확인합니다.

**IAM 콘솔에서 서비스 연결 역할에 활성 세션이 있는지 확인하려면**

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

1. IAM 콘솔의 왼쪽 탐색 창에서 **역할(Roles)**을 선택합니다. 그런 다음 AWSServiceRoleForMemoryDB 역할의 이름(확인란 아님)을 선택합니다.

1. 선택한 역할의 **요약** 페이지에서 **Access Advisor** 탭을 선택합니다.

1. **Access Advisor** 탭에서 서비스 연결 역할의 최근 활동을 검토합니다.

**AWSServiceRoleForMemoryDB가 필요한 MemoryDB 리소스를 삭제하려면(콘솔)**
+ 클러스터를 삭제하려면 다음을 참조하세요.
  + [사용 AWS Management Console](getting-started.md#clusters.deleteclusters.viewdetails)
  + [사용 AWS CLI](getting-started.md#clusters.delete.cli)
  + [MemoryDB API 사용](getting-started.md#clusters.delete.api)

### 서비스 연결 역할 삭제(IAM 콘솔)
<a name="delete-service-linked-role-iam-console"></a>

IAM 콘솔을 사용하여 서비스 연결 역할을 삭제할 수 있습니다.

**서비스 연결 역할을 삭제하는 방법(콘솔)**

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

1. IAM 콘솔의 왼쪽 탐색 창에서 **역할(Roles)**을 선택합니다. 그런 다음 삭제할 역할의 이름이나 행이 아닌 이름 옆에 있는 확인란을 선택합니다.

1. 페이지 상단의 **역할** 작업에서 **역할 삭제**를 선택합니다.

1. 확인 페이지에서 서비스에서 마지막으로 액세스한 데이터를 검토합니다. 그러면 선택한 각 역할이 AWS 서비스에 마지막으로 액세스한 시기가 표시됩니다. 이를 통해 역할이 현재 활동 중인지를 확인할 수 있습니다. 계속 진행하려면 **예, 삭제합니다**를 선택하여 삭제할 서비스 연결 역할을 제출합니다.

1. IAM 콘솔 알림을 보고 서비스 연결 역할 삭제 진행 상황을 모니터링합니다. IAM 서비스 연결 역할 삭제는 비동기이므로 삭제할 역할을 제출한 후에 삭제 태스크가 성공하거나 실패할 수 있습니다. 태스크에 실패할 경우 알림의 **세부 정보 보기** 또는 **리소스 보기**를 선택하면 삭제 실패 이유를 확인할 수 있습니다.

### 서비스 연결 역할 삭제(IAM CLI)
<a name="delete-service-linked-role-iam-cli"></a>

에서 IAM 작업을 사용하여 서비스 연결 역할을 AWS Command Line Interface 삭제할 수 있습니다.

**서비스 연결 역할을 삭제하는 방법(CLI)**

1. 삭제할 서비스 연결 역할의 이름을 모르는 경우 다음 명령을 입력합니다. 이 명령은 계정의 역할과 해당 Amazon 리소스 이름(ARN)을 나열합니다.

   ```
   $ aws iam [get-role](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRole.html) --role-name role-name
   ```

   CLI 작업에서 역할을 참조하려면 ARN이 아니라 역할 이름을 사용해야 합니다. 예를 들어 역할의 ARN이 `arn:aws:iam::123456789012:role/myrole`인 경우 해당 역할을 **myrole**으로 참조합니다.

1. 서비스 연결 역할이 사용되지 않거나 연결된 리소스가 없는 경우에는 서비스 연결 역할을 삭제할 수 없으므로 삭제 요청을 제출해야 합니다. 이러한 조건이 충족되지 않으면 요청이 거부될 수 있습니다. 삭제 태스크 상태를 확인하려면 응답의 `deletion-task-id`(을)를 캡처해야 합니다. 다음을 입력하여 서비스 연결 역할 삭제 요청을 제출합니다.

   ```
   $ aws iam [delete-service-linked-role](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceLinkedRole.html) --role-name role-name
   ```

1. 다음을 입력하여 삭제 작업의 상태를 확인합니다.

   ```
   $ aws iam [get-service-linked-role-deletion-status](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLinkedRoleDeletionStatus.html) --deletion-task-id deletion-task-id
   ```

   삭제 태스크는 `NOT_STARTED`, `IN_PROGRESS`, `SUCCEEDED` 또는 `FAILED` 상태일 수 있습니다. 삭제에 실패할 경우 문제를 해결할 수 있도록 실패 이유가 호출에 반환됩니다.

### 서비스 연결 역할 삭제(IAM API)
<a name="delete-service-linked-role-iam-api"></a>

IAM API를 사용하여 서비스 연결 역할을 삭제할 수 있습니다.

**서비스 연결 역할(API)을 삭제하는 방법**

1. 서비스 연결 역할 삭제 요청을 제출하려면 [DeleteServiceLinkedRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceLinkedRole.html)을 호출합니다. 요청에 역할 이름을 지정합니다.

   서비스 연결 역할이 사용되지 않거나 연결된 리소스가 없는 경우에는 서비스 연결 역할을 삭제할 수 없으므로 삭제 요청을 제출해야 합니다. 이러한 조건이 충족되지 않으면 요청이 거부될 수 있습니다. 삭제 태스크 상태를 확인하려면 응답의 `DeletionTaskId`(을)를 캡처해야 합니다.

1. 삭제 상태를 확인하려면 [GetServiceLinkedRoleDeletionStatus](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLinkedRoleDeletionStatus.html)을 호출합니다. 요청에 `DeletionTaskId`(을)를 지정합니다.

   삭제 태스크는 `NOT_STARTED`, `IN_PROGRESS`, `SUCCEEDED` 또는 `FAILED` 상태일 수 있습니다. 삭제에 실패할 경우 문제를 해결할 수 있도록 실패 이유가 호출에 반환됩니다.

# AWS MemoryDB에 대한 관리형 정책
<a name="security-iam-awsmanpol"></a>







사용자, 그룹 및 역할에 권한을 추가하려면 직접 정책을 작성하는 것보다 AWS 관리형 정책을 사용하는 것이 더 쉽습니다. 팀에 필요한 권한만 제공하는 [IAM 고객 관리형 정책을 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)하기 위해서는 시간과 전문 지식이 필요합니다. 빠르게 시작하려면 AWS 관리형 정책을 사용할 수 있습니다. 이러한 정책은 일반적인 사용 사례를 다루며 AWS 계정에서 사용할 수 있습니다. AWS 관리형 정책에 대한 자세한 내용은 *IAM 사용 설명서*의 [AWS 관리형 정책을](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) 참조하세요.

AWS 서비스는 AWS 관리형 정책을 유지 관리하고 업데이트합니다. AWS 관리형 정책에서는 권한을 변경할 수 없습니다. 서비스에서 때때로 추가 권한을 AWS 관리형 정책에 추가하여 새로운 기능을 지원합니다. 이 유형의 업데이트는 정책이 연결된 모든 ID(사용자, 그룹 및 역할)에 적용됩니다. 서비스는 새로운 기능이 시작되거나 새 작업을 사용할 수 있을 때 AWS 관리형 정책에 업데이트됩니다. 서비스는 AWS 관리형 정책에서 권한을 제거하지 않으므로 정책 업데이트로 인해 기존 권한이 손상되지 않습니다.

또한 여러 서비스에 걸쳐 있는 직무에 대한 관리형 정책을 AWS 지원합니다. 예를 들어 **ReadOnlyAccess** AWS 관리형 정책은 모든 AWS 서비스 및 리소스에 대한 읽기 전용 액세스를 제공합니다. 서비스가 새 기능을 시작하면는 새 작업 및 리소스에 대한 읽기 전용 권한을 AWS 추가합니다. 직무 정책의 목록과 설명은 *IAM 사용 설명서*의 [직무에 관한AWS 관리형 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)을 참조하세요.









## AWS 관리형 정책: MemoryDBServiceRolePolicy
<a name="security-iam-awsmanpol-memorydbServiceRolePolicy"></a>







MemoryDBServiceRolePolicy AWS 관리형 정책을 계정의 자격 증명에 연결할 수 없습니다. 이 정책은 AWS MemoryDB 서비스 연결 역할의 일부입니다. 이 역할을 통해 서비스는 계정의 네트워크 인터페이스와 보안 그룹을 관리할 수 있습니다.



MemoryDB는 이 정책의 권한을 사용하여 EC2 보안 그룹 및 네트워크 인터페이스를 관리합니다. 이는 MemoryDB 클러스터를 관리하는 데 필요합니다.



**권한 세부 정보**

이 정책에는 다음 권한이 포함되어 있습니다.



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

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Effect": "Allow",
			"Action": [
				"ec2:CreateTags"
			],
			"Resource": "arn:aws-cn:ec2:*:*:network-interface/*",
			"Condition": {
				"StringEquals": {
					"ec2:CreateAction": "CreateNetworkInterface"
				},
				"ForAllValues:StringEquals": {
					"aws:TagKeys": [
						"AmazonMemoryDBManaged"
					]
				}
			}
		},
		{
			"Effect": "Allow",
			"Action": [
				"ec2:CreateNetworkInterface"
			],
			"Resource": [
				"arn:aws-cn:ec2:*:*:network-interface/*",
				"arn:aws-cn:ec2:*:*:subnet/*",
				"arn:aws-cn:ec2:*:*:security-group/*"
			]
		},
		{
			"Effect": "Allow",
			"Action": [
				"ec2:DeleteNetworkInterface",
				"ec2:ModifyNetworkInterfaceAttribute"
			],
			"Resource": "arn:aws-cn:ec2:*:*:network-interface/*",
			"Condition": {
				"StringEquals": {
					"ec2:ResourceTag/AmazonMemoryDBManaged": "true"
				}
			}
		},
		{
			"Effect": "Allow",
			"Action": [
				"ec2:DeleteNetworkInterface",
				"ec2:ModifyNetworkInterfaceAttribute"
			],
			"Resource": "arn:aws-cn:ec2:*:*:security-group/*"
		},
		{
			"Effect": "Allow",
			"Action": [
				"ec2:DescribeSecurityGroups",
				"ec2:DescribeNetworkInterfaces",
				"ec2:DescribeAvailabilityZones",
				"ec2:DescribeSubnets",
				"ec2:DescribeVpcs"
			],
			"Resource": "*"
		},
		{
			"Effect": "Allow",
			"Action": [
				"cloudwatch:PutMetricData"
			],
			"Resource": "*",
			"Condition": {
				"StringEquals": {
					"cloudwatch:namespace": "AWS/MemoryDB"
				}
			}
		}
	]
}
```

------

## MemoryDB에 대한AWS관리형 (사전 정의된) 정책
<a name="iam.identitybasedpolicies.predefinedpolicies"></a>

AWS 는에서 생성하고 관리하는 독립 실행형 IAM 정책을 제공하여 많은 일반적인 사용 사례를 처리합니다 AWS. 관리형 정책은 필요한 권한을 사용자가 조사할 필요가 없도록 일반 사용 사례에 필요한 권한을 부여합니다. 자세한 내용은 *IAM 사용자 안내서*의 [AWS 관리형 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)을 참조하세요.

계정의 사용자에게 연결할 수 있는 다음 AWS 관리형 정책은 MemoryDB에 고유합니다.

### AmazonMemoryDBReadOnlyAccess
<a name="iam.identitybasedpolicies.predefinedpolicies-readonly"></a>

`AmazonMemoryDBReadOnlyAccess` 정책을 IAM ID에 연결할 수 있습니다. 이 정책은 모든 MemoryDB 리소스에 대한 읽기 전용 액세스를 허용하는 관리 권한을 부여합니다.

**AmazonMemoryDBReadOnlyAccess** - MemoryDB 리소스에 대한 읽기 전용 액세스 권한을 부여합니다.

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

****  

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

------

### AmazonMemoryDBFullAccess
<a name="iam.identitybasedpolicies.predefinedpolicies-fullaccess"></a>

`AmazonMemoryDBFullAccess` 정책을 IAM ID에 연결할 수 있습니다. 이 정책은 모든 MemoryDB 리소스에 대한 전체 액세스를 허용하는 관리 권한을 부여합니다.

**AmazonMemoryDBFullAccess** - 계정의 모든 MemoryDB 리소스에 대한 전체 액세스 권한을 부여합니다.

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

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [{
			"Effect": "Allow",
			"Action": "memorydb:*",
			"Resource": "*"
		},
		{
			"Effect": "Allow",
			"Action": "iam:CreateServiceLinkedRole",
			"Resource": "arn:aws:iam::*:role/aws-service-role/memorydb.amazonaws.com/AWSServiceRoleForMemoryDB",
			"Condition": {
				"StringLike": {
					"iam:AWSServiceName": "memorydb.amazonaws.com"
				}
			}
		}
	]
}
```

------

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

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [{
			"Effect": "Allow",
			"Action": "memorydb:*",
			"Resource": "*"
		},
		{
			"Effect": "Allow",
			"Action": "iam:CreateServiceLinkedRole",
			"Resource": "arn:aws-cn:iam::*:role/aws-service-role/memorydb.amazonaws.com/AWSServiceRoleForMemoryDB",
			"Condition": {
				"StringLike": {
					"iam:AWSServiceName": "memorydb.amazonaws.com"
				}
			}
		}
	]
}
```

------

고유의 사용자 지정 IAM 정책을 생성하여 MemoryDB API 작업에 대한 권한을 허용할 수도 있습니다. 해당 권한이 필요한 IAM 사용자 또는 그룹에 이러한 사용자 지정 정책을 연결할 수 있습니다.





## AWS 관리형 정책에 대한 MemoryDB 업데이트
<a name="security-iam-awsmanpol-updates"></a>



이 서비스가 이러한 변경 사항을 추적하기 시작한 이후부터 MemoryDB의 AWS 관리형 정책 업데이트에 대한 세부 정보를 봅니다. 이 페이지의 변경 사항에 대한 자동 알림을 받으려면 MemoryDB 문서 기록 페이지에서 RSS 피드를 구독하세요.




| 변경 | 설명 | Date | 
| --- | --- | --- | 
|  [AWS 관리형 정책: MemoryDBServiceRolePolicy](#security-iam-awsmanpol-memorydbServiceRolePolicy) – 정책 추가   |  MemoryDBServiceRolePolicy가 memorydb:ReplicateMultiRegionClusterData에 대한 권한을 추가했습니다. 이 권한을 통해 서비스 연결 역할은 MemoryDB Multi-Region 클러스터에 대한 데이터를 복제할 수 있습니다.  | 12/01/2024 | 
|  [AmazonMemoryDBFullAccess](#iam.identitybasedpolicies.predefinedpolicies-fullaccess) – 정책 추가  |  MemoryDB는 지원되는 리소스를 기술하고 나열하는 새 권한을 추가했습니다. 이러한 권한은 MemoryDB가 계정에서 지원되는 모든 리소스를 쿼리하는 데 필요합니다.  | 10/07/2021 | 
|  [AmazonMemoryDBReadOnlyAccess](#iam.identitybasedpolicies.predefinedpolicies-readonly) – 정책 추가  |  MemoryDB는 지원되는 리소스를 기술하고 나열하는 새 권한을 추가했습니다. 이러한 권한은 MemoryDB가 계정에서 지원되는 모든 리소스를 쿼리하여 계정 기반 애플리케이션을 생성하는 데 필요합니다.  | 10/07/2021 | 
|  MemoryDB가 변경 사항 추적 시작  |  서비스 시작  | 8/19/2021 | 

# MemoryDB API 권한: 작업, 리소스 및 조건 참조
<a name="iam.APIReference"></a>

IAM 정책(보안 인증 기반 또는 리소스 기반)에 연결할 [액세스 제어](iam.md#iam.accesscontrol) 및 쓰기 권한 정책을 설정할 때 다음 표를 참조로 사용하세요. 표에는 각 MemoryDB API 작업과 이 작업을 수행할 수 있는 권한을 부여할 수 있는 작업이 나와 있습니다. 정책의 `Action` 필드에서 작업을 지정하고, 정책의 `Resource` 필드에서 리소스 값을 지정합니다. 달리 명시되지 않는 한, 리소스는 필수입니다. 일부 필드에는 필수 리소스와 선택적 리소스가 모두 포함됩니다. 리소스 ARN이 없는 경우, 정책의 리소스는 와일드카드(\$1)입니다.

**참고**  
작업을 지정하려면 `memorydb:` 접두사 다음에 API 작업 명칭을 사용합니다(예: `memorydb:DescribeClusters`).

스크롤 막대를 사용하여 표의 나머지 부분을 확인합니다.


**MemoryDB API 및 작업에 필요한 권한**  

| MemoryDB API 작업 | 필요한 권한(API 작업) | 리소스  | 
| --- | --- | --- | 
|  [BatchUpdateCluster](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_BatchUpdateCluster.html) | `memorydb:BatchUpdateCluster` | Cluster | 
|  [CopySnapshot](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_CopySnapshot.html) |  `memorydb:CopySnapshot` `memorydb:TagResource` `s3:GetBucketLocation` `s3:ListAllMyBuckets` |  스냅샷(소스, 타겟) \$1 \$1 | 
|  [CreateCluster](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_CreateCluster.html) |  `memorydb:CreateCluster` `memorydb:TagResource` `s3:GetObject`  `SnapshotArns` 파라미터를 사용하는 경우, `SnapshotArns` 목록의 각 멤버에 `s3` ARN이 리소스인 자체 `s3:GetObject` 권한이 필요합니다.  |  파라미터 그룹. (선택 사항) 클러스터, 스냅샷, 보안 그룹 ID 및 서브넷 그룹 `arn:aws:s3:::my_bucket/snapshot1.rdb` 여기서 *my\$1bucket*/*snapshot1*dms 클러스터를 생성할 S3 버킷 및 스냅샷입니다. | 
|  [CreateParameterGroup](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_CreateParameterGroup.html) | `memorydb:CreateParameterGroup` `memorydb:TagResource` | 파라미터 그룹 | 
|  [CreateSubnetGroup](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_CreateSubnetGroup.html) | `memorydb:CreateSubnetGroup` `memorydb:TagResource` | 서브넷 그룹 | \$1 | 
|  [CreateSnapshot](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_CreateSnapshot.html) | `memorydb:CreateSnapshot` `memorydb:TagResource` | 스냅샷, 클러스터 | 
|  [CreateUser](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_CreateUser.html)  | `memorydb:CreateUser` `memorydb:TagResource` | User | 
|  [CreateACL](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_CreateACL.html)  | `memorydb:CreateACL` `memorydb:TagResource` | 액세스 제어 목록(ACL) | 
|  [UpdateCluster](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_UpdateCluster.html) | `memorydb:UpdateCluster` | Cluster | 
|  [DeleteCluster](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_DeleteCluster.html) | `memorydb:DeleteCluster` | 클러스터. (선택 사항) 스냅샷 | 
|  [DeleteParameterGroup](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_DeleteParameterGroup.html) | `memorydb:DeleteParameterGroup` | 파라미터 그룹 | 
|  [DeleteSubnetGroup](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_DeleteSubnetGroup.html) | `memorydb:DeleteSubnetGroup` | 서브넷 그룹 | 
|  [DeleteSnapshot](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_DeleteSnapshot.html) | `memorydb:DeleteSnapshot` | 스냅샷 | 
|  [DeleteUser](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_DeleteUser.html)  | `memorydb:DeleteUser` | User | 
|  [DeleteACL](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_DeleteACL.html)  | `memorydb:DeleteACL` | ACL | 
|  [DescribeClusters](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_DescribeClusters.html) | `memorydb:DescribeClusters` | Cluster | 
|  [DescribeEngineVersions](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_DescribeEngineVersions.html) | `memorydb:DescribeEngineVersions` | 리소스 ARN 없음: \$1 | 
|  [DescribeParameterGroups](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_DescribeParameterGroups.html) | `memorydb:DescribeParameterGroups` | 파라미터 그룹 | 
|  [DescribeParameters](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_DescribeParameters.html) | `memorydb:DescribeParameters` | 파라미터 그룹 | 
|  [DescribeSubnetGroups](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_DescribeSubnetGroups.html) | `memorydb:DescribeSubnetGroups` | 서브넷 그룹 | \$1 | 
|  [DescribeEvents](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_DescribeEvents.html) | `memorydb:DescribeEvents` | 리소스 ARN 없음: \$1 | 
|  [DescribeClusters](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_DescribeClusters.html) | `memorydb:DescribeClusters` | Cluster | 
|  [DescribeServiceUpdates](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_DescribeServiceUpdates.html) | `memorydb:DescribeServiceUpdates` | 리소스 ARN 없음: \$1 | 
|  [DescribeSnapshots](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_DescribeSnapshots.html) | `memorydb:DescribeSnapshots` | 스냅샷 | 
|  [DescribeUsers](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_DescribeUsers.html)  | `memorydb:DescribeUsers` | User | 
|  [DescribeACLs](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_DescribeACLs.html)  | `memorydb:DescribeACLs` | ACL | 
|  [ListAllowedNodeTypeUpdates](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_ListAllowedNodeTypeUpdates.html) | `memorydb:ListAllowedNodeTypeUpdates` | Cluster | 
|  [ListTags](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_ListTags.html) | `memorydb:ListTags` | (선택 사항) 클러스터, 스냅샷 | 
|  [UpdateParameterGroup](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_UpdateParameterGroup.html) | `memorydb:UpdateParameterGroup` | 파라미터 그룹 | 
|  [UpdateSubnetGroup](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_UpdateSubnetGroup.html) | `memorydb:UpdateSubnetGroup` | 서브넷 그룹 | 
|  [UpdateCluster](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_UpdateCluster.html) | `memorydb:UpdateCluster` | 클러스터. (선택 사항) 파라미터 그룹, 보안 그룹 | 
|  [UpdateUser](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_UpdateUser.html)  | `memorydb:UpdateUser` | User | 
|  [UpdateACL](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_UpdateACL.html)  | `memorydb:UpdateACL` | ACL | 
|  [UntagResource](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_UntagResource.html) | `memorydb:UntagResource` | (선택 사항) 클러스터, 스냅샷 | 
|  [ResetParameterGroup](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_ResetParameterGroup.html) | `memorydb:ResetParameterGroup` | 파라미터 그룹 | 
|  [FailoverShard](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_FailoverShard.html) | `memorydb:FailoverShard` | 클러스터, 샤드 | 