シークレット参照の構文
1Passwordマニュアル|シークレット参照URIを活用して、Vaultやアイテム内の情報を効率的に管理し、安全にアクセスする方法を説明します。
シークレット参照 URI は、情報がSaveされている保管庫、アイテム、セクション、フィールドの名前を使用して、1Password アカウント内でシークレットがSaveされている場所を指します。
$ op://<vault-name>/<item-name>/[section-name/]<field-name>
シークレット参照により、コード内のプレーンテキストのシークレットが公開されるリスクがなくなり、1Password アカウントに加えた変更が反映されるため、スクリプトを実行すると最新の値が得られます。
シークレット参照は次の場合に使用できます。
Kubernetes、CircleCI、GitHub Actions、Jenkins、Terraform、Pulumi、Postmanなどのシークレットに安全にアクセスします。
シークレット参照
1Passwordデスクトップアプリ
1Password デスクトップ アプリでシークレット参照をコピーするオプションを表示するには、まず1Password CLI との統合をオンにします。次に、次の手順を実行します。
①参照したいシークレットがSaveされているアイテムを開きます。
②参照したいシークレットを含むフィールドの横にあるをクリックし、Copy Secret Referenceを選択します。

With 1Password for VS Code
1Password for VS Codeを使うと、コードを編集するときに1Passwordからシークレット参照を挿入できます。まず、拡張機能をインストールします。次に、次の手順を実行します。
①Command Paletteを開きます。
②1Password: Get from 1Password
と入力します。
③アイテム名またはIDを入力します。
④使うフィールドを選択します。
With 1Password CLI
1Password CLIでシークレットリファレンスを取得するには、--format json
フラグを付けてop item get
を実行し、フィールドラベルを指定する--fields
フラグを含めます。次にJSON 出力からシークレット参照を取得するためにjqを使用します。例:
$ op item get GitHub --format json --fields username | jq .reference
項目の全てのフィールドのシークレット参照を取得するには、フィールドを指定せずに --format json
フラグを指定してop item get
を使用します。
構文規則
サポートされている文字
シークレット参照では大文字と小文字が区別されず、次の文字がサポートされます。
英数字 (
a-z
、A-Z
、0-9
)-
、、_
および.
空白文字
シークレット参照に空白が含まれている場合は、シークレット参照を引用符で囲みます。例:
$ op read "op://development/aws/Access Keys/access_key_id"
サポートされていない文字を含むシークレット参照の部分は、名前ではなく一意の識別子 (ID)で参照する必要があります。
ID を取得するには、op item get
出力を JSON に設定して実行します。例えば、test/
という名前のカスタム テキスト フィールドの ID を取得するには、次のようにします。
op item get PagerDuty --fields label=test/ --format json
ファイルの添付
添付ファイルを参照するには、フィールド名の代わりにファイル名を使用します。
$ op://vault-name/item-name/[section-name/]file-name
外部設定変数
異なる環境で異なるシークレット セットを使う場合は、シークレット参照内に変数を含め、シークレットを切り替えるように変数を設定できます。
例えば、資格情報が dev
および prod
という名前の 1Password コンテナーにSaveされていると仮定すると、以下の例の APP_ENV
変数を dev
に設定して開発資格情報をロードしたり、 prod
に設定して実稼働資格情報をロードしたりできます。
MYSQL_DATABASE = "op://$APP_ENV/mysql/database"
MYSQL_USERNAME = "op://$APP_ENV/mysql/username"
MYSQL_PASSWORD = "op://$APP_ENV/mysql/password"
変数を使用して、環境ファイルと構成ファイル内のシークレットのセットを切り替える方法を学習します。
フィールドとファイルのメタデータ属性
クエリ パラメータを含むシークレット参照を使用して、アイテムに関する詳細情報を取得できます。
属性パラメータ
アイテム フィールドとファイル添付に関する情報を取得するには、 attribute
(またはattr
) クエリ パラメータを使用します。
op://<vault>/<item>[/<section>]/<field-name>?attribute=<attribute-value>
op://<vault>/<item>[/<section>]/<file-name>?attribute=<attribute-value>
Field attributes:
属性
意味
type
フィールドの種類
value
フィールドの内容
id
フィールドの一意の識別子
purpose
組み込みフィールドの指定(「ユーザー名」、「パスワード」、または「メモ」)
otp
ワンタイムパスワードフィールドを使用してワンタイムパスワードコードを生Createします
File attachment attributes:
属性
意味
type
フィールドの種類
content
添付ファイルの内容
size
添付ファイルのサイズ
id
添付ファイルの一意の識別子
name
添付ファイルの名前
例えば、アイテムのワンタイム パスワード コードを取得するには、次のようにします。
$ op read "op://development/GitHub/Security/one-time password?attribute=otp"
フィールドのタイプを取得するには:
$ op read "op://Personal/aws/access credentials/username?attribute=type"
添付ファイルの名前を取得するには:
$ op read "op://app-infra/ssh/key.pem?attribute=name"
SSH フォーマットパラメータ
OpenSSH 形式で SSH 秘密キーを取得するには、SSH鍵のシークレット参照に値 openssh
を指定した ssh-format
クエリ パラメーターを含めます。
$ op read "op://Private/ssh keys/ssh key/private key?ssh-format=openssh"
シークレット参照の例
セクション内のフィールド
管理セクション内にある PagerDuty の電子メール フィールドを参照するシークレット参照をCreateするには、次を使用します。
$ op://Management/PagerDuty/Admin/email
①Management アイテムがSaveされているvaultを指します
②PagerDuty アイテムを参照します
③Adimn フィールドが含まれるセクションを指します
④email 参照したいシークレットが配置されているフィールドを指します

セクションのないフィールド
セクションの一部ではない Stripe 公開鍵 フィールドの秘密参照をCreateするには、次を使用します。
$ op://dev/Stripe/publishable-key
①dev アイテムがSaveされている金庫を指します
②Stripe アイテムを指します
③publishable-key 参照したい秘密が配置されているフィールドを指します。

さらに詳しく
Last updated