

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

# SCRAM-SHA-256을 사용한 인증
<a name="scram-sha-256-auth"></a>

Amazon DocumentDB(MongoDB 호환)는 암호 기반 인증을 위한 Salted Challenge Response Authentication Mechanism(SCRAM)을 지원합니다. SCRAM을 사용하면 서버는 클라이언트가 암호를 서버에 전송하지 않고 사용자의 암호를 알고 있는지 확인합니다. Amazon DocumentDB는 `SCRAM-SHA-1` 및의 두 가지 SCRAM 메커니즘을 지원합니다`SCRAM-SHA-256`.는 더 강력한 SHA-256 해시 함수를 `SCRAM-SHA-256` 사용하고 FIPS 모드에서 작동합니다.

사용자를 생성하거나 업데이트할 때 사용자에게 SCRAM 메커니즘을 하나 또는 둘 다 할당합니다. 로 생성된 사용자는 변경 없이 `SCRAM-SHA-1` 계속 작동합니다. SCRAM-SHA-256 인증은 Amazon DocumentDB 인스턴스 기반 클러스터 마이너 버전 5.0.1 이상 및 8.0.1 이상에서 사용할 수 있습니다.

**SCRAM 및 IAM 인증은 상호 배타적입니다.**  
사용자는 SCRAM 메커니즘 또는 `MONGODB-AWS` 메커니즘을 가질 수 있지만 둘 다 가질 수는 없습니다. IAM 자격 증명 인증은 섹션을 참조하세요[IAM 자격 증명을 사용한 인증](iam-identity-auth.md).

**Topics**
+ [SCRAM 메커니즘을 사용하여 사용자 생성](#scram-sha-256-auth-creating-users)
+ [기존 사용자 업데이트](#scram-sha-256-auth-updating-users)
+ [SCRAM-SHA-256으로 인증](#scram-sha-256-auth-authenticating)

## SCRAM 메커니즘을 사용하여 사용자 생성
<a name="scram-sha-256-auth-creating-users"></a>

사용자를 생성할 때 `mechanisms` 필드로 활성화할 SCRAM 메커니즘을 지정할 수 있습니다. 다음 예제에서는 두 메커니즘`SCRAM-SHA-256`이 모두 포함된 사용자`SCRAM-SHA-1`만 생성합니다.

```
db.runCommand({
    createUser: 'sha1user',
    pwd: passwordPrompt(),
    roles: ['readWrite'],
    mechanisms: ['SCRAM-SHA-1']
});
db.runCommand({
    createUser: 'sha256user',
    pwd: passwordPrompt(),
    roles: ['readWrite'],
    mechanisms: ['SCRAM-SHA-256']
});
db.runCommand({
    createUser: 'bothuser',
    pwd: passwordPrompt(),
    roles: ['readWrite'],
    mechanisms: ['SCRAM-SHA-1','SCRAM-SHA-256']
});
```

### 기본 메커니즘
<a name="scram-sha-256-auth-default-mechanisms"></a>

`mechanisms` 필드를 지정하지 않으면 Amazon DocumentDB는 사용자에 `SCRAM-SHA-256` 대해 `SCRAM-SHA-1` 및를 모두 활성화합니다. 다음 두 명령은 동일합니다.

```
db.runCommand({
    createUser: 'user1',
    pwd: passwordPrompt(),
    roles: ['readWrite']
});
// is equivalent to:
db.runCommand({
    createUser: 'user1',
    pwd: passwordPrompt(),
    roles: ['readWrite'],
    mechanisms: ['SCRAM-SHA-1','SCRAM-SHA-256']
});
```

기본적으로 두 메커니즘을 모두 활성화하면 만 지원하는 이전 MongoDB 드라이버와의 호환성이 유지됩니다`SCRAM-SHA-1`. 최신 드라이버와 FIPS 모드는를 선호합니다`SCRAM-SHA-256`. 사용자가 로 인증하지 않도록 하려면 모든 사용자의 `SCRAM-SHA-256` `mechanisms` 필드에만를 `SCRAM-SHA-1`지정합니다.

## 기존 사용자 업데이트
<a name="scram-sha-256-auth-updating-users"></a>

에서 생성된 사용자는 변경 없이 `SCRAM-SHA-1` 계속 지원됩니다. 기존 사용자를에서 `SCRAM-SHA-1`로 전환하려면 새 암호와 `SCRAM-SHA-256` 메커니즘으로 사용자를 `SCRAM-SHA-256`업데이트합니다.

```
db.runCommand({
    updateUser: 'existing',
    pwd: passwordPrompt(),
    mechanisms: ['SCRAM-SHA-256']
});
```

## SCRAM-SHA-256으로 인증
<a name="scram-sha-256-auth-authenticating"></a>

드라이버는 각 연결에서 첫 번째 명령을 보내기 전에 연결 문자열 파라미터를 사용하여 자동으로 인증합니다. 연결 URI`SCRAM-SHA-256`에서를 선택하려면 `authMechanism` 파라미터를 로 설정합니다`SCRAM-SHA-256`.

```
mongodb://username:password@hostname:port/authenticationDatabase?authMechanism=SCRAM-SHA-256
```

mongosh에서 명시적 인증 요청을 보낼 수도 있습니다.

```
db.auth({user: 'sha256user', pwd: passwordPrompt(), mechanism: 'SCRAM-SHA-256'})
Enter password:
1
```

연결 옵션에서 인증 메커니즘을 지정하지 않으면 드라이버는 대상 데이터베이스 사용자가 지원하는 메커니즘을 자동으로 선택합니다.