엔티티 및 그룹 중복 수정하기

엔티티 및 그룹 중복 수정하기

이름 변경 대상으로 표시된 엔티티와 그룹의 중복 identity를 수정해요.

전제 조건(Assumptions)

  • Vault 1.19 이상을 실행 중이에요.
  • 시스템 로그에 중복 제거 이름 변경 대상이 있어요.
  • 관련 Vault 서버 또는 클러스터에 대한 관리자 권한이 있어요.

출처: 문서

본문

중복이 생기는 이유(Why duplicates happen)

Vault의 과거 버그로 인해 authN 마운트가 같은 엔티티나 그룹 이름을 서로 다른 대소문자를 사용해 중복 생성할 수 있었어요. 기본적으로 Vault는 이름에 대해 대소문자 구분 없는 매칭을 사용하고 bobBOB을 같은 이름으로 간주해요. 하지만 과거 버그로 엔티티·그룹 이름에 동일하거나 different-case 중복이 생길 수 있었어요.

중복 엔티티·그룹 이름은 예기치 않은 동작을 일으키고 Vault 작업을 더 어렵게 만들어요.

  • 이름으로 엔티티/그룹을 가져오면 처음 찾은 identity가 반환돼요. Vault 버전에 따라, 요청을 처리하는 서버와 마지막 seal/unseal 이벤트 시점에 따라 반환되는 identity가 달라질 수 있어요.
  • 이름으로 엔티티/그룹을 삭제해도 모든 중복이 삭제되지는 않아요.
  • 모든 조회 요청은 올바른 identity를 찾으려면 ID를 사용해야 해요.

예시 서버 로그(Example server log)

Vault 시스템 로그는 중복 엔티티와 그룹에 대한 경고를 제공하며, 여기에는 다음이 포함돼요.

  • 엔티티/그룹 이름
  • 연결된 네임스페이스(namespace ID)
  • 엔티티/그룹 ID(id)
  • 예상 중복 제거 작업(force_deduplication)
2025-01-28T13:15:13.641-0800 [WARN]  identity: 2 entity duplicates found

2025-01-28T13:15:13.641-0800 [WARN]  identity: entity "entity-cAsE" with namespace ID "root" duplicates 2 others: id=2562b42d-f603-ac6b-2591-8a20dd050897 force_deduplication="would not rename"

2025-01-28T13:15:13.641-0800 [WARN]  identity: entity "entity-case" with namespace ID "root" duplicates 2 others: id=290a643d-6043-da5e-943f-3a3d09e4ecbd force_deduplication="would rename to entity-case-290a643d-6043-da5e-943f-3a3d09e4ecbd"

2025-01-28T13:15:13.641-0800 [WARN]  identity: entity "entity-case" with namespace ID "root" duplicates 2 others: id=b0141be5-3f03-a1c7-a57b-02f045d04426 force_deduplication="would rename to entity-case-b0141be5-3f03-a1c7-a57b-02f045d04426"

2025-01-28T13:15:13.641-0800 [WARN]  identity: entity "entity-cAsE" with namespace ID "sYMXY" duplicates 2 others: id=95f0743b-a1d5-26da-b4ef-a50490da0787 force_deduplication="would not rename"

2025-01-28T13:15:13.641-0800 [WARN]  identity: entity "entity-case" with namespace ID "sYMXY" duplicates 2 others: id=9d3be96f-490a-9625-3118-896bd2b3a5f3 force_deduplication="would rename to entity-case-9d3be96f-490a-9625-3118-896bd2b3a5f3"

2025-01-28T13:15:13.641-0800 [WARN]  identity: entity "entity-case" with namespace ID "sYMXY" duplicates 2 others: id=d82231d2-3716-6b9c-e80d-7d09c0409739 force_deduplication="would rename to entity-case-d82231d2-3716-6b9c-e80d-7d09c0409739"

2025-01-28T13:15:13.641-0800 [WARN]  identity: end of entity duplicates

2025-01-28T13:15:13.641-0800 [WARN]  identity: 2 group duplicates found

2025-01-28T13:15:13.641-0800 [WARN]  identity: group "group-case" with namespace ID "root" duplicates 2 others: id=8ad26e0c-8cf6-5b67-7c77-6571fa374f34 force_deduplication="would not rename"

2025-01-28T13:15:13.641-0800 [WARN]  identity: group "group-cAsE" with namespace ID "root" duplicates 2 others: id=9fe86ea0-f80c-1131-5be1-1d6e3b70237f force_deduplication="would rename to group-cAsE-9fe86ea0-f80c-1131-5be1-1d6e3b70237f"

2025-01-28T13:15:13.641-0800 [WARN]  identity: group "group-case" with namespace ID "root" duplicates 2 others: id=32dd070c-c1f8-c796-9a71-15887014b813 force_deduplication="would rename to group-case-32dd070c-c1f8-c796-9a71-15887014b813"

2025-01-28T13:15:13.641-0800 [WARN]  identity: group "group-case" with namespace ID "sYMXY" duplicates 2 others: id=8aaeff7e-7343-c883-1e0c-c5c9968f75a5 force_deduplication="would not rename"

2025-01-28T13:15:13.641-0800 [WARN]  identity: group "group-case" with namespace ID "sYMXY" duplicates 2 others: id=f11277b3-d985-4d72-d2e9-9c8c6c0db02c force_deduplication="would rename to group-case-f11277b3-d985-4d72-d2e9-9c8c6c0db02c"

2025-01-28T13:15:13.641-0800 [WARN]  identity: group "group-cAsE" with namespace ID "sYMXY" duplicates 2 others: id=7c753d07-b0d9-e13b-6184-48247b8f7504 force_deduplication="would rename to group-cAsE-07c753d07-b0d9-e13b-6184-48247b8f7504"

2025-01-28T13:15:13.641-0800 [WARN]  identity: end of group duplicates

중복 엔티티와 그룹은 정확히 일치하거나 대소문자가 다를 수 있어요(예: Adminadmin). 하지만 중복 해결을 위해 시스템 로그를 검토할 때, 잠재적 중복을 그룹화할 때는 항상 연결된 네임스페이스를 고려해요. 예를 들어 예시 로그의 이름이 대소문자 구분 없이 동일해도, 그 이름들이 서로 다른 네임스페이스에 속하므로 Vault는 이름 변경 대상 8개만 처리해요.

Identity 유형 이전 이름 새 이름
엔티티 root/entity-cAsE 변경 없음
엔티티 root/entity-case root/entity-case-290a643d-6043-da5e-943f-3a3d09e4ecbd
엔티티 root/entity-case root/entity-case-b0141be5-3f03-a1c7-a57b-02f045d04426
엔티티 sYMXY/entity-cAsE 변경 없음
엔티티 sYMXY/entity-case sYMXY/entity-case-9d3be96f-490a-9625-3118-896bd2b3a5f3
엔티티 sYMXY/entity-case sYMXY/entity-case-d82231d2-3716-6b9c-e80d-7d09c0409739
그룹 root/group-case 변경 없음
그룹 root/group-cAsE group-cAsE-9fe86ea0-f80c-1131-5be1-1d6e3b70237f
그룹 root/group-case group-case-32dd070c-c1f8-c796-9a71-15887014b813
그룹 sYMXY/group-case 변경 없음
그룹 sYMXY/group-case group-case-f11277b3-d985-4d72-d2e9-9c8c6c0db02c
그룹 sYMXY/group-cAsE group-cAsE-07c753d07-b0d9-e13b-6184-48247b8f7504

자동 이름 변경 프로세스는 보안상 안전하고 기존 데이터를 보존해요. 이름 변경은 기존 토큰에 새 권한을 부여하지 않고 데이터를 삭제하지도 않으므로, 필요하면 변경을 수동으로 롤백할 수 있어요.

엔티티 및 그룹 중복 해결(Resolving entity and group duplicates)

대부분의 경우 이름 변경은 리소스 접근을 보존해서 로그인과 권한이 영향을 받지 않아요. 하지만 중복 제거 전에 처리해야 할 두 가지 엣지 케이스가 있어요: 템플릿화된 정책외부 참조예요.

  • 리소스 경로의 일부로 엔티티나 그룹 이름을 참조하는 템플릿화된 ACL 정책을 쓴다면, 중복 제거가 그 리소스에 대한 접근에 영향을 줄 수 있어요.
  • Terraform으로 Vault 리소스를 관리하거나, Vault 밖의 다른 시스템이 엔티티·그룹 이름을 참조한다면, 중복 제거 프로세스가 그 엔티티/그룹 이름을 바꿀 때 그 참조가 깨질 거예요.

로그가 식별한 각 중복에 대해 세 가지 옵션이 있어요.

  1. 이름 변경 대상이 필요 없거나 사용하지 않는다면, /identity/entity/id/{id}/identity/group/id/{id} 엔드포인트로 ID를 사용해 identity를 삭제할 수 있어요.
  2. 템플릿화된 정책이나 외부 참조에 대한 위험이 낮거나 없다는 것을 안다면, 중복을 무시하고 문제가 발생하면 그때 처리할 수 있어요.
  3. 템플릿화된 정책이나 외부 참조에 대한 위험을 확인할 수 없다면, 다음 문제 해결 가이드의 지침을 검토해요.
    • ACL 정책 템플릿에 대한 중복 제거 영향 해결
    • Terraform 리소스 참조에 대한 중복 제거 영향 해결

다음 단계(Next steps)

모든 엔티티·그룹 중복이 제대로 처리됐다고 판단되면 강제된 identity 중복 제거를 활성화할 수 있어요.

더 알아보기 (Learn more)

  • identity 중복 제거 개요와 단계별 절차를 살펴보세요.
  • ACL 정책 템플릿, Terraform 리소스 참조에 대한 중복 제거 영향 해결 가이드를 확인해 보세요.