目次

サービス証明書を置き換える

Deep Security Smart Check の初期設定のインストールでは、 example.comの自己署名TLS証明書が作成されます。この証明書は、 Deep Security Smart Check をアップグレードしたり、 helm upgradeを使用してアップデートを実行したりするたびに再生成されるため、ユーザは安全でない通信を受け入れる習慣になり、証明書の警告をクリックしなければならないことに煩わされる場合があります。

ユーザのセキュリティと使いやすさを向上させるには、この証明書を、信頼された認証局によって発行された正しいホストとアドレスの情報を含む独自の証明書に置き換えます。

事前レジストリ検索を有効にする場合も、初期設定の証明書を置き換える必要があります。

  1. 信頼された認証局から証明書を取得します。証明書と秘密鍵の2つの関連ファイルがあります。認証局が中間証明書を含むファイルも提供する場合は、証明書をチェーンにまとめたコンポジットファイルを作成します。

    cat certificate.pem intermediates.pem > chain.pem
  2. 証明書と鍵を使用してKubernetes TLSシークレットを作成します。

    kubectl create secret tls dssc-proxy-certificate \
      --namespace default \
      --cert=path/to/chain.pem \
      --key=path/to/key.pem

    シークレットはサービスと同じ名前空間に存在する必要があります。 Deep Security Smart Check を default以外のネームスペースにインストールした場合は、正しいネームスペースを使用するようにコマンドを変更します。

  3. overrides.yaml ファイルに証明書シークレットの名前を含めます。

    certificate:
      secret:
        name: dssc-proxy-certificate
  4. サービスをアップデートします。

    helm upgrade \
      --values overrides.yaml \
      deepsecurity-smartcheck \
      https://github.com/deep-security/smartcheck-helm/archive/master.tar.gz

    Deep Security Smart Checkの特定のバージョンを使用している場合は、コマンドでバージョン番号を使用します。たとえば、バージョン1.2.0を使用する場合、コマンドは次のようになります。

    helm upgrade \
      --values overrides.yaml \
      deepsecurity-smartcheck \
      https://github.com/deep-security/smartcheck-helm/archive/1.2.0.tar.gz
  5. proxy ポッドを再起動します。

    kubectl delete pods \
      --namespace default \
      -l "service=proxy,release=deepsecurity-smartcheck"

    Kubernetesは自動的に proxy ポッドを再起動します。

proxy ポッドが再起動すると、サービスが新しい証明書を使用していることを確認できます。

自動生成された証明書に戻す

上記の手順を取り消す必要がある場合は、自動生成された証明書に戻すことができます。

  1. overrides.yaml ファイルから証明書シークレット名のオーバーライドを削除します。

  2. サービスをアップデートします。

    helm upgrade \
      --values overrides.yaml \
      deepsecurity-smartcheck \
      https://github.com/deep-security/smartcheck-helm/archive/master.tar.gz
  3. proxy ポッドを再起動します。

    kubectl delete pods \
      --namespace default \
      -l "service-proxy,release=deepsecurity-smartcheck"

    Kubernetesは自動的に proxy ポッドを再起動します。

proxy ポッドが再起動すると、サービスで自動生成された証明書が使用されていることを確認できます。

Amazon Certificate Manager / AWS Identity and Access Management 証明書を Deep Security Smart Checkで使用する方法

Amazon EKSで Deep Security Smart Check を実行していて、ロードバランサ(初期設定)を使用している場合は、 Amazon Certificate Manager または AWS Identity and Access Managementの証明書を使用できます。

overrides.yaml ファイルに次の行を追加します。

service:
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:[region]:[account-id]:certificate/[certificate-id]
    service.beta.kubernetes.io/aws-load-balancer-backend-protocol: https
    service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "443,5000"

ここで、値は使用する証明書の ARNであり、 helm upgrade を実行して新しいオーバーライドを適用します。

AWSにインポートする証明書がある場合の手順と制限事項については、「Classic Load BalancersのSSL / TLS証明書」を参照してください。

これらのアノテーションは、KubernetesのAWSロードバランサコントローラによって定義されます。これらの注釈や、Kubernetesが作成するロードバランサに割り当てるセキュリティグループの指定方法など、存在するその他のオプションの詳細については、 Kubernetesのドキュメント を参照してください。