RSAキーをAzure Key Vaultに配置する


13

キーペア(通常はid_rsaとid_rsa.pub)をAzure Key Vaultに格納するにはどうすればよいですか。GITサービスに公開キーを入れて、仮想マシンがAzure Key Vaultから秘密キーをダウンロードできるようにする-> GITに安全にアクセスできるようにします。

ペアのPEMファイルを作成し、それらをpfxに組み合わせてアップロードしましたが、秘密のbuとして、返されるファイルはどちらのpemファイルとも完全に異なるようです。

また、Azureに秘密キーを手動で入力しようとしましたが、改行がスペースに変わります。

回答:


22

Azure CLIを使用id_rsaしてAzure Key Vault にアップロードできます。

azure keyvault secret set --name shui --vault-name shui --file ~/.ssh/id_rsa

-hヘルプを取得するために使用できます。

--file <file-name>                 the file that contains the secret value to be uploaded; cannot be used along with the --value or --json-value flag

Key Vaultからシークレットをダウンロードすることもできます。

az keyvault secret download --name shui --vault-name shui --file ~/.ssh/id_rsa

ラボのキーを比較します。彼らは同じです。


ここでのすべての回答に感謝します、thx!
Reaces

@Reaces私の答えがあなたの役に立つことを知ってうれしいです。
水生heng宝

申し訳ありませんが、私はOPではありません。これを読んでテストし、有用な知識として提出し、投票してコメントしてください:) 混乱をおologiesびします。
Reaces

>申し訳ありませんが、私はOPではありません。これを読んでテストし、有用な知識として提出しました。投票とコメントが必要だと感じました:) とてもフレンドリーなコミュニティ。
ネットランナー

2
参考までに、次は秘密を取得する適切な方法はgetもう機能しません。az keyvault secret download --name <KeyNameHere> --vault-name <vaultNamehere> --file <filename here>
グレゴリースヴァリアン

12

Shengbao Shuiによる以前の回答は、Azure CLI 1.0(ノード)を使用してシークレットを保存するコマンドを示しています。AzureのCLI 2.0(パイソン)次の構文を使用します。

キーの設定/保存:

az keyvault secret set --vault-name 'myvault' -n 'secret-name' -f '~/.ssh/id_rsa'

引数:

Arguments
    --name -n    [Required]: Name of the secret.
    --vault-name [Required]: Name of the key vault.
    --description          : Description of the secret contents (e.g. password, connection string,
                             etc).
    --disabled             : Create secret in disabled state.  Allowed values: false, true.
    --expires              : Expiration UTC datetime  (Y-m-d'T'H:M:S'Z').
    --not-before           : Key not usable before the provided UTC datetime  (Y-m-d'T'H:M:S'Z').
    --tags                 : Space-separated tags in 'key[=value]' format. Use '' to clear existing
                             tags.

Content Source Arguments
    --encoding -e          : Source file encoding. The value is saved as a tag (`file-
                             encoding=<val>`) and used during download to automatically encode the
                             resulting file.  Allowed values: ascii, base64, hex, utf-16be,
                             utf-16le, utf-8.  Default: utf-8.
    --file -f              : Source file for secret. Use in conjunction with '--encoding'.
    --value                : Plain text secret value. Cannot be used with '--file' or '--encoding'.

Global Arguments
    --debug                : Increase logging verbosity to show all debug logs.
    --help -h              : Show this help message and exit.
    --output -o            : Output format.  Allowed values: json, jsonc, table, tsv.  Default:
                             json.
    --query                : JMESPath query string. See http://jmespath.org/ for more information
                             and examples.
    --verbose              : Increase logging verbosity. Use --debug for full debug logs.

キーの取得/取得:

jqユーティリティ~/.ssh/mykeyを使用して、キーをファイルに保存します。

az keyvault secret show --vault-name myvault --name 'secret-name' | jq -r .value > ~/.ssh/mykey

ファイルは末尾の改行で印刷される場合がありますが、perlのワンライナーで削除できます:

perl -pi -e 'chomp if eof' ~/.ssh/mykey

# Set permissions to user-read only
chmod 600 ~/.ssh/mykey

秘密鍵ファイルから公開鍵を生成...

ssh-keygen -y -f ~/.ssh/myfile > ~/.ssh/myfile.pub
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.