Azure AKS クラスタの接続

注意: この機能は、Cloud Vulnerability Management ライセンスでは使用できません。

Tenable One Cloud Exposure で Azure AKS クラスターを接続して、アクセス許可、サブスクリプションの使用状況、セキュリティ構成に関する情報など、クラスターに関連付けられているすべてのクラウド アイデンティティとリソースの完全な可視性とリスク評価を取得します。

統合を完了するまで、クラスターに関連するオブジェクトや構成は分析されず、 Tenable での調査にも利用できません。関連するインベントリビューに各Kubernetesクラスタの リソース同期ステータス が表示されます。これは、Kubernetes API に接続できるかどうかを示す Tenable 、接続に関する潜在的な問題のトラブルシューティングに役立ちます。

注意: ディスクタイプがスナップショットをサポートしないため、エージェントレススキャンは、 エフェメラル ディスクを使用する Azure VM を サポートしていません。この制限は、既定でエフェメラルディスクを使用する AKS クラスターに影響します。

要件

モニタリングする各クラスタについて、以下の手順に従って次の操作を行います。

注意: Kubernetes 脅威検出、 アドミッションコントローラーの概要 、センサーベースのワークロード保護を有効にするには、Helm チャートを介してクラスタを接続する チャートを使用してセンサーをインストールする必要があります。これは、すべてのクラウドプロバイダーとクラスタタイプに適用されます。

クラスタへの Tenable アクセス許可の付与: Azure RBAC 対応の Microsoft Entra ID

Kubernetes クラスタ承認に Azure RBAC を使用する場合は、クラスタに Tenable アクセス許可を付与するために次の手順を行う必要があります。

注意: リソースのアクセス許可セットがより制限されたロールを使用することもできますが、この場合、今後関連するアクセス許可が追加されると手動で追加しなければなりません。

組み込みのロールバインディングを Tenable に割り当てる

  • クラスタが存在する Azure サブスクリプションをすでに Tenable に接続していて、Kubernetes関連のアクセス許可をクラスタに追加する必要がある場合は、以下の手順に従います。
  • クラスタが存在する Azure サブスクリプションをまだ接続していない場合は、「 Azure サブスクリプションの接続」に記載されている手順に従います。

ロールバインディングを割り当てる方法

  1. Azure ポータルで、[サブスクリプション] ページに移動し、関連するサブスクリプションをクリックします。
  2. [アクセス制御 (IAM)] をクリックし、 [ロールの割り当ての追加] をクリックします。
  3. [ロールの割り当ての追加] ページで、次のいずれかのロールを検索して選択し、[次へ] をクリックします。

    注意: 追加できるロールは一度に 1 つだけであるため、これらの手順をロールごとに 1 回ずつ、つまり 2 回実行する必要があります。
    • Azure Kubernetes サービスクラスタユーザーロール
    • Azure Kubernetes サービス RBAC リーダー
  4. [ アクセスの割り当て先] は、デフォルトの選択 [ユーザー、グループ、またはサービスプリンシパル] のままにします。
  5. [ メンバー] で、[+メンバーを選択] をクリックします。
  6. クラウドサイバーエクスポージャー コネクタアプリを検索して選択し、[選択] をクリックします。
  7. [次へ] をクリックし、新しいロールを確認して [レビューと割り当て] をクリックします。
  8. 手順 3 で既に選択したロールに応じて、手順 1 から 7 までを繰り返して他のロールを追加します。

カスタム Tenable ロールを追加する

Kubernetes クラスタ承認に Azure RBAC を使用しており、組み込みのロールバインディングを Tenable に割り当てるによって提供されないTenable内で IAM の可視性を得る場合は、以下のカスタムロール JSON をサブスクリプションに追加します。カスタムロールの詳細については、 Azure のドキュメント を参照してください。

Tenableロールを追加するには

  1. Azure ポータルで、[サブスクリプション] ページに移動し、関連するサブスクリプションをクリックします。
  2. [アクセス制御 (IAM)] をクリックして、[追加] > [カスタムロールの追加] の順にクリックします。
  3. [JSON] タブに移動し、[編集] をクリックします。
  4. 次のロールを貼り付けて、JSON のコンテンツを置き換えます。

    重要: 以下の {subscription Id} を Azure サブスクリプション ID に置き換えてください。
    コピー

    JSON

    {
        "properties": {
            "roleName": "Tenable Azure Kubernetes Service Reader",
            "description": "Allows read-only access to see most objects in a namespace.",
            "assignableScopes": [
                "/subscriptions/{subscription Id}"
            ],
            "permissions": [
                {
                    "actions": [
                        "Microsoft.ContainerService/managedClusters/listClusterUserCredential/action"
                    ],
                    "notActions": [],
                    "dataActions": [
                        "Microsoft.ContainerService/managedClusters/*/read"
                    ],
                    "notDataActions": []
                }
            ]
        }
    }
  5. [保存] をクリックし、[確認 + 作成] をクリックします。
  6. 新しいカスタムロールを確認し、[作成] をクリックします。
  7. [アクセス制御 (IAM)] ページに戻り、[追加] > [ロール割り当ての追加] をクリックします。
  8. [Tenable Azure Kubernetes Service Reader] を検索して選択し、[次へ] をクリックします。
  9. [アクセスの割り当て先] は、デフォルトの選択 [ユーザー、グループ、またはサービスプリンシパル] のままにします。
  10. [メンバー] で、[+ メンバーを選択する] をクリックします。
  11. Ermetic App を検索して選択し、[選択] をクリックします。
  12. [次へ] をクリックし、新しいロールの割り当てを確認し、[確認 + 割り当て] をクリックします。

クラスタに Tenable アクセス許可を付与する: Kubernetes RBAC 対応の Microsoft Entra ID

Kubernetes クラスター承認に Kubernetes RBAC を使用して、クラスターに Tenable アクセス許可を付与する場合は、Tenable 用の ClusterRole と ClusterRoleBinding を作成する必要があります。たとえば、kubectl コマンドラインツールを使用して、Tenable用に以下のClusterRoleとClusterRoleBindingを作成します。

注意: リソースのアクセス許可セットがより制限されたロールを使用することもできますが、この場合、今後関連するアクセス許可が追加されると手動で追加しなければなりません。
コピー

YAML

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: ermetic-kube-connector-cluster-role
rules:
  - apiGroups: ["*"]
    resources: ["*"]
    verbs: ["get", "list", "watch"]
コピー

YAML

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: ermetic-kube-connector-cluster-role-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: ermetic-kube-connector-cluster-role
subjects:
  - apiGroup: rbac.authorization.k8s.io
    kind: User
    name: <ermetic-microsoft-entra-id-application-object-id>

Tenable へのネットワークアクセスを許可する

Tenableがクラスタにアクセスするには、クラスタエンドポイントをパブリックにアクセス可能にし、関連する許可が必要な Tenable IP アドレスする必要があります。

ネットワークアクセスを許可するには

  1. Azure ポータルで、 Kubernetes サービスに移動します。
  2. 対象の クラスタ名をクリックします。
  3. [Settings] で、[Networking] をクリックします。
  4. [セキュリティ] で、[承認済みの IP 範囲を設定する] チェックボックスをクリックします。

    注意: この設定が無効になっている場合、 Tenable クラスタにアクセスできますが、クラスタにアクセスするためのセキュリティのベストプラクティスには従いません。代わりに、この設定を有効にし、承認済みネットワークを特定の IP アドレス (Tenable に関連付けられているものなど) に制限する必要があります。
  5. 表示される [IP 範囲を指定] フィールドに、Tenableリージョンに関連付けられているすべての 許可が必要な Tenable IP アドレスを追加します。
  6. [適用] をクリックします。