Azure Key Vault は、キー、パスワード、証明書などのシークレットのセキュリティで保護されたストアを提供するクラウド サービスです。 このクイック スタートでは、Azure Resource Manager テンプレート (ARM テンプレート) をデプロイしてキー コンテナーを作成するプロセスについて説明します。
Azure Resource Manager テンプレートは、プロジェクトのインフラストラクチャと構成を定義する JavaScript Object Notation (JSON) ファイルです。 このテンプレートでは、宣言型の構文が使用されています。 デプロイを作成するための一連のプログラミング コマンドを記述しなくても、意図したデプロイを記述できます。
環境が前提条件を満たしていて、ARM テンプレートの使用に慣れている場合は、 [Azure へのデプロイ] ボタンを選択します。 テンプレートがAzure ポータルで開きます。
Prerequisites
この記事を完了するには:
- Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。
テンプレートを確認する
このクイックスタートで使用されるテンプレートは Azure クイックスタート テンプレートからのものです。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.42.1.51946",
"templateHash": "5424899472990749957"
}
},
"parameters": {
"keyVaultName": {
"type": "string",
"metadata": {
"description": "Specifies the name of the key vault."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Specifies the Azure location where the key vault should be created."
}
},
"enabledForDeployment": {
"type": "bool",
"defaultValue": false,
"metadata": {
"description": "Specifies whether Azure Virtual Machines are permitted to retrieve certificates stored as secrets from the key vault."
}
},
"enabledForDiskEncryption": {
"type": "bool",
"defaultValue": false,
"metadata": {
"description": "Specifies whether Azure Disk Encryption is permitted to retrieve secrets from the vault and unwrap keys."
}
},
"enabledForTemplateDeployment": {
"type": "bool",
"defaultValue": false,
"metadata": {
"description": "Specifies whether Azure Resource Manager is permitted to retrieve secrets from the key vault."
}
},
"tenantId": {
"type": "string",
"defaultValue": "[subscription().tenantId]",
"metadata": {
"description": "Specifies the Azure Active Directory tenant ID that should be used for authenticating requests to the key vault. Get it by using Get-AzSubscription cmdlet."
}
},
"skuName": {
"type": "string",
"defaultValue": "standard",
"allowedValues": [
"standard",
"premium"
],
"metadata": {
"description": "Specifies whether the key vault is a standard vault or a premium vault."
}
},
"secretName": {
"type": "string",
"metadata": {
"description": "Specifies the name of the secret that you want to create."
}
},
"secretValue": {
"type": "securestring",
"metadata": {
"description": "Specifies the value of the secret that you want to create."
}
}
},
"resources": [
{
"type": "Microsoft.KeyVault/vaults",
"apiVersion": "2023-07-01",
"name": "[parameters('keyVaultName')]",
"location": "[parameters('location')]",
"properties": {
"enabledForDeployment": "[parameters('enabledForDeployment')]",
"enabledForDiskEncryption": "[parameters('enabledForDiskEncryption')]",
"enabledForTemplateDeployment": "[parameters('enabledForTemplateDeployment')]",
"enableRbacAuthorization": true,
"tenantId": "[parameters('tenantId')]",
"enableSoftDelete": true,
"softDeleteRetentionInDays": 90,
"enablePurgeProtection": true,
"sku": {
"name": "[parameters('skuName')]",
"family": "A"
},
"networkAcls": {
"defaultAction": "Allow",
"bypass": "AzureServices"
}
}
},
{
"type": "Microsoft.KeyVault/vaults/secrets",
"apiVersion": "2023-07-01",
"name": "[format('{0}/{1}', parameters('keyVaultName'), parameters('secretName'))]",
"properties": {
"value": "[parameters('secretValue')]"
},
"dependsOn": [
"[resourceId('Microsoft.KeyVault/vaults', parameters('keyVaultName'))]"
]
}
],
"outputs": {
"location": {
"type": "string",
"value": "[parameters('location')]"
},
"name": {
"type": "string",
"value": "[parameters('keyVaultName')]"
},
"resourceGroupName": {
"type": "string",
"value": "[resourceGroup().name]"
},
"resourceId": {
"type": "string",
"value": "[resourceId('Microsoft.KeyVault/vaults', parameters('keyVaultName'))]"
}
}
}
テンプレートには、1 つの Azure リソースが定義されています。
-
Microsoft.KeyVault/vaults: Azure キー コンテナーを作成します。 このテンプレートでは、AZURE RBAC 承認 (
enableRbacAuthorization: true)、論理的な削除、および消去保護が有効になります。
その他の Azure Key Vault テンプレート サンプルについては、 Azure クイック スタート テンプレートを参照してください。
テンプレートをデプロイする
Azure にサインインし、テンプレートを開くには次のイメージを選択します。 このテンプレートは、キー コンテナーを作成します。
次の値を選択または入力します。 指定されていない限り、既定値を使用します。
- サブスクリプション: Azure サブスクリプションを選択します。
- リソース グループ: [ 新規作成] を選択し、リソース グループの一意の名前を入力して、[ OK] を選択します。
- リージョン: 場所を選択します。 たとえば [米国中部] です。
-
コンテナー名: キー コンテナーの名前を入力します。これは、
vault.azure.net名前空間内でグローバルに一意である必要があります。 - SKU 名: Standard または Premium を選択します。 既定値は 標準です。
[ 確認と作成] を選択し、[ 作成] を選択します。 キー コンテナーが正常にデプロイされると、通知が表示されます。
Azure PowerShell、Azure CLI、または REST API を使用してテンプレートをデプロイすることもできます。 他のデプロイ方法については、「テンプレートのデプロイ」を参照してください。
Key Vault RBAC ロールを割り当てる
このテンプレートによって作成されたキー コンテナーでは、承認に Azure RBAC が使用されます。 データ プレーンを使用してキー、シークレット、または証明書を作成または読み取る場合は、自分に適切なロールを割り当てる必要があります。 たとえば、シークレットを管理するには、Key Vault Secrets Officer ロールを自分に割り当てます。
echo "Enter your key vault name:" &&
read keyVaultName &&
az role assignment create --role "Key Vault Secrets Officer" \
--assignee-object-id $(az ad signed-in-user show --query id -o tsv) \
--scope $(az keyvault show --name $keyVaultName --query id -o tsv)
Note
その他の組み込みロールについては、Key Vaultデータ プレーン操作のAzure組み込みロールを参照してください。 ロールの割り当てが反映されるまでに 1 ~ 2 分かかる場合があります。
デプロイされているリソースを確認する
Azure ポータルを使用してキー コンテナーを確認するか、次のAzure CLIまたはAzure PowerShell スクリプトを使用できます。
echo "Enter your key vault name:" &&
read keyVaultName &&
az keyvault show --name $keyVaultName
リソースをクリーンアップする
その他の Key Vault のクイック スタートとチュートリアルは、このクイック スタートに基づいています。 後続のクイック スタートおよびチュートリアルを引き続き実行する場合は、これらのリソースをそのまま残しておくことをお勧めします。 必要がなくなったら、リソース グループを削除します。これによって、キー コンテナーと関連リソースが削除されます。
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName
Note
リソース グループを削除すると、キー コンテナーも削除されますが、その後コンテナーは論理削除状態になり、保有期間中は回復可能なままです(既定では 90 日)。 ボールト名はその期間中グローバルで予約されたままとなり、さらに消去保護が有効になっているため、ボールトを早期に完全に削除することはできません。 標準のキー コンテナーでは、論理削除されたキー コンテナーに対して料金は発生しません。 詳細については、「Key Vault ソフト削除の概要」を参照してください。
その他の Key Vault Resource Manager テンプレート
その他のクイック スタートでは、シークレット、キー、または証明書をキー コンテナーに設定する手順を示します。
| Secrets | Keys | 証明書 |
|---|---|---|
その他の Key Vault テンプレートについては、次を参照してください。Key Vault Resource Manager リファレンス。
次のステップ
- Azure Key Vault の概要を確認します。
- Azure Key Vaultセキュリティの概要を確認します。
- Azure RBAC for Key Vault について学習します。
- キー保管庫に認証する。
- Azure Key Vault 開発者ガイド。