Vault Identity is the mechanism that treats the same person or application logging in via different auth methods as a single Entity, centralizing policy and group management.
We cover the topics that frequently appear at the Associate level: binding aliases via the mount accessor, how policies are unioned, and when to use which type of group.
In Vault, real users and applications are represented as Entities, while their login names or accounts on each auth method are linked through Aliases. Even if a user signs in via both OIDC and GitHub, you can keep their policies unified by binding both logins to the same Entity.
Aliases are bound by the mount accessor (an internal identifier), not by the auth method's path, so renaming the auth/ path does not break them. Groups are where you attach policies — by including Entities as members, you can compose permission inheritance. There are two kinds: internal and external groups.
Authorization is determined at token issuance by taking the union of the token policies coming from the auth method and the Identity policies assigned to the Entity and its Groups. Subsequent group changes generally do not propagate to tokens that have already been issued.
In practice, the easiest approach to both implement and operate is to use a stable business identifier (such as a corporate email address or employee ID) as the Entity name, and the natural username or claim from each auth method as the Alias name.
For OIDC, use sub (recommended) or email; for LDAP, the DN or sAMAccountName; for Kubernetes, the service account name or a JWT claim. For GitHub the alias is simply the username, and for userpass it is the Vault username itself. Even when path changes or rotations are expected, Aliases reference the accessor and remain intact.
| Auth Method | Typical Identifier (Example Alias Name) | Impact of Path Change |
|---|---|---|
| userpass | Vault username | No impact (aliases are bound to the accessor) |
| LDAP | uid, sAMAccountName, DN, etc. | No impact (the accessor is unchanged by path renames) |
| OIDC | sub (recommended), email, or preferred_username | No impact (but be careful: recreating the mount during a rotation changes the accessor) |
| GitHub | GitHub username | No impact (path name changes are irrelevant) |
| Kubernetes | Service account name (e.g. the JWT sub) | No impact (same as above) |
| AppRole | role_id or a name unique to the role | No impact (but watch out for accessor changes if the mount is recreated) |
Below is a minimal example that unifies the same person logging in via three auth methods — userpass, GitHub, and OIDC — under a single Entity. The flow boils down to three steps: create the Entity first, fetch the mount accessor for each auth method, then create identity/entity-alias entries using the accessor and the canonical_id (the Entity ID).
Changing the mount's path leaves the accessor untouched, so Aliases keep working. If you disable and recreate the mount, however, the accessor changes and the Aliases must be recreated.
CLI example: creating the Entity and its Aliases
### 1) Entity を作成
vault write -format=json identity/entity name="[email protected]" metadata=team=platform \
| jq -r '.data.id' > entity_id.txt
### 2) 各認証メソッドの mount accessor を取得
vault auth list -format=json | jq -r 'to_entries[] | "\(.key) \(.value.accessor)"'
# 例:
# userpass/ auth_userpass_abcde
# github/ auth_github_fghij
# oidc/ auth_oidc_klmno
USERPASS_ACC=$(vault auth list -format=json | jq -r '."userpass/".accessor')
GITHUB_ACC=$(vault auth list -format=json | jq -r '."github/".accessor')
OIDC_ACC=$(vault auth list -format=json | jq -r '."oidc/".accessor')
CID=$(cat entity_id.txt)
### 3) Alias を作成(name は各メソッドのユーザー識別子)
# userpass のユーザー taro に対応
vault write identity/entity-alias name="taro" canonical_id="$CID" mount_accessor="$USERPASS_ACC"
# GitHub のユーザー名 taro-gh に対応
vault write identity/entity-alias name="taro-gh" canonical_id="$CID" mount_accessor="$GITHUB_ACC"
# OIDC の sub(例)に対応
vault write identity/entity-alias name="00u123abcXYZ" canonical_id="$CID" mount_accessor="$OIDC_ACC"
### 4) 確認
vault read identity/entity/id/$CID
# aliases[].mount_accessor と aliases[].name が作成できていることを確認You can attach policies directly to an Entity, or attach them to a Group and add the Entity as a member. For operations that need to scale, manage policies primarily at the Group level and handle onboarding, team transfers, and permission changes by editing Group membership.
At authorization time, token policies from the auth method and Identity-side policies (from the Entity and its Groups) are unioned. As a rule of thumb, group changes take effect only for newly issued tokens.
Flow: multiple auth methods → Entity → Group → policies
Renaming an auth method's path (for example auth/oidc → auth/idp) is independent of the accessor, so Aliases are preserved. If you disable and recreate the method, the accessor changes and you have to recreate the Aliases.
During org changes or account duplication, you may unintentionally end up with two Entities for the same person. Use the identity/entity/merge API to consolidate them and pull the older Entity's Aliases into the new one. For offboarding, the safe order is: revoke the credentials on the auth method side first, delete the corresponding Aliases, then finally delete the Entity.
CLI example: merging duplicate Entities
# 既存の 2 つの Entity(source_id, target_id)を統合
vault write identity/entity/merge \
from_entity_id="11111111-1111-1111-1111-111111111111" \
to_entity_id="22222222-2222-2222-2222-222222222222"
# 統合後、from 側の aliases は to 側に移り、from は無効化される想定(ドライランは不可のため事前にバックアップ推奨)The core Identity vocabulary (Entity, Alias, Group) and the fact that Aliases are bound by the mount accessor come up constantly. Be able to explain quickly that the link is not the path name, that effective policy is determined by union, and that groups come in internal and external flavors.
Knowing the minimum CLI/HTTP surface (identity/entity, identity/entity-alias, identity/group, identity/group-alias) plus the workflow of fetching the accessor with auth list will serve you both in real work and on the exam.
Associate
問題 1
You want Vault to treat an OIDC sub and a GitHub username as the same person. Which auth method identifier is required when creating the entity-alias so they consolidate into a single Entity?
正解: A
Aliases are tied together by the mount accessor (an internal identifier), the canonical_id (Entity ID), and a name (the username or claim on the auth side). The link is never made via the path name.
Does changing an auth method's path break the link between an Entity and its Aliases?
No. Aliases are bound to the mount accessor, not the path, so renaming the path does not break them. However, if you disable and recreate the auth method, you get a new accessor, and the Aliases must be recreated.
Can the same alias name be assigned to multiple Entities within the same auth method?
No. An alias name must be unique within a single mount accessor (i.e. a single auth method). If you hit a duplicate, inspect the existing Alias and either merge the Entities or rethink your naming policy.
If I update a group's policies, do existing login tokens pick up the change immediately?
Generally no. The policies that were attached when the token was issued remain in effect, and group changes typically only take effect on the next login (i.e. when a new token is issued).
Practice with certification-focused question sets
無料で問題を解いてみるNicheeLab Editorial Team
NicheeLab editorial team focused on data engineering and cloud certification learning. Content is structured around practical study needs and official exam domains.
Vault Core Concepts: Sealed/Unsealed, Auth, Secrets (2026)
Vault fundamentals — sealed/unsealed state, auth methods, se...
Vault Operations Professional (VOP-003): Complete Guide (2026)
Pass the Vault Operations Professional exam — enterprise pat...
Vault Path-Based Routing: API URL Structure (2026)
How Vault's path-based routing works — mount points, sub-pat...
Vault Tokens: Auth Token Mechanics (2026)
Token fundamentals — service vs. batch tokens, accessor, ren...
Vault Token Types: Service, Batch, Periodic (2026)
Service vs. batch tokens compared — performance, ACL behavio...