LDAP 시크릿 플러그인 설정하기

LDAP 시크릿 플러그인 설정하기

OpenLDAP 또는 Active Directory와 함께 사용할 ldap 플러그인의 인스턴스를 활성화하고 구성해요.

시작 전에(Before you start)

  • Vault 권한을 확인하세요. Vault에서 플러그인을 활성화하고 구성할 권한이 있어야 해요.
  • Vault용 LDAP 계정을 만드세요. Vault 전용 항목 관리 계정을 만드는 것을 적극 권장해요.

출처: 문서

본문

1단계: LDAP 시크릿 플러그인 활성화하기(Enable the LDAP secrets plugin)

CLI — vault secrets enable을 사용해 플러그인의 새 인스턴스를 만들어요. 기본적으로 Vault는 플러그인 이름을 마운트 경로로 사용해요. 사용자 지정 마운트 경로를 구성하려면 -path 플래그를 사용하세요:

$ vault secrets enable -path <mount_path> ldap

예를 들어:

$ vault secrets enable -path devcreds ldap

API — /sys/mounts/{mount_path}에 POST 호출:

$ curl                                                \
    --request POST                                      \
    --header    "X-Vault-Token: ${VAULT_TOKEN}"         \
    --namespace "X-Vault-Namespace: ${VAULT_NAMESPACE}" \
    --data '{"type": "ldap"}'                           \
    ${VAULT_ADDR}/v1/sys/mounts/<plugin_mount_path>

예를 들어:

$ curl                                                \
    --request POST                                      \
    --header    "X-Vault-Token: ${VAULT_TOKEN}"         \
    --namespace "X-Vault-Namespace: ${VAULT_NAMESPACE}" \
    --data '{"type": "ldap"}'                           \
    ${VAULT_ADDR}/v1/sys/mounts/devcreds

/sys/mounts/{mount_path}는 성공 시 데이터를 반환하지 않아요.

2단계: 플러그인 구성 파일 만들기(Create a plugin configuration file)

유지보수와 재사용을 쉽게 하기 위해 선호하는 구성 세부 정보가 담긴 JSON 파일을 만들어요.

OpenLDAP 스키마를 사용하는 기본 구성 파일 ldap.json:

{
  "schema": "openldap",
  "binddn": "<ldap_username>",
  "bindpass": "<ldap_password>",
  "url": "<ldap_server_uri>",
  "credential_type": "<password | phrase>"
}

예를 들어:

{
  "schema": "openldap",
  "binddn": "cn=admin,dc=abc,dc=com",
  "bindpass": "iamabadpassword",
  "url": "ldaps://138.91.247.105",
  "credential_type": "password"
}

기본적으로 LDAP 시크릿 플러그인은 항목 비밀번호가 userPassword에 저장돼 있다고 가정해요. 하지만 organization, organizationalUnit, organizationalRole, inetOrgPerson, person, posixAccount, ad 같은 다른 객체 클래스를 통해서도 제공할 수 있어요. Active Directory 스키마에는 "ad"를 사용해요.

3단계: LDAP 플러그인 구성하기(Configure the LDAP plugin)

구성 세부 정보를 적용해 Vault가 LDAP 서버와 통신할 수 있게 해요.

CLI — vault write에 {mount_path}/config 경로를 사용해 구성 파일을 적용해요:

$ vault write devcreds/config @ldap.json

API — 구성 파일을 적용하려면 /{mount_path}/config에 POST 호출:

$ curl                                                \
    --request POST                                      \
    --header    "X-Vault-Token: ${VAULT_TOKEN}"         \
    --namespace "X-Vault-Namespace: ${VAULT_NAMESPACE}" \
    --data @ldap.json                                   \
    ${VAULT_ADDR}/v1/devcreds/config

4단계: 루트 비밀번호 회전하기(Rotate the root password)

Vault와 LDAP 서버를 연결한 후에는 Vault만 자격 증명을 알도록 binddn 계정의 루트 비밀번호를 회전해요.

CLI — /{mount_path}/rotate-root 경로로 루트 자격 증명을 회전해요:

$ vault write -f devcreds/rotate-root

API — 루트 자격 증명을 회전하려면 /{mount_path}/rotate-root에 POST 호출:

$ curl                                                \
    --request POST                                      \
    --header    "X-Vault-Token: ${VAULT_TOKEN}"         \
    --namespace "X-Vault-Namespace: ${VAULT_NAMESPACE}" \
    ${VAULT_ADDR}/v1/sys/devcreds/rotate-root

참고: 루트 자격 증명을 회전한 후에는 새로 생성된 비밀번호를 검색할 수 없어요.

더 알아보기 (Learn more)

  • LDAP 시크릿 엔진 개요에서 동적·정적 자격 증명을 살펴보세요.
  • 동적 자격 증명 및 서비스 계정 라이브러리 방법 가이드를 확인해 보세요.