1.3. 키 관리자 배포
OpenStack Key Manager를 배포하려면 먼저 barbican 서비스에 대한 환경 파일을 생성하고 추가 환경 파일을 사용하여 오버클라우드를 재배포합니다. 그런 다음 생성자
역할에 사용자를 추가하여 barbican 보안을 생성 및 편집하거나 시크릿을 barbican에 저장하는 암호화된 볼륨을 생성합니다.
이 절차에서는 simple_crypto
백엔드를 사용하도록 barbican을 구성합니다. 다른 구성이 필요한 PKCS#11
및 HSM 사용 방법에 따라 다른 heat 템플릿 파일과 같은 추가 백엔드를 사용할 수 있습니다. KMIP, Hashicorp Vault 및 DogTag와 같은 기타 백엔드는 지원되지 않습니다.
사전 요구 사항
- 오버클라우드가 배포 및 실행 중
절차
언더클라우드 노드에서 barbican의 환경 파일을 만듭니다.
$ cat /home/stack/templates/configure-barbican.yaml parameter_defaults: BarbicanSimpleCryptoGlobalDefault: true
BarbicanSimpleCryptoGlobalDefault
는 이 플러그인을 글로벌 기본 플러그인으로 설정합니다.환경 파일에 다음 옵션을 추가할 수도 있습니다.
-
BarbicanPassword
- barbican 서비스 계정의 암호를 설정합니다. -
BarbicanWorkers
-barbican::wsgi::apache
의 작업자 수를 설정합니다. 기본적으로'%{::processorcount}'
를 사용합니다. -
BarbicanDebug
- 디버깅을 활성화합니다. -
BarbicanPolicies
- barbican에 대해 구성할 정책을 정의합니다. 해시 값을 사용합니다(예:{ barbican-context_is_admin: { key: context_is_admin, value: 'role:admin' } }
} . 그러면 이 항목이/etc/barbican/policy.json
에 추가됩니다. 정책은 이후 섹션에서 자세히 설명합니다. -
BarbicanSimpleCryptoKek
- none이 지정되지 않은 경우 director에서 KEK(Key Encryption Key)를 생성합니다.
-
스크립트에서 이전에 추가한 역할, 템플릿 또는 환경 파일을 제거하지 않고
openstack overcloud deploy
명령에 다음 파일을 추가합니다.- /usr/share/openstack-tripleo-heat-templates/environments/services/barbican.yaml
- /usr/share/openstack-tripleo-heat-templates/environments/barbican-backend-simple-crypto.yaml
- /home/stack/templates/configure-barbican.yaml
배포 스크립트를 다시 실행하여 배포에 변경 사항을 적용합니다.
$ openstack overcloud deploy \ --timeout 100 \ --templates /usr/share/openstack-tripleo-heat-templates \ --stack overcloud \ --libvirt-type kvm \ --ntp-server clock.redhat.com \ -e /home/stack/containers-prepare-parameter.yaml \ -e /home/stack/templates/config_lvm.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \ -e /home/stack/templates/network/network-environment.yaml \ -e /home/stack/templates/hostnames.yml \ -e /home/stack/templates/nodes_data.yaml \ -e /home/stack/templates/extra_templates.yaml \ -e /home/stack/container-parameters-with-barbican.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/services/barbican.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/barbican-backend-simple-crypto.yaml \ -e /home/stack/templates/configure-barbican.yaml \ --log-file overcloud_deployment_38.log
작성자
역할의 ID를 검색합니다.openstack role show creator +-----------+----------------------------------+ | Field | Value | +-----------+----------------------------------+ | domain_id | None | | id | 4e9c560c6f104608948450fbf316f9d7 | | name | creator | +-----------+----------------------------------+
참고OpenStack Key Manager(barbican)가 설치되어 있지 않으면
작성자
역할이 표시되지 않습니다.사용자를
작성자
역할에 할당하고 관련 프로젝트를 지정합니다. 이 예에서는project_a
프로젝트에서user1
이라는 사용자가작성자
역할에 추가됩니다.openstack role add --user user1 --project project_a 4e9c560c6f104608948450fbf316f9d7
검증
테스트 시크릿을 생성합니다. 예를 들면 다음과 같습니다.
$ openstack secret store --name testSecret --payload 'TestPayload' +---------------+------------------------------------------------------------------------------------+ | Field | Value | +---------------+------------------------------------------------------------------------------------+ | Secret href | https://192.168.123.163/key-manager/v1/secrets/4cc5ffe0-eea2-449d-9e64-b664d574be53 | | Name | testSecret | | Created | None | | Status | None | | Content types | None | | Algorithm | aes | | Bit length | 256 | | Secret type | opaque | | Mode | cbc | | Expiration | None | +---------------+------------------------------------------------------------------------------------+
방금 생성한 시크릿의 페이로드를 검색합니다.
openstack secret get https://192.168.123.163/key-manager/v1/secrets/4cc5ffe0-eea2-449d-9e64-b664d574be53 --payload +---------+-------------+ | Field | Value | +---------+-------------+ | Payload | TestPayload | +---------+-------------+