1Password Terraformプロバイダーを使用する
1Passwordマニュアル|1Password TerraformプロバイダーでVault内のアイテムを簡単に参照、作成、更新し、安全なパスワード管理を実現します。
Last updated
1Passwordマニュアル|1Password TerraformプロバイダーでVault内のアイテムを簡単に参照、作成、更新し、安全なパスワード管理を実現します。
Last updated
プロバイダー、、または 1Password アカウントと生体認証を使用して、保管庫内のアイテムを参照、Create、または更新できます。
サーバーに接続
1Password CLI
バージョン 2.23.0 以降。
オプション:アカウントではなくサービス アカウントで認証する場合にのみ必要です。
注意
Terraformを実行しているマシンにインストールする必要があります。TerraformTerraform Cloud に 1Password CLI をインストールする方法を学習します。
サーバーに接続
Connect サーバーで 1Password Terraform プロバイダーを使うには:
①Connect サーバー トークンを指定します。 この値は、 OP_CONNECT_TOKEN環境変数またはプロバイダー構成のtoken フィールドを使用して設定できます。
②Connect サーバーのホスト名、URL、または IP アドレスを指定します。 この値は、 OP_CONNECT_HOST環境変数またはプロバイダー構成のurlフィールドで設定できます。
1Password CLI
1Password CLI で 1Password Terraform プロバイダーを使用できます。1Password CLI は、サービス アカウントまたは 1Password アカウントと生体認証を使用して認証できます。
再試行メカニズムについて学ぶ
1Password Terraform プロバイダーの再試行メカニズムは、1Password CLI でプロバイダーを使用します。再試行メカニズムがある理由は、1Password では同じ保管庫にあるアイテムの同時変更が許可されていないためです。
$ terraform apply -parallelism=n
サービスアカウント
サービス アカウントで 1Password Terraform プロバイダーを使うには:
①1Password CLI のインストール パスを指定します。 この値は、 OP_CLI_PATH環境変数またはプロバイダー構成のop_cli_pathフィールドを使用して設定できます。
②サービス アカウント トークンを指定します。 この値は、 OP_SERVICE_ACCOUNT_TOKEN環境変数またはプロバイダー構成のservice_account_tokenフィールドを使用して設定できます。
次のセクションには、1Password Terraform プロバイダーのリファレンス情報が記載されています。
構成
1Password Terraform プロバイダーには、Connect サーバーまたは 1Password CLI で使う前に設定する必要があるフィールドがあります。次の表で各フィールドについて説明します。
次の環境変数を使用して構成値を指定できます。
設定例
次のコード ブロックは構成例を示しています。
ヒント
以下の例では環境変数を使用しています。環境変数を事前に設定しておくか、プレーンテキストを使用してください。
サーバーに接続
サービスアカウント
次の例は、サービス アカウントを使用したプロバイダー構成を示しています。
1Passwordアカウント
次の例は、1Password アカウントを使用したプロバイダー構成を示しています。
1Password Terraform プロバイダーには次のリソースがあります。
Item resource
リソースonepassword_itemは 1Password アイテムを表します。onepassword_item次の構文を使用してインポートできます。
$ terraform import onepassword_item.<item_name> vaults/<vault_uuid>/items/<item_uuid>
次の表はonepassword_itemリソース スキーマについて説明しています。
password_recipeフィールドのネストされたスキーマ:
分野
タイプ
説明
必須
アクセス
digits
ブール
パスワードを生Createするときは数字[0-9]を使用してください。
いいえ
読み書き
length
番号
生Createするパスワードの長さ。
いいえ
読み書き
letter
ブール
パスワードを生Createするときは文字[a-zA-Z]を使用してください。
いいえ
読み書き
symbols
ブール
パスワードを生Createするときは記号[!@.-_*]を使用します。
いいえ
読み書き
sectionフィールドのネストされたスキーマ:
分野
タイプ
説明
必須
アクセス
label
String
セクションのラベル。
はい
読み書き
field
ブロックリスト
いいえ
読み書き
id
String
セクションの一意の識別子。
該当なし
読み取り専用
section.fieldフィールドのネストされたスキーマ:
分野
タイプ
説明
必須
アクセス
label
String
フィールドのラベル。
はい
読み書き
id
String
フィールドの一意の識別子。
いいえ
読み書き
password_recipe
String
いいえ
読み書き
purpose
String
目的は、これが特別なフィールドであることを示します: ユーザー名、パスワード、またはメモ フィールド。
許容される値: USERNAME、PASSWORDまたはNOTES。
いいえ
読み書き
type
String
フィールドに格納される値のタイプ。
許容される値: STRING, EMAIL, CONCEALED, URL, OTP, DATE, MONTH_YEAR, or MENU.
いいえ
読み書き
value
String, Sensitive
フィールドの値。
いいえ
読み書き
section.field.password_recipeフィールドのネストされたスキーマ:
分野
タイプ
説明
必須
アクセス
digits
ブール
パスワードを生Createするときは数字[0-9]を使用してください。
いいえ
読み書き
length
番号
生Createするパスワードの長さ。
いいえ
読み書き
letter
ブール
パスワードを生Createするときは文字[a-zA-Z]を使用してください。
いいえ
読み書き
symbols
ブール
パスワードを生Createするときは記号[!@.-_*]を使用します。
いいえ
読み書き
Example
次のコード ブロックは、onepassword_itemリソースの使用例を示しています。
resource "onepassword_item" "demo_password" {
vault = var.demo_vault
title = "Demo Password Recipe"
category = "password"
password_recipe {
length = 40
symbols = false
}
}
resource "onepassword_item" "demo_login" {
vault = var.demo_vault
title = "Demo Terraform Login"
category = "login"
username = "test@example.com"
}
resource "onepassword_item" "demo_db" {
vault = var.demo_vault
category = "database"
type = "mysql"
title = "Demo TF Database"
username = "root"
database = "Example MySQL Instance"
hostname = "localhost"
port = 3306
}
1Password Terraform プロバイダーには次のデータ ソースがあります。
データ ソースを使用してonepassword_item、1Password アイテムの詳細を取得します。アイテムは、その Vault UUID と、アイテムのタイトルまたは UUID のいずれかで識別できます。
Schema
次の表はonepassword_itemリソース スキーマについて説明しています。
sectionフィールドのネストされたスキーマ:
分野
タイプ
説明
必須
アクセス
field
List of Object
該当なし
読み取り専用
id
String
セクションの一意の識別子。
該当なし
読み取り専用
label
String
セクションのラベル。
該当なし
読み取り専用
section.fieldフィールドのネストされたスキーマ:
分野
タイプ
説明
必須
アクセス
id
String
フィールドの一意の識別子。
該当なし
読み取り専用
label
String
フィールドのラベル。
該当なし
読み取り専用
purpose
String
目的は、これが特別なフィールドであることを示します: ユーザー名、パスワード、またはメモ フィールド。
許容される値: USERNAME、、PASSWORDまたはNOTES。
該当なし
読み取り専用
type
String
フィールドに格納される値のタイプ。
許容される値: STRING, EMAIL, CONCEALED, URL, OTP, DATE, MONTH_YEAR, or MENU.
該当なし
読み取り専用
value
String, Sensitive
フィールドの値。
該当なし
読み取り専用
次の例は、onepassword_itemデータ ソースの使用方法を示しています。
data-source.tf
data "onepassword_item" "example" {
vault = var.demo_vault
uuid = onepassword_item.demo_sections.uuid
}
データ ソースを使用してonepassword_vault、保管庫の詳細を取得します。保管庫は、保管庫名または UUID で識別できます。
Schema
次の表はonepassword_itemリソース スキーマについて説明しています。
分野
タイプ
説明
必須
アクセス
name
String
取得する保管庫の名前。保管庫が UUID で検索された場合、このフィールドには保管庫の名前が入力されます。
いいえ
読み書き
uuid
String
取得する保管庫の UUID。保管庫が名前で検索された場合、このフィールドには保管庫の UUID が入力されます。
いいえ
読み書き
description
String
vaultの説明。
いいえ
読み取り専用
id
String
このアイテムの Terraform リソース識別子 フォーマット
vaults/<vault_id>。
いいえ
読み取り専用
まで早送りされることに注意してください。
並列リソース操Createの数を制限することをお勧めします。これはを実行する場合terraform apply、 はn並列リソース操Createの数です (デフォルトは です10)。
次の例は、Connect サーバーを使用したプロバイダー構成を示しています。
Schema
password_recipe
section
セクション内のカスタム フィールドのリスト。を参照してください。
section.field
アイテムのパスワード。を参照してください。
section.field.password_recipe
アイテムデータ
section
セクション内のカスタム フィールドのリスト。を参照してください。
section.field
Example
Vault data source