You can connect a self-managed Kubernetes cluster to Security Center and manage the cluster on the Assets page in a centralized manner. このトピックでは、自己管理型KubernetesクラスターをSecurity Centerに接続する方法について説明します。

制限事項

この機能は、Security Center Ultimate でのみサポートされています。 Ultimate エディションを使用していない場合は、この機能を使用する前に、Security Center を Ultimate エディションにアップグレードする必要があります。 Security Center の購入およびアップグレード方法の詳細については、「セキュリティセンターの購入」および「Security Centerのアップグレードとダウングレード」をご参照ください。 各エディションでサポートされる機能の詳細については、「t13617.html#concept_fc1_xvb_zdb」をご参照ください。

制限事項

  • You can connect a maximum of 10 self-managed Kubernetes clusters.
  • 接続する自己管理Kubernetesクラスターが仮想プライベートクラウド (VPC) にデプロイされている場合、クラスターは中国 (杭州) 、中国 (北京) 、中国 (上海) 、中国 (深セン) 、または中国 (香港) リージョンに存在する必要があります。
    If a self-managed Kubernetes cluster that you want to connect is deployed on the Internet, no limits are imposed on the region of the cluster.

自己管理型KubernetesクラスターをSecurity Centerに接続する

セルフマネージドKubernetesクラスターがハイブリッドクラウドにデプロイされ、インターネット経由でアクセスできない場合は、トラフィック転送ルールを設定し、ネットワーク接続が正常であることを確認する必要があります。 トラフィック転送ルールの設定方法の詳細については、「トラフィック転送ルールを設定し、Alibaba Cloud外部の自己管理クラスターをSecurity Centerに接続する」をご参照ください。
  1. 左側のナビゲーションウィンドウで、[アセット] をクリックします。
  2. [アセット] ページで、[コンテナ] タブをクリックします。 [コンテナー] タブで、[クラスター] タブをクリックします。
  3. [クラスター] タブで、[自作クラスターアクセス] をクリックします。
  4. In the Self-built cluster management panel, click Self-built cluster access. 表示されるパネルで、次のパラメーターを設定し、[OK] をクリックします。
    パラメーター 説明
    Cluster name The name of the self-managed Kubernetes cluster. 名前には、英数字、アンダースコア (_) 、およびハイフン (-) を使用できます。
    Self-built K8s cluster version 自己管理型Kubernetesクラスターのバージョン。
    Region of cluster 自己管理Kubernetesクラスターが存在するリージョン。
    ネットワークタイプ 自己管理Kubernetesクラスターのネットワークタイプ。
    クラスターが配置されているVPC 自己管理型KubernetesクラスターがデプロイされているVPC。
    ApiServerIp The IP address of the API server for the self-managed Kubernetes cluster.
    K8s設定情報 The configuration file of the self-managed Kubernetes cluster. You must generate a configuration file on your server before you upload the file. Kubernetesクラスターの設定ファイルを生成する方法の詳細については、「Kubernetesクラスターの設定ファイルを生成する」をご参照ください。
    After you connect the Kubernetes cluster to Security Center, you can view the cluster information in the Self-built cluster management panel.

Kubernetesクラスターの設定ファイルを生成する

To generate a configuration file, make sure that your server meets the following prerequisites:
  • サーバー上にKubernetesクラスターが作成されます。
  • Docker is installed.
  • If you create an access control policy for your cluster, make sure that the access control policy allows access from the region in which the container resides.
    リージョン パブリック IP アドレス プライベートIPアドレス
    中国 (杭州) 121.41.35.192、121.41.39.7、121.41.39.39、121.41.39.153、および121.41.38.32 100.104.177.0/26
    中国 (上海) 47.103.62.83, 47.103.60.134, 47.103.58.177, 47.103.54.252, and 47.103.49.93 100.104.7.192/26
    中国 (青島) 47.104.111.68 100.104.87.192/26
    中国 (北京) 123.57.55.56、123.57.55.21、123.57.55.18、123.57.55.7、および123.57.55.6 100.104.20.128/26
    中国 (張家口) 39.99.229.195 100.104.187.64/26
    中国 (フフホト) 39.104.147.68 100.104.36.0/26
    中国 (深セン) 47.106.245.198、47.107.237.185、47.107.237.182、47.107.237.170、47.107.237.152 100.104.9.192/26
    中国 (香港) 47.106.245.198、47.107.237.185、47.107.237.182、47.107.237.170、47.107.237.152 100.104.111.128/26
    日本 (東京) 47.74.24.20 100.104.69.0/26
    シンガポール 47.74.238.176、47.74.238.61、47.74.237.201、47.74.237.166、および47.74.237.91 100.104.41.128/26
    米国 (シリコンバレー) 47.254.39.224 100.104.145.64/26
    米国 (バージニア) 47.252.4.238 100.104.36.0/26
    ドイツ (フランクフルト) 47.254.158.71 172.16.0.0/20
    イギリス (ロンドン) 8.208.14.12 172.16.0.0/20
    インドネシア (ジャカルタ) 149.129.238.99 100.104.193.128/26
  1. Log on to the server where the Kubernetes cluster resides as the root user.
  2. Create a user.
    1. 次のコマンドを実行してClusterRoleを作成します。
      apiVersion: rbac.authorization.k8s.io/v1
      kind: ClusterRole
      メタデータ:
      name: ${userName}-cluster-reader
      ルール:
      -apiGroups:
      -""
      リソース:
      -"*"
      動詞:
      -取得
      -リスト
      -ウォッチ
    2. 次のコマンドを実行して、ClusterRoleBindingを作成します。
      重要 この手順および次のすべての手順でコマンドを実行する前に、<UserName> をユーザー名に置き換える必要があります。
      apiVersion: rbac.authorization.k8s.io/v1beta1
      kind: ClusterRoleBinding
      メタデータ:
      name: ${userName}-すべて読む
      roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: ${userName}-cluster-reader
      主題:
      -apiGroup: rbac.authorization.k8s.io
      kind: ユーザー
      name: ${userName}
  3. 証明書を作成します。
    1. Run the following command to create a private key for the user:
      openssl genrsa -out <UserName>.key 2048
    2. Run the following command to create a certificate signing request:
      openssl req -new -key <UserName>.key -out <UserName>.csr -subj "/O=K8s/CN=<UserName>"
    3. Run the following command to sign the certificate:
      openssl x509 -req -in <UserName>.csr -CA ca.crt -CAkey ca.key-CAreateserial-out <UserName>.crt -days 365
  4. クラスターの設定ファイルを作成します。
    1. 次のコマンドを実行して、クラスター設定フィールドを作成します。
      kubectl config set-cluster k8s -- server=
      https: // 192.168.XX.XX:6443 -- certificate-authority=ca.crt -- embed-certs=true -- kubeconfig=/root/<UserName>.conf
    2. Run the following command to create the user configuration field:
      kubectl config set-credentials <UserName> -- client-certificate=<UserName>.crt -- client-key=<UserName>.key -- embed-certs=true -- kubeconfig=/root/<UserName>.conf
    3. 次のコマンドを実行して、コンテキスト設定フィールドを作成します。
      kubectl config set-context <UserName >@< ClusterName> -- cluster=k8s -- user=<UserName> -- kubeconfig=/root/<UserName>.conf
      重要 この手順および次のすべての手順でコマンドを実行する前に、<ClusterName> をクラスターの名前に置き換える必要があります。
    4. 次のコマンドを実行してコンテキストを切り替えます。
      kubectl config use-context <UserName >@< ClusterName> -- kubeconfig=/root/<UserName>.conf
    5. 次のコマンドを実行して、設定ファイルを表示します。
      kubectl設定ビュー -- kubeconfig=/root/<UserName>.conf
  5. Run the following commands to check whether the kubeconfig file is available.
    mkdir -p /home/<UserName>/.kube
    cp <UserName>.conf /home/<UserName>/.kube/config
    kubectl get pod -n kube-system

    If the pod information is displayed in the command-line window after all the preceding commands are complete, the kubeconfig file is available, and Security Center can access this cluster. それ以外の場合、kubeconfigファイルは使用できません。

トラフィック転送ルールを設定し、Alibaba Cloud外部の自己管理クラスターをSecurity Centerに接続する

セルフマネージドKubernetesクラスターがハイブリッドクラウドにデプロイされ、インターネット経由でアクセスできない場合は、トラフィック転送ルールを設定し、ネットワーク接続が正常であることを確認する必要があります。

  1. Specify an Elastic Compute Service (ECS) instance and configure traffic forwarding rules to forward the traffic destined for the ECS instance to an on-premises server on which the API server for the self-managed Kubernetes cluster is installed.

    次のコマンド例では、IPアドレス10.0.XX.XXを使用するECSインスタンスのポートAのトラフィックは、IPアドレス192.168.XX.XXを使用するオンプレミスサーバーのポートBに転送されます。
    • CentOS 7のコマンド例
      • Use firewall-cmd
        firewall-cmd -- permanent -- add-forward-port=<port A>:proto=tcp:toaddr=<192.168.XX.XX>:toport=<Port B>
      • iptablesを使う:
        1. ポート転送を有効にします。
          # echo "1" > /proc/sys/net/ipv4/ip_forward                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
        2. ポート転送を設定します。
          # iptables -t nat -A PREROUTING -p tcp --dport <Port A> -j DNAT --to-destination <192.168.XX.XX>:<Port B>
    • Windowsのコマンド例
      netsh interface portproxy add v4tov4 listenport=<Port A> listenaddress=* connectaddress=<192.168.XX.XX> connectport=<Port B> protocol=tcp
  2. ECSインスタンスを自己管理クラスターのAPIサーバーのプロキシとして設定し、ECSインスタンスをVPC経由でSecurity Centerに接続します。 これにより、自己管理クラスターはSecurity Centerに接続されます。