# CLIの利用例

1Password CLIを使うと、開発環境でシークレットを安全にプロビジョニングしたり、スクリプトを使ってアイテムを管理したり、大規模にチーム メンバーをプロビジョニングしたり、ターミナルで生体認証を使って認証したりできます。

### **コード内にある平文のシークレットを排除する** <a href="#id-7z0flen3ktq1" id="id-7z0flen3ktq1"></a>

<figure><img src="https://4200399111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8GVOyHz3wUSpdV3qlPwR%2Fuploads%2FJJmObBvafPvHbBR5XTA2%2F0.png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

1Password CLIを使うと、1Passwordの保管庫内にシークレットを安全に保存し、[シークレット参照](https://developer.1password.com/docs/cli/secret-references/)を使って、コードに平文のシークレットを配置することなく、[環境変数](https://developer.1password.com/docs/cli/secrets-environment-variables/)、[設定ファイル](https://developer.1password.com/docs/cli/secrets-config-files/)、[スクリプト](https://developer.1password.com/docs/cli/secrets-scripts/)内にシークレットを読み込むことができます。

シークレット参照は動的です。1Passwordで資格情報を更新すると、スクリプトを直接更新しなくても、変更がスクリプトに反映されます。また、シークレット参照内で変数を使うことで、同じファイルを使って異なる環境に異なるシークレットセットを渡すこともできます。

例えば、github .envファイルで平文のGitHub Personal Access Tokenの代わりにシークレット参照を使用できます。

<figure><img src="https://4200399111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8GVOyHz3wUSpdV3qlPwR%2Fuploads%2FsW3TvIAQdhI5NHiuvD4w%2Fimage.png?alt=media&#x26;token=815eb056-3898-4f75-8230-e3c3eb851b98" alt=""><figcaption></figcaption></figure>

次に、op runコマンドを使って、必要に応じて1Passwordからプロビジョニングされたトークンを含むファイルをアプリケーションまたはスクリプトに渡します。スクリプトはプロビジョニングされたトークンを使って実行され、トークンが平文で表示されることはありません。

{% embed url="<https://developer.1password.com/videos/secret-references-in-scripts.mp4>" %}

#### **もっと詳しく知る** <a href="#iac5qznjti8x" id="iac5qznjti8x"></a>

* [シークレット参照](https://developer.1password.com/docs/cli/secret-references/)入門
* [環境にシークレットをロードする](https://developer.1password.com/docs/cli/secrets-environment-variables/)
* [シークレットを設定ファイルに読み込む](https://developer.1password.com/docs/cli/secrets-config-files/)
* [スクリプトにシークレットを読み込む](https://developer.1password.com/docs/cli/secrets-scripts/)

### **管理タスクを自動化する** <a href="#dej5oeic138u" id="dej5oeic138u"></a>

<figure><img src="https://4200399111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8GVOyHz3wUSpdV3qlPwR%2Fuploads%2FnD5wtCAeW9kCpDd66Zy2%2Fimage.png?alt=media&#x26;token=4dab2804-68fa-49dd-91da-ac17e7c08913" alt=""><figcaption></figcaption></figure>

1Password CLIを使うと、IT管理者はスクリプトを設定して、[ユーザーのプロビジョニング](https://developer.1password.com/docs/cli/provision-users/)、[権限管理](https://developer.1password.com/docs/cli/grant-revoke-vault-permissions/)、[アイテム管理](https://developer.1password.com/docs/cli/reference/management-commands/item/)、カスタムレポート生成などの一般的なタスクを自動化できます。

例えば次のスクリプトは、スクリプトを実行するユーザーがアクセスできる各保管庫をループして、次の情報を提供します。

* 保管庫名
* 保管庫内のアイテムの数
* 保管庫の内容が最後に更新された日時
* 保管庫にアクセスできるユーザーとグループとその権限

vault\_details.sh

```
$ #!/usr/bin/env bash
$ for vault in $(op vault list --format=json | jq --raw-output '.[] .id')
$ do
        echo ""
        echo "Vault Details"
        op vault get $vault --format=json | jq -r '.|{name, items, updated_at}'
        sleep 1
        echo ""
        echo "Users"
        op vault user list $vault
        sleep 1
        echo ""
        echo "Groups"
        op vault group list $vault
        sleep 1
        echo ""
        echo "End of Vault Details"
        sleep 2
        clear
        echo ""
        echo ""
$ done
```

#### **もっと詳しく知る** <a href="#u9s5umrjd6aj" id="u9s5umrjd6aj"></a>

独自のプロジェクトのヒントとして、1Password CLIスクリプトのサンプル リポジトリをご覧ください。次の場合に役立つスクリプトが見つかります。

* [CSVから新しいユーザーをプロビジョニングする](https://github.com/1Password/solutions/tree/main/scripted-provisioning/)
* 保存済み[のユーザーを監査または管理する](https://github.com/1Password/solutions/tree/main/user-management/)
* 保管庫[とグループを管理する](https://github.com/1Password/solutions/tree/main/account-management/)
* [アイテムを作成、更新、共有する](https://github.com/1Password/solutions/tree/main/item-management/)

1Password CLIを使ってこれらのタスクを実行する方法の詳細については、次のガイドを参照してください。

* [アイテムを作成する](https://developer.1password.com/docs/cli/item-create/)
* [チームメンバーの追加と削除](https://developer.1password.com/docs/cli/provision-users/)
* 保管庫[権限の付与と取り消し](https://developer.1password.com/docs/cli/grant-revoke-vault-permissions/)

### **フィンガープリントを使って任意のCLIにサインインする** <a href="#i00wc8dmw5ai" id="i00wc8dmw5ai"></a>

{% embed url="<https://developer.1password.com/videos/aws.mp4>" %}

私たちが用意した[シェルプラグインのエコシステム](https://developer.1password.com/docs/cli/shell-plugins/)を使うと、1Passwordを使って全てのコマンドライン ツールを安全に認証できます。CLIアクセス認証情報を1Passwordの保管庫に保存しておけば、認証情報を手動で入力したり、暗号化されていない形式でコンピューターに保存したりする代わりに、フィンガープリントでCLIにサインインできます。

シェルプラグインを使うと、チームメンバー間で認証情報を安全に共有できるようになります。共有の1Password 保管庫にトークンを保存すると、その保管庫にアクセスできる全ユーザーがそのトークンを使ってサインインできるようになります。また、シェルプラグインは[複数の環境で](https://developer.1password.com/docs/cli/shell-plugins/environments/)使えるため、プロジェクト間でのサインインとサインアウトに時間を費やす必要がありません。

例えば、[ngrokシェルプラグイン](https://developer.1password.com/docs/cli/shell-plugins/ngrok/)は、コンピューターで実行されているウェブ 開発プロジェクトのローカルアプリをインターネットに安全にトンネリングできます。ngrok authtokenはコンピューターのどこにも保存されません。ngrok CLIが実行されると、シェルプラグインは ngrokバイナリーが使う環境変数としてauthtokenをプロビジョニングし、プロセスが終了すると環境変数をクリアします。

{% embed url="<https://developer.1password.com/videos/shell-plugin-demo.mp4>" %}

**もっと詳しく知る**

最も人気のあるシェル プラグインの 1 つから始めましょう。

<div align="left"><img src="https://4200399111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8GVOyHz3wUSpdV3qlPwR%2Fuploads%2FboN4TeXpIHib2jrZpqCp%2F5.png?alt=media" alt="" width="49"></div>

[GitHub<br>](https://developer.1password.com/docs/cli/shell-plugins/github/)

<div align="left"><img src="https://4200399111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8GVOyHz3wUSpdV3qlPwR%2Fuploads%2F4q7iNRChj36Umxthifvw%2F6.png?alt=media" alt="" width="63"></div>

[AWS<br>](https://developer.1password.com/docs/cli/shell-plugins/aws/)

[<img src="https://4200399111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8GVOyHz3wUSpdV3qlPwR%2Fuploads%2FicZjDOTH22Jtmpw8dDlh%2F7.png?alt=media" alt="" data-size="line">](https://developer.1password.com/docs/cli/shell-plugins/aws/)

[Homebrew](https://developer.1password.com/docs/cli/shell-plugins/homebrew/)

<div align="left"><img src="https://4200399111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8GVOyHz3wUSpdV3qlPwR%2Fuploads%2FXHro63cXWB7VhisAzJGx%2F8.png?alt=media" alt="" width="48"></div>

[GitLab](https://developer.1password.com/docs/cli/shell-plugins/gitlab/)

[\ <img src="https://4200399111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8GVOyHz3wUSpdV3qlPwR%2Fuploads%2FNnRrutPMz1nzyY0atUXd%2F9.png?alt=media" alt="" data-size="line">](https://developer.1password.com/docs/cli/shell-plugins/gitlab/)

[OpenAI](https://developer.1password.com/docs/cli/shell-plugins/openai/)

<div align="left"><img src="https://4200399111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8GVOyHz3wUSpdV3qlPwR%2Fuploads%2FLumkgPFyG7rHv9ceyua7%2F10.png?alt=media" alt="" width="144"></div>

[PostgreSQL](https://developer.1password.com/docs/cli/shell-plugins/postgresql/)

<div align="left"><img src="https://4200399111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8GVOyHz3wUSpdV3qlPwR%2Fuploads%2FkPmNRtBov8DM7RpukdRx%2F11.png?alt=media" alt=""></div>

[Terraform](https://developer.1password.com/docs/cli/shell-plugins/terraform/)

[\ <img src="https://4200399111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8GVOyHz3wUSpdV3qlPwR%2Fuploads%2FGzCJnLNPQfoxU0s1dTkg%2F12.png?alt=media" alt="" data-size="line">](https://developer.1password.com/docs/cli/shell-plugins/terraform/)

[DigitalOcean](https://developer.1password.com/docs/cli/shell-plugins/digitalocean/)

<div align="left"><img src="https://4200399111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8GVOyHz3wUSpdV3qlPwR%2Fuploads%2FimpzDeV9aOwdWAcGTXsL%2F13.png?alt=media" alt="" width="36"></div>

[Herok](https://developer.1password.com/docs/cli/shell-plugins/heroku/)

<div align="left"><img src="https://4200399111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8GVOyHz3wUSpdV3qlPwR%2Fuploads%2FR3KFfuz3ckhw73zkZyR4%2F14.png?alt=media" alt="" width="75"></div>

[ngrok](https://developer.1password.com/docs/cli/shell-plugins/ngrok/)

<div align="left"><img src="https://4200399111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8GVOyHz3wUSpdV3qlPwR%2Fuploads%2FuOJ5A4RFnMX1k4CDDHrj%2F15.png?alt=media" alt="" width="26"></div>

[CircleCI](https://developer.1password.com/docs/cli/shell-plugins/circleci/)

<div align="left"><img src="https://4200399111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8GVOyHz3wUSpdV3qlPwR%2Fuploads%2FZ6AU8TxvEcJEaU0BggJF%2F16.png?alt=media" alt=""></div>

[Vault（HashiCorp Vault）](https://developer.1password.com/docs/cli/shell-plugins/hashicorp-vault/)

または、[私たちの40を超えるコマンドラインツールのライブラリー](https://developer.1password.com/docs/cli/shell-plugins/)からプラグインを選択して、使うこともできます。使いたいツールがまだサポートされていない場合は、[独自のプラグインを構築](https://developer.1password.com/docs/cli/shell-plugins/contribute/)できます。

以下のこともできます：

* [シェルプラグイン](https://developer.1password.com/docs/cli/shell-plugins/test/)をテストする
* [シェルプラグインを使って環境を切り替える](https://developer.1password.com/docs/cli/shell-plugins/environments/)
* [複数のアカウントでシェルプラグインを使う](https://developer.1password.com/docs/cli/shell-plugins/multiple-accounts/)
