サービス・メッシュに必要なポリシーの設定

サービス・メッシュに必要なOCIポリシーをインストールします。

ワーカー・ノードの動的グループの作成

サービス・メッシュ・プロセスでは、クラスタ内のワーカー・ノードのInstance Principalsを使用してOCI APIを起動します。ポリシーを後で作成するには、それらのインスタンスで構成される動的グループを定義します。<your-cluster-compartment>でクラスタを作成したとします。

  • コンソールから、「アイデンティティ」の下の「アイデンティティとセキュリティ」に移動し、「動的グループ」を選択します。
  • 「動的グループの作成」をクリックします。
  • 動的グループに<your-dynamic-group>という名前を付けます。
  • オプションは2つあります。
    1. コンパートメントを使用して動的グループを作成します。
      ANY {instance.compartment.id = '<your-cluster-compartment-id>'}
    2. クラスタ・ノード・プールの特定のインスタンスIDを使用して動的グループを作成します。
      ANY {instance.id = 'ocid1.instance.oc1.iad..aaa...'}
  • グループを保存するには、「作成」をクリックします。
ノート

外部ポリシーが設定されていない場合、サービス・メッシュ・プロセスはノード・プールの任意のノードで実行されます。サービス・メッシュ・プロセスを実行しているノードごとにルールを使用して動的グループを作成するかわりに、コンパートメントIDには1つのルールが必要なため、コンパートメントIDを使用することをお薦めします。

サービス・メッシュ・プロセスの詳細は、「サービス・メッシュ・プロセス」を参照してください。

証明書サービスの動的グループの作成

サービス・メッシュ・サービスは証明書サービスを使用して証明書をネイティブに管理します。証明書サービスには、キー・サービスおよびボールト・サービスを使用する権限が必要です。証明書関連リソースで構成される動的グループを定義します。

  • コンソールから、「アイデンティティ」の下の「アイデンティティとセキュリティ」に移動し、「動的グループ」を選択します。
  • 「動的グループの作成」をクリックします。
  • 動的グループに<your-certs-dynamic-group>という名前を付けます。
  • ルールを入力します:
    ANY {resource.type='certificateauthority', resource.type='certificate'}
  • グループを保存するには、「作成」をクリックします。

証明書サービスのポリシーの作成

証明書サービスに鍵とボールトを使用する権限を付与します。<your-vault-compartment>にキーおよびボールトを作成したとします。

  • コンソールから、「アイデンティティ」の下の「アイデンティティとセキュリティ」に移動し、「ポリシー」を選択します。
  • 「ポリシーの作成」をクリックします。
  • ポリシーに<your-certificate-policy-name>という名前を付けます。
  • 自分のコンパートメントが選択されていることを確認します。
  • ポリシー・ビルダーに次のポリシーを入力します。
    Allow dynamic-group <your-certs-dynamic-group> to use keys in compartment <your-vault-compartment>
    Allow dynamic-group <your-certs-dynamic-group> to manage objects in compartment <your-vault-compartment> 
  • ポリシーを保存するには、「作成」をクリックします。

証明書サービスの詳細は、「証明書の概要」を参照してください。

メッシュをどのように管理しますか?

サービス メッシュ プロセスに必要な権限は、メッシュの管理方法によって異なります。ネイティブKubernetesユーザーの場合、kubectlでサービス・メッシュを管理することをお薦めします。OCI API (OCIコンソール、CLI、SDK、Terraform Provider)を使用してサービス・メッシュ・リソースを管理する場合は、OCI APIを使用してサービス・メッシュを管理します

kubectlでサービス・メッシュを管理する場合のポリシー

kubectlで管理する場合、サービス・メッシュに必要なOCIポリシーをインストールします。

メッシュKubernetes OperatorおよびMesh Proxiesのポリシー概要

サービス・メッシュKubernetes演算子は、カスタム・リソースがクラスタに作成されるときにサービス・メッシュ・リソースを作成します。Kubernetes演算子には、サービス・メッシュ・リソースを管理する権限が必要です。Kubernetes演算子は、ワーカー・ノードのインスタンス・プリンシパルを使用して、サービス・メッシュ・コントロール・プレーンで認証および認可します。セキュアな通信を実現するために、サービス・メッシュは提供された認証局から代理で証明書をさらに作成します。サービス・メッシュ・プロキシには、サービス・メッシュ・バックエンドに接続するための権限が必要であり、これらのポリシーによってこれが有効になります。詳細は、「アプリケーション・セキュリティ」の項を参照してください。

ノート

この項で説明するステップは、4つのコンパートメント・アプローチを使用して、サービス・メッシュを設定します。より簡単な設定が必要な場合は、すべてを単一の<service- mesh- compartment>で設定できます。

サービス・メッシュKubernetes OperatorおよびMesh Proxiesのポリシーの作成

認証局が<your-certificate-compartment>で作成されたとします。<your-dynamic-group>を使用して、サービス・メッシュに必要なアクセス権を<your-certficate-compartment>に付与するポリシーを作成します。

  • コンソールから、「アイデンティティ」の下の「アイデンティティとセキュリティ」に移動し、「ポリシー」を選択します。
  • 「ポリシーの作成」をクリックします。
  • ポリシーに<your-mesh-proxies-policy-name>という名前を付けます。
  • 自分のコンパートメントが選択されていることを確認します。
  • ポリシー・ビルダーに次のポリシーを入力して、メッシュKubernetes Operatorおよびメッシュ・プロキシのサービス・メッシュ・アクセスを有効にします。
    Allow dynamic-group <your-dynamic-group> to manage service-mesh-family in compartment <your-mesh-compartment>
  • サービス・メッシュKubernetes演算子の証明書アクセスを有効にするには、ポリシー・ビルダーに次のポリシーを入力します。
    Allow dynamic-group <your-dynamic-group> to read certificate-authority-family in compartment <your-certificate-compartment>
    Allow dynamic-group <your-dynamic-group> to use certificate-authority-delegates in compartment <your-certificate-compartment>
    Allow dynamic-group <your-dynamic-group> to manage leaf-certificate-family in compartment <your-certificate-compartment>
    Allow dynamic-group <your-dynamic-group> to manage certificate-authority-associations in compartment <your-certificate-compartment>
    Allow dynamic-group <your-dynamic-group> to manage certificate-associations in compartment <your-certificate-compartment>
    Allow dynamic-group <your-dynamic-group> to manage cabundle-associations in compartment <your-certificate-compartment>
  • ポリシーを保存するには、「作成」をクリックします。

OCI APIでサービス・メッシュを管理する際のポリシー

OCI APIの管理時に、サービス・メッシュに必要なOCIポリシーをインストールします。

メッシュ演算子グループの作成

メッシュ演算子グループは、サービス・メッシュと証明書を管理する権限を提供します。<your-mesh-operators>グループを作成し、グループにユーザーを追加します。

  • コンソールから、「アイデンティティ」の下の「アイデンティティとセキュリティ」に移動し、「グループ」を選択します。
  • グループの作成」をクリックします。
  • グループに<your-mesh-operators>という名前を付けます。
  • グループを保存するには、「作成」をクリックします。
  • グループの詳細ページが表示されます。このページでグループにユーザーを追加します。

メッシュ演算子のポリシーの作成

セキュアな通信を有効にするには、サービス・メッシュが認証局から代理で証明書を作成します。詳細は、アプリケーション・セキュリティを参照してください。証明書およびアソシエーションは、認証局のコンパートメントに作成されます。メッシュ演算子には、サービス・メッシュおよび証明書リソースを管理する権限が必要です。

そのためには、次のポリシーを作成します。認証局が<your-certificate-compartment>で作成され、<your-mesh-compartment>のリソースがメッシュされるとします。

  • コンソールから、「アイデンティティ」の下の「アイデンティティとセキュリティ」に移動し、「ポリシー」を選択します。
  • 「ポリシーの作成」をクリックします。
  • ポリシーに<your-mesh-operator-policy-name>という名前を付けます。
  • 自分のコンパートメントが選択されていることを確認します。
  • ポリシー・ビルダーに次のポリシーを入力します。
    Allow group <your-mesh-operators> to manage service-mesh-family in compartment <your-mesh-compartment>
    Allow group <your-mesh-operators> to read certificate-authority-family in compartment <your-certificate-compartment>
    Allow group <your-mesh-operators> to use certificate-authority-delegates in compartment <your-certificate-compartment>
    Allow group <your-mesh-operators> to manage leaf-certificate-family in compartment <your-certificate-compartment>
    Allow group <your-mesh-operators> to manage certificate-authority-associations in compartment <your-certificate-compartment>
    Allow group <your-mesh-operators> to manage certificate-associations in compartment <your-certificate-compartment>
    Allow group <your-mesh-operators> to manage cabundle-associations in compartment <your-certificate-compartment>
  • ポリシーを保存するには、「作成」をクリックします。

サービス・メッシュKubernetes OperatorおよびMesh Proxiesのポリシーの作成

Service Mesh Kubernetes演算子は、コントロール・プレーンからService Meshリソースを読み取ります。メッシュ・プロキシは、サービス・メッシュ・バックエンドに接続して、トラフィック・ルーティングやセキュリティなどの構成をフェッチします。さらに、メッシュプロキシは、セキュアな通信を可能にするために証明書、CAバンドルおよび認証局にアクセスする必要があります。

そのためには、次のポリシーを作成します。認証局が<your-certificate-compartment>で作成され、<your-mesh-compartment>のリソースがメッシュされるとします。

  • コンソールから、「アイデンティティ」の下の「アイデンティティとセキュリティ」に移動し、「ポリシー」を選択します。
  • 「ポリシーの作成」をクリックします。
  • ポリシーに<your-mesh-processes-policy-name>という名前を付けます。
  • 自分のコンパートメントが選択されていることを確認します。
  • ポリシー・ビルダーに次のポリシーを入力して、メッシュKubernetes演算子およびメッシュ・プロキシのサービス・メッシュ・アクセスを有効にします。
    Allow dynamic-group <your-dynamic-group> to read service-mesh-family in compartment <your-mesh-compartment>
  • メッシュ・プロキシの証明書アクセスを有効にするには、ポリシー・ビルダーに次のポリシーを入力します。
    Allow dynamic-group <your-dynamic-group> to read certificate-authority-family in compartment <your-certificate-compartment>
    Allow dynamic-group <your-dynamic-group> to read leaf-certificate-family in compartment <your-certificate-compartment>
  • ポリシーを保存するには、「作成」をクリックします。

観測性のポリシーの作成

サービス・メッシュ観測性に必要なOCIポリシーをインストールします。

観測性に関するポリシーの概要

サービス・メッシュは、アクセシビリティ・ログの表示などの観測性機能を提供します。これらのログは<your-cluster-compartment>で使用でき、次のポリシーを使用してOCIロギングで使用可能になります。ログを使用すると、メッシュ演算子はOCIロギング機能を使用して、集計や検索などの様々な操作を実行できます。

観測性のポリシーの作成

ログ・エージェントがOCIロギングにログを公開できるようにするには、次のポリシーを作成します。

  • コンソールから、「アイデンティティ」の下の「アイデンティティとセキュリティ」に移動し、「ポリシー」を選択します。
  • 「ポリシーの作成」をクリックします。
  • ポリシーに<your-mesh-observe-policy-name>という名前を付けます。
  • 自分のコンパートメントが選択されていることを確認します。
  • ポリシー・ビルダーに次のポリシーを入力します。
    Allow dynamic-group <your-dynamic-group> to use metrics in compartment <your-cluster-compartment>
    Allow dynamic-group <your-dynamic-group> to use log-content in compartment <your-cluster-compartment>
  • ポリシーを保存するには、「作成」をクリックします。

次: kubectlを使用したアプリケーションのサービス・メッシュの設定