Azure Key Vault は、キー、パスワード、証明書などのシークレット向けに Secure Store を提供するクラウド サービスです。 この記事では、Azure Resource Manager テンプレート (ARM テンプレート) をデプロイしてキー コンテナーを作成するプロセスを説明します。
重要
Azure RBAC は、Azure Key Vault に推奨される承認モデルです。 詳細については、 Key Vault の Azure RBAC に関するページを参照してください。 レガシ アクセス ポリシー モデルには既知のセキュリティ脆弱性があり、新しいデプロイには使用しないでください。
Azure Resource Manager テンプレートは JavaScript Object Notation (JSON) ファイルであり、プロジェクトのインフラストラクチャと構成が定義されています。 このテンプレートでは、宣言型の構文が使用されています。 デプロイを作成するための一連のプログラミング コマンドを記述しなくても、意図したデプロイを記述できます。
[前提条件]
この記事の手順を完了するには、次のことが条件となります。
- Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。
Key Vault Resource Manager テンプレートを作成する
次のテンプレートは、キー ボールトを作成する基本的な方法を示したものです。 一部の値は、テンプレート内で指定されます。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"keyVaultName": {
"type": "string",
"metadata": {
"description": "Specifies the name of the key vault."
}
},
"skuName": {
"type": "string",
"defaultValue": "Standard",
"allowedValues": [
"Standard",
"Premium"
],
"metadata": {
"description": "Specifies whether the key vault is a standard vault or a premium vault."
}
}
},
"resources": [
{
"type": "Microsoft.KeyVault/vaults",
"apiVersion": "2023-07-01",
"name": "[parameters('keyVaultName')]",
"location": "[resourceGroup().location]",
"properties": {
"enabledForDeployment": false,
"enabledForDiskEncryption": false,
"enabledForTemplateDeployment": false,
"tenantId": "[subscription().tenantId]",
"enableRbacAuthorization": true,
"enableSoftDelete": true,
"softDeleteRetentionInDays": 90,
"enablePurgeProtection": true,
"sku": {
"name": "[parameters('skuName')]",
"family": "A"
},
"networkAcls": {
"defaultAction": "Deny",
"bypass": "AzureServices"
}
}
}
]
}
Key Vault テンプレート設定の詳細については、Key Vault ARM テンプレート リファレンスに関するページを参照してください。
注
このテンプレートでは、承認に Azure RBAC を使用します。これが推奨される方法です。 Key Vault データへのアクセスを許可するには、Azure RBAC ロール (Key Vault Secrets Officer、Key Vault Crypto Officer など) をユーザー、グループ、またはサービス プリンシパルに割り当てます。 詳細については、 Key Vault の Azure RBAC に関するページを参照してください。
代わりに従来のアクセス ポリシーを使用する必要がある場合は、「 Key Vault アクセス ポリシーの割り当て」を参照してください。 従来のアクセス ポリシー モデルには既知のセキュリティの脆弱性があり、Privileged Identity Management (PIM) のサポートは備えられていないことに注意してください。
その他の Key Vault Resource Manager テンプレート
Key Vault オブジェクトで使用できる Resource Manager テンプレートが他にもあります。
| シークレット | キー | 証明 書 |
|---|---|---|
| なし | なし |
その他の Key Vault テンプレートについては、次を参照してください。Key Vault Resource Manager リファレンス。
テンプレートの配備
Azure portal を使うと、次に示すように、 [エディターで独自のテンプレートを作成する] オプションを使って上記のテンプレートをデプロイできます。次のページに説明があります:「カスタム テンプレートからリソースをデプロイする」。
また、上記のテンプレートをファイルに保存し、次のコマンドを使用することもできます: New-AzResourceGroupDeployment および az deployment group create:
New-AzResourceGroupDeployment -ResourceGroupName ExampleGroup -TemplateFile key-vault-template.json
az deployment group create --resource-group ExampleGroup --template-file key-vault-template.json
リソースをクリーンアップする
後続のクイックスタートおよびチュートリアルで引き続き作業する予定がある場合は、これらのリソースをそのまま残しておくことができます。 リソースが不要になった場合は、リソース グループを削除します。 グループを削除すると、キー コンテナーと関連リソースも削除されます。 Azure CLI または Azure PowerShell を使ってリソース グループを削除するには、次の手順を実行します。
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
リソース
- Azure Key Vault の概要を確認します。
- Azure Resource Manager の詳細を確認します。
- 「Azure Key Vault のセキュリティの概要」を確認する