3.4. OpenShift 서비스에서 Red Hat OpenStack Services에 대한 안전한 액세스 제공
OpenShift(RHOSO) 서비스 Pod의 Red Hat OpenStack Services에 대한 보안 액세스를 제공하려면 Secret CR(사용자 정의 리소스)을 생성해야 합니다.
컨트롤 플레인이 배포된 후에는 서비스 암호를 변경할 수 없습니다. 컨트롤 플레인을 배포한 후 osp-secret 에서 서비스 암호가 변경되면 새 암호를 사용하도록 서비스가 재구성되지만 ID 서비스(keystone)에서 암호가 업데이트되지 않습니다. 이로 인해 서비스가 중단됩니다.
프로세스
-
워크스테이션에
SecretCR 파일을 생성합니다(예:openstack_service_secret.yaml). openstack_service_secret.yaml에 다음 초기 구성을 추가합니다.apiVersion: v1 data: AdminPassword: <base64_password> AodhPassword: <base64_password> AodhDatabasePassword: <base64_password> BarbicanDatabasePassword: <base64_password> BarbicanPassword: <base64_password> BarbicanSimpleCryptoKEK: <base64_fernet_key> CeilometerPassword: <base64_password> CinderDatabasePassword: <base64_password> CinderPassword: <base64_password> DatabasePassword: <base64_password> DbRootPassword: <base64_password> DesignateDatabasePassword: <base64_password> DesignatePassword: <base64_password> GlanceDatabasePassword: <base64_password> GlancePassword: <base64_password> HeatAuthEncryptionKey: <base64_password> HeatDatabasePassword: <base64_password> HeatPassword: <base64_password> IronicDatabasePassword: <base64_password> IronicInspectorDatabasePassword: <base64_password> IronicInspectorPassword: <base64_password> IronicPassword: <base64_password> KeystoneDatabasePassword: <base64_password> ManilaDatabasePassword: <base64_password> ManilaPassword: <base64_password> MetadataSecret: <base64_password> NeutronDatabasePassword: <base64_password> NeutronPassword: <base64_password> NovaAPIDatabasePassword: <base64_password> NovaAPIMessageBusPassword: <base64_password> NovaCell0DatabasePassword: <base64_password> NovaCell0MessageBusPassword: <base64_password> NovaCell1DatabasePassword: <base64_password> NovaCell1MessageBusPassword: <base64_password> NovaPassword: <base64_password> OctaviaDatabasePassword: <base64_password> OctaviaPassword: <base64_password> PlacementDatabasePassword: <base64_password> PlacementPassword: <base64_password> SwiftPassword: <base64_password> kind: Secret metadata: name: osp-secret namespace: openstack type: Opaque&
lt;base64_password>를 base64로 인코딩된 32자 키로 바꿉니다. 다음 명령을 사용하여 base64로 인코딩된 암호를 수동으로 생성할 수 있습니다.$ echo -n <password> | base64또는 Linux 워크스테이션을 사용하고
cat과 같은 Bash 명령을 사용하여SecretCR 정의 파일을 생성하는 경우 <base64_password>를 다음 명령으로 교체하여 각 서비스에 대한 임의의 암호를 자동으로 생성할 수 있습니다.$(tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 32 | base64)<
;base64_fernet_key>를 base64로 인코딩된 fernet 키로 바꿉니다. 다음 명령을 사용하여 수동으로 생성할 수 있습니다.python3 -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode('UTF-8'))" | base64
참고HeatAuthEncryptionKey암호는 오케스트레이션 서비스(heat) 암호화의 32자 키여야 합니다. 다른 모든 서비스의 암호 길이를 늘리면HeatAuthEncryptionKey암호가 32인지 확인하십시오.클러스터에
SecretCR을 생성합니다.$ oc create -f openstack_service_secret.yaml -n openstackSecretCR이 생성되었는지 확인합니다.$ oc describe secret osp-secret -n openstack