Red Hat OpenShift on IBM Cloud の Terraform を使用したクラスター・アクセス権限の割り当て
Terraform on IBM Cloud® は、IBM Cloud サービスの予測性の高い安定したプロビジョニングを可能にして、Infrastructure as Code (IaC) の原則に従って高度なマルチレイヤ―・クラウド環境を高速ビルドできるようにします。 IBM Cloudを使用する場合と同様です。CLIやAPI、SDKを使用するのと同様に、HashiCorpConfiguration Language (HCL)を使用することで、Red Hat OpenShift on IBM Cloudリソースのプロビジョニング、更新、削除を自動化することができます。
管理対象の Terraform on IBM Cloud® ソリューションをお探しですか? IBM Cloud® Schematics をお試しください。 Schematicsを使えば、使い慣れたTerraformスクリプト言語を使うことができますが、TerraformコマンドラインやIBM Cloud®プロバイダプラグインのセットアップやメンテナンスを心配する必要はありません。プロバイダプラグインを使うことができます。Schematicsは、IBM Cloud®カタログから簡単にインストールできる定義済みのTerraformテンプレートも提供します。
Terraform を使用した Red Hat OpenShift クラスターの作成
Terraform を使用してクラスター・アクセス権限を割り当てる前に、Terraform を使用して Red Hat OpenShift クラスターを作成する手順に従います。 既にクラスターがある場合は、 IAM ユーザー・アクセス権限の割り当て を参照してください。
開始する前に、Red Hat OpenShift on IBM Cloudリソースを作成して作業するために 必要なアクセス権を持っ ていることを確認してください。
-
Terraform on IBM Cloud® 入門チュートリアルに従って、Terraform CLI をインストールして Terraform 用の IBM Cloud® Provider プラグインを構成します。 このプラグインは、IBM Cloud® のサービス・インスタンスおよびリソースのプロビジョン、更新、または削除に使用される Red Hat OpenShift API を抽象化しています。
-
チュートリアルに従って、 Terraform を使用して単一ゾーン・クラスターと複数ゾーン・クラスターを作成します。
-
オプション: Terraform を使用して、 Red Hat OpenShift クラスター の IAM ユーザー・アクセス・ポリシーを構成します。
Red Hat OpenShift クラスターへの IAM ユーザー・アクセス権限の割り当て
Terraform を使用して、 IBM Cloud アカウント内の Red Hat OpenShift クラスターに対する IAM ユーザー・アクセス権限を割り当てることができます。 IAM ポリシーで Terraform を使用する方法について詳しくは、 IBM Cloud プロバイダー Terraform の資料を参照してください。
-
Terraform ディレクトリーに、
iam.tf
という名前の構成ファイルを作成します。iam.tf
ファイルで、 HashiCorp 構成言語 (HCL) を使用して、 Red Hat OpenShift クラスター用の IAM ユーザー・アクセス・ポリシーを作成するための構成パラメーターを追加します。 以下の構成例では、ibm_iam_user_policy
を作成し、指定されたクラスターにポリシーを割り当てます。 詳しくは Terraformのドキュメントを参照。resource "ibm_iam_user_policy" "cluster" { ibm_id = "<ibm_id>" roles = ["<access_role_1>, <access_role_2>"] resources { service = "containers-kubernetes" resource_instance_id = "<cluster_name>" } }
Terraform を使用した IAM アクセス・ポリシーの構成 リソース 説明 ibm_id
IAM アクセス・ポリシーを作成する対象のユーザーの IBM Cloud ID または E メール・アドレス。 roles
ユーザーに割り当てるアクセス・ロールをコンマで区切ったリスト。 service
アクセス・ポリシーが適用されるサービスのタイプ。 Red Hat OpenShift クラスターの場合は "openshift"
と入力します。 適用可能なサービス・タイプの完全なリストについては、ibmcloud oc catalog service-marketplace
を実行してください。resource_instance_id
クラスターの ID または名前です。 設定ファイルの例:
resource "ibm_iam_user_policy" "test_policy" { ibm_id = "ibm_id@ibm.com" roles = ["Viewer", "Editor", "Administrator"] resources { service = "containers-kubernetes" resource_instance_id = "my-cluster" } }
-
Terraform CLI を初期設定します。
terraform init
-
Terraform 実行プランを作成し、出力を確認します。 Terraform実行プランは、あなたのアカウントでRed Hat OpenShiftクラスタを作成するために実行されるすべてのアクションをまとめたものです。 出力の
Plan
セクションをメモします。 構成ファイルによって 1 つの IAM ユーザー・アクセス・ポリシーが作成されるため、出力例ではPlan: 1 to add, 0 to change, 0 to destroy
と示されています。Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: + create Terraform will perform the following actions: # ibm_iam_user_policy.test_policy will be created + resource "ibm_iam_user_policy" "test_policy" { + account_management = false + ibm_id = "ibm_id@ibm.com" + id = (known after apply) + roles = [ + "Viewer", + "Editor", + "Administrator", ] + resources { + service = "containers-kubernetes" } } Plan: 1 to add, 0 to change, 0 to destroy.
-
構成ファイルを適用してアクセス・ポリシーを作成します。 完了までに数秒かかるかもしれない。 出力で、ユーザーの IBM E メールの後のポリシー ID 番号をメモします。
terraform apply
出力例:
ibm_iam_user_policy.test_policy: Creating... ibm_iam_user_policy.test_policy: Creation complete after 2s [id=ibm_id@ibm.com/f81b161f-e1db-4084-8b28-cfcbe88fec72]
-
コマンドを実行し、前にメモしたポリシー ID を検索して、IAM アクセス・ポリシーが正常に作成されたことを確認します。
ibmcloud iam user-policies ibm_id@ibm.com
出力例:
Policy ID: f81b161f-e1db-4084-8b28-cfcbe88fec72 Roles: Viewer, Editor, Administrator Resources: Service Name containers-kubernetes Service Instance my-cluster