Вопрос или проблема
Я настроил кластер HA Vault из 3 узлов с помощью Ansible playbook, который я разработал. У меня есть рабочая среда кластера Ceph из 3 узлов (Reef), использующая cephadm (https://computingforgeeks.com/install-ceph-storage-cluster-on-ubuntu-linux-servers/).
Теперь мне нужно настроить шифрование бакета SSE-S3 для окружения, используя “транзитный” движок и способ RGW Agent (rgw crypt vault auth = agent), но инструкции, приведенные здесь (https://docs.ceph.com/en/quincy/radosgw/vault/), очень запутанные, так как конфигурации токена и агента перепутаны.
Существует ли Ansible playbook, который упростит эту задачу?
Ответ или решение
Настройка Ceph с шифрованием S3 Bucket с использованием Hashicorp Vault и Ansible
Настройка Ceph для работы с зашифрованными ведрами S3 при помощи Hashicorp Vault и Ansible — это отличный способ защитить данные и обеспечить высокоуровневую безопасность в вашей среде хранения. В данной инструкции мы шаг за шагом проведем настройку шифрования SSE-S3 для ведер Ceph с использованием механизма "transit" и агента RGW.
Шаг 1: Предварительная подготовка
- Убедитесь, что Ceph и Vault установлены и работают. У вас уже есть 3-узловый кластер Vault и 3-узловый кластер Ceph, установленный с использованием cephadm.
- Проверьте сетевую доступность. Убедитесь, что узлы Ceph могут взаимодействовать с узлами Vault, чтобы избежать проблем с подключением.
Шаг 2: Настройка Vault
-
Инициализируйте и разблокируйте кластер Vault. Если вы еще не сделали этого, выполните команду для инициализации:
vault operator init
Запишите ключи и токен, так как они понадобятся вам позже.
-
Установите конфигурацию механизма шифрования Transit. Создайте путь для шифрования:
vault secrets enable transit vault write transit/keys/my-key
Шаг 3: Настройка RGW с использованием Ansible
Создание Ansible playbook может значительно упростить процесс интеграции Vault и Ceph. Пример playbook может выглядеть следующим образом:
---
- name: Настройка шифрования для RGW Ceph с помощью Vault
hosts: ceph_nodes
become: true
tasks:
- name: Установить зависимости
apt:
name:
- ceph-radosgw
- jq
state: present
- name: Настройка токена для доступа к Vault
command: |
vault token create -policy=my-policy -renewable=true -ttl=1h | jq -r .auth.client_token
register: vault_token
- name: Настройка RGW для интеграции с Vault
command: |
ceph config set rgw rgw_crypt_vault_auth agent
ceph config set rgw rgw_crypt_vault_addr http://<vault_address>:8200
ceph config set rgw rgw_crypt_vault_token {{ vault_token.stdout }}
ceph config set rgw rgw_crypt_vault_key my-key
args:
warn: false
- name: Перезапустить сервис rgw
systemd:
name: ceph-rgw@rgw.<instance>
state: restarted
Шаг 4: Создание ведра и активация шифрования
Теперь, когда RGW настроен для работы с Vault, вы можете создать ведро и активировать шифрование SSE-S3:
-
Создайте ведро (если еще не создано):
radosgw-admin bucket create --bucket=<my-bucket> --uid=<user-id>
-
Активируйте шифрование для ведра:
radosgw-admin bucket stats --bucket=<my-bucket> --set-sse=s3
Шаг 5: Проверка конфигурации
После выполнения всех шагов, вам следует проверить, что RGW корректно интегрирован с Vault и шифрование ведер S3 работает должным образом:
-
Проверьте статус сервисов:
systemctl status ceph-rgw@rgw.<instance>
-
Проверьте доступ к шифрованным данным:
Вы можете протестировать загрузку и доступ к данным, используя S3 клиенты, как AWS CLI, чтобы убедиться в наличии доступа.
Заключение
В этом руководстве мы рассмотрели основные шаги настройки шифрования ведер S3 в Ceph с использованием Hashicorp Vault через Ansible. Автоматизация данного процесса с помощью Ansible позволяет упростить и ускорить развертывание, а также минимизировать количество ошибок. Не забывайте регулярно проверять документацию Ceph и Hashicorp Vault для получения актуальной информации и обновлений.