This commit is contained in:
Vassiliy Yegorov
2022-07-31 13:10:57 +07:00
parent eebc8ac2af
commit 365c7b2641
5 changed files with 134 additions and 0 deletions

View File

@@ -75,3 +75,8 @@ vault write auth/kubernetes/role/vault-test \
1. `vault kv put kv/secret/vault-test username='vassiliy' password='password' database='testdb' psqlhost='psql-service'` 1. `vault kv put kv/secret/vault-test username='vassiliy' password='password' database='testdb' psqlhost='psql-service'`
2. `vault kv get -format=json kv/secret/vault-test | jq ".data.data"` 2. `vault kv get -format=json kv/secret/vault-test | jq ".data.data"`
3. `k apply -f k8s/vault-test.yaml` 3. `k apply -f k8s/vault-test.yaml`
### 5. Add-ons
1. [restore-root](docs/restore-root--token.md)

11
docs/commands.md Normal file
View File

@@ -0,0 +1,11 @@
# частные команды
## Tokens
1. `vault token lookup`
2. `vault list auth/token/accessors`
3. `vault token revoke -accessor <id>`
# Polices
1. `vault read sys/policy`
2. `vault secrets enable -version=2 -path=secret kv`

67
docs/policy-example.md Normal file
View File

@@ -0,0 +1,67 @@
# Example policy
[!]
## открыть полный доступ на все под-пути
path "secret/*" {
capabilities = ["create", "read", "update", "patch", "delete", "list"]
}
## если давать полные права, но запрещать удаление
path "secrets/*" {
capabilities = ["create", "read", "update", "list"]
}
path "secrets/destroy/*" {
capabilities = ["deny"]
}
path "secrets/delete/*" {
capabilities = ["deny"]
}
## закрыть доступ к конкретному секрету
path "secret/super-secret" {
capabilities = ["deny"]
}
## открыть list на суб-путь
path "secret/+/team" {
capabilities = ["list"]
}
# а вот так в KV работать не будет!
path "secret/restricted" {
capabilities = ["create"]
allowed_parameters = {
"foo" = []
"bar" = ["zip", "zap"]
}
}
## шаблоны
path "secret/data/{{identity.entity.id}}/*" {
capabilities = ["create", "update", "patch", "read", "delete"]
}
path "secret/metadata/{{identity.entity.id}}/*" {
capabilities = ["list"]
}
[подробнее](https://www.vaultproject.io/docs/concepts/policies#examples)
## задать обязательные переменные (в KV работать не будет!)
path "secret/profile" {
capabilities = ["create"]
required_parameters = ["name", "id"]
}
## или запретить какие-то из них (в KV работать не будет!)
path "auth/userpass/users/*" {
capabilities = ["update"]
denied_parameters = {
"token_policies" = []
}
}

45
docs/policy-example.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 26 KiB

View File

@@ -0,0 +1,6 @@
# восстанавливаем токен рута
1. `vault operator generate-root -generate-otp`
2. `vault operator generate-root -init -otp="<OTP Value>"`
3. `vault operator generate-root` X столько раз, сколько ключей для распечатывания
4. `vault operator generate-root -decode="b64-token-root" -otp="<OTP Value>"`