第16章 RGW にアクセスするアプリケーションでの TLS 証明書の使用
ほとんどの S3 アプリケーションでは、デプロイメント設定ファイルに含める、要求でファイルとして渡す、/etc/pki パスに保存するなどの形で、TLS 証明書が必要です。
RADOS Object Gateway (RGW) の TLS 証明書は Kubernetes シークレットとして保存され、詳細はこのシークレットから取得する必要があります。
前提条件
実行中の OpenShift Data Foundation クラスター。
手順
内部 RGW サーバーの場合
kubernetes シークレットから TLS 証明書と鍵を取得します。
$ oc get secrets/<secret_name> -o jsonpath='{.data..tls\.crt}' | base64 -d $ oc get secrets/<secret_name> -o jsonpath='{.data..tls\.key}' | base64 -d- <secret_name>
-
デフォルトの kubernetes シークレット名は
<objectstore_name>-cos-ceph-rgw-tls-certです。オブジェクトストアの名前を指定します。
外部 RGW サーバーの場合
kubernetes シークレットから TLS 証明書を取得します。
$ oc get secrets/<secret_name> -o jsonpath='{.data.cert}' | base64 -d- <secret_name>
-
デフォルトの kubernetes シークレット名は
ceph-rgw-tls-certで、Opaque タイプのシークレットです。TLS 証明書を格納するためのキー値はcertです。
16.1. OpenShift Data Foundation での外部 RGW サーバーへのアクセス リンクのコピーリンクがクリップボードにコピーされました!
Object Bucket Claim を使用して外部 RGW サーバーにアクセスする
AccessKey や Secret Key などの S3 認証情報は、Object Bucket Claim (OBC) の作成によって生成されるシークレットに保存され、次のコマンドを使用して取得できます。
# oc get secret <object bucket claim name> -o jsonpath='{.data.AWS_SECRET_ACCESS_KEY}' | base64 --decode
# oc get secret <object bucket claim name> -o jsonpath='{.data.AWS_ACCESS_KEY_ID}' | base64 --decode
同様に、OBC の configmap からエンドポイントの詳細を取得できます。
# oc get cm <object bucket claim name> -o jsonpath='{.data.BUCKET_HOST}'
# oc get cm <object bucket claim name> -o jsonpath='{.data.BUCKET_PORT}'
# oc get cm <object bucket claim name> -o jsonpath='{.data.BUCKET_NAME}'
Ceph Object Store User CR を使用して外部 RGW サーバーにアクセスする
Ceph Object Store User CR の一部として生成されたシークレットから S3 認証情報とエンドポイントの詳細を取得できます。
# oc get secret rook-ceph-object-user-<object-store-cr-name>-<object-user-cr-name> -o jsonpath='{.data.AccessKey}' | base64 --decode
# oc get secret rook-ceph-object-user-<object-store-cr-name>-<object-user-cr-name> -o jsonpath='{.data.SecretKey}' | base64 --decode
# oc get secret rook-ceph-object-user-<object-store-cr-name>-<object-user-cr-name> -o jsonpath='{.data.Endpoint}' | base64 --decode
どちらのアクセスメカニズムの場合も、管理者に新しい証明書を要求するか、Kubernetes シークレット ceph-rgw-tls-cert の証明書を再利用することができます。