4.7.4. Terraform を使用して htpasswd アイデンティティープロバイダーを設定する
Terraform を使用すると、htpasswd アイデンティティープロバイダー (IDP) を作成できます。
前提条件
- ROSA CLI の最新バージョンがインストール、設定されている。
- 最新バージョンの Terraform をインストールし、設定しました。
手順
- オフラインの Red Hat OpenShift Cluster Manager トークン を使用して、アカウントに権限を付与します。
オフライントークンをコピーし、次のコマンドを実行してトークンを環境変数として設定します。
$ export RHCS_TOKEN=<your_offline_token>注記この環境変数は、マシンの再起動やターミナルの終了など、各セッションの終了時にリセットされます。
以下のいずれかのコマンドを実行して、
htpasswd_idp.tfファイルを作成します。オプション 1: 生成されたランダムなパスワードを持つユーザーを作成するには、以下を実行します。
$ cat<<-EOF>htpasswd_idp.tf module "htpasswd_idp" { source = "terraform-redhat/rosa-hcp/rhcs//modules/idp" version = "1.6.2" cluster_id = "2odpb9p344hnkfvpkluo00qmgkika78l" name = "htpasswd-idp-tf-1" idp_type = "htpasswd" htpasswd_idp_users = [{ username = "pej-user-d1", password = random_password.password.result }] } resource "aws_secretsmanager_secret" "idp_password" { name = "idp-password-secret" description = "Any description here" } resource "random_password" "password" { length = 16 lower = true special = true override_special = "!#$%&*()-_=+[]{}<>:?" } # If you need to output the password, mark it as sensitive to hide from CLI logs output "password_output" { value = random_password.password.result sensitive = true } # This section sends your credentials to your AWS Secrets Manager to enable you to log in to your cluster. resource "aws_secretsmanager_secret_version" "idp_password_val" { secret_id = aws_secretsmanager_secret.idp_password.id secret_string = random_password.password.result } EOF<cluster_id>プレースホルダーを、ご使用のクラスターの 32 桁の ID に置き換える必要があります。その値を見つけるには、rosa list clusters | awk '{print $1}'を実行します。また、<user_name>プレースホルダーを、作成したいユーザー名に置き換える必要があります。生成されたランダムパスワードは、AWS Secrets Manager に保存され、クラスターへのログイン時に使用されます。パスワードを設定した後、以下のコマンドを実行してパスワードを確認してください。
$ terraform output password_outputCLI は生成されたパスワードを平文で返します。
オプション 2: ユーザー作成時にパスワードを指定するには、以下を実行します。
$ cat<<-EOF>htpasswd_idp.tf module "htpasswd_idp" { source = "terraform-redhat/rosa-hcp/rhcs//modules/idp" version = "1.6.2" cluster_id = "<cluster_id>" name = "htpasswd-idp" idp_type = "htpasswd" htpasswd_idp_users = [{ username="<user_name>",password="<password>"}] } EOF<cluster_id>プレースホルダーを、ご使用のクラスターの 32 桁の ID に置き換える必要があります。その値を見つけるには、rosa list clusters | awk '{print $1}'を実行します。また、<user_name>プレースホルダーを、作成したいユーザー名に置き換え、<password>プレースホルダーをパスワードに置き換える必要があります。
Terraform ファイルに基づいてリソースを作成するように Terraform を設定するには、次のコマンドを実行します。
$ terraform initコピーした Terraform が正しいことを確認するには、次のコマンドを実行してください。
$ terraform validate出力例
Success! The configuration is valid.次のコマンドを実行して、Terraform を使用してクラスターを作成します。
$ terraform applyTerraform インターフェイスに作成または変更するリソースがリストされ、確認を求めるプロンプトが表示されたら、続行するには
yesを、キャンセルするにはnoを入力します。Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value: yesIDP が作成されたことを確認するメッセージが表示されます。
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.注記ランダムパスワードテンプレートを使用した場合、生成されたパスワードは AWS Secrets マネージャーに保存されます。