

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

# Amazon DocumentDB 사용자 관리
<a name="security.managing-users"></a>

Amazon DocumentDB에서 사용자는 암호와 함께 클러스터에 대해 인증합니다. 각 클러스터에는 클러스터 생성 중에 설정되는 기본 로그인 자격 증명이 있습니다.

**참고**  
 **2020년 3월 26일** 이전에 생성된 모든 새 사용자에게는 `dbAdminAnyDatabase`, `readWriteAnyDatabase` 및 `clusterAdmin` 역할이 부여되었습니다. 모든 사용자를 재평가하고 필요에 따라 역할을 수정하여 클러스터의 모든 사용자에 대해 최소 권한을 적용하는 것이 좋습니다.  
자세한 내용은 [역할 기반 액세스 제어를 사용한 데이터베이스 액세스](role_based_access_control.md) 섹션을 참조하세요.

## 기본 및 `serviceadmin` 사용자
<a name="security.managing-users-master"></a>

새로 생성된 Amazon DocumentDB 클러스터에는 기본 사용자와 `serviceadmin` 사용자의 두 사용자가 있습니다.

*기본 사용자*는 관리 작업을 수행하고 역할을 가진 추가 사용자를 생성할 수 있는 권한이 있는 단일 사용자입니다. Amazon DocumentDB 클러스터에 처음 연결하는 경우 기본 로그인 자격 증명을 사용하여 인증해야 합니다. 기본 사용자는 클러스터가 생성될 때 Amazon DocumentDB 클러스터에 대한 이러한 관리 권한을 받고 `root`의 역할이 부여됩니다.

클러스터가 생성될 때 `serviceadmin` 사용자는 암시적으로 생성됩니다. 모든 Amazon DocumentDB 클러스터에는 AWS에 클러스터를 관리할 수 있는 기능을 제공하는 `serviceadmin` 사용자가 있습니다. `serviceadmin`으로 로그인하거나, 그 암호를 삭제, 변경, 이름을 바꾸거나, 또는 그 권한을 변경할 수 없습니다. 이렇게 하려고 하면 오류가 발생합니다.

**참고**  
Amazon DocumentDB 클러스터의 기본 및 `serviceadmin` 사용자는 삭제할 수 없으며 기본 사용자에 대한 `root`의 역할은 취소할 수 없습니다.  
기본 사용자 암호를 잊어버린 경우에는 AWS Management Console 또는 AWS CLI를 사용하여 재설정할 수 있습니다.

## 추가 사용자 생성
<a name="security.managing-users-creating"></a>

기본 사용자(또는 `createUser` 역할이 있는 사용자)로 연결한 후 아래와 같이 새 사용자를 생성할 수 있습니다.

```
db.createUser(
    {
        user: "sample-user-1",
        pwd: "password123",
        roles: 
            [{"db":"admin", "role":"dbAdminAnyDatabase" }]
    }
)
```

사용자 세부 정보를 보려면 다음과 같이 `show users` 명령을 사용할 수 있습니다. `dropUser` 명령을 사용하여 사용자를 추가로 제거할 수 있습니다. 자세한 내용은 [공통 명령](role_based_access_control.md#role_based_access_control-common_commands) 섹션을 참조하세요.

```
show users
{ 
    "_id" : "serviceadmin",
    "user" : "serviceadmin",
    "db" : "admin",
    "roles" : [
    	{
            "role" : "root",
            "db" : "admin"
        }
    ]
},

{ 
    "_id" : "myPrimaryUser",
    "user" : "myPrimaryUser",
    "db" : "admin",
    "roles" : [
    	{
            "role" : "root",
            "db" : "admin"
        }
    ]
},

{
    "_id" : "sample-user-1",
    "user" : "sample-user-1",
    "db" : "admin",
    "roles" : [
    	{
            "role" : "dbAdminAnyDatabase",
            "db" : "admin"
    	}
    ]
}
```

이 예에서 새 사용자 `sample-user-1`는 `admin` 데이터베이스에 기인합니다. 신규 사용자의 경우 항상 그렇습니다. Amazon DocumentDB에는 `authenticationDatabase`라는 개념이 없으므로 모든 인증은 `admin` 데이터베이스 컨텍스트에서 수행됩니다.

사용자를 만들 때 역할 지정 시 `db` 필드를 생략하면 Amazon DocumentDB에서 연결이 실행되는 데이터베이스에 역할의 속성을 암시적으로 지정합니다. 예를 들어, `sample-database` 데이터베이스에 대해 연결이 실행되고 다음 명령을 실행하면 `sample-user-2` 사용자가 `admin` 데이터베이스에 생성되고 `readWrite` 데이터베이스에 대한 `sample-database` 권한이 부여됩니다.

```
db.createUser(
    {
        user: "sample-user-2", 
        pwd: "password123", 
        roles: 
            ["readWrite"]
    }
)
```

모든 데이터베이스에서 범위가 지정된 역할(예: `readInAnyDatabase`)을 가진 사용자를 생성하려면 사용자를 생성할 때 `admin` 데이터베이스 컨텍스트에 있거나 사용자를 생성할 때 역할에 대한 데이터베이스를 명백하게 명시해야 합니다.

데이터베이스의 컨텍스트를 전환하려면 다음 명령을 사용할 수 있습니다.

```
use admin
```

역할 기반 액세스 제어 및 클러스터의 사용자 사이에 최소 권한 적용에 대한 자세한 내용은 [역할 기반 액세스 제어를 사용한 데이터베이스 액세스](role_based_access_control.md) 섹션을 참조하십시오.

## Amazon DocumentDB의 암호 자동 교체
<a name="security.managing-users-rotating-passwords"></a>

AWS Secrets Manager을 이용하면 코드의 암호를 포함해 하드 코딩된 자격 증명을 Secrets Manager에서 프로그래밍 방식으로 보안 암호를 검색하도록 하는 API 직접 호출로 바꿀 수 있습니다. 이렇게 하면 보안 암호가 해당 위치에 있지 않기 때문에 여러분의 코드를 검사하는 누군가에 의해 보안 암호가 손상되지 않도록 방지할 수 있습니다. 또한 사용자가 지정한 일정에 따라 Secrets Manager가 자동으로 보안 암호를 교체하도록 구성할 수 있습니다. 따라서 단기 보안 암호로 장기 보안 암호를 교체할 수 있어 손상 위험이 크게 줄어듭니다.

Secrets Manager를 사용하면 Secrets Manager가 제공하는 AWS Lambda 기능을 사용하여 Amazon DocumentDB 비밀번호(즉, *암호*)를 자동으로 교체할 수 있습니다.

AWS Secrets Manager 및 Amazon DocumentDB와의 기본 통합에 대한 자세한 내용은 다음을 참조하십시오.
+ [블로그: AWS Secrets Manager에서 Amazon DocumentDB 및 Amazon Redshift의 자격 증명을 교체하는 방법](https://aws.amazon.com/blogs/security/how-to-rotate-amazon-documentdb-and-amazon-redshift-credentials-in-aws-secrets-manager/)
+ [AWS Secrets Manager란 무엇인가요?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)
+ [비밀 AWS Secrets Manager 로테이트](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets-documentdb.html)
+ [Secrets Manager의 Amazon DocumentDB 자격 증명](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_secret_json_structure.html#reference_secret_json_structure_docdb)