> For the complete documentation index, see [llms.txt](https://manual.dxable.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://manual.dxable.com/1password/terraform.md).

# 1Password Terraformプロバイダーを使用する

[1Password Terraform](https://github.com/1Password/terraform-provider-onepassword)プロバイダー[1Password Connect Server](https://developer.1password.com/docs/secrets-automation/#1password-connect-server)、[1Password サービス アカウント](https://developer.1password.com/docs/secrets-automation/#1password-service-accounts)、または 1Password アカウントと生体認証を使用して、保管庫内のアイテムを参照、Create、または更新できます。

[Using 1Password Connect with Terraform](https://youtu.be/92yvxV7F4E0)

**サーバーに接続**

* [**Connect サーバーをCreateします。**](https://developer.1password.com/docs/connect/get-started/)

**1Password CLI**

* [1Password CLI をインストールします。<br>](https://developer.1password.com/docs/cli/get-started/)バージョン 2.23.0 以降。
* オプション:[サービス アカウントをCreateします。1Password<br>](https://developer.1password.com/docs/service-accounts/get-started/)アカウントではなくサービス アカウントで認証する場合にのみ必要です。

注意

Terraformを実行しているマシンに[1Password CLIを](https://developer.1password.com/docs/cli/)インストールする必要があります。Terraform[のドキュメントを参照してください。](https://developer.hashicorp.com/terraform/cloud-docs/run/install-software#only-install-standalone-binaries)Terraform 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 では同じ保管庫にあるアイテムの同時変更が許可されていないためです。

[サービス アカウントを使う場合は、再試行のたびにサービス アカウントのレート制限](https://developer.1password.com/docs/service-accounts/rate-limits/)まで早送りされることに注意してください。

並列リソース操Createの数を制限することをお勧めします。これは[-parallelism=nフラグを使用して行うことができます。](https://developer.hashicorp.com/terraform/cli/commands/apply#parallelism-n)を実行する場合terraform apply、 はn並列リソース操Createの数です (デフォルトは です10)。

$ terraform apply -parallelism=n

**サービスアカウント**

サービス アカウントで 1Password Terraform プロバイダーを使うには:

* ①1Password CLI のインストール パスを指定します。\
  この値は、 OP\_CLI\_PATH環境変数またはプロバイダー構成のop\_cli\_pathフィールドを使用して設定できます。
* ②サービス アカウント トークンを指定します。\
  この値は、 OP\_SERVICE\_ACCOUNT\_TOKEN環境変数またはプロバイダー構成のservice\_account\_tokenフィールドを使用して設定できます。

### **Reference** <a href="#l13n5et945th" id="l13n5et945th"></a>

次のセクションには、1Password Terraform プロバイダーのリファレンス情報が記載されています。

* 構成
* [リソース](https://developer.1password.com/docs/terraform/?workflow-type=1password-cli#resources)
* [データソース](https://developer.1password.com/docs/terraform/?workflow-type=1password-cli#data-sources)

#### **Configuration** <a href="#uraguuw9p9uc" id="uraguuw9p9uc"></a>

1Password Terraform プロバイダーには、Connect サーバーまたは 1Password CLI で使う前に設定する必要があるフィールドがあります。次の表で各フィールドについて説明します。

![](/files/BEPswtbkJm1sOEC4PItW)

次の環境変数を使用して構成値を指定できます。

![](/files/HOZnsTr9mU339n76L8QU)

**設定例**

次のコード ブロックは構成例を示しています。

ヒント

以下の例では環境変数を使用しています。環境変数を事前に設定しておくか、プレーンテキストを使用してください。

**サーバーに接続**

次の例は、Connect サーバーを使用したプロバイダー構成を示しています。![](/files/NFU8l7UBQpwiuMZ0gKUy)

**サービスアカウント**

次の例は、サービス アカウントを使用したプロバイダー構成を示しています。

![](/files/yqRG9cPhE0WwNeo35c82)

**1Passwordアカウント**

次の例は、1Password アカウントを使用したプロバイダー構成を示しています。

![](/files/7y9LeBuzJbEhewpXMjno)

#### **Resources** <a href="#to41iyfisb8p" id="to41iyfisb8p"></a>

1Password Terraform プロバイダーには次のリソースがあります。

* [onepassword\_itemリソース](https://developer.1password.com/docs/terraform/?workflow-type=1password-cli\&example=1password-account#item-resource)

**Item resource**

リソースonepassword\_itemは 1Password アイテムを表します。onepassword\_item次の構文を使用してインポートできます。

$ terraform import onepassword\_item.\<item\_name> vaults/\<vault\_uuid>/items/\<item\_uuid>

**Schema**[**​**](https://developer.1password.com/docs/terraform/?example=service-account#schema)

次の表はonepassword\_itemリソース スキーマについて説明しています。

![](/files/kIfqWqCIouqM1xTjFmDN)

**password\_recipe**[**​**](https://developer.1password.com/docs/terraform/?workflow-type=1password-cli\&example=1password-account#password_recipe)

password\_recipeフィールドのネストされたスキーマ:

| **分野**  | **タイプ** | **説明**                                  | **必須** | **アクセス** |
| ------- | ------- | --------------------------------------- | ------ | -------- |
| digits  | ブール     | パスワードを生Createするときは数字\[0-9]を使用してください。    | いいえ    | 読み書き     |
| length  | 番号      | 生Createするパスワードの長さ。                      | いいえ    | 読み書き     |
| letter  | ブール     | パスワードを生Createするときは文字\[a-zA-Z]を使用してください。 | いいえ    | 読み書き     |
| symbols | ブール     | パスワードを生Createするときは記号\[!@.-\_\*]を使用します。  | いいえ    | 読み書き     |

**section**[**​**](https://developer.1password.com/docs/terraform/?workflow-type=1password-cli\&example=1password-account#section)

sectionフィールドのネストされたスキーマ:

| **分野** | **タイプ** | **説明**                                                                                                                                                                              | **必須** | **アクセス** |
| ------ | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ | -------- |
| label  | String  | セクションのラベル。                                                                                                                                                                          | はい     | 読み書き     |
| field  | ブロックリスト | セクション内のカスタム フィールドのリスト。[section.field](https://developer.1password.com/docs/terraform/?workflow-type=1password-cli\&example=1password-account#item-resource-section-field)を参照してください。 | いいえ    | 読み書き     |
| id     | String  | セクションの一意の識別子。                                                                                                                                                                       | 該当なし   | 読み取り専用   |

**section.field**[**​**](https://developer.1password.com/docs/terraform/?workflow-type=1password-cli\&example=1password-account#item-resource-section-field)

section.fieldフィールドのネストされたスキーマ:

| **分野**           | **タイプ**           | **説明**                                                                                                                                                                                                    | **必須** | **アクセス** |
| ---------------- | ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ | -------- |
| label            | String            | フィールドのラベル。                                                                                                                                                                                                | はい     | 読み書き     |
| id               | String            | フィールドの一意の識別子。                                                                                                                                                                                             | いいえ    | 読み書き     |
| password\_recipe | String            | アイテムのパスワード。[section.field.password\_recipe](https://developer.1password.com/docs/terraform/?workflow-type=1password-cli\&example=1password-account#item-resource-section-field-password-recipe)を参照してください。 | いいえ    | 読み書き     |
| purpose          | String            | <p>目的は、これが特別なフィールドであることを示します: ユーザー名、パスワード、またはメモ フィールド。</p><p>許容される値: USERNAME、PASSWORDまたはNOTES。</p>                                                                                                       | いいえ    | 読み書き     |
| type             | String            | <p>フィールドに格納される値のタイプ。</p><p>許容される値: STRING, EMAIL, CONCEALED, URL, OTP, DATE, MONTH\_YEAR, or MENU.</p>                                                                                                    | いいえ    | 読み書き     |
| value            | String, Sensitive | フィールドの値。                                                                                                                                                                                                  | いいえ    | 読み書き     |

**section.field.password\_recipe**[**​**](https://developer.1password.com/docs/terraform/?workflow-type=1password-cli\&example=1password-account#item-resource-section-field-password-recipe)

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

}

#### **Data sources** <a href="#zctsiesr6lki" id="zctsiesr6lki"></a>

1Password Terraform プロバイダーには次のデータ ソースがあります。

* [onepassword\_itemデータソース](https://developer.1password.com/docs/terraform/?workflow-type=1password-cli\&example=1password-account#item-data-source)
* [onepassword\_vaultデータソース](https://developer.1password.com/docs/terraform/?workflow-type=1password-cli\&example=1password-account#vault-data-source)

**アイテムデータ**[**ソース**](https://developer.1password.com/docs/terraform/?workflow-type=1password-cli\&example=1password-account#item-data-source)

データ ソースを使用してonepassword\_item、1Password アイテムの詳細を取得します。アイテムは、その Vault UUID と、アイテムのタイトルまたは UUID のいずれかで識別できます。

**Schema**

**次の表はonepassword\_itemリソース スキーマについて説明しています。**

![](/files/duPAuCYW7KNBqAxWoFcV)

**section**[**​**](https://developer.1password.com/docs/terraform/?workflow-type=1password-cli\&example=1password-account#item-data-source-section)

sectionフィールドのネストされたスキーマ:

| **分野** | **タイプ**        | **説明**                                                                                                                                                                                 | **必須** | **アクセス** |
| ------ | -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ | -------- |
| field  | List of Object | セクション内のカスタム フィールドのリスト。[section.field](https://developer.1password.com/docs/terraform/?workflow-type=1password-cli\&example=1password-account#item-data-source-section-field)を参照してください。 | 該当なし   | 読み取り専用   |
| id     | String         | セクションの一意の識別子。                                                                                                                                                                          | 該当なし   | 読み取り専用   |
| label  | String         | セクションのラベル。                                                                                                                                                                             | 該当なし   | 読み取り専用   |

**section.field**[**​**](https://developer.1password.com/docs/terraform/?workflow-type=1password-cli\&example=1password-account#item-data-source-section-field)

section.fieldフィールドのネストされたスキーマ:

| **分野**  | **タイプ**           | **説明**                                                                                                 | **必須** | **アクセス** |
| ------- | ----------------- | ------------------------------------------------------------------------------------------------------ | ------ | -------- |
| id      | String            | フィールドの一意の識別子。                                                                                          | 該当なし   | 読み取り専用   |
| label   | String            | フィールドのラベル。                                                                                             | 該当なし   | 読み取り専用   |
| purpose | String            | <p>目的は、これが特別なフィールドであることを示します: ユーザー名、パスワード、またはメモ フィールド。</p><p>許容される値: USERNAME、、PASSWORDまたはNOTES。</p>   | 該当なし   | 読み取り専用   |
| type    | String            | <p>フィールドに格納される値のタイプ。</p><p>許容される値: STRING, EMAIL, CONCEALED, URL, OTP, DATE, MONTH\_YEAR, or MENU.</p> | 該当なし   | 読み取り専用   |
| value   | String, Sensitive | フィールドの値。                                                                                               | 該当なし   | 読み取り専用   |

**Example**[**​**](https://developer.1password.com/docs/terraform/?example=service-account#example-1)

次の例は、onepassword\_itemデータ ソースの使用方法を示しています。

data-source.tf

data "onepassword\_item" "example" {

vault = var.demo\_vault

uuid = onepassword\_item.demo\_sections.uuid

}

**Vault data source**[**​**](https://developer.1password.com/docs/terraform/?example=service-account#vault-data-source)

データ ソースを使用してonepassword\_vault、保管庫の詳細を取得します。保管庫は、保管庫名または UUID で識別できます。

**Schema**

**次の表はonepassword\_itemリソース スキーマについて説明しています。**

| **分野**      | **タイプ** | **説明**                                                             | **必須** | **アクセス** |
| ----------- | ------- | ------------------------------------------------------------------ | ------ | -------- |
| name        | String  | 取得する保管庫の名前。保管庫が UUID で検索された場合、このフィールドには保管庫の名前が入力されます。              | いいえ    | 読み書き     |
| uuid        | String  | 取得する保管庫の UUID。保管庫が名前で検索された場合、このフィールドには保管庫の UUID が入力されます。           | いいえ    | 読み書き     |
| description | String  | vaultの説明。                                                          | いいえ    | 読み取り専用   |
| id          | String  | <p>このアイテムの Terraform リソース識別子 フォーマット</p><p>vaults/\<vault\_id>。</p> | いいえ    | 読み取り専用   |
