Azure AKS クラスタの接続
Tenable One Cloud Exposure で Azure AKS クラスターを接続して、アクセス許可、サブスクリプションの使用状況、セキュリティ構成に関する情報など、クラスターに関連付けられているすべてのクラウド アイデンティティとリソースの完全な可視性とリスク評価を取得します。
統合を完了するまで、クラスターに関連するオブジェクトや構成は分析されず、 Tenable での調査にも利用できません。関連するインベントリビューに各Kubernetesクラスタの リソース同期ステータス が表示されます。これは、Kubernetes API に接続できるかどうかを示す Tenable 、接続に関する潜在的な問題のトラブルシューティングに役立ちます。
要件
モニタリングする各クラスタについて、以下の手順に従って次の操作を行います。
-
クラスタの設定に使用する認証および承認方法に応じて、次のいずれかの方法で Tenable アクセス許可を付与します。
- Azure RBAC 対応の Microsoft Entra ID:
- 組み込みロールバインディングを クラウドサイバーエクスポージャー アプリに割り当てる
- クラスタ/サブスクリプションにカスタム Tenable ロールを追加する
- Kubernetes RBAC 対応の Microsoft Entra ID:
- の ClusterRole と ClusterRoleBinding の作成 Tenable
- ローカルアカウント認証この方法は、 Helm チャートを介してクラスタを接続するする場合のみサポートされます。
重要: Tenable ロールにクラスタにアクセスするアクセス許可がない場合は、代わりに Helm チャートを介してクラスタを接続する します。 Azure ではアイデンティティ関連の設定が必要ですが、場合によってはこの設定が従来のクラウドベースの統合でサポートされていないことがあります。たとえば、Azure でローカル認証を使用する場合などです。 - Azure RBAC 対応の Microsoft Entra ID:
- Tenable へのネットワークアクセスを許可するします
- クラスタコントロールプレーンがパブリックにアクセスできない場合は、代わりに Helm チャートを介してクラスタを接続するします。 たとえば、プライベートクラスタの場合などです。
クラスタへの Tenable アクセス許可の付与: Azure RBAC 対応の Microsoft Entra ID
Kubernetes クラスタ承認に Azure RBAC を使用する場合は、クラスタに Tenable アクセス許可を付与するために次の手順を行う必要があります。
-
Kubernetes 関連の組み込みロールバインディングを Tenable に割り当てます。
これらのロールは、Azure サブスクリプションを Tenable に接続したときに割り当てられますが、サブスクリプションを接続したかどうか、またいつ接続したかによって、まだ割り当てられていない可能性があります。
-
前述の箇条書きで挙げたロールバインディングは範囲が限定されており、クラウドサイバーエクスポージャー 内で IAM は可視化されません。すべての機能を利用するには、カスタムロールを追加して、名前空間 Tenable ほとんどのオブジェクトを表示するための読み取り専用アクセス許可を追加で付与する必要もあります。
組み込みのロールバインディングを Tenable に割り当てる
- クラスタが存在する Azure サブスクリプションをすでに Tenable に接続していて、Kubernetes関連のアクセス許可をクラスタに追加する必要がある場合は、以下の手順に従います。
- クラスタが存在する Azure サブスクリプションをまだ接続していない場合は、「 Azure サブスクリプションの接続」に記載されている手順に従います。
ロールバインディングを割り当てる方法
- Azure ポータルで、[サブスクリプション] ページに移動し、関連するサブスクリプションをクリックします。
- [アクセス制御 (IAM)] をクリックし、 [ロールの割り当ての追加] をクリックします。
-
[ロールの割り当ての追加] ページで、次のいずれかのロールを検索して選択し、[次へ] をクリックします。
注意: 追加できるロールは一度に 1 つだけであるため、これらの手順をロールごとに 1 回ずつ、つまり 2 回実行する必要があります。- Azure Kubernetes サービスクラスタユーザーロール
- Azure Kubernetes サービス RBAC リーダー
- [ アクセスの割り当て先] は、デフォルトの選択 [ユーザー、グループ、またはサービスプリンシパル] のままにします。
- [ メンバー] で、[+メンバーを選択] をクリックします。
- クラウドサイバーエクスポージャー コネクタアプリを検索して選択し、[選択] をクリックします。
- [次へ] をクリックし、新しいロールを確認して [レビューと割り当て] をクリックします。
- 手順 3 で既に選択したロールに応じて、手順 1 から 7 までを繰り返して他のロールを追加します。
カスタム Tenable ロールを追加する
Kubernetes クラスタ承認に Azure RBAC を使用しており、組み込みのロールバインディングを Tenable に割り当てるによって提供されないTenable内で IAM の可視性を得る場合は、以下のカスタムロール JSON をサブスクリプションに追加します。カスタムロールの詳細については、 Azure のドキュメント を参照してください。
Tenableロールを追加するには
- Azure ポータルで、[サブスクリプション] ページに移動し、関連するサブスクリプションをクリックします。
- [アクセス制御 (IAM)] をクリックして、[追加] > [カスタムロールの追加] の順にクリックします。
- [JSON] タブに移動し、[編集] をクリックします。
-
次のロールを貼り付けて、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": []
}
]
}
} - [保存] をクリックし、[確認 + 作成] をクリックします。
- 新しいカスタムロールを確認し、[作成] をクリックします。
- [アクセス制御 (IAM)] ページに戻り、[追加] > [ロール割り当ての追加] をクリックします。
- [Tenable Azure Kubernetes Service Reader] を検索して選択し、[次へ] をクリックします。
- [アクセスの割り当て先] は、デフォルトの選択 [ユーザー、グループ、またはサービスプリンシパル] のままにします。
- [メンバー] で、[+ メンバーを選択する] をクリックします。
- Ermetic App を検索して選択し、[選択] をクリックします。
- [次へ] をクリックし、新しいロールの割り当てを確認し、[確認 + 割り当て] をクリックします。
クラスタに 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 アドレスする必要があります。
ネットワークアクセスを許可するには
- Azure ポータルで、 Kubernetes サービスに移動します。
- 対象の クラスタ名をクリックします。
- [Settings] で、[Networking] をクリックします。
-
[セキュリティ] で、[承認済みの IP 範囲を設定する] チェックボックスをクリックします。
注意: この設定が無効になっている場合、 Tenable クラスタにアクセスできますが、クラスタにアクセスするためのセキュリティのベストプラクティスには従いません。代わりに、この設定を有効にし、承認済みネットワークを特定の IP アドレス (Tenable に関連付けられているものなど) に制限する必要があります。 - 表示される [IP 範囲を指定] フィールドに、Tenableリージョンに関連付けられているすべての 許可が必要な Tenable IP アドレスを追加します。
- [適用] をクリックします。