# 1PasswordでYugabyteDB SQL Shellを安全に認証する

### **1PasswordでYugabyteDB SQL Shellを安全に認証する** <a href="#ubeht0vgd6f0" id="ubeht0vgd6f0"></a>

YugabyteDB SQL Shellシェルプラグインを使うと、1Passwordを使って[YugabyteDB SQL Shell](https://docs.yugabyte.com/preview/admin/ysqlsh/)を安全に認証できます。資格情報を平文でSaveするのではなく、指紋、Apple Watch、またはシステム認証を使ってSaveします。

指示に従ってデフォルトの資格情報を設定し、plugins.shファイルを取得すると、生体認証を使ってYugabyteDB SQL Shellを認証するように求められます。

### 必要条件 <a href="#scoi6ebt8bxz" id="scoi6ebt8bxz"></a>

1. 1Passwordに[サインアップしてください。](https://1password.com/pricing)
2. [Mac](https://support.1password.com/get-the-apps/?mac)または[Linux](https://support.1password.com/get-the-apps/?linux)用の1Password 8をインストールしてサインインします。
3. [1Password CLI](https://app-updates.agilebits.com/product_history/CLI2) 2.22.0以降をインストールします。1Password CLIを既にインストールしている場合は、[最新版に更新する](https://developer.1password.com/docs/cli/reference/update/)方法を確認してください。
4. [1Password CLIを1Password アプリに接続します](https://developer.1password.com/docs/cli/app-integration/)。
5. [YugabyteDB SQL Shellをインストールします。](https://docs.yugabyte.com/preview/admin/ysqlsh/)<br>

次のシェルがサポートされています：

* Bash
* Zsh
* fish

### **ステップ 1：デフォルトの資格情報を設定する** <a href="#gpid6s7q8sif" id="gpid6s7q8sif"></a>

YugabyteDB SQL Shellシェルプラグインを使い始めるには：

1. YugabyteDB SQL Shellプラグインで使う1Passwordアカウントに次のコマンドでサインインします。

$ op signin

1. 特定のディレクトリーでのみプラグインを設定したい場合は、そのディレクトリーに変更します。
2. プラグインを設定するために、次のコマンドを実行します。

$ op plugin init ysqlsh

YugabyteDB SQL Shellの資格情報を1Passwordにインポートするか、資格情報がSaveされている保存済みの1Passwordアイテムを選択して、資格情報をいつ使うかを設定するように求められます。

#### **ステップ 1.1： アイテムをインポートまたは選択する** <a href="#sg9nfyzctlcu" id="sg9nfyzctlcu"></a>

**新しいアイテムをインポートする場合**

YugabyteDB SQL Shel の認証情報を1PasswordにまだSaveしていない場合は、\[Import into 1Password]を選択します。認証情報を入力し、新しい1Passwordアイテムの名前を選択して、Save先の保管庫を選択します。

1Passwordがローカル開発環境で資格情報を検出すると、自動的にインポートするように求められます。

**保存済みのアイテムを選択する場合**

YugabyteDB SQL Shellの資格情報を1Passwordに既にSaveしている場合は、\[Search in 1Password]を選択します。

関連するアイテムとそれらがSaveされている保管庫のリストが表示されます。資格情報が表示されない場合は、\[Expand search]を選択して、アカウント内の全アイテムを参照します。

#### **ステップ 1.2：デフォルトの資格情報のスコープを設定する** <a href="#id-2gsdpjr5qa5p" id="id-2gsdpjr5qa5p"></a>

資格情報を選択またはインポートすると、その項目をいつ使ってYugabyteDB SQL Shellを認証するかを設定するように求められます。

* \[Prompt me for each new terminal session]を選択すると、現在のターミナルセッションの期間中のみ資格情報が設定されます。ターミナルを終了すると、デフォルトは削除されます。
* \[Use automatically when in this directory or subdirectories]を選択すると、他のディレクトリー固有のデフォルトが設定されていない限り、現在のディレクトリーとその全てのサブディレクトリーで資格情報がデフォルトになります。ターミナルセッションのデフォルトは、ディレクトリー固有のデフォルトよりも優先されます。
* \[Use as global default on my system]を選択すると、資格情報が全ターミナルセッションとディレクトリーのデフォルトとして設定されます。ディレクトリー固有のデフォルトは、グローバルデフォルトよりも優先されます。

### ステップ2：plugins.shファイルをsourceする <a href="#id-1hm1yartnub8" id="id-1hm1yartnub8"></a>

プラグインを使えるようにするには、plugins.shファイルをソースします。

例：

$ source \~/.config/op/plugins.sh

あなたの環境のopフォルダーのファイルパスは、[設定ディレクトリー](https://developer.1password.com/docs/cli/config-directories/)によって異なる場合があります。op plugin initコマンドで、正しいファイルパスを含むソースコマンドを出力します。<br>

シェルプラグインを初めてインストールする場合は、現在のターミナルセッションを超えてプラグインを永続化するために、RCファイルまたはシェルプロファイルにsourceコマンドを追加する必要があります。

例：

* Bash

$ echo "source \~/.op/plugins.sh" >> \~/.bashrc && source \~/.bashrc

* zsh

$ echo "source \~/.op/plugins.sh" >> \~/.zshrc && source \~/.zshrc

* fish

$ echo "source \~/.op/plugins.sh" >> \~/.config/fish/config.fish && source \~/.config/fish/config.fish

### ステップ3：CLIを利用する <a href="#duzd6n623dg9" id="duzd6n623dg9"></a>

次回YugabyteDB SQL Shellを使ってコマンドを入力するときに、生体認証またはシステム認証による認証を求めるメッセージが表示されます。

### **ステップ4：インポートした資格情報をディスクから削除する** <a href="#id-7flcm7kibj4i" id="id-7flcm7kibj4i"></a>

YugabyteDB SQL Shellの資格情報を1PasswordにSaveしたら、以前にディスクにSaveした全てのローカルコピーを削除できます。

### 次のステップ <a href="#hi9a40urazix" id="hi9a40urazix"></a>

1Password Shellプラグインは[60を超えるサードパーティーのCLI](https://developer.1password.com/docs/cli/shell-plugins/#get-started)をサポートしています。サポートされているCLIのリストを表示するには次のように入力してください：

$ op plugin list

別のプラグインを選択して開始するには次のように入力してください：

$ op plugin init

[シームレスなコンテキスト切り替えのためにシェルプラグインを使うには、複数の環境](https://developer.1password.com/docs/cli/shell-plugins/environments/)または[複数のアカウント](https://developer.1password.com/docs/cli/shell-plugins/multiple-accounts/)でプラグインを構成する方法を学んでください。

### **ヘルプを取得する** <a href="#s0s5gmccfx1j" id="s0s5gmccfx1j"></a>

#### **設定を検査する** <a href="#rz5zcqclrys2" id="rz5zcqclrys2"></a>

現在のYugabyteDB SQL Shell設定を検査するには次のように入力してください：

$ op plugin inspect ysqlsh

1Password CLIは、YugabyteDB SQL Shellで使うために設定した資格情報とそのデフォルトのスコープのリスト、およびYugabyteDB SQL Shell用に設定されたエイリアスのリストを返します。

#### **資格情報を消去する** <a href="#dmy2kziy5zu2" id="dmy2kziy5zu2"></a>

YugabyteDB SQL Shellで使用される資格情報をリセットするには、次のように入力してください：

$ op plugin clear ysqlsh

次の優先順位に従って、1回に1つの構成をクリアできます。

1. ターミナルセッションのデフォルト
2. ディレクトリーのデフォルト、現在のディレクトリーから$HOMEまで
3. グローバルデフォルト

例えば、$HOME/projects/awesomeProjectディレクトリー内にいて、ターミナルセッションのデフォルト、ディレクトリーのデフォルトが$HOMEおよび$HOME/projects/awesomeProjectであり、さらにグローバルデフォルトの資格情報が構成されている場合、全てのデフォルトをクリアするにはop plugin clear ysqlshを4回実行する必要があります。

グローバルデフォルト資格情報、ターミナルセッション デフォルト、および現在のディレクトリーのデフォルトを同時にクリアするには、op plugin clear ysqlsh --allを実行します。

### リファレンス <a href="#wfrcdajrwp9z" id="wfrcdajrwp9z"></a>

1Passwordは、プラグインコマンドに必要な資格情報を1Passwordアカウントから直接環境変数に挿入することで、YugabyteDB SQL Shellで認証します。

新しいアイテムをop pluginコマンドでインポートせず、YugabyteDB SQL Shellの資格情報を1Passwordに手動でSaveした場合は、フィールド名が以下の表と一致していることを確認してください。

アイテムに必要な名前のフィールドが含まれていない場合は、保存済みのフィールドのいずれかの名前を変更するように求められます。

| 1Password**フィールド名** | **環境変数**   |
| ------------------- | ---------- |
| Host                | PGHOST     |
| Port                | PGPORT     |
| Username            | PGUSER     |
| Password            | PGPASSWORD |

[*このプラグインを提供してくれた*](https://github.com/1Password/shell-plugins/pull/322)、[*@parthiv11*](https://github.com/parthiv11)*に感謝します。*[*独自のシェルプラグインを構築する*](https://developer.1password.com/docs/cli/shell-plugins/contribute)*方法を学びましょう。*


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://manual.dxable.com/1password/use-1password-to-securely-authenticate-yugabytedb-sql-shell.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
