クラスターに対するアクセス権限を Satellite Config に付与する

デフォルトで、Satellite ロケーションに作成したクラスターには、Satellite Config コンポーネントが自動的にインストールされます。 ただし、Satellite Config で使用するサービス・アカウントに、各クラスター内の Kubernetes リソースを表示および管理するための適切なアクセス権限を付与する必要があります。

Satellite 構成には、クラスターを管理するための管理者権限が必要です。 アクセス設定は、以下のいずれかの方法で設定できます。

  • クラスタの作成時に自動的に行われます。 Satellite ストレージ・テンプレートを使用する場合は、このオプションを選択します。
  • クラスターの作成後に手動で行います。 より制御されたアクセスが必要で、 Satellite ストレージ・テンプレートを使用する予定がない場合は、このオプションを選択します。

Satellite Config にアクセス権限を付与しない場合は、後で Satellite Config の機能を使用してクラスターの Kubernetes リソースを表示およびデプロイすることができません。

Satellite のConfigへのアクセス権をクラスターに自動的に付与する

クラスタの作成時に適切なオプションを指定することで、 Satellite Config にクラスタへのアクセス権を付与することができます。

コンソールから Kubernetes リソースを管理するための構成アクセス権限を Satellite に付与するには、クラスターの作成時に 「 Satellite Config のクラスター管理者アクセス権限を有効にする」 を選択します。 CLI を使用してアクセスをセットアップするには、クラスターの作成時に --enable-config-admin オプションを指定します。

クラスターの作成時に Satellite へのアクセス権限を付与しなかった場合は、 Satellite クラスターへの構成アクセス権限の手動付与 の手順に従ってください。

クラスタへの Satellite 設定へのアクセス権を手動で付与する

クラスタの作成時に Satellite Configへのアクセス権を付与していなかった場合でも、手動でアクセス権を設定することは可能です。

以下のオプションから選択します。

  • Satellite クラスター作成時の管理アクセス権限: コンソールまたは CLI で ibmcloud oc cluster create satellite コマンドの --enable-config-admin オプションを使用してクラスターを作成するときに、管理者権限を有効にすることができます。 クラスターを作成した後に、コマンド・ラインで ibmcloud ks cluster config を実行してワンタイム・ログインを実行する必要があります。
  • パブリッククラウド内のクラスターの管理アクセス権限: Satellite 構成への既存のクラスターの登録を参照してください。
  • カスタム・アクセス権限、または管理者アクセス用にオプトインしなかった Satellite クラスターに対するアクセス権限: 以下の手順を実行します。

アクセス権限をカスタマイズするには、またはクラスター作成時に管理者アクセス用にオプトインしなかった Satellite クラスターに対するアクセス権限を追加するには、以下のようにします。

  1. Satellite クラスターにアクセスします

  2. クラスター・グループ内のクラスターごとに、Kubernetes リソースを管理するためのアクセス権限を Satellite Config に付与します。 選択肢として、クラスター管理者のアクセス権限、クラスター全体を範囲とするカスタム・アクセス権限、1 つのプロジェクトを範囲とするカスタム・アクセス権限があります。 詳細については、『 Kubernetes 』のドキュメントを参照してください。

    カスタムアクセスオプションを選択した場合、 Satellite Configの一部のコンポーネントは機能しません。 たとえば、特定のリソースの閲覧のみを許可している場合、サブスクリプションを使用してクラスターグループ内に Kubernetes リソースを作成することはできません。 クラスター内の Kubernetes リソースのインベントリーを表示するには、razee-viewer サービス・アカウントにバインドされている適切な役割が、Satellite Config に付与されている必要があります。 サブスクリプションを使用して Kubernetes リソースをクラスターにデプロイするには、 Satellite Configに、 razee-editor アカウントにバインドされた適切なロールが設定されている必要があります。

クラスター管理者のアクセス権限

クラスター管理者役割のアクセス権限を Satellite Config のサービス・アカウントに付与します。

kubectl create clusterrolebinding razee-cluster-admin --clusterrole=razee-cluster-admin --serviceaccount=razeedeploy:razee-viewer --serviceaccount=razeedeploy:razee-editor --serviceaccount=razeedeploy:razee-satcon

カスタム・アクセス権限 (クラスターを範囲とするもの)

カスタム RBAC ポリシーを作成して、クラスターについて必要とするアクションおよび Kubernetes リソースに対するアクセス権限を Satellite Config に付与することができます。

  1. 付与するアクションとリソースを指定してクラスター役割を作成します。 例えば、次のコマンドはビューアー役割を作成するので、Satellite Config はクラスター内のすべての Kubernetes リソースをリストできます。ただし、変更することはできません。

    kubectl create clusterrole razee-viewer --verb=get,list,watch --resource="*.*"
    
    このコマンドの構成要素について
    コンポーネント 説明
    razee-viewer クラスター役割の名前 (razee-viewer など)。
    --verb=get,list,watch 役割で許可するアクションのコンマ区切りリスト。 この例のアクションの verb は、ビューアーまたは監査員の一般的な役割 get,list,watch です。 その他の使用可能な動詞については、『 Kubernetes 』のドキュメントを参照してください。
    --resource="*.*" 役割でアクションを許可する Kubernetes リソースのコンマ区切りリスト。 この例では、すべての API グループのすべての Kubernetes リソース ("*.*") に対するアクセス権限が付与されています。 指定可能な他のリソースを確認するには、kubectl api-resources -o wide を実行してください。
  2. 先ほど作成したクラスター役割に Satellite Config サービス・アカウントをバインドする、クラスター役割バインディングを作成します。 これで、クラスターに対するカスタム・アクセス権限が Satellite Config に付与されます。

    kubectl create clusterrolebinding razee-viewer --clusterrole=razee-viewer --serviceaccount=razeedeploy:razee-viewer
    
    このコマンドの構成要素について
    コンポーネント 説明
    razee-viewer クラスター役割バインディングの名前 (razee-viewer など)。
    --clusterrole=razee-viewer 先ほど作成したクラスター役割の名前 (razee-viewer など)。
    --serviceaccount=razeedeploy:razee-viewer Satellite Config コンポーネントで使用するようにデフォルトでセットアップされるサービス・アカウントの名前 (razeedeploy:razee-viewer または razeedeploy:razee-editor のどちらか)。

カスタム・アクセス権限 (1 つのプロジェクトを範囲とするもの)

カスタム RBAC ポリシーを作成して、必要なアクション、Kubernetes リソース、およびプロジェクト (名前空間) に対するアクセス権限を Satellite Config に付与することができます。

  1. 役割の範囲とする特定のプロジェクトにおいて付与するアクションとリソースを指定し、役割を作成します。 例えば、次のコマンドはエディター役割を作成するので、Satellite Config はこのプロジェクト内のすべての Kubernetes リソースをデプロイおよび更新できます。

    kubectl create role razee-editor --namespace=default --verb=get,list,watch,create,update,patch,delete --resource="*.*"
    
    このコマンドの構成要素について
    コンポーネント 説明
    razee-editor クラスター役割の名前 (razee-editor など)。
    --namespace default 役割の範囲とするプロジェクト (名前空間) (default など)。
    --verb=get,list,watch,create,update,patch,delete 役割で許可するアクションのコンマ区切りリスト。 この例のアクションの verb は、エディターの一般的な役割 get,list,watch,create,update,patch,delete です。 その他の使用可能な動詞については、『 Kubernetes 』のドキュメントを参照してください。
    --resource="*.*" 役割でアクションを許可する Kubernetes リソースのコンマ区切りリスト。 この例では、すべての API グループのすべての Kubernetes リソース ("*.*") に対するアクセス権限が付与されています。 指定可能な他のリソースを確認するには、kubectl api-resources -o wide を実行してください。
  2. 先ほど作成したクラスター役割に Satellite Config サービス・アカウントをバインドする、役割バインディングを作成します。 これで、クラスターに対するカスタム・アクセス権限が Satellite Config に付与されます。

    kubectl create rolebinding razee-editor --namespace=default --role=razee-editor --serviceaccount=razeedeploy:razee-editor
    
    このコマンドの構成要素について
    コンポーネント 説明
    razee-editor 役割バインディングの名前 (razee-editor など)。
    --namespace default 役割バインディングの範囲とするプロジェクト (名前空間) (default など)。 この名前空間は、当該役割が存在する名前空間と一致している必要があります。
    --role=razee-editor 先ほど作成した役割の名前 (razee-editor など)。
    --serviceaccount=razeedeploy:razee-editor Satellite Config コンポーネントで使用するようにデフォルトでセットアップされるサービス・アカウントの名前 (razeedeploy:razee-viewer または razeedeploy:razee-editor のどちらか)。

クラスター・グループのセットアップSatellite 構成へのクラスターの登録 に進みます。