7.4. Red Hat OpenStack Services on OpenShift へのセキュアなアクセスの提供
Red Hat OpenStack Services on OpenShift (RHOSO) サービス Pod へセキュアなアクセスを提供するには、Secret カスタムリソース (CR) を作成する必要があります。次の手順では、各サービスに必要なパスワード形式を持つ Secret CR を作成します。
必要なパスワードと fernet キーを生成する Secret CR の例については、RHOSO サービス Pod への安全なアクセスのための Secret CR の例 を参照してください。
コントロールプレーンをデプロイした後にサービスパスワードを変更することはできません。コントロールプレーンをデプロイした後に osp-secret でサービスパスワードが変更されると、サービスは新しいパスワードを使用するように再設定されますが、Identity サービス (keystone) ではパスワードは更新されません。その結果、サービスが停止します。
前提条件
- python3-cryptography がインストールされている。
手順
-
ワークステーションに
SecretCR (例:openstack_service_secret.yaml) を作成します。 openstack_service_secret.yamlに次の初期設定を追加します。apiVersion: v1 data: AdminPassword: <base64_password> AodhPassword: <base64_password> BarbicanPassword: <base64_password> BarbicanSimpleCryptoKEK: <base64_fernet_key> CeilometerPassword: <base64_password> CinderPassword: <base64_password> DbRootPassword: <base64_password> DesignatePassword: <base64_password> GlancePassword: <base64_password> HeatAuthEncryptionKey: <base64_password> HeatPassword: <base64_password> IronicInspectorPassword: <base64_password> IronicPassword: <base64_password> ManilaPassword: <base64_password> MetadataSecret: <base64_password> NeutronPassword: <base64_password> NovaPassword: <base64_password> OctaviaPassword: <base64_password> PlacementPassword: <base64_password> SwiftPassword: <base64_password> kind: Secret metadata: name: osp-secret namespace: openstack type: Opaque<base64_password>を、base64 でエンコードされた 32 文字のキーに置き換えます。注記HeatAuthEncryptionKeyパスワードは、Orchestration サービス (heat) 暗号化用の 32 文字のキーである必要があります。それ以外の全サービスでパスワードの長さを増やす場合は、HeatAuthEncryptionKeyのパスワードの長さが 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)
クラスターに
SecretCR を作成します。$ oc create -f openstack_service_secret.yaml -n openstackSecretCR が作成されたことを確認します。$ oc describe secret osp-secret -n openstack
7.4.1. RHOSO サービス Pod へのセキュアなアクセスのための Secret CR の例 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenStack Services on OpenShift (RHOSO) サービス Pod へセキュアなアクセスを提供するには、Secret カスタムリソース (CR) ファイルを作成する必要があります。
Linux ワークステーションを使用している場合は、必要なパスワードと fernet キーを生成する次の Bash cat コマンドを使用して、openstack_service_secret.yaml という Secret CR ファイルを作成できます。
$ cat <<EOF > openstack_service_secret.yaml
apiVersion: v1
data:
AdminPassword: $(tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 32 | base64)
AodhPassword: $(tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 32 | base64)
BarbicanPassword: $(tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 32 | base64)
BarbicanSimpleCryptoKEK: $(python3 -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode('UTF-8'))" | base64)
CeilometerPassword: $(tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 32 | base64)
CinderPassword: $(tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 32 | base64)
DbRootPassword: $(tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 32 | base64)
DesignatePassword: $(tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 32 | base64)
GlancePassword: $(tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 32 | base64)
HeatAuthEncryptionKey: $(tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 32 | base64)
HeatPassword: $(tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 32 | base64)
IronicInspectorPassword: $(tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 32 | base64)
IronicPassword: $(tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 32 | base64)
ManilaPassword: $(tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 32 | base64)
MetadataSecret: $(tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 32 | base64)
NeutronPassword: $(tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 32 | base64)
NovaPassword: $(tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 32 | base64)
OctaviaHeartbeatKey $(tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 32 | base64)
OctaviaPassword: $(tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 32 | base64)
PlacementPassword: $(tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 32 | base64)
SwiftPassword: $(tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 32 | base64)
kind: Secret
metadata:
name: osp-secret
namespace: openstack
type: Opaque
EOF