【ITニュース解説】HOW TO CREATE A KEYVAULT ON AZURE WITH CMD STEP BY STEP GUIDE

2025年09月07日に「Dev.to」が公開したITニュース「HOW TO CREATE A KEYVAULT ON AZURE WITH CMD STEP BY STEP GUIDE」について初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

ITニュース概要

Azure Key Vaultは、パスワードやAPIキーなど機密情報を安全に保管するサービス。記事では、CMD(コマンドライン)でKey Vaultを作成し、機密情報の保存・取得を行う手順をステップバイステップで解説する。コードに直接機密情報を書かず、より安全な管理を実現できる。

ITニュース解説

Azure Key Vaultは、Microsoftが提供するクラウドサービスであり、システムが利用するパスワード、データベースの接続文字列、APIキーといった「シークレット」や、暗号化に使う「キー」、SSL/TLS証明書のような「証明書」といった機密情報を安全に保管し、管理する仕組みである。通常、これらの機密情報をアプリケーションのコードの中に直接書き込んだり、設定ファイルに平文で保存したりすることはセキュリティ上の大きなリスクを伴う。なぜなら、コードが流出したり、設定ファイルが閲覧されたりすると、機密情報が外部に漏洩してしまう可能性があるからだ。Key Vaultを使うと、これらの機密情報を一箇所に集約し、暗号化された状態で安全に保管できるため、アプリケーションは必要な時にKey Vaultから安全に情報を取得し、利用できる。これにより、セキュリティが向上し、機密情報の一元管理が可能となる。

Azureの様々なリソースを操作する方法として、Webブラウザから利用できるAzure Portalだけでなく、コマンドラインインターフェース(CLI)も存在する。CLIを利用する最大の利点は、手動で画面をクリックする代わりに、コマンドをスクリプトとして記述し、一連の操作を自動化できる点にある。これにより、繰り返し発生する作業の効率化や、設定の再現性を高めることができる。システムエンジニアにとって、CLIを使いこなす能力は、自動化やインフラ管理のスキルとして非常に重要である。

ここでは、Azure CLIを使ってKey Vaultを作成し、シークレットを格納、取得する具体的な手順を段階的に解説する。

最初のステップは、Azure CLIを通じてAzureにログインすることである。これには「az login」というコマンドを使用する。このコマンドを実行すると、Webブラウザが起動し、Azureアカウントの認証を求められる。登録されているメールアドレスでログインし、複数のサブスクリプションがある場合は、操作対象となるサブスクリプションを選択することで、コマンドラインからAzureリソースを操作できるようになる。

次に、リソースグループを作成する。Azureでは、関連するリソースを論理的にまとめて管理するために「リソースグループ」という概念を用いる。例えば、一つのアプリケーションを構成する仮想マシンやデータベース、ストレージアカウントなどを、一つのリソースグループに含めることで、それらのリソースをまとめて管理したり、削除したりすることが容易になる。リソースグループの作成は「az group create --name myresourcegroup --location eastus」のようなコマンドで行う。ここで「myresourcegroup」はリソースグループの名前、「eastus」はそのリソースグループを配置するAzureのデータセンターの地理的な場所(リージョン)を指定している。

リソースグループが準備できたら、いよいよKey Vault自体を作成する。これには「az keyvault create --name mykeydaniel123 --resource-group myresourcegroup --location eastus」というコマンドを実行する。ここでは「mykeydaniel123」がKey Vaultの名前となり、先ほど作成した「myresourcegroup」に属し、「eastus」リージョンに配置される。Key Vaultの名前はAzure全体でユニークである必要があるため、既に存在する名前は使用できないことに注意が必要だ。

Key Vaultを作成しただけでは、まだ誰でも自由にシークレットを保管したり取得したりできるわけではない。Key Vaultに機密情報を保管できるようにするためには、適切な権限を割り当てる必要がある。これは「ロール割り当て」と呼ばれる操作で、「az role assignment create --assignee 3095d940-46b7-4239-bfed-f46a193281c1 --role "Key Vault Secrets Officer" --scope "/subscriptions/fdf2e0bf-0c36-45cc-8ae5-2f2e84aa3dbe/resourceGroups/myresourcegroup/providers/Microsoft.KeyVault/vaults/mykeydaniel123"」のようなコマンドで行う。このコマンドは、指定されたIDを持つエンティティ(ユーザーやサービスプリンシパルなど)に対して、「Key Vault Secrets Officer」というロール(役割)を、指定されたKey Vaultのスコープ(範囲)で割り当てるという意味を持つ。このロールは、Key Vault内のシークレットの読み書きができる権限を与えるもので、これにより、適切な認証を受けた主体だけがKey Vault内のシークレットを操作できるようになる。これは、Azureのセキュリティモデルである「ロールベースのアクセス制御(RBAC)」の重要な部分である。

権限の割り当てが完了すれば、Key Vaultに実際にシークレットを保存できる。例えば、パスワードを保存するには「az keyvault secret set --name mysecret --value "kolawole@123" --vault-name mykeydaniel123」というコマンドを使う。「mysecret」はシークレットの名前、「kolawole@123」は保存する実際のパスワードの値、そして「mykeydaniel123」は対象のKey Vaultの名前を指定している。このコマンドにより、パスワードは暗号化されてKey Vaultに安全に保管される。これにより、コードや設定ファイルにパスワードを直接記述するリスクを排除し、機密データの一元管理と安全性を高めることができる。

保存したシークレットは、必要な時にKey Vaultから安全に取得できる。取得するには「az keyvault secret show --vault-name mykeydaniel123 --name mysecret --query value -o tsv」というコマンドを使用する。このコマンドは、指定されたKey Vaultの「mysecret」という名前のシークレットの情報を表示する。特に「--query value -o tsv」の部分は、表示される情報の中から「値(value)」のみを抽出し、タブ区切り形式(TSV)で出力することで、シークレットの実際の値だけを効率的に取得できるようになっている。これにより、アプリケーションは必要な機密情報を安全かつ簡潔に取得し、利用することができる。

さらに、Key Vaultに保存されているシークレットの一覧を確認したい場合は、「az keyvault secret list --vault-name mykeydaniel123 -o table」というコマンドを実行する。このコマンドは、指定されたKey Vault内に存在するすべてのシークレットの情報を、テーブル形式で見やすく表示してくれる。これにより、どのようなシークレットが保管されているか、その状態などを一目で確認できる。

これらのCLIコマンドを通じてAzure Key Vaultを操作することは、単に機密情報を安全に管理するだけでなく、クラウドインフラストラクチャをコードとして管理する「Infrastructure as Code (IaC)」の考え方を実践する第一歩となる。CLIで実行した一連の操作は、Azure PortalのWebインターフェースにも即座に反映され、実際にリソースが作成・変更されていることを確認できる。システムエンジニアを目指す上で、このようなコマンドラインによる操作スキルは、将来的に複雑なシステムを構築・運用する際に非常に役立つ基礎となる。機密情報の安全な管理は、どのようなシステム開発においても不可欠な要素であり、Key Vaultとその操作方法は、そのための重要な知識となる。