2.2.3. OAuth サーバーと組み合わせないサービスディスカバリーの設定
OAuth サーバーを使用しない状況で 3scale のサービスディスカバリーを設定する場合には、3scale Single Service Account を使用して OpenShift API サービスに対する認証を行うことができます。
前提条件
- OpenShift クラスター(バージョン 3.11 以降)に 3scale 1.2 をデプロイする必要があります。
- 3scale を OpenShift にデプロイするには、3scale-amp-openshift-templates を使用する必要があります。
- 3scale でサービスディスカバリーを使用する 3scale ユーザーは、OpenShift クラスターにアクセスできる必要があります。
手順
3scale プロジェクトをアクティブなプロジェクトにします。
oc project <3scale-project>
$ oc project <3scale-project>Copy to Clipboard Copied! Toggle word wrap Toggle overflow エディターで 3scale サービスディスカバリーの設定を開きます。
oc edit configmap system
$ oc edit configmap systemCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のように設定されていることを確認します。
service_discovery.yml: production: enabled: <%= cluster_token_file_exists = File.exists?(cluster_token_file_path = '/var/run/secrets/kubernetes.io/serviceaccount/token') %> bearer_token: "<%= File.read(cluster_token_file_path) if cluster_token_file_exists %>" authentication_method: service_accountservice_discovery.yml: production: enabled: <%= cluster_token_file_exists = File.exists?(cluster_token_file_path = '/var/run/secrets/kubernetes.io/serviceaccount/token') %> bearer_token: "<%= File.read(cluster_token_file_path) if cluster_token_file_exists %>" authentication_method: service_accountCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のいずれかのオプションに従って、3scale デプロイメントの
ampサービスアカウントに、検出可能なサービスが含まれるプロジェクトを表示するための適切な権限を付与します。Fuse Online プロジェクトに切り替え、
viewcluster level パーミッションを持つ 3scale デプロイメントのampサービスアカウントを付与します。oc project <fuseonline project> oc adm policy add-cluster-role-to-user view system:serviceaccount:<3scale-project>:amp
oc project <fuseonline project> oc adm policy add-cluster-role-to-user view system:serviceaccount:<3scale-project>:ampCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 『Developer Guide』の「Service Accounts」で説明するように、より厳しいポリシーを適用する。