今回は Azure で SSH キーを発行し、それを用いて各種クラウドで作成した Linux VM にアクセスできるようにしてみます。セキュリティを考えると Linux VM には SSH キーを用いてアクセスするのが推奨されますが、更新の手間も増えるので共通してキーを管理する仕組みも整えておきたいです。
SSH キー管理の仕組み
Azure の機能で SSH キーを自動作成する機能があります。これを用いて各クラウドで使うための SSH キーを作成し、管理場所としておいておけます。
Azure portal で SSH キーを作成する – Azure Virtual Machines | Microsoft Docs
SSH キーの作成
Azure ポータルから SSH キーを作成することができます。[すべてのサービス] から [SSH キー] を作成します。

リソースとして SSH 公開キーを管理できるようになり、秘密キーのダウンロードも行えます。秘密キーは作成時のみダウンロード可能なので注意してください。

Linux VM 作成時のメニューでも選択できます。
キーを作成するとリソースとして扱えるようになり、公開キーはいつでもポータルから確認できるようになります。

この公開キーを各クラウドに登録しておきます。
SSH 公開キーの登録
各クラウドで公開キーを利用する方法は次の通りです。
Azure
SSH キー リソースを作成しておくと、VM 作成時に選択できるようになります。

AWS
EC2 の [キーペア] を開き、[アクション]>[キーペアのインポート] をクリックします。

[キーペアをインポート] にて、[キーペアファイル] に Azure で作成した SSH キーの公開鍵をそのまま貼り付けます。

あとは VM 作成時に既存のキーペアを選択します。
GCP
[Compute Engine] の [メタデータ] を開き、[SSH 認証鍵] タブをクリックします。

空欄に SSH 公開鍵を入力します。この時末尾の = の後ろにスペースを 1 つ入力した後にユーザー名を指定します。

ここで登録すると、指定したユーザーが自動的に作成されるようになります。個別で設定したい場合は同様に VM 作成時のウィザードで公開鍵を入力します。

OCI
パッと見た感じ、OCI にはキーペアを登録しておいて再利用する機能はまだなさそうです。

VM インスタンス作成時に SSH キーを貼り付けます。
SSH キーの利用
あとは作成した秘密鍵で各 VM に接続します。Azure Cloud Shell の共有フォルダに置いておくとどこからでも利用できるので便利です。
また、Key Vault に秘密鍵を保管しておくと Azure Bastion を利用した接続の際に利用できます。

コメント