다음을 통해 공유


Resource Manager 템플릿을 사용하여 Azure Key Vault 및 자격 증명 모음 액세스 정책을 만드는 방법

Azure Key Vault는 키, 암호 및 인증서와 같은 비밀에 대한 보안 저장소를 제공하는 클라우드 서비스입니다. 이 문서에서는 키 자격 증명 모음을 만들기 위해 ARM 템플릿(Azure Resource Manager 템플릿)을 배포하는 프로세스를 설명합니다.

Azure Resource Manager 템플릿은 프로젝트에 대한 인프라 및 구성을 정의하는 JSON(JavaScript Object Notation) 파일입니다. 이 템플릿은 선언적 구문을 사용합니다. 배포를 만들기 위한 프로그래밍 명령의 시퀀스를 작성하지 않고 의도하는 배포를 설명합니다.

필수 조건

이 문서의 단계를 완료하려면 다음을 수행합니다.

  • 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": "2019-09-01",
      "name": "[parameters('keyVaultName')]",
      "location": "[resourceGroup().location]",
      "properties": {
        "enabledForDeployment": "false",
        "enabledForDiskEncryption": "false",
        "enabledForTemplateDeployment": "false",
        "tenantId": "[subscription().tenantId]",
        "accessPolicies": [],
        "sku": {
          "name": "[parameters('skuName')]",
          "family": "A"
        },
        "networkAcls": {
          "defaultAction": "Allow",
          "bypass": "AzureServices"
        }
      }
    }
  ]
}

키 자격 증명 모음 템플릿 설정에 대한 자세한 내용은 Key Vault ARM 템플릿을 참조하세요.

Important

템플릿을 다시 배포하는 경우 키 자격 증명 모음에 있는 기존 액세스 정책이 모두 재정의됩니다. 키 자격 증명 모음에 대한 액세스 권한을 잃지 않으려면 기존 액세스 정책으로 accessPolicies 속성을 채우는 것이 좋습니다.

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."
      }
    },
    "objectId": {
      "type": "string",
      "metadata": {
        "description": "Specifies the object ID of a user, service principal or security group in the Azure Active Directory tenant for the vault. The object ID must be unique for the list of access policies. Get it by using Get-AzADUser or Get-AzADServicePrincipal cmdlets."
      }
    },
    "keysPermissions": {
      "type": "array",
      "defaultValue": [
        "list"
      ],
      "metadata": {
        "description": "Specifies the permissions to keys in the vault. Valid values are: all, encrypt, decrypt, wrapKey, unwrapKey, sign, verify, get, list, create, update, import, delete, backup, restore, recover, and purge."
      }
    },
    "secretsPermissions": {
      "type": "array",
      "defaultValue": [
        "list"
      ],
      "metadata": {
        "description": "Specifies the permissions to secrets in the vault. Valid values are: all, get, list, set, delete, backup, restore, recover, and purge."
      }
    },
    "certificatePermissions": {
      "type": "array",
      "defaultValue": [
        "list"
      ],
      "metadata": {
        "description": "Specifies the permissions to certificates in the vault. Valid values are: all,  create, delete, update, deleteissuers, get, getissuers, import, list, listissuers, managecontacts, manageissuers,  recover, backup, restore, setissuers, and purge."
      }
    }
  },
  "resources": [
     {
      "type": "Microsoft.KeyVault/vaults/accessPolicies",
      "name": "[concat(parameters('keyVaultName'), '/add')]",
      "apiVersion": "2019-09-01",
      "properties": {
        "accessPolicies": [
          {
            "tenantId": "[subscription().tenantId]",
            "objectId": "[parameters('objectId')]",
            "permissions": {
              "keys": "[parameters('keysPermissions')]",
              "secrets": "[parameters('secretsPermissions')]",
              "certificates": "[parameters('certificatePermissions')]"
            }
          }
        ]
      }
    }
  ]
}

Key Vault 템플릿 설정에 대한 자세한 내용은 Key Vault ARM 템플릿을 참조하세요.

추가 Key Vault Resource Manager 템플릿

Key Vault 개체에 사용할 수 있는 다른 Resource Manager 템플릿이 있습니다.

비밀 구성 인증서
해당 없음 해당 없음

Key Vault Resource Manager 참조에서 더 많은 Key Vault 템플릿을 찾을 수 있습니다.

템플릿 배포

Azure Portal을 사용하여 사용자 지정 템플릿에서 리소스 배포에 설명된 대로 편집기에서 사용자 고유의 템플릿 빌드 옵션을 사용해 위의 템플릿을 배포할 수 있습니다.

위의 템플릿을 파일에 저장하고 다음 명령을 사용할 수도 있습니다. New-AzResourceGroupDeploymentaz 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 ..."

리소스

다음 단계