Secrets Manager で秘密鍵の登録が「Invalid base64」エラーになったときの対処方法

Secrets Manager で秘密鍵の登録が「Invalid base64」エラーになったときの対処方法

2026.06.12

困っていた内容

AWS CLI を使って秘密鍵を Secrets Manager に登録したいです。
ブログを参考にコマンドを実行しましたが、[ERROR]: Invalid base64:が発生します。対処法を教えてください。

$ aws secretsmanager create-secret \
    --name hato-Secret \
    --secret-binary file://hato.key

aws: [ERROR]: Invalid base64: "-----BEGIN OPENSSH PRIVATE KEY-----
hatoAANzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABlwAAAAdzc2hato
hato...
-----END OPENSSH PRIVATE KEY-----
"

どう対応すればいいの?

コマンドに--cli-binary-format raw-in-base64-outを追加してください。

コマンド例
aws secretsmanager create-secret \
    --name hato-Secret-hoge \
    --secret-binary file://hato.key \
    --cli-binary-format raw-in-base64-out

SecretBinary には Base64 エンコードされた値を指定する必要があります。
AWS CLI バージョン 1 ではfile://プレフィックスで指定された値をバイナリコンテンツと想定し自動エンコードしますが、AWS CLI バージョン 2 では base64 エンコードされたテキストを想定し自動エンコードしません。

そのため、AWS CLI バージョン 2 で--secret-binaryに指定するファイルは、あらかじめ base64 エンコードするか、--cli-binary-format raw-in-base64-outを追加して自動エンコードを有効にしてください。

参考資料

バイナリパラメータはデフォルトで base64 エンコードされた文字列として渡されるようになりました

SecretBinary

…(中略)…

Type: Base64-encoded binary data object

file:// プレフィックス表記を使用してファイル内のバイナリ値を参照する場合、AWS CLI は現在の cli_binary_format 設定に従ってファイルを処理します。その設定の値が base64 (明示的に設定されていない場合のデフォルト) の場合、AWS CLI はファイルに base64 エンコードされたテキストが含まれていることを期待します。設定の値が raw-in-base64-out の場合、AWS CLI はファイルに raw バイナリコンテンツが含まれていることを期待します。


AWSテクニカルサポートノートについて

過去にクラスメソッドのAWS総合支援サービスで頂いたお問合せの中から、通常のAWS利用時でも有益になりうる情報をテクニカルサポートチームがTIPSとしてご紹介しています。技術サポートは、無料でご提供しております。詳細は下記ボタンからご覧ください。

クラスメソッドのAWSサポートの詳細を見る

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事