Токен операций DR
Чтобы повысить роль вторичного кластера Disaster Recovery (DR), нужен токен операций DR. Тот же токен нужен, чтобы сменить назначенный основной кластер.
В этой статье токен готовят заранее на основном кластере. Это пакетный токен: он действует и на основном, и на вторичном кластере. Части ключа распечатывания для его выпуска не нужны.
Если пакетный токен не подготовлен, в момент переключения токен выпускают на вторичном кластере по частям ключа распечатывания. Этот порядок приведен в статье Генерация токена операций DR.
Процедура повышения роли приведена в статье Повышение роли вторичного кластера DR до первичного.
|
У токена операций DR нет TTL. Удалите токен после завершения операции. Вы можете сделать это с помощью конечной точки Удаление токена операций DR. |
1. Генерация токена операций DR
С помощью веб-интерфейса
-
Откройте окно браузера и запустите пользовательский интерфейс кластера A (основного кластера).
-
Перейдите на вкладку Политики и нажмите Создать политику ACL.
-
Введите имя политики ACL
dr-secondary-promotionв поле Название. В основное поле добавьте следующие разрешения:path "sys/replication/dr/secondary/promote" { capabilities = [ "update" ] } path "sys/replication/dr/secondary/update-primary" { capabilities = [ "update" ] } path "sys/storage/raft/autopilot/state" { capabilities = [ "update" , "read" ] }Необходимо добавить политику, разрешающую доступ к пути sys/replication/dr/secondary/update-primary, в случае, когда в качестве постоянного хранилища для кластера StarVault используется встроенное хранилище. Подробнее об Автопилоте читайте в статье Автопилоты.
Нажмите Создать.
-
Откройте командную строку. Для этого нажмите на значок
в правом верхнем углу интерфейса. -
Выполните следующую команду, чтобы создать роль токена с именем failover-handler и прикрепленной политикой
dr-secondary-promotio.starvault write auth/token/roles/failover-handler \ allowed_policies=dr-secondary-promotion \ orphan=true \ renewable=false \ token_type=batchПример выводаSuccess! Data written to: auth/token/roles/failover-handler -
Создайте токен для роли failover-handler, выполнив следующую команду.
starvault write -force auth/token/create/failover-handlerПример выводаKey Value client_token b.AAAAAQLrXdVKfEpJdCxviVNYHOhk3J3X9g4fM3VB1M6v7rfkIL-f1NY1-p1D0OKxEuNpU31Q-BcwFzEq_6ze9hqtZItUTBV1UV9WZsJyrIYicCxdxUtGa4se0Y97D5dQ17Rnh accessor policies ["default", "dr-secondary-promotion"] token_policies ["default", "dr-secondary-promotion"] metadata null lease_duration 2764800 renewable false entity_id token_type batch orphan true mfa_requirement null num_uses 0Надежно сохраните токен. Он будет использоваться для повышения роли вторичного кластера DR до первичного.
С помощью CLI
-
На кластере A (основном кластере) создайте политику с именем
dr-secondary-promotionи добавьте в нее следующие разрешения:starvault policy write dr-secondary-promotion - <<EOF path "sys/replication/dr/secondary/promote" { capabilities = [ "update" ] } path "sys/replication/dr/secondary/update-primary" { capabilities = [ "update" ] } path "sys/replication/dr/secondary/generate-operation-token/attempt" { capabilities = ["create", "update", "delete"] } path "sys/storage/raft/autopilot/state" { capabilities = [ "update" , "read"] } EOFКроме того, можно добавить политику для пути
sys/replication/dr/secondary/update-primary, чтобы можно было использовать один и тот же токен операции DR для обновления первичного кластера, на который указывает вторичный кластер.Необходимо добавить политику, разрешающую доступ к пути sys/replication/dr/secondary/update-primary, в случае, когда в качестве постоянного хранилища для кластера StarVault используется встроенное хранилище. Подробнее об Автопилоте читайте в статье Автопилоты.
-
Убедитесь, что политика создана, выполнив команду:
starvault policy listПример выводаdefault dr-secondary-promotion root -
Создайте роль токена с именем failover-handler.
$ starvault write auth/token/roles/failover-handler \ allowed_policies=dr-secondary-promotion \ orphan=true \ renewable=false \ token_type=batch -
Создайте токен для роли failover-handler.
$ starvault token create -role=failover-handlerПример выводаKey Value --- ----- token hvb.AAAAAQIL13E0DXo9sq-1vaLJD1_69nfgb-qojEets9EkDTvWs_L_lXVFplXpIpXivr1qlrppxA0tqM4ckYG4dzISLMWqwpqLSQBgfllkd7N-xzsS0Bg7lVO7sb7B2FcWogM64SJshk9VDQajRskb3jZutWW_FLrUhWl5lKfL3j9CxIe5I73NRoYLbtLDEVsGOwQIYgTdNg token_accessor n/a token_duration 8h token_renewable false token_policies ["default" "dr-secondary-promotion"] identity_policies [] policies ["default" "dr-secondary-promotion"]Надежно сохраните токен. Он будет использоваться для повышения роли вторичного кластера DR до первичного.
С помощью API
-
На кластере A (основном кластере) создайте политику с именем dr-secondary-promotion, разрешающую выполнение update операции.
Сначала создайте полезную нагрузку JSON API, указав путь и возможности:
tee policy-payload.json <<'EOF' { "policy": "path \"sys/replication/dr/secondary/promote\" {\n capabilities = [ \"update\" ]\n}\n\npath \"sys/replication/dr/secondary/update-primary\" {\n capabilities = [ \"update\" ]\n}\n\npath \"sys/storage/raft/autopilot/state\" {\n capabilities = [ \"update\", \"read\" ]\n}\n" } EOFНеобходимо добавить политику, разрешающую доступ к пути
sys/replication/dr/secondary/update-primary, в случае, когда в качестве постоянного хранилища для кластера StarVault используется встроенное хранилище. Подробнее об Автопилоте читайте в статье Автопилоты. -
Создайте новую политику с именем dr-secondary-promotion.
curl --request PUT \ --header "X-Vault-Token: $VAULT_TOKEN" \ --data @policy-payload.json \ http://127.0.0.1:8200/v1/sys/policies/acl/dr-secondary-promotion -
Создайте роль токена с именем failover-handler. Сначала создайте полезную нагрузку JSON API для dr-secondary-promotion политики разрешений.
$ tee role-payload.json <<EOF { "allowed_policies": [ "dr-secondary-promotion" ], "orphan": true, "renewable": false, "token_type": "batch" } EOF -
Выполните API-запрос, используя role-payload.json, созданный на предыдущем шаге.
curl --request PUT \ --header "X-Vault-Token: $VAULT_TOKEN" \ -d @role-payload.json \ http://127.0.0.1:8200/v1/auth/token/roles/failover-handler -
Создайте токен для роли failover-handler.
curl --request POST \ --header "X-Vault-Token: $VAULT_TOKEN" \ http://127.0.0.1:8200/v1/auth/token/create/failover-handler | jq ".auth"Пример ответа:{ "client_token": "hvs.CAES...", "accessor": "AbCdEf...", "policies": ["default", "failover-handler"], "token_policies": ["default", "failover-handler"], "metadata": null, "lease_duration": 2764800, "renewable": true, "entity_id": "...", "token_type": "service", "orphan": false }