Amazon DocumentDB사용자 관리 - Amazon DocumentDB

Amazon DocumentDB사용자 관리

Amazon DocumentDB에서 사용자는 암호와 함께 클러스터에 대해 인증합니다. 각 클러스터에는 클러스터 생성 중에 설정된 마스터 사용자 및 암호가 있습니다.

참고

2020년 3월 26일 이전에 생성된 모든 새 사용자에게는 dbAdminAnyDatabase, readWriteAnyDatabaseclusterAdmin 역할이 부여되었습니다. 모든 사용자를 재평가하고 필요에 따라 역할을 수정하여 클러스터의 모든 사용자에 대해 최소 권한을 적용하는 것이 좋습니다.

자세한 내용은 역할 기반 액세스 제어(기본 제공 역할)를 사용하여 데이터베이스 액세스 제한 단원을 참조하십시오.

마스터 및 serviceadmin 사용자

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

마스터 사용자는 관리 작업을 수행하고 역할을 가진 추가 사용자를 생성할 수 있는 권한이 있는 단일 사용자입니다. Amazon DocumentDB 클러스터에 처음으로 연결할 때 마스터 사용자 이름과 암호를 사용하여 인증해야 합니다. 마스터 사용자는 클러스터가 생성될 때 Amazon DocumentDB 클러스터에 대한 이러한 관리 권한을 받고 root의 역할이 부여됩니다.

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

참고

Amazon DocumentDB 클러스터의 마스터 및 serviceadmin 사용자는 삭제할 수 없으며 마스터 사용자에 대한 root의 역할은 취소할 수 없습니다.

마스터 사용자 암호를 잊어버린 경우에는 AWS Management 콘솔 또는 AWS CLI를 사용하여 재설정할 수 있습니다.

추가 사용자 생성

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

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

사용자 세부 정보를 보려면 다음과 같이 show users 명령을 사용할 수 있습니다. dropUser 명령을 사용하여 사용자를 추가로 제거할 수 있습니다. 자세한 내용은 공통 명령 단원을 참조하십시오.

show users { "_id" : "serviceadmin", "user" : "serviceadmin", "db" : "admin", "roles" : [ { "role" : "root", "db" : "admin" } ] }, { "_id" : "myMasterUser", "user" : "myMasterUser", "db" : "admin", "roles" : [ { "role" : "root", "db" : "admin" } ] }, { "_id" : "sample-user-1", "user" : "sample-user-1", "db" : "admin", "roles" : [ { "role" : "dbAdminAnyDatabase", "db" : "admin" } ] }

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

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

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

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

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

use admin

역할 기반 액세스 제어 및 클러스터의 사용자 사이에 최소 권한 적용에 대한 자세한 내용은 역할 기반 액세스 제어(기본 제공 역할)를 사용하여 데이터베이스 액세스 제한 단원을 참조하십시오.

자동으로 Amazon DocumentDB 보안 암호 교체

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

Secrets Manager을 사용하면 Secrets Manager이 제공하는 AWS Lambda 함수를 이용해 Amazon DocumentDB 암호(즉, 보안 암호)를 자동으로 교체할 수 있습니다.

AWS Secrets Manager 및 Amazon DocumentDB와의 기본 통합에 대한 자세한 내용은 다음을 참조하십시오.