Skip to main content

エージェントオペレータの最小設定

オペレータのすべての設定は、カスタムリソース定義(CRD)によって定義されたKubernetesネイティブの設定エンティティを使用することで処理されます。CRDはオペレータと共にデプロイされ、オペレータの設定エンティティの処理方法が定義されます。

Visual Studio CodeのKubernetes拡張機能などのツールは、クラスタ内でエンティティを正しい構文で作成するのに役立ちます。

完全なスキーマは、エージェントオペレータの設定に記載しています。本項では、必要な最小限の設定ついてのみ説明し、すべての設定は記載していません。

最小限の設定

最小限の設定では、3つのマニフェストが必要です。

  1. 1つ目は、標準のKubernetesのSecretにContrastサーバインスタンスへの認証に必要な接続キーを含めます。このSecretは、ClusterAgentConnectionエンティティと同じネームスペースにデプロイする必要があります。指定するエージェントキーは、エージェントキーの検索で確認できます。

    apiVersion: v1
    kind: Secret
    metadata:
      name: default-agent-connection-secret
      namespace: contrast-agent-operator
    type: Opaque
    stringData:
      apiKey: TODO
      serviceKey: TODO
      userName: TODO
  2. 2つ目は、ClusterAgentConnectionの設定エンティティです。ClusterAgentConnectionには、クラスタ内のエージェントのデフォルトの接続設定を指定し、接続の認証キーが含まれる前述のSecretをマップします。セキュリティ上、ClusterAgentConnectionエンティティは、オペレータを使用するのと同じネームスペースに配置する必要があります。この例では、デフォルトのネームスペースcontrast-agent-operatorがカスタマイズされていないことを前提にしています。

    apiVersion: agents.contrastsecurity.com/v1beta1
    kind: ClusterAgentConnection
    metadata:
      name: default-agent-connection
      namespace: contrast-agent-operator
    spec:
      template:
        spec:
          url: https://app.contrastsecurity.com/Contrast
          apiKey:
            secretName: default-agent-connection-secret
            secretKey: apiKey
          serviceKey:
            secretName: default-agent-connection-secret
            secretKey: serviceKey
          userName:
            secretName: default-agent-connection-secret
            secretKey: userName
  3. 3つ目に必要なのは、AgentInjectorの設定エンティティです。AgentInjectorは、AgentInjector がデプロイされるネームスペース内でmetadata.labelsなどのワークロードのラベルを使用して、自動でエージェントを組み込む対象となるワークロードを選択します。

    apiVersion: agents.contrastsecurity.com/v1beta1
    kind: AgentInjector
    metadata:
      name: dotnet-hello-world
      namespace: default
    spec:
      type: dotnet-core
      selector:
        labels:
          - name: app
            value: dotnet-hello-world

    このマニフェストの例では、Contrastエージェントオペレータは、デフォルトのネームスペースでapp = dotnet-hello-worldというラベルが付いているワークロード(Deployment、DeploymentConfigなど)にContrastの.NETエージェントを自動的に組み込みます。

関連項目