このページのトピック
事前レジストリ検索の設定
Deep Security Smart Check を使用すると、イメージが実稼働レジストリに到達する前に、そのイメージを確実に検索できます。
初期設定のサービス証明書を置き換える
まだ行っていない場合は、「 サービス証明書の置き換え 」の手順に従って、サービスの有効な証明書を設定してください。
Deep Security Smart Checkで検索レジストリを有効にする
検索用のレジストリが用意されており、 Deep Security Smart Check 環境で有効にできます。検索プロセスでは、イメージの検索中、イメージがこのレジストリに一時的に保存されます。このレジストリは本番のレジストリとは別であるため、イメージが検索される前に誤ってイメージが配信されることを心配する必要はありません。
検索レジストリを有効にするには、 overrides.yaml
ファイルに次の内容が含まれていることを確認します。
registry:
enabled: true
auth:
username: registryUser
password: registryPassword
置換された証明書のオーバーライドに加えて、 helm install
または helm upgrade
コマンドを実行します。
registryUser
と registryPassword
をサイト固有の値に置き換えます。
Deep Security Smart Check の組み込みレジストリは、事前レジストリ検索のみを目的としています。このレジストリにプッシュされたイメージは定期的に削除されます。
service.httpsPort
、 service.httpPort
および service.registryPort
はすべて一意である必要があります。
ビルドホストに検索レジストリの証明書をインストールする
サービス証明書がビルドホストで信頼されていない場合は、ビルドホストで Docker デーモンを設定して、 Deep Security Smart Check サービス証明書を信頼する必要があります。
Deep Security Smart Check 証明書を取得する
証明書が dssc-proxy-certificate
という名前のKubernetesシークレットに保存されている場合は、次のコマンドを使用して Deep Security Smart Check クラスタから証明書を取得できます。
kubectl get secret dssc-proxy-certificate -o go-template='{{index .data "tls.crt" | base64decode}}'
このコマンドを使用するには、 kubectl
バージョン1.11.0(2018年6月)以降が必要です。
証明書データをファイルに保存します。
ビルドホストに証明書をインストールする
前の手順で作成した証明書ファイルをビルドホストの次の場所にコピーします。 smartcheck.example.com
を、 Deep Security Smart Check サービスに割り当てられたホスト名に置き換えます。初期設定とは異なるポートを使用している場合は、 5000
を使用しているポート番号に置き換えます。
/etc/docker/certs.d/smartcheck.example.com:5000/ca.crt
ビルドホストで Docker daemonを再起動する必要はありません。
Deep Security Smart Check プラグインをJenkins用に設定する
これらの手順を実行するには、プラグインのv1.1.0が必要です。古いバージョンを使用している場合は、このサンプルを使用する前にアップグレードしてください。
Jenkins用の Deep Security Smart Check プラグインを使用している場合は、次に示すように、 Jenkinsfile
の smartcheckScan
呼び出しに preRegistry
パラメータを追加します。
stage("Deep Security Smart Check scan") {
smartcheckScan([
imageName: "registry.example.com/my-project/my-image",
smartcheckHost: "smartcheck.example.com",
smartcheckCredentialsId: "smartcheck-auth",
preregistryScan: true,
preregistryCredentialsId: "preregistry-auth",
])
}
このステージは、パイプラインに必要なテストステージと並行して実行できます。
上記の smartcheckCredentialsId
および preregistryCredentialsId
は、それぞれ Deep Security Smart Check および組み込みレジストリにアクセスするために作成したJenkins資格情報を参照します。
smartcheckCredentialsId
の場合は、 Administrator
または User
の役割を持つ Deep Security Smart Check ユーザのユーザ名とパスワードを使用して、Jenkinsで「ユーザ名とパスワード」資格情報を作成します。この資格情報のIDを smartcheckCredentialsId
の値として指定します。
preregistryCredentialsId
の場合、上記の Deep Security Smart Checkで検索レジストリを有効にする の説明に従って overrides.yaml
ファイルに入力した registry.auth.username
と registry.auth.password
を使用して、Jenkinsで「パスワード付きユーザー名」クレデンシャルを作成します。この資格情報のIDを preregistryCredentialsId
の値として指定します。