🔒 Учебник по Vault Часть 4

Аутентификация и политики

По умолчанию Vault использует аутентификацию по токену.

Можно использовать : vault token create

для создания нового токена, который наследует привилегии создавшего пользователя.

Токен может быть отозван администратором.

Оператор, пытающийся отозвать его, получит ошибку.

$ vault token createKeyValue--------token3WZeul5S8KgctuWgSsgB8mHQtoken_accessor 6Up6TqBg5g2oyVvZAoC9GN8j# попытка ототзвать от другого пользователя$ vault token revoke 3WZeul5S8KgctuWgSsgB8mHQError revoking token: Error making API request.URL: PUT http://vault.local:8200/v1/auth/token/revokeCode: 403. Errors:* 1 error occurred:* permission denied# от администратора, который его создал$ vault token revoke 3WZeul5S8KgctuWgSsgB8mHQSuccess! Revoked token (if it existed)

UserPass аутентификация

Vault поддерживает множество разных механизмов аутентификации.

Методы аутентификации — это механизм, используемый Vault для аутентификации; присвоение идентификатора и применение набора политик доступа для пользователя или процесса.

Простым в реализации является метод userpass.

Входящий в систему пользователь по-прежнему получает токен, который затем может использовать.

$ vault auth enable userpassSuccess! Enabled userpass auth method at: userpass/$ vault write auth/userpass/users/lord.nikon \> password=R4zor-n-Bl4d3 \> policies=adminsSuccess! Data written to: auth/userpass/users/lord.nikon$ vault login -method=userpass \> username=lord.nikon \> password=R4zor-n-Bl4d3Success! You are now authenticated. The token information displayed belowis already stored in the token helper. You do NOT need to run "vault login"again. Future Vault requests will automatically use this token.KeyValue--------token3vk72Ueofq9f6FBJMJtgliXHtoken_accessor 2WAPnzZFl1MXWDwz97lwBtTEtoken_duration 768htoken_renewabletruetoken_policies ["admins" "default"]identity_policies[]policies ["admins" "default"]token_meta_usernamelord.nikon

Авторизация: Политики

Vault использует HCL для определения политик, которые можно прикрепить к ролям.

Можно создать политику, которая разрешает читать всем, но разрешает создавать только в пространстве имен foo

$ vault policy write my-readonly-policy - > capabilities = ["read"]> > }> > > > path "secret/data/*" {> > capabilities = ["read"]> > }> > > > path "secret/data/foo" {> > capabilities = ["read","create"]> > }> EOFSuccess! Uploaded policy: my-readonly-policy
Теперь мы можем прикрепить политику только для чтения к токену. Этот токен может быть использован, например, в процессе сборки для чтения (но не обновления) секретов, необходимых в пайплане сборки/развертывания.
$ vault token create -policy=my-readonly-policyKeyValue--------token1eluleJQ0qw8HXWpixyNQP8Qtoken_accessor 1cCui3p8Z0FIuFglOs8ELoPdtoken_duration 768htoken_renewabletruetoken_policies ["default" "my-readonly-policy"]identity_policies[]policies ["default" "my-readonly-policy"]#create/update a kv first$ vault kv put secret/build-secret "u=h4ck-the-pl4n3t"KeyValue--------created_time 2019-01-01T18:32:11.0358738Zdeletion_timen/adestroyedfalseversion2$ vault login 1eluleJQ0qw8HXWpixyNQP8QSuccess! You are now authenticated. The token information displayed below …snip… $ vault kv put secret/build-secret "u=tr4shing-our-r1ght5\!"Error writing data to secret/data/build-secret: Error making API request.URL: PUT http://vault.local:8200/v1/secret/data/build-secretCode: 403. Errors:* 1 error occurred:* permission denied
Мы также можем прикрепить политику к методу авторизации. Например, если мы включили логины на github.com, мы могли бы установить для них те же разрешения только для чтения.
$ vault write auth/github/map/teams/default value=my-readonly-policy

Отправка комментария

0 Комментарии