6.5.7. Vault를 사용하도록 Ceph Object Gateway 구성

H¢Corp Vault를 사용하도록 Ceph Object Gateway를 구성하려면 암호화 키 저장소로 설정해야 합니다. 현재 Ceph Object Gateway는 두 가지 비밀 엔진과 두 가지 다른 인증 방법을 지원합니다.

사전 요구 사항

  • 실행 중인 Red Hat Ceph Storage 클러스터.
  • Ceph Object Gateway 소프트웨어 설치.
  • Ceph Object Gateway 노드에 대한 루트 수준 액세스.

절차

  1. ceph config set client.rgw OPTION VALUE 명령을 사용하여 암호화 키 저장소로 Vault를 활성화합니다.

    구문

    ceph config set client.rgw rgw_crypt_s3_kms_backend vault

  2. 다음 옵션과 값을 추가합니다.

    구문

    ceph config set client.rgw rgw_crypt_vault_auth agent
    ceph config set client.rgw rgw_crypt_vault_addr http://VAULT_SERVER:8100

  3. 사용 사례에 따라 정책을 사용자 지정합니다.
  4. role-id를 가져옵니다.

    예제

    [root@rgw ~]# vault read auth/approle/role/rgw-ap/role-id -format=json | \ jq -r .data.role_id > _PATH_TO_FILE_

  5. secret-id를 가져옵니다.

    예제

    [root@rgw ~]# vault read auth/approle/role/rgw-ap/role-id -format=json | \ jq -r .data.secret_id > _PATH_TO_FILE_

  6. Vault 에이전트에 대한 구성을 생성합니다.

    예제

    pid_file = "/run/kv-vault-agent-pid"
    auto_auth {
      method "AppRole" {
        mount_path = "auth/approle"
        config = {
          role_id_file_path ="/root/vault_configs/kv-agent-role-id"
          secret_id_file_path ="/root/vault_configs/kv-agent-secret-id"
          remove_secret_id_file_after_reading ="false"
        }
      }
    }
    cache {
      use_auto_auth_token = true
    }
    listener "tcp" {
      address = "127.0.0.1:8100"
      tls_disable = true
    }
    vault {
      address = "http://10.8.128.9:8200"
    }

  7. systemctl을 사용하여 영구 데몬을 실행합니다.

    예제

    [root@rgw ~]# /usr/local/bin/vault agent -config=/usr/local/etc/vault/rgw-agent.hcl

  8. Vault 에이전트가 실행될 때 토큰 파일은 유효한 토큰으로 채워집니다.
  9. Vault 비밀 엔진(키/값 또는 Transit)을 선택합니다.

    1. Key/Value 를 사용하는 경우 다음 행을 추가합니다.

      예제

      [root@rgw ~]# ceph config set client.rgw rgw_crypt_vault_secret_engine kv

    2. Transit 을 사용하는 경우 다음 행을 추가합니다.

      예제

      [root@rgw ~]# ceph config set client.rgw rgw_crypt_vault_secret_engine transit

  10. ceph config set client.rgw OPTION VALUE 명령을 사용하여 Vault 네임스페이스를 설정하여 암호화 키를 검색합니다.

    예제

    [root@rgw ~]# ceph config set client.rgw rgw_crypt_vault_namespace testnamespace1

  11. 경로 접두사를 설정하여 Ceph Object Gateway에서 Vault에서 암호화 키를 검색하는 위치를 제한합니다.

    예제

    [root@rgw ~]# ceph config set client.rgw rgw_crypt_vault_prefix /v1/secret/data

    1. 내보낼 수 있는 전송 키의 경우 다음과 같이 접두사 경로를 설정합니다.

      예제

      [root@rgw ~]# ceph config set client.rgw rgw_crypt_vault_prefix /v1/transit/export/encryption-key

      Vault 서버의 도메인 이름이 vault-server 라고 가정하면 Ceph Object Gateway는 다음 URL에서 암호화된 전송 키를 가져옵니다.

      예제

      http://vault-server:8200/v1/transit/export/encryption-key

  12. Ceph Object Gateway 데몬을 다시 시작합니다.

    1. 스토리지 클러스터의 개별 노드에서 Ceph Object Gateway를 다시 시작하려면 다음을 수행합니다.

      구문

      systemctl restart ceph-CLUSTER_ID@SERVICE_TYPE.ID.service

      예제

      [root@rgw]# systemctl restart ceph-c4b34c6f-8365-11ba-dc31-529020a7702d@rgw.realm.zone.node1.gwasto.service

    2. 스토리지 클러스터의 모든 노드에서 Ceph Object Gateway를 다시 시작하려면 다음을 수행합니다.

      구문

      ceph orch restart SERVICE_TYPE

      예제

      [root@rgw]# ceph orch restart rgw

추가 리소스

  • 자세한 내용은 Red Hat Ceph Storage Object Gateway Configuration and Administration GuideVault용 Secret Engine 섹션을 참조하십시오.
  • 자세한 내용은 Red Hat Ceph Storage Object Gateway Configuration and Administration GuideVault에 대한 인증 섹션을 참조하십시오.