シークレットへのアクセス
IBM Cloud® Secrets Manager サービス・インスタンスにシークレットを保管した後、その値を取得できます。
開始前に
始める前に、必要なレベルのアクセス権限を持っていることを確認してください。 使用可能なシークレットのリストを表示するには、リーダー・サービス・ロールまたはそれ以上が必要です。 シークレット・キーの値をリトリーブするには、シークレット・リーダー・サービス・ロールまたはそれ以上が必要です。
UI でのシークレットの取得
Secrets Manager UIを使用することで、シークレットを取得することができます。 シークレットを取得するには、以下の手順を実行します。
- シークレット表で、**「アクション」**メニュー
をクリックして、シークレットのオプションのリストを開きます。
- シークレットの値を表示するには、 「シークレットの表示」 をクリックします。
- 安全な環境にいることを確認したら、 「確認」 をクリックします。
シークレットの値が 15 秒間表示された後、ダイアログが閉じます。
あなたの秘密が回転された後、バージョン履歴オプションから以前の秘密の値を見ることができます。
また、シークレットの詳細 (有効期限、ローテーション間隔、状態など) をリタイアすることもできます。
- シークレット表で、**「アクション」**メニュー
をクリックして、シークレットのオプションのリストを開きます。
- シークレットの値を表示するには、 「詳細」 をクリックします。
「シークレット (Secrets)」テーブルのフィルター・オプションから取得したシークレットをさらにフィルタリングし、シークレット・グループまたはシークレット・タイプ (あるいはその両方) を選択できます。
証明書のダウンロード
Secrets Manager UI を使用して証明書をダウンロードするには、以下の手順を実行します。
- コンソールで、**「メニュー」**アイコン
**>「リソース・リスト」**をクリックします。
- サービスのリストから、Secrets Manager のインスタンスを選択します。
- シークレットテーブルで、ダウンロードしたい証明書のオーバーフロー・メニューを開きます。
- 「ダウンロード」 をクリックします。 証明書ファイルがローカル・システムにダウンロードされます。
CLI からのシークレットの取得
インスタンスにシークレットを保管した後、外部アプリに接続したり、保護サービスにアクセスしたりするために、シークレットの値を取得することが必要になる場合があります。 Secrets Manager CLI プラグインを使用すると、シークレットの値をリトリーブできます。
シークレットの値を取得したり、その詳細 (有効期限やローテーションの間隔や状態など) を確認したりするには、 ibmcloud secrets-manager secret
コマンドを実行します。
ibmcloud secrets-manager secret --id SECRET_ID
このコマンドでは、シークレットの値と他のメタデータが出力されます。 コマンド・オプションについては、ibmcloud secrets-manager secret
を参照してください。
シークレットの名前を使用してシークレットを取得することもできます。
ibmcloud secrets-manager secret-by-name --secret-type SECRET_TYPE --name SECRET_NAME --secret-group-name SECRET_GROUP_NAME
オプションのフラグ --secret-types
および --match-all-labels
を使用して、取得したシークレットをさらにフィルターに掛けることができます。
証明書のダウンロード
証明書を処理する場合、CLIを使用して証明書のペイロードをpem
ファイルにダウンロードする機能が必要になることがあります。 これを行うには、Secrets ManagerCLIプラグインとjq
を使用できます。
証明書を pem
ファイルに保管するには、ibmcloud secrets-manager secret
コマンドを実行します。
ibmcloud secrets-manager secret --id=SECRET_ID | jq -r '.certificate' | sed 's/\\n/\n/g' > my-cert-file.pem
このコマンドは、証明書の値を出力し、それをmy-cert-file.pem
に保管します。 コマンド・オプションについて詳しくは、ibmcloud secrets-manager secret
を参照してください。
シークレット ID を使用した API でのシークレットの取得
インスタンスにシークレットを保管した後、外部アプリに接続したり、保護サービスにアクセスしたりするために、シークレットの値を取得することが必要になる場合があります。 Secrets Manager APIを使用すると、シークレットの値をリトリーブできます。
以下の要求例では、シークレットとその詳細 (有効期限、ローテーション間隔、状態など) を取得します。 API を呼び出す場合は、ID 変数と IAM トークンを、ご使用の Secrets Manager インスタンス固有の値で置き換えます。
curl -X GET
-H "Authorization: Bearer {iam_token}" \
-H "Accept: application/json" \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets/{secret_ID}"
成功すると、シークレットの値が他のメタデータとともに応答で返されます。 必須およびオプションのリクエスト・パラメータの詳細については、 秘密の取得 を参照のこと。
?secret_types
および ?match_all_labels
オプション・パラメーターを使用して、取得したシークレットをさらにフィルターに掛けることができます。
シークレット名を使用した API でのシークレットの取得
シークレットの値は、ID の代わりに名前を参照して取得することもできます。
curl -X GET
-H "Authorization: Bearer {iam_token}" \
-H "Accept: application/json" \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secret_groups/{secret_group_name}/secret_types/{secret_type}/secrets/{secert_name}"
シークレットの name
、 secret group name
、および secret_type
を指定する必要があることに注意してください。
?secret_types
および ?match_all_labels
オプション・パラメーターを使用して、取得したシークレットをさらにフィルターに掛けることができます。
バイナリー・データが入っている任意のシークレットの取得
イメージなどのバイナリー・ファイルを使用して任意のシークレットを作成すると、このサービスは base64 エンコードを使用して、base64 エンコード・ストリングとしてそのデータを格納します。 元の形で秘密にアクセスするには、 base64、取り出した秘密を解読するために、さらにいくつかのステップを踏む必要がある。
まず、Secrets Manager API を呼び出して、シークレット・キーをリトリーブします。 以下の例では、cURLとjq
を使用して、シークレットのpayload
値を収集します。
export ARBITRARY_SECRET=`curl -X GET
-H "Authorization: Bearer $IAM_TOKEN" \
-H "Accept: application/json"
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets/arbitrary/{id}" | jq --raw-output '.payload | sub(".*,"; "")'`
$ARBITRARY_SECRET
の内容を検査すると、base64エンコードされたデータが表示されます。 次のスニペットは出力例を示しています。
echo $ARBITRARY_SECRET
eUdB68klDSrzSKgWcQS5...(truncated)
元の形式 (バイナリー・ファイル) でシークレットを表示するには、base64 デコードを使用します。 以下の例では、base64
macOSのユーティリティーを使用して、$ARBITRARY_SECRET
のコンテンツをbase64デコードします。
echo $ARBITRARY_SECRET | base64 --decode > my-secret.png
ローカル・コンピューターから開くことができる元のバイナリー・ファイルに、データが変換されます。
前のバージョンの証明書のダウンロード
証明書をローテーションすると、Secrets Manager API を使用して、以前のバージョンにプログラムでアクセスできます。
次の要求例は、シークレットとその内容を取得します。 API を呼び出す場合は、ID 変数と IAM トークンを、ご使用の Secrets Manager インスタンス固有の値で置き換えます。
curl -X GET
--header "Authorization: Bearer {iam_token}" \
--header "Accept: application/json" \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets/{id}/versions/previous"
秘密への直接リンク
秘密の詳細パネルを直接指すリンクをコピーできます。
- シークレット表で、**「アクション」**メニュー
をクリックして、シークレットのオプションのリストを開きます。
- 秘密へのリンクをコピーするには、 Copy secret URL をクリックします。