パブリッククラウドは、ワークロード発生時に必要な規模のHPC/GPUクラスタを構築し、ワークロード終了時にこれを削除する、オンデマンドクラスタ環境を構築するには最適なサービスです。
オンデマンドクラスタの管理は、ソフトウェアにより自動化することが一般的ですが、HPC/GPUクラスタに必要なOCIリソースの作成・終了をこのアプリケーションに許可するための仕組みとして、 インスタンス・プリンシパル 認証が用意されています。
本テクニカルTipsは、オンデマンドクラスタを念頭とした インスタンス・プリンシパル 認証の設定方法を解説します。

注意 : 本コンテンツ内の画面ショットは、現在のOCIコンソール画面と異なっている場合があります。


0. 概要

HPC/GPUクラスタを動的に作成・終了させるソフトウェア(以降”オンデマンドクラスタ管理ソフトウェア”と呼称)でオンデマンドクラスタを実現する場合、動的に管理するOCIサービス( クラスタ・ネットワーク やインスタンス)に対する IAM 認証・認可をオンデマンドクラスタ管理ソフトウェアに付与する必要がありますが、オンデマンドクラスタ管理ソフトウェアが動作するインスタンス(以降”クラスタ管理ノード”と呼称)を インスタンス・プリンシパル 認証に組み込むことで、これを実現することが可能です。
具体的には、以下の手順を実行します。

  • クラスタ管理ノードを含む 動的グループ を作成
  • 作成した 動的グループ に対する IAMポリシー を作成

オンデマンドクラスタ管理ソフトウェアでは、 Terraform CLIや OCI CLI からこの インスタンス・プリンシパル 認証を利用し、HPC/GPUクラスタのライフサイクル管理を行います。

なお、この インスタンス・プリンシパル 認証を利用するオンデマンドクラスタを実現する手法は、 OCI HPCチュートリアル集HPCクラスタを構築する(オンデマンドクラスタ自動構築編)GPUクラスタを構築する(オンデマンドクラスタ自動構築編) でも使われています。

以降では、上記に沿った具体的な インスタンス・プリンシパル 認証の設定手順と、オンデマンドクラスタ管理ソフトウェアからの利用を想定した Terraform CLIと OCI CLI でこの インスタンス・プリンシパル 認証を利用する方法を解説します。


1. インスタンス・プリンシパル認証設定

本章は、クラスタ管理ノードを インスタンス・プリンシパル 認証に組み込みます。

1-1. 動的グループ作成

本章は、クラスタ管理ノードを含む 動的グループ を作成します。

  1. OCIコンソールにログインし、 アイデンティティとセキュリティドメイン とメニューを辿ります。

  2. 表示される以下 xxxx(ルート)コンパートメント内のドメイン 画面で、 インスタンス・プリンシパル 認証を設定する アイデンティティ・ドメイン を選択します。(複数の アイデンティティ・ドメイン を運用していなければ、通常”Default”です。)

    画面ショット

  3. 表示される画面左側の 動的グループ メニューを選択します。

  4. 表示される以下 Defaultドメイン内の動的グループ 画面で、 動的グループの作成 ボタンをクリックします。

    画面ショット

  5. 表示される以下 動的グループの作成 画面で、各フィールドに以下の情報を入力し 作成 ボタンをクリックします。
    なお、ここに記載のないフィールドは、デフォルトのままとします。

    • 名前動的グループ に付与する名前
    • 説明動的グループ に付与する説明
    • ルール1動的グループ に含めるクラスタ管理ノード用インスタンスが存在するコンパートメントのOCIDを指定する以下構文

      Any {instance.compartment.id = 'compartment_ocid'}
      

    画面ショット

1-2. IAMポリシー作成

本章は、作成した 動的グループ に対する IAMポリシー を作成します。

  1. OCIコンソールにログインし、 アイデンティティとセキュリティポリシー とメニューを辿ります。

  2. 表示される以下 xxxxコンパートメント内のポリシー 画面で、 ポリシーの作成 ボタンをクリックします。
    この際、 コンパートメント プルダウンメニューがクラスタ管理ノード用インスタンスの存在する コンパートメント と異なる場合は、これを修正します。

    画面ショット

  3. 表示される以下 ポリシーの作成 画面で、各フィールドに以下の情報を入力し 作成 ボタンをクリックします。
    なお、ここに記載のないフィールドは、デフォルトのままとします。

    • 名前IAMポリシー に付与する名前
    • 説明IAMポリシー に付与する説明(用途等)
    • ポリシー・ビルダー : 作成する IAMポリシー を指定する以下構文( 手動エディタの表示 ボタンをクリックして表示)

      allow service compute_management to use tag-namespace in compartment compartment_name
      allow service compute_management to manage compute-management-family in compartment compartment_name
      allow service compute_management to read app-catalog-listing in compartment compartment_name
      allow group group_name to manage all-resources in compartment compartment_name
      allow dynamic-group dynamicgroup_name to read app-catalog-listing in tenancy
      allow dynamic-group dynamicgroup_name to use tag-namespace in tenancy
      allow dynamic-group dynamicgroup_name to manage all-resources in compartment compartment_name
      

      ※1)1-4行目と7行目の コンパートメント 名は、自身のものに置き換えます。
      ※2)4行目の グループ 名は、自身のものに置き換えます。
      ※3)5-7行目の 動的グループ 名は、先に作成したものに置き換えます。
      ※4)最初の4行のポリシーは、 クラスタ・ネットワーク を伴うリソースを Terraform CLIから利用する場合に必要です。
      ※5)最後の3行のポリシーは、クラスタ管理ノードに必要なリソース管理権限を付与します。

    画面ショット


2. Terraform CLIからのインスタンス・プリンシパル認証利用方法

本章は、先に設定した インスタンス・プリンシパル 認証を Terraform CLIから利用する方法を解説します。

Terraform CLIから インスタンス・プリンシパル 認証を利用する場合は、 Terraform スクリプト中のプロバイダ定義を以下のように指定します。

provider "oci" {
  auth = "InstancePrincipal"  
  region = "region_name"
}

※6)region属性の値は、使用するリージョンの値に置き換えます。

なおこのプロバイダ定義は、 OCI HPCチュートリアル集HPCクラスタを構築する(オンデマンドクラスタ自動構築編)GPUクラスタを構築する(オンデマンドクラスタ自動構築編) で使用している HPCクラスタスタッククラスタオートスケーリング 機能を インスタンス・プリンシパル 認証と共に構成した場合、改めて設定する必要はありません。


3. OCI CLIからのインスタンス・プリンシパル認証利用方法

本章は、先に設定した インスタンス・プリンシパル 認証を OCI CLI から利用する方法を解説します。

OCI CLI から インスタンス・プリンシパル 認証を利用する場合は、以下のように OCI CLI コマンドの”–auth”オプションに”instance_principal”を指定します。

$ oci iam region list --auth instance_principal

更新日時: