엔티티 및 그룹 중복 수정하기
엔티티 및 그룹 중복 수정하기
이름 변경 대상으로 표시된 엔티티와 그룹의 중복 identity를 수정해요.
전제 조건(Assumptions)
- Vault 1.19 이상을 실행 중이에요.
- 시스템 로그에 중복 제거 이름 변경 대상이 있어요.
- 관련 Vault 서버 또는 클러스터에 대한 관리자 권한이 있어요.
출처: 문서
본문
중복이 생기는 이유(Why duplicates happen)
Vault의 과거 버그로 인해 authN 마운트가 같은 엔티티나 그룹 이름을 서로 다른 대소문자를 사용해 중복 생성할 수 있었어요. 기본적으로 Vault는 이름에 대해 대소문자 구분 없는 매칭을 사용하고 bob과 BOB을 같은 이름으로 간주해요. 하지만 과거 버그로 엔티티·그룹 이름에 동일하거나 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
중복 엔티티와 그룹은 정확히 일치하거나 대소문자가 다를 수 있어요(예: Admin과 admin). 하지만 중복 해결을 위해 시스템 로그를 검토할 때, 잠재적 중복을 그룹화할 때는 항상 연결된 네임스페이스를 고려해요. 예를 들어 예시 로그의 이름이 대소문자 구분 없이 동일해도, 그 이름들이 서로 다른 네임스페이스에 속하므로 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 밖의 다른 시스템이 엔티티·그룹 이름을 참조한다면, 중복 제거 프로세스가 그 엔티티/그룹 이름을 바꿀 때 그 참조가 깨질 거예요.
로그가 식별한 각 중복에 대해 세 가지 옵션이 있어요.
- 이름 변경 대상이 필요 없거나 사용하지 않는다면,
/identity/entity/id/{id}와/identity/group/id/{id}엔드포인트로 ID를 사용해 identity를 삭제할 수 있어요. - 템플릿화된 정책이나 외부 참조에 대한 위험이 낮거나 없다는 것을 안다면, 중복을 무시하고 문제가 발생하면 그때 처리할 수 있어요.
- 템플릿화된 정책이나 외부 참조에 대한 위험을 확인할 수 없다면, 다음 문제 해결 가이드의 지침을 검토해요.
- ACL 정책 템플릿에 대한 중복 제거 영향 해결
- Terraform 리소스 참조에 대한 중복 제거 영향 해결
다음 단계(Next steps)
모든 엔티티·그룹 중복이 제대로 처리됐다고 판단되면 강제된 identity 중복 제거를 활성화할 수 있어요.
더 알아보기 (Learn more)
- identity 중복 제거 개요와 단계별 절차를 살펴보세요.
- ACL 정책 템플릿, Terraform 리소스 참조에 대한 중복 제거 영향 해결 가이드를 확인해 보세요.