テンプレート構文

1Passwordマニュアル|op injectを活用して、秘密の参照を含むテンプレート化された構成ファイルから実際の解決済みファイルを生成する方法をご紹介します。

シークレット参照を含むテンプレート化された構成ファイルをCreateし、op inject を使用して実際のシークレットを含む解決済みの構成ファイルを受け取ることができます。

プレーンテキストのシークレットの代わりに、囲まれたシークレット参照を含むテンプレート ファイルの例を次に示します。

database:
  host: localhost
  port: 5432
  username: {{ op://prod/database/username }}
  password: {{ op://prod/database/password }}

シークレット参照

テンプレート ファイルに含まれるシークレット参照は、囲まれていないシークレット参照または囲まれたシークレット参照のいずれかとしてフォーマットできます。

非公開の秘密参照

$ op://test-app/database/password

囲まれていない秘密参照は次のような文字列です。

  • op:// で始まり、英数字-+ \..のいずれのop://文字も前には来ません。

  • テンプレートの終わり、または英数字-?_.. のセット外で最初に見つかった文字で終わります。

囲まれていない秘密の参照の良い例と悪い例:

op://prod/docker-credentials/username
op://d3v/stripe.keys/s3ct10n/public_key
op://h?ack/1Password!/for"real

(構文でサポートされていない特殊文字が含まれています)

op://{vault}/[item]/(section)/field

(構文でサポートされていない特殊文字が含まれています)

Enclosed secret references

$ {{ op://test-app/database/password }}

囲まれた秘密参照は、次のすべてを満たす文字列として定義されます。

  • 2つの閉じ括弧で始まる{{

  • 2つの閉じ括弧で終わる}}

  • 2 組の中括弧の間には、有効な囲まれていない秘密参照が含まれます。スペースが埋め込まれている場合もあります。

良い秘密参照と悪い秘密参照の例:

{{op://prod/docker-credentials/username}}
{{ op://d3v/stripe.keys/s3ct10n/public_key }}
{{op://h?ack/1Password!/for"real}}

(秘密の参照にはサポートされていない文字が含まれています)

特殊文字

テンプレート内の特殊文字をエスケープする必要がある場合は、中括弧と二重引用符を使用できます。

{{ "{{ test op://prod/docker-credentials/username }}" }}
will be resolved to
{{ test op://prod/docker-credentials/username }}

コンテンツに二重引用符が含まれている場合は、次のようにエスケープする必要があります\

{{ "{{ test \"test\" test }}" }}
will be resolved to
{{ test "test" test }}

変数

テンプレート構文は変数タグもサポートします。

  • $var(囲まれていない変数)

  • ${var}(囲まれた変数)

形式の囲まれていない変数を解決すると$FOO、 という名前の環境変数の値に置き換えられますFOO

形式の囲まれた変数を解決する場合${FOO}、 の先頭または末尾の空白はFOO破棄され、参照は という名前の環境変数の値に置き換えられますFOO

変数名は大文字と小文字を区別せず、数字で始めることはできず、文字、数字、アンダースコアのみを含めることができます。

囲まれていない変数の良い例と悪い例:

$my_var
$mY_2nd_vAr
$2nd_var

(数字で始まる)

$var-?notvar!

(サポートされていない特殊文字が含まれています)

囲まれた変数の良い例と悪い例:

${my_var}
${ mY_2nd_vAr }
${my_var\}

(閉じ括弧はエスケープされます)

デフォルト値

テンプレート変数のデフォルト値を設定するには、次の構文を使用します。

${VAR_NAME:-<default-value>}

環境内で変数が見つからない場合は、デフォルト値が使用されます。

例えば、VAULT 環境変数が設定されていない場合、op://${VAULT:-dev}/docker/passwordop://dev/docker/password と評価されます。 VAULTprod に設定されている場合、op://prod/docker/password として評価されます。

さらに詳しく

Last updated