Oracle Cloud Infrastructureドキュメント

クラスタの作成とデプロイメントのためのポリシー構成

Container Engine for Kubernetesを使用してテナンシ内のリージョンにクラスタを作成およびデプロイするには、Container Engine for Kubernetesがテナンシ内で操作を実行できるように、ルート・コンパートメントにポリシーを設定する必要があります。 「Kubernetesのコンテナ・エンジンに必須のポリシーを作成」も参照してください。

テナンシが作成されると、そのテナンシに対して管理者グループが自動的に作成されます。 Administratorsグループのメンバーであるユーザーは、テナンシ内のリソースに対して任意の操作を実行できます。 「Kubernetesのコンテナ・エンジン」を操作するすべてのユーザーがすでに管理者グループのメンバーである場合、追加のポリシーを作成する必要はありません(テナンシで「Kubernetesのコンテナ・エンジン」の操作の実行を許可するためにポリシーから別のポリシーを作成する必要があります)。 ただし、Administratorsグループのメンバーでないユーザーが「Kubernetesのコンテナ・エンジン」を使用できるようにするには、テナンシのリソースに対して操作を実行するために、それらのユーザーが属するグループが属することを許可するポリシーを作成する必要があります。 一部のポリシーは必須ですが、オプションのポリシーもあります。 「グループに必要なポリシーの作成」および「グループに必要なポリシーの作成」を参照してください。

IAMで管理される前述のポリシーに加えて、Kubernetes RBAC認可者は、Kubernetes RBACロールおよびクラスタ・ロールを介して特定のクラスタのユーザーに対してさらに詳細なアクセス制御を強制することもできます。 「アクセス制御とContainer Engine for Kubernetesについて」を参照してください。

「Kubernetesのコンテナ・エンジン」の必須ポリシーの作成

テナンシ内のクラスタを作成および管理するには、Container Engine for Kubernetesがテナンシ内のすべてのリソースにアクセスできる必要があります。 Container Engine for Kubernetesに必要なアクセス権を与えるには、次のようにサービスのポリシーを作成します:

  1. コンソールで、「ナビゲーション・メニュー」を開きます。 ガバナンスと管理の下で、アイデンティティに行き、「ポリシー」をクリックします。 表示しているコンパートメント内のポリシーのリストが表示されます。
  2. 左のリストからテナンシのルート・コンパートメントを選択します。
  3. 「ポリシーの作成」をクリックします。
  4. 次のように入力します。

    • 名: ポリシーの一意の名前(たとえば、oke-service)。 名前は、テナンシ内のすべてのポリシーで一意でなければなりません。 これは後で変更することはできません。 機密情報を入力しないでください。
    • 説明: フレンドリな説明。 これを後で変更することもできます。 機密情報を入力しないでください。
    • ポリシーのバージョン管理: 将来のポリシー変更の動詞とリソースの変更がポリシーに反映されるようにするには、現在のポリシーを維持を選択します。 または、特定の日付の現在の定義に従ってアクセスを制限する場合は、「バージョン日付を使用」を選択し、その日付をYYYY-MM-DD形式で入力します。 詳細は、「ポリシー言語バージョン」を参照してください。
    • ステートメント: 次のポリシー・ステートメント:

      Allow service OKE to manage all-resources in tenancy
    • タグ: オプションで、タグを適用できます。 リソースを作成する権限を持っている場合は、フリーフォーム・タグをそのリソースに適用する権限も持っています。 定義済みタグを適用するには、タグ・ネームスペースを使用する権限が必要です。 タギングの詳細については、「リソース・タグ」を参照してください。 タグを適用する必要があるかどうかわからない場合は、このオプションをスキップしてください(後でタグを適用することもできます)。
  5. 「作成」をクリックします

グループに必要なポリシーの作成

テナンシ内のクラスタおよびノード・プールを作成、更新および削除するには、管理者グループのメンバーでないユーザーが、テナンシ内のクラスタ関連リソースを操作する権限を持っている必要があります。 ユーザーに必要なアクセス権を付与するには、ユーザーが属するグループに必要な数のポリシー文を含むポリシーを作成する必要があります:

  1. コンソールで、「ナビゲーション・メニュー」を開きます。 ガバナンスと管理の下で、アイデンティティに行き、「ポリシー」をクリックします。 表示しているコンパートメント内のポリシーのリストが表示されます。
  2. 左のリストからテナンシのルート・コンパートメントを選択します。
  3. 「ポリシーの作成」をクリックします。
  4. 次のように入力します。

    • 名: ポリシーの一意の名前(たとえば、acme-dev-team-oke-required-policy)。 名前は、テナンシ内のすべてのポリシーで一意でなければなりません。 これは後で変更することはできません。 機密情報を入力しないでください。
    • 説明: フレンドリな説明。 これを後で変更することもできます。 機密情報を入力しないでください。
    • ポリシーのバージョン管理: 将来のポリシー変更の動詞とリソースの変更がポリシーに反映されるようにするには、現在のポリシーを維持を選択します。 または、特定の日付の現在の定義に従ってアクセスを制限する場合は、「バージョン日付を使用」を選択し、その日付をYYYY-MM-DD形式で入力します。 詳細は、「ポリシー言語バージョン」を参照してください。
    • ステートメント: 次に示す必要なポリシー文は、ユーザーがKubernetesのコンテナ・エンジンを使用してクラスタとノード・プールを作成、更新および削除することを可能にします:

      • Allow group <group-name> to manage instance-family in tenancy

      • Allow group <group-name> to use subnets in tenancy

      • Allow group <group-name> to read virtual-network-family in tenancy

      • Allow group <group-name> to use vnics in tenancy
      • Allow group <group-name> to inspect compartments in tenancy

      クラスタ関連リソースに対する任意の操作をユーザーが実行できるようにするために必要な次のポリシー文(この'catch-all'ポリシーは事実上、すべてのユーザー管理者がクラスタ関連リソースに関する条件を満たしているため、事実上その内容はすべてのユーザーにはわかりません。):

      • Allow group <group-name> to manage cluster-family in tenancy
    • タグ: オプションで、タグを適用できます。 リソースを作成する権限を持っている場合は、フリーフォーム・タグをそのリソースに適用する権限も持っています。 定義済みタグを適用するには、タグ・ネームスペースを使用する権限が必要です。 タギングの詳細については、「リソース・タグ」を参照してください。 タグを適用する必要があるかどうかわからない場合は、このオプションをスキップしてください(後でタグを適用することもできます)。
  5. 「作成」をクリックします

グループに対する1つ以上のオプションのポリシーの作成

管理者グループのメンバーでないユーザーが「Kubernetesのコンテナ・エンジン」を使用するためには、オプションのポリシーを作成して、これらのユーザーが属するグループがテナンシ内のクラスタ関連リソースに対する操作を実行できるようにします:

  1. コンソールで、「ナビゲーション・メニュー」を開きます。 ガバナンスと管理の下で、アイデンティティに行き、「ポリシー」をクリックします。 表示しているコンパートメント内のポリシーのリストが表示されます。
  2. 左のリストからテナンシのルート・コンパートメントを選択します。
  3. 「ポリシーの作成」をクリックします。
  4. 次のように入力します。

    • 名: ポリシーの一意の名前(たとえば、acme-dev-team-oke-optional-policy)。 名前は、テナンシ内のすべてのポリシーで一意でなければなりません。 これは後で変更することはできません。 機密情報を入力しないでください。
    • 説明: フレンドリな説明。 これを後で変更することもできます。 機密情報を入力しないでください。
    • ポリシーのバージョン管理: 将来のポリシー変更の動詞とリソースの変更がポリシーに反映されるようにするには、現在のポリシーを維持を選択します。 または、特定の日付の現在の定義に従ってアクセスを制限する場合は、「バージョン日付を使用」を選択し、その日付をYYYY-MM-DD形式で入力します。 詳細は、「ポリシー言語バージョン」を参照してください。
    • ステートメント: 既存のグループがテナンシ内のクラスタ関連リソースの操作を実行できるようにする適切なポリシー・ステートメント。 例えば:

      • acme-dev-teamグループのユーザーが、新しいクイック・クラスタの作成時に、関連する新しいネットワーク・リソースを自動的に作成および構成できるようにするには、ポリシーでそのグループを付与する必要もあります:

        • VCN_READおよびVCN_CREATEのアクセス権。 Allow group acme-dev-team to manage vcns in tenancyのようなポリシー文を入力してください
        • SUBNET_READおよびSUBNET_CREATEのアクセス権。 Allow group acme-dev-team to manage subnets in tenancyのようなポリシー文を入力してください
        • INTERNET_GATEWAY_CREATEアクセス権。 Allow group acme-dev-team to manage internet-gateways in tenancyのようなポリシー文を入力してください
        • NAT_GATEWAY_CREATEアクセス権。 Allow group acme-dev-team to manage nat-gateways in tenancyのようなポリシー文を入力してください
        • ROUTE_TABLE_UPDATEアクセス権。 Allow group acme-dev-team to manage route-tables in tenancyのようなポリシー文を入力してください
        • SECURITY_LIST_CREATEアクセス権。 Allow group acme-dev-team to manage security-lists in tenancyのようなポリシー文を入力してください
      • acme-dev-team-cluster-viewersグループのユーザーがクラスタを単純にリストできるようにするには、Allow group acme-dev-team-cluster-viewers to inspect clusters in tenancyのようなポリシー文を入力します。
      • acme-dev-team-pool-adminsグループ内のユーザーがノード・プールをリスト作成、更新、および削除できるようにするには、Allow group acme-dev-team-pool-admins to use cluster-node-pools in tenancyのようなポリシー文を入力します。
      • acme-dev-team-auditorsグループのユーザーがクラスタで実行された操作の詳細を表示できるようにするには、Allow group acme-dev-team-auditors to read cluster-work-requests in tenancyのようなポリシー・ステートメントを入力します。
    • タグ: オプションで、タグを適用できます。 リソースを作成する権限を持っている場合は、フリーフォーム・タグをそのリソースに適用する権限も持っています。 定義済みタグを適用するには、タグ・ネームスペースを使用する権限が必要です。 タギングの詳細については、「リソース・タグ」を参照してください。 タグを適用する必要があるかどうかわからない場合は、このオプションをスキップしてください(後でタグを適用することもできます)。
  5. 「作成」をクリックします