エージェントインストールガイド
概要
ここでは、Kubernetesの環境でContrastエージェントをデプロイする方法について説明します。本項を参考にご利用の環境に合わせた方法で、アプリケーションにContrastエージェントをインストールし、必要に応じてチーム内で共有してください。
本項では主に、KubernetesにデプロイされたアプリケーションにContrastエージェントを組み込むための最も一般的な方法について説明します。
主な手順
本項では、以下を行います。
- Kubernetes Secretを作成
- Secretを使用してContrastエージェントを設定
- Contrastの設定をロードするためにdeploymentを編集
- Kubernetesへアプリケーションをデプロイ
本項は以下を前提としております:
- DevOpsの実践とKubernetesの仕組みに関してある程度の知識があること
- ContrastエージェントがContrastサーバに接続するための必要な情報があること:Contrastエージェントの設定
- Contrastエージェントが既にコンテナイメージ内にインストールされていること。コンテナにContrastエージェントをインストールする方法については、言語別の説明を参照してください:
Docker環境での.NET Coreエージェント [こちらを参照]
Docker環境でのJavaエージェント [こちらを参照]
Docker環境でのNode.jsエージェント [こちらを参照]
Docker環境でのPythonエージェント[こちらを参照]
Docker環境でのRubyエージェント [こちらを参照]
手順
本項の手順では、Kubernetes Secretsを使用してContrastエージェントの設定を作成し、その設定をKubernetesのdeploymentの仕様(spec)によってコンテナに取り込む方法を説明していきます。
1. Kubernetes Secretを作成
ContrastエージェントのAPIキーなどの機密情報については、Kubernetes Secretsを使用する必要があります。Contrastエージェントの設定は、認証情報も含めてYAMLファイルを使用して保存します。 本項では、便宜上、認証情報と設定オプションをすべて1つのSecretに保存します。これは、ConfigMapとSecretの両方で別々に行うこともできます。
Kubernetes Secretを作成するには、2つのオプションがあります。
- オプション1 :Secretオブジェクトを手動で作成
- オプション2 :パイプラインでSecretオブジェクトを自動で作成
オプション 1:Secretオブジェクトを手動で作成
Contrast UI(Webインターフェイス)からcontrast_security.yamlファイルをダウンロードします。このファイルには、次のような値があるはずです。
api: |
contrast_security.yamlファイルにには、アプリケーションのその他の情報やエージェント固有の設定情報を追加することもできます(Docker環境での言語別デプロイ手順に記載されておりますので、そちらを参照ください)。そして、以下のコマンドを実行して、Secretを作成します。
$ kubectl create secret generic contrast-security --from-file=./contrast_security.yaml
|
オプション 2: パイプラインでSecretオブジェクトを自動で作成
まず、以下のファイルを作成して、コードでSecretを定義します。デプロイツールを使用して、テンプレート変数を探して置換します。次のような定義を使用して、Secretを保存します。
apiVersion: v1 |
次に、以下のコマンドを実行して、このファイルからSecretを作成します。
$ kubectl apply -f <secret_filename>
|
2. Kubernetesのデプロイを作成
Secretオブジェクトを作成したら、そのSecretはKubernetes内の他の場所(deploymentなど)で利用できるようになります。例えば、Secretをコンテナ内のボリュームとしてマウントとして、contrast_security.yamlファイルを利用可能にします。 CONTRAST_CONFIG_PATH環境変数によってこのファイルの場所を指定することで、マウントされた設定をエージェントに伝えることができます。
apiVersion: apps/v1 |
以下のコマンドを使用して、デプロイを適用します。
$ kubectl apply -f <deployment_filename>
|
FAQ
- 作成したSecretオブジェクトの設定を表示するには、どうすればよいですか?
Secretの内容を確認するには、以下のコマンドを実行します。
$ kubectl get secret contrast-security -o yaml
|
上記のコマンドによって、次のような内容が表示されます。データは、base64でエンコードされます。
apiVersion: v1 |
dataセクションをコピーして手動でデコードできます。または、以下のコマンドを実行すると、Secret内のdata部分だけを出力し、base64でデコードすることができます。
$ kubectl get secret contrast-security -o=custom-columns=':data.contrast_security\.yaml' | base64 -d
|
出力は、次のようになります。
api: |