Oracle OKEクラスタの接続
Oracle OKE クラスタを Tenable Tenable One Cloud Exposure で接続して、アクセス許可、サブスクリプション使用状況、セキュリティ設定に関する情報など、クラスタに関連付けられているすべてのクラウドアイデンティティとリソースに対する完全な可視性とリスク評価を取得します。
統合を完了するまで、クラスターに関連するオブジェクトや構成は分析されず、 Tenable での調査にも利用できません。各 Kubernetes クラスタの リソース同期ステータス が関連するインベントリビューに表示されます。これは、Tenable が Kubernetes API に接続できるかどうかを示し、潜在的な接続の問題のトラブルシューティングに役立ちます。
要件
モニタリングするクラスタごとに、次の両方の手順を実行します。これらのステップのいずれかまたは両方を実行することが不可能または実用的でない場合、 Tenable は Helm チャートを介してクラスタを接続する代替統合パスを提供します。
- Grant Cluster Permissions.
- Tenable ロールにクラスタにアクセスするためのアクセス許可がない場合は、代わりに Helm チャートを介してクラスタを接続する します。
- Tenable へのネットワークアクセスを許可するします
- クラスタコントロールプレーンがパブリックにアクセスできない場合は、代わりに Helm チャートを介してクラスタを接続するします。 たとえば、プライベートクラスタの場合などです。
クラスタのアクセス許可を付与する
Kubernetesクラスタを Tenableに接続するには、 CLI を使用したクラスタのアクセス許可の付与 と OCI ポリシーを使用したクラスタのアクセス許可の付与の両方を使用してアクセス許可を付与する必要があります。
注意:
- CLI を使用してアクセス 許可を付与すると、特定のクラスターで ClusterRole と ClusterRoleBinding が作成されるため、これはクラスターごとに個別に実行する必要があります。
- OCI ポリシーを使用したクラスタのアクセス許可の付与は、テナンシレベルでグローバルに 1 回実行されます。
CLI を使用したクラスタのアクセス許可の付与
グループTenable ロールのアクセス許可をクラスタに付与して、クラスタへのTenableアクセスを提供します。これを行うには、 Tenable グループロールを OKE クラスタに追加し、 ClusterRole と ClusterRoleBindingを作成します。次の手順は、 kubectl コマンドを使用してこれを行う方法を示しています。詳細は、 Oracle OKE のドキュメント で説明されているガイドラインに従ってください。
注意:
- リソースのアクセス許可セットがより制限されたロールを使用することもできますが、この場合、今後関連するアクセス許可が追加されると手動で追加しなければなりません。
- グループロールは、 Tenable 読み取りアクセス許可のみを付与します。
前提条件
- このアクションを実行するために必要なアクセス許可があることを確認してください。
-
次のツールがインストールされていることを確認します。
- OCI CLI
- kubectl
OKE クラスタの接続手順
-
OCI CLI を介して次のコマンドを実行します。
oci ce cluster create-kubeconfig cluster-id {your_cluster_ocid} --file $HOME/.kube/config region {your_region} --token-version {your_token_version} --kube-endpoint {your_endpoint_type}
-
次のコマンドを実行してください。
cd ~/.kube
- クラスターロール YAML ファイルを作成します。
次のコマンドを実行してファイルを編集します。
vim {clusterRole}.yaml
ここで、 {clusterRole} はファイルに付けるために選択した名前です。
以下の clusterRoleを追加します。
コピーYAML
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: tenable-kube-connector-cluster-role
rules:
- apiGroups: ["*"]
resources: ["*"]
verbs: ["get", "list", "watch"]
- クラスターロールバインディング YAML ファイルを作成します。
次のコマンドを実行してファイルを編集します。
vim {clusterRoleBinding}.yaml
ここで、 {clusterRoleBinding} はファイルに付けるために選択した名前です。
以下の clusterRoleBindingを追加します。
コピーYAML
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: tenable-kube-connector-cluster-role-binding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: tenable-kube-connector-cluster-role
subjects:
- apiGroup: rbac.authorization.k8s.io
kind: Group
name: {tenable_group_ocid}注意: tenable_group_ocid = OCI 統合プロセスを介して作成したグループ ID。詳細については、こちらのグループの作成を参照してください。
-
次のコマンドを実行して、作成した clusterRole/clusterRoleBinding をクラスタに適用します。
kubectl apply -f ./{clusterRole}.yaml
kubectl apply -f ./{clusterRoleBinding}.yamlここで、 {clusterRole}と {clusterRoleBinding} は YAML ファイルに付けた名前です。
-
(オプション)次のコマンドを実行して、 clusterRole/clusterRoleBinding が適用されていることを検証します。
kubectl get clusterroles
kubectl get clusterrolebindings
OCI ポリシーを使用したクラスタのアクセス許可の付与
新しい OCI ポリシーを作成し、ポリシーステートメントを使用して必要なアクセス許可を割り当てることで、 クラウドサイバーエクスポージャー に OCI Kubernetesをスキャンするアクセス許可を付与します。
Kubernetes クラスタリソースに読み取りアクセス許可を付与するには
- Oracleコンソールで、[アイデンティティとセキュリティ] > [アイデンティティ > ポリシー] の順に移動します。
- [ポリシーの作成] をクリックし、以下の詳細を入力します。
- 名前: 意味のある名前を入力します。
- 説明: わかりやすい説明を入力します
- コンパートメント: root コンパートメントを選択します
-
ポリシービルダーで [手動エディターの表示] をクリックし、次のステートメントを追加します。
Allow group {tenable_group_name} to use clusters in tenancy
注意: tenable_group_name = OCI統合プロセスを使用して作成したグループ名。詳細については、こちらのグループの作成を参照してください。
Tenable へのネットワークアクセスを許可する
クラウドサイバーエクスポージャーがクラスタにアクセスするには、クラスタエンドポイントをパブリックにアクセス可能にし、関連する許可が必要な Tenable IP アドレスする必要があります。
ネットワークアクセスを許可するには
- OCI管理コンソールで、「開発者 サービス」 >「 コンテナおよびアーティファクト 」> OKEに移動します。
- 対象の クラスタ名をクリックします。
- [編集] をクリックし、[API エンドポイントにパブリック IP アドレスを割り当てる] を選択します。
- パブリックとプライベート。選択した場合は、クラスタの [Virtual Cloud Network] 設定> [Security > Cluster's K8s API Endpoint Rule] > [Security rules] に移動し、 Tenableリージョンに関連付けられている許可が必要な Tenable IP アドレスからのトラフィックのみを許可するようにイングレスルールを編集できます。
- 完了したら、[変更の保存] をクリックします。