プロバイダの構成

OCI TerraformプロバイダによってサポートされるOracle Cloud Infrastructure (OCI)サービスおよびリソースと対話するには、OCIアカウントの認証資格証明を使用して構成する必要があります。

認証

OCI Terraformプロバイダは、3つの認証方法をサポートしています:

APIキー認証

APIキー認証を使用してOCIをコールするには、次の資格証明を指定する必要があります:

これらの値は、環境変数として指定することも、Terraform構成変数内で指定することもできます。

インスタンス・プリンシパル認可

インスタンス・プリンシパル認可によって、プロバイダは、プロバイダ定義のtenancy_ociduser_ocidprivate_key_pathおよびfingerprint属性を必要とすることなく、OCIコンピュート・インスタンスからAPIコールを行うことができます。

ノート

インスタンス・プリンシパル認可は、Oracle Cloud Infrastructureで実行中のインスタンスにのみ適用されます。

OCI Terraformプロバイダのインスタンス・プリンシパル認可を有効にするには、次の例に示すように、プロバイダ定義でauth属性にInstancePrincipalを設定します:

variable "region" {}

provider "oci" {
   auth = "InstancePrincipal"
   region = "${var.region}"
}

詳細は、インスタンスからのサービスのコールを参照してください。

セキュリティ・トークン認証

セキュリティ・トークン認証によって、CLIでのトークンベースの認証で生成されたトークンを使用してTerraformを実行できます。セキュリティ・トークン認証を有効にするには、プロバイダ定義のauth属性にSecurityTokenを設定し、config_file_profileに値を指定します。例:

# Configure the Oracle Cloud Infrastructure provider to use Security Token authentication
provider "oci" {
  auth = "SecurityToken"
  config_file_profile = "PROFILE"
}
重要

このトークンは1時間後に期限切れになります。リソースのプロビジョニングに1時間以上かかる場合は、この認証方法を使用しないでください。詳細は、トークンのリフレッシュを参照してください。

環境変数

一般的には、環境変数として必要な認証値をエクスポートするか、Terraformコマンドの実行時に様々なbashプロファイルでそれらをソース指定します。

主に単一のコンパートメントで作業する場合は、環境変数としてコンパートメントOCIDもエクスポートすることを検討してください。テナンシOCIDは、ルート・コンパートメントのOCIDでもあり、任意のコンパートメントOCIDが必要な場合に使用できます。

ヒント

Terraform構成ファイルのプロバイダ・ブロックは、APIキー認証に必要なすべての値が環境変数として指定されているか、*.tfvarsファイルに設定されている場合、完全に削除できます。

UNIXおよびLinuxでの環境変数の設定

Terraform構成が単一のコンパートメントまたはユーザーに制限されている場合は、このbash_profileオプションを使用すれば十分です。より複雑な環境では、複数の環境変数のセットを保持することをお薦めします。

~/.bash_profileで、次の変数を設定します:

export TF_VAR_tenancy_ocid=<tenancy_OCID>
export TF_VAR_compartment_ocid=<compartment_OCID>
export TF_VAR_user_ocid=<user_OCID>
export TF_VAR_fingerprint=<key_fingerprint>
export TF_VAR_private_key_path=<private_key_path>

これらの値を設定したら、新しいターミナルを開くか、プロファイルの変更をソース指定します:

$ source ~/.bash_profile

Windowsでの環境変数の設定

Windowsで使用するための構成は、ほとんど同じです:

setx TF_VAR_tenancy_ocid <tenancy_OCID>
setx TF_VAR_compartment_ocid <compartment_OCID>
setx TF_VAR_user_ocid <user_OCID>
setx TF_VAR_fingerprint <key_fingerprint>
setx TF_VAR_private_key_path <private_key_path>

変数は、現在のセッションには設定されません。続行するには、ターミナルを終了してから再度開きます。

ノート

キーがPEMフォーマットであることを確認してください。詳細は、API署名キーの生成方法を参照してください。

SDKおよびCLIの構成ファイルの使用

SDKおよびCLIが使用する同じ~/.oci/configファイルで、必要なプロバイダ値を定義できます。この構成の設定の詳細は、SDKおよびCLIの構成ファイルを参照してください。

重要

SDKおよびCLIの構成ファイルのパラメータ名は、多少異なります。
ヒント

Terraform構成ファイルのプロバイダ・ブロックは、APIキー認証に必要なすべての値が環境変数として指定されているか、~/.oci/configファイルに設定されている場合、完全に削除できます。

次のコマンドを使用して、デフォルト以外のOCI構成プロファイルを環境値として設定できます:

export TF_VAR_config_file_profile=<config_file_profile_name>

プロバイダ・ブロックにOCI構成プロファイルを設定することもできます。例:

provider "oci" {
  tenancy_ocid = var.tenancy_ocid
  config_file_profile= var.config_file_profile
}

優先順位

パラメータが複数の場所に設定されている場合、優先順位は次のとおりです:

  1. 環境変数
  2. OCI構成ファイルのデフォルト以外のプロファイル(指定されている場合)
  3. OCI構成ファイルのDEFAULTプロファイル