0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PEMファイルの中身はもうエンコードされているよという話

Last updated at Posted at 2025-11-21

背景

Glue Connectionsについて、Snowflakeにキーペア認証しようとしていました。

pem_private_key — 読み込み/書き込みに使用されます。暗号化されていない b64 でエンコードされたプライベートキーの文字列。Snowflake ユーザーのプライベートキー。これを PEM ファイルからコピーするのが一般的です。詳細については、Snowflake ドキュメントの「キーペア認証とキーペアローテーション」を参照してください。

試したこと

なるほど、登録した秘密鍵を復号化して、エンコードして、シークレットマネージャーに入れておけばいいんですね。

復号化して

openssl pkcs8 -in encrypted_key.p8 -out decrypted_key.pem

エンコードして

base64 -w 0 decrypted_key.pem > rsa_key.b64

これをシークレットマネージャーに入れてと、、、、、

{
    "sfUser": "example_user",
    "pem_private_key": "MIIEvQIBADANBgkqhkiG9w0BAQE.....U="
}

エラーが出ました。。。

Could not encode private key

おかしいですね、先ほどエンコードしたはずだったんですが、、、、、
と思ってあれこれしているうちに4時間ほど経過していました。

結論

PEMファイルとは、Privacy Enhanced Mail(プライバシー強化メール)の略で、デジタル証明書や暗号鍵などを格納する一般的なテキストファイル形式です。Base64形式でエンコードされたデータで、ファイルの中身が人間が読めるテキストとして表現されているのが特徴です。

PEMファイルってもうエンコードされてる形式だったんですね、、

確かに改めて手順を見ると復号化して形式揃えているだけで、エンコードはしていませんでした。

正しい手順

AWS Secret Managerにキーを保存する場合、秘密鍵は適切にフォーマットする必要があります。

# Convert private key to one line without header/footer
cat rsa_key.p8 | sed '1d;$d' | tr -d '\n' > rsa_key_oneline.p8

出力は次のような 1 行の文字列になります。

MIIEvQIBADANBgkqhkiG9w0BAQE.................U=

参考


基礎がないとこういうしょうもないところで詰まって嫌ですね、、、無駄な作業をしていたのは内緒です、、、、
文章をもっと読みましょうね、、

これを PEM ファイルからコピーするのが一般的です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?