目次

EKSを使用してDeep Security Smart CheckをAWS Fargateにインストールする

Elastic Kubernetes System(EKS)を使用して AWS Fargate に Smart Check をインストールするには、標準の Install Deep Security Smart Checkとは異なる手順が必要なのはなぜですか?

  • EKSを使用するAWS Fargateで外部データベースを使用する必要があります。AWS Fargate は、AWS Elastic File System(EFS)を介してのみ永続ボリュームをサポートしますが、これはお勧めしません。

  • AWS Fargate は、 AWS Load Balancer Controllerを通じてのみロードバランサをサポートします。

以下は、EKSを使用して AWS Fargate に Smart Check をインストールする手順です。

  1. Helm 3を使用していることを確認します。
    (この手順はHelm 2では機能しません)。
    helm version

  2. 最新バージョンのeksctlがインストールされていることを確認します。インストール手順は、 こちらです。

  3. eksctlを使用してクラスタを作成します。
    eksctl create cluster --region=<us-east-1> --name=<clustername-eks> --fargate

  4. クラスタが作成されるまで最大20分かかります。

  5. 次のコマンドを使用して、kubetclがクラスタに接続されていることを確認します。
    kubectl get nodes
    一部のFargateノードが返されます。

  6. AWS Load Balancer Controller を ここ で説明するようにデプロイします。.

  7. 次のコマンドを使用して、コントローラがインストールされていることを確認します。
    kubectl get deployment -n kube-system aws-load-balancer-controller

  8. Smart Check で使用する データベース を作成します。

    データベースがクラスタに適切にネットワークアクセスできることを確認します。同じ仮想プライベートクラウドを使用し、セキュリティグループを変更して、セキュリティグループ自体のポート5432を許可することをお勧めします。

  9. 外部データベースへのTLS接続を許可するための設定マップを作成します。
    kubectl create configmap dssc-db-trust --from-file=ca=rds-ca-2019-root.pem
    rds-ca-2019-root.pemをダウンロードするには、 ここをクリックします。

  10. 通常の最小容量を超える1GBのvCPUと3GBのメモリにリソースを割り当てる overrides.yaml ファイルを作成します。詳細については、 ここを参照してください。

    auth:
      secretSeed: "<some random characters>"
    service:
      type: LoadBalancer
      annotations:
        service.beta.kubernetes.io/aws-load-balancer-type: "nlb-ip"
    db:
      user: "postgres"
      password: "<db password>"
      host: "<db hostname>"
      port: "5432"
      tls:
        ca:
          valueFrom:
            configMapKeyRef:
              name: "dssc-db-trust"
              key: "ca"
    resources:
      vulnerabilityScan:
        requests:
          cpu: 1000m
          memory: 3Gi
        limits:
          cpu: 1000m
          memory: 3Gi
    
  11. 次のコマンドでプロビジョニングされたリソースを確認します。
    kubectl describe pod vulnerabilityScan

  12. 次のコマンドを使用して、 Smart Check をインストールします。
    helm upgrade -i --values overrides.yaml deepsecurity-smartcheck https://github.com/deep-security/smartcheck-helm/archive/master.tar.gz

  13. 次のコマンドを使用して、 Smart Check ポッドが準備完了であることを確認します。
    kubectl get pods

  14. helm upgradeの出力の指示を使用して、 Network Load Balancer アドレスを取得します。

  15. 次のコマンドを実行してアプリケーションのURLを取得します。
    export SERVICE_IP=$(kubectl get svc proxy -o jsonpath='{.status.loadBalancer.ingress[0].hostname}')
    echo https://$SERVICE_IP:443/

  16. Smart Checkにログインします。

Smart Checkをアンインストールする方法

使用しているリソースをクリーンナップします(環境の保護を検討している場合を除く)。

  1. 次のコマンドを使用して、 Deep Security Smart Check 環境を削除し、ロードバランサをクリーンナップします。
    helm uninstall deepsecurity-smartcheck

  2. データベースを削除します。

  3. 次のコマンドを使用してクラスタを削除します。
    eksctl delete cluster --name <clustername-eks> --region <us-east-1>