고객 관리형 키를 사용하여 레지스트리 암호화Encrypt registry using a customer-managed key

이미지 및 기타 아티팩트를 Azure 컨테이너 레지스트리에 저장하면 Azure에서 서비스 관리형 키를 사용하여 저장된 레지스트리 콘텐츠를 자동으로 암호화합니다.When you store images and other artifacts in an Azure container registry, Azure automatically encrypts the registry content at rest with service-managed keys. Azure Key Vault에서 만들고 관리하는 키를 사용하여 추가 암호화 계층을 통해 기본 암호화를 보완할 수 있습니다.You can supplement default encryption with an additional encryption layer using a key that you create and manage in Azure Key Vault. 이 문서에서는 Azure CLI 및 Azure Portal을 사용하는 단계를 안내합니다.This article walks you through the steps using the Azure CLI and the Azure portal.

고객 관리형 키를 사용하는 서버 쪽 암호화는 Azure Key Vault와의 통합을 통해 지원됩니다.Server-side encryption with customer-managed keys is supported through integration with Azure Key Vault. 사용자 고유의 암호화 키를 만들어 키 자격 증명 모음에 저장하거나 Azure Key Vault의 API를 사용하여 키를 생성할 수 있습니다.You can create your own encryption keys and store them in a key vault, or use Azure Key Vault's APIs to generate keys. Azure Key Vault를 사용하면 키 사용을 감사할 수도 있습니다.With Azure Key Vault, you can also audit key usage.

이 기능은 프리미엄 컨테이너 레지스트리 서비스 계층에서 사용할 수 있습니다.This feature is available in the Premium container registry service tier. 레지스트리 서비스 계층 및 제한에 대한 자세한 내용은 Azure Container Registry 서비스 계층을 참조하세요.For information about registry service tiers and limits, see Azure Container Registry service tiers.

알아야 할 사항Things to know

  • 고객 관리형 키는 현재 레지스트리를 만들 때만 사용하도록 설정할 수 있습니다.You can currently enable a customer-managed key only when you create a registry.
  • 레지스트리에서 고객 관리형 키를 사용하도록 설정한 후에는 사용하지 않도록 설정할 수 없습니다.After enabling a customer-managed key on a registry, you can't disable it.
  • 콘텐츠 신뢰는 현재 고객 관리형 키로 암호화된 레지스트리에서 지원되지 않습니다.Content trust is currently not supported in a registry encrypted with a customer-managed key.
  • 고객 관리형 키로 암호화된 레지스트리에서 ACR 작업에 대한 실행 로그는 현재 24시간 동안만 유지됩니다.In a registry encrypted with a customer-managed key, run logs for ACR Tasks are currently retained for only 24 hours. 로그를 더 오랜 기간 동안 유지해야 하는 경우 작업 실행 로그 내보내기 및 저장에 대한 지침을 참조하세요.If you need to retain logs for a longer period, see guidance to export and store task run logs.

사전 요구 사항Prerequisites

이 문서에서 Azure CLI 단계를 사용하려면 Azure CLI 버전 2.2.0 이상이 필요합니다.To use the Azure CLI steps in this article, you need Azure CLI version 2.2.0 or later. 설치 또는 업그레이드해야 하는 경우 Azure CLI 설치를 참조하세요.If you need to install or upgrade, see Install Azure CLI.

고객 관리형 키 사용 - CLIEnable customer-managed key - CLI

리소스 그룹 만들기Create a resource group

필요한 경우 az group create 명령을 실행하여 키 자격 증명 모음, 컨테이너 레지스트리 및 기타 필요한 리소스를 만들기 위한 리소스 그룹을 만듭니다.If needed, run the az group create command to create a resource group for creating the key vault, container registry, and other required resources.

az group create --name <resource-group-name> --location <location>

사용자 할당 관리 ID 만들기Create a user-assigned managed identity

az identity create 명령을 사용하여 Azure 리소스에 대해 사용자가 할당한 관리 ID를 만듭니다.Create a user-assigned managed identity for Azure resources with the az identity create command. 이 ID는 레지스트리에서 Key Vault 서비스에 액세스하는 데 사용됩니다.This identity will be used by your registry to access the Key Vault service.

az identity create \
  --resource-group <resource-group-name> \
  --name <managed-identity-name> 

명령 출력에서 idprincipalId 값을 적어 둡니다.In the command output, take note of the following values: id and principalId. 이러한 값은 이후 단계에서 키 자격 증명 모음에 대한 레지스트리 액세스를 구성하는 데 필요합니다.You need these values in later steps to configure registry access to the key vault.

{
  "clientId": "xxxx2bac-xxxx-xxxx-xxxx-192cxxxx6273",
  "clientSecretUrl": "https://control-eastus.identity.azure.net/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/myresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myidentityname/credentials?tid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&oid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&aid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/myresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myresourcegroup",
  "location": "eastus",
  "name": "myidentityname",
  "principalId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "resourceGroup": "myresourcegroup",
  "tags": {},
  "tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "type": "Microsoft.ManagedIdentity/userAssignedIdentities"
}

편의를 위해 이러한 값을 환경 변수에 저장합니다.For convenience, store these values in environment variables:

identityID=$(az identity show --resource-group <resource-group-name> --name <managed-identity-name> --query 'id' --output tsv)

identityPrincipalID=$(az identity show --resource-group <resource-group-name> --name <managed-identity-name> --query 'principalId' --output tsv)

키 자격 증명 모음 만들기Create a key vault

az keyvault create를 사용하여 키 자격 증명 모음을 만들어 레지스트리 암호화를 위한 고객 관리형 키를 저장합니다.Create a key vault with az keyvault create to store a customer-managed key for registry encryption.

실수로 키 또는 키 자격 증명 모음을 삭제하여 발생하는 데이터 손실을 방지하려면 일시 삭제제거 보호 설정을 사용하도록 설정해야 합니다.To prevent data loss caused by accidental key or key vault deletions, you must enable the following settings: Soft delete and Purge protection. 다음 예제에는 이러한 설정에 대한 매개 변수가 포함되어 있습니다.The following example includes parameters for these settings:

az keyvault create --name <key-vault-name> \
  --resource-group <resource-group-name> \
  --enable-soft-delete \
  --enable-purge-protection

키 자격 증명 모음액세스 정책 추가Add key vault access policy

ID에서 액세스할 수 있도록 키 자격 증명 모음에 대한 정책을 구성합니다.Configure a policy for the key vault so that the identity can access it. 다음 az keyvault set-policy 명령에서는 이전에 만들어 환경 변수에 저장한 관리 ID의 보안 주체 ID를 전달합니다.In the following az keyvault set-policy command, you pass the principal ID of the managed identity that you created, stored previously in an environment variable. 키 권한을 get, unwrapKeywrapKey로 설정합니다.Set key permissions to get, unwrapKey, and wrapKey.

az keyvault set-policy \
  --resource-group <resource-group-name> \
  --name <key-vault-name> \
  --object-id $identityPrincipalID \
  --key-permissions get unwrapKey wrapKey 

키 만들기 및 키 ID 가져오기Create key and get key ID

az keyvault key create 명령을 실행하여 키를 키 자격 증명 모음에 만듭니다.Run the az keyvault key create command to create a key in the key vault.

az keyvault key create \
  --name <key-name> \
  --vault-name <key-vault-name>

명령 출력에서 키의 ID(kid)를 적어 둡니다.In the command output, take note of the key's ID, kid. 이 ID는 다음 단계에서 사용합니다.You use this ID in the next step:

[...]
  "key": {
    "crv": null,
    "d": null,
    "dp": null,
    "dq": null,
    "e": "AQAB",
    "k": null,
    "keyOps": [
      "encrypt",
      "decrypt",
      "sign",
      "verify",
      "wrapKey",
      "unwrapKey"
    ],
    "kid": "https://mykeyvault.vault.azure.net/keys/mykey/xxxxxxxxxxxxxxxxxxxxxxxx",
    "kty": "RSA",
[...]

편의를 위해 이 값을 환경 변수에 저장합니다.For convenience, store this value in an environment variable:

keyID=$(az keyvault key show \
  --name <keyname> \
  --vault-name <key-vault-name> \
  --query 'key.kid' --output tsv)

고객 관리형 키를 사용하여 레지스트리 만들기Create a registry with customer-managed key

az acr create 명령을 실행하여 레지스트리를 프리미엄 서비스 계층에 만들고 고객 관리형 키를 사용하도록 설정합니다.Run the az acr create command to create a registry in the Premium service tier and enable the customer-managed key. 이전에 환경 변수에 저장한 관리 ID 보안 주체 ID와 키 ID를 전달합니다.Pass the managed identity principal ID and the key ID, stored previously in environment variables:

az acr create \
  --resource-group <resource-group-name> \
  --name <container-registry-name> \
  --identity $identityID \
  --key-encryption-key $keyID \
  --sku Premium

암호화 상태 표시Show encryption status

고객 관리형 키를 사용하는 레지스트리 암호화를 사용하도록 설정되었는지 여부를 표시하려면 az acr encryption show 명령을 실행합니다.To show whether registry encryption with a customer-managed key is enabled, run the az acr encryption show command:

az acr encryption show --name <registry-name> 

출력은 다음과 비슷합니다.Output is similar to:

{
  "keyVaultProperties": {
    "identity": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "keyIdentifier": "https://myvault.vault.azure.net/keys/myresourcegroup/abcdefg123456789...",
    "versionedKeyIdentifier": "https://myvault.vault.azure.net/keys/myresourcegroup/abcdefg123456789..."
  },
  "status": "enabled"
}

고객 관리형 키 사용 - 포털Enable customer-managed key - portal

관리 ID 만들기Create a managed identity

Azure Portal에서 Azure 리소스에 대해 사용자가 할당한 관리 ID를 만듭니다.Create a user-assigned managed identity for Azure resources in the Azure portal. 단계는 사용자 할당 ID 만들기를 참조하세요.For steps, see Create a user-assigned identity.

ID 이름은 이후 단계에서 사용합니다.You use the identity's name in later steps.

Azure Portal에서 사용자가 할당한 관리 ID 만들기

키 자격 증명 모음 만들기Create a key vault

키 자격 증명 모음을 만드는 단계는 빠른 시작: Azure Portal을 사용하여 Azure Key Vault에서 비밀 설정 및 검색을 참조하세요.For steps to create a key vault, see Quickstart: Set and retrieve a secret from Azure Key Vault using the Azure portal.

고객 관리형 키에 대한 키 자격 증명 모음을 만들 때 기본 사항 탭에서 일시 삭제제거 보호 보호 설정을 사용하도록 설정합니다.When creating a key vault for a customer-managed key, in the Basics tab, enable the following protection settings: Soft delete and Purge protection. 이러한 설정을 사용하면 실수로 키 또는 키 자격 증명 모음을 삭제하여 발생하는 데이터 손실을 방지할 수 있습니다.These settings help prevent data loss caused by accidental key or key vault deletions.

Azure Portal에서 키 자격 증명 모음 만들기

키 자격 증명 모음액세스 정책 추가Add key vault access policy

ID에서 액세스할 수 있도록 키 자격 증명 모음에 대한 정책을 구성합니다.Configure a policy for the key vault so that the identity can access it.

  1. 키 자격 증명 모음으로 이동합니다.Navigate to your key vault.
  2. 설정 > 액세스 정책 > + 액세스 정책 추가를 차례로 선택합니다.Select Settings > Access policies > +Add Access Policy.
  3. 키 권한을 선택하고, 가져오기, 키 래핑 해제키 래핑을 선택합니다.Select Key permissions, and select Get, Unwrap Key, and Wrap Key.
  4. 보안 주체 선택을 선택하고, 사용자가 할당한 관리 ID의 리소스 이름을 선택합니다.Select Select principal and select the resource name of your user-assigned managed identity.
  5. 추가, 저장을 차례로 선택합니다.Select Add, then select Save.

키 자격 증명 모음 액세스 정책 만들기

키 만들기Create key

  1. 키 자격 증명 모음으로 이동합니다.Navigate to your key vault.
  2. 설정 > 를 차례로 선택합니다.Select Settings > Keys.
  3. + 생성/가져오기를 선택하고, 키에 대한 고유한 이름을 입력합니다.Select +Generate/Import and enter a unique name for the key.
  4. 나머지 기본값을 그대로 적용하고 만들기를 선택합니다.Accept the remaining default values and select Create.
  5. 만들어지면 키를 선택하고 현재 키 버전을 적어 둡니다.After creation, select the key and take note of the current key version.

Azure 컨테이너 레지스트리 만들기Create Azure container registry

  1. 리소스 만들기 > 컨테이너 > 컨테이너 레지스트리를 선택합니다.Select Create a resource > Containers > Container Registry.
  2. 기본 사항 탭에서 리소스 그룹을 선택하거나 만들고, 레지스트리 이름을 입력합니다.In the Basics tab, select or create a resource group, and enter a registry name. SKU에서 프리미엄을 선택합니다.In SKU, select Premium.
  3. 암호화 탭의 고객 관리형 키에서 사용을 선택합니다.In the Encryption tab, in Customer-managed key, select Enabled.
  4. ID에서 사용자가 만든 관리 ID를 선택합니다.In Identity, select the managed identity you created.
  5. 암호화에서 Key Vault에서 선택을 선택합니다.In Encryption, select Select from Key Vault.
  6. Azure Key Vault에서 키 선택 창에서 이전 섹션에서 만든 키 자격 증명 모음, 키 및 버전을 선택합니다.In the Select key from Azure Key Vault window, select the key vault, key, and version you created in the preceding section.
  7. 암호화 탭에서 검토 + 만들기를 선택합니다.In the Encryption tab, select Review + create.
  8. 만들기를 선택하여 레지스트리 인스턴스를 배포합니다.Select Create to deploy the registry instance.

Azure Portal에서 컨테이너 레지스트리 만들기

포털에서 레지스트리의 암호화 상태를 확인하려면 레지스트리로 이동합니다.To see the encryption status of your registry in the portal, navigate to your registry. 설정 아래에서 암호화를 선택합니다.Under Settings, select Encryption.

고객 관리형 키 사용 - 템플릿Enable customer-managed key - template

Resource Manager 템플릿을 사용하여 레지스트리를 만들고 고객 관리형 키를 사용하는 암호화를 사용하도록 설정할 수도 있습니다.You can also use a Resource Manager template to create a registry and enable encryption with a customer-managed key.

다음 템플릿은 새 컨테이너 레지스트리 및 사용자가 할당한 관리 ID를 만듭니다.The following template creates a new container registry and a user-assigned managed identity. 다음 내용을 새 파일에 복사하고 CMKtemplate.json과 같은 파일 이름을 사용하여 저장합니다.Copy the following contents to a new file and save it using a filename such as CMKtemplate.json.

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "vault_name": {
      "defaultValue": "",
      "type": "String"
    },
    "registry_name": {
      "defaultValue": "",
      "type": "String"
    },
    "identity_name": {
      "defaultValue": "",
      "type": "String"
    },
    "kek_id": {
      "type": "String"
    }
  },
  "variables": {},
  "resources": [
    {
      "type": "Microsoft.ContainerRegistry/registries",
      "apiVersion": "2019-12-01-preview",
      "name": "[parameters('registry_name')]",
      "location": "[resourceGroup().location]",
      "sku": {
        "name": "Premium",
        "tier": "Premium"
      },
      "identity": {
        "type": "UserAssigned",
        "userAssignedIdentities": {
          "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities', parameters('identity_name'))]": {}
        }
      },
      "dependsOn": [
        "[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', parameters('identity_name'))]"
      ],
      "properties": {
        "adminUserEnabled": false,
        "encryption": {
          "status": "enabled",
          "keyVaultProperties": {
            "identity": "[reference(resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', parameters('identity_name')), '2018-11-30').clientId]",
            "KeyIdentifier": "[parameters('kek_id')]"
          }
        },
        "networkRuleSet": {
          "defaultAction": "Allow",
          "virtualNetworkRules": [],
          "ipRules": []
        },
        "policies": {
          "quarantinePolicy": {
            "status": "disabled"
          },
          "trustPolicy": {
            "type": "Notary",
            "status": "disabled"
          },
          "retentionPolicy": {
            "days": 7,
            "status": "disabled"
          }
        }
      }
    },
    {
      "type": "Microsoft.KeyVault/vaults/accessPolicies",
      "apiVersion": "2018-02-14",
      "name": "[concat(parameters('vault_name'), '/add')]",
      "dependsOn": [
        "[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', parameters('identity_name'))]"
      ],
      "properties": {
        "accessPolicies": [
          {
            "tenantId": "[subscription().tenantId]",
            "objectId": "[reference(resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', parameters('identity_name')), '2018-11-30').principalId]",
            "permissions": {
              "keys": [
                "get",
                "unwrapKey",
                "wrapKey"
              ]
            }
          }
        ]
      }
    },
    {
      "type": "Microsoft.ManagedIdentity/userAssignedIdentities",
      "apiVersion": "2018-11-30",
      "name": "[parameters('identity_name')]",
      "location": "[resourceGroup().location]"
    }
  ]
}

이전 섹션의 단계에 따라 다음 리소스를 만듭니다.Follow the steps in the previous sections to create the following resources:

  • 키 자격 증명 모음(이름으로 식별됨)Key vault, identified by name
  • 키 자격 증명 모음 키(키 ID로 식별됨)Key vault key, identified by key ID

다음 az group deployment create 명령을 실행하여 이전 템플릿 파일을 통해 레지스트리를 만듭니다.Run the following az group deployment create command to create the registry using the preceding template file. 표시되면 새 레지스트리 이름 및 관리 ID 이름과 사용자가 만든 키 자격 증명 모음 이름 및 키 ID를 제공합니다.Where indicated, provide a new registry name and managed identity name, as well as the key vault name and key ID you created.

az group deployment create \
  --resource-group <resource-group-name> \
  --template-file CMKtemplate.json \
  --parameters \
    registry_name=<registry-name> \
    identity_name=<managed-identity> \
    vault_name=<key-vault-name> \
    kek_id=<key-vault-key-id>

암호화 상태 표시Show encryption status

레지스트리 암호화 상태를 표시하려면 az acr encryption show 명령을 실행합니다.To show the status of registry encryption, run the az acr encryption show command:

az acr encryption show --name <registry-name> 

레지스트리 사용Use the registry

레지스트리에서 고객 관리형 키를 사용하도록 설정되면 고객 관리형 키로 암호화되지 않은 레지스트리에서 수행하는 것과 동일한 레지스트리 작업을 수행할 수 있습니다.After enabling a customer-managed key in a registry, you can perform the same registry operations that you perform in a registry that's not encrypted with a customer-managed key. 예를 들어 레지스트리로 인증하고 Docker 이미지를 푸시할 수 있습니다.For example, you can authenticate with the registry and push Docker images. 이미지 밀어넣기 및 끌어오기의 명령 예제를 참조하세요.See example commands in Push and pull an image.

키 회전Rotate key

레지스트리 암호화에 사용되는 고객 관리형 키를 규정 준수 정책으로 회전시킵니다.Rotate a customer-managed key used for registry encryption to your compliance policies. 새 키를 만들거나 키 버전을 업데이트한 다음, 키를 사용하여 데이터를 암호화하도록 레지스트리를 업데이트합니다.Create a new key, or update a key version, and then update the registry to encrypt data using the key. 이러한 단계는 Azure CLI 또는 포털을 사용하여 수행할 수 있습니다.You can perform these steps using the Azure CLI or in the portal.

키를 회전시키는 경우 일반적으로 레지스트리를 만들 때 사용되는 것과 동일한 ID를 지정합니다.When rotating a key, typically you specify the same identity used when creating the registry. 필요에 따라 키 액세스를 위해 사용자가 할당한 새 ID를 구성하거나 레지스트리의 시스템이 할당한 ID를 사용하도록 설정하고 지정합니다.Optionally, configure a new user-assigned identity for key access, or enable and specify the registry's system-assigned identity.

참고

필요한 키 자격 증명 모음 액세스 정책이 키 액세스를 위해 구성하는 ID에 설정되어 있는지 확인하세요.Ensure that the required key vault access policy is set for the identity you configure for key access.

Azure CLIAzure CLI

az keyvault key 명령을 사용하여 키 자격 증명 모음 키를 만들거나 관리합니다.Use az keyvault key commands to create or manage your key vault keys. 예를 들어 새 키 버전 또는 키를 만들려면 az acr encryption rotate-key 명령을 실행합니다.For example, to create a new key version or key, run the az keyvault key create command:

# Create new version of existing key
az keyvault key create \
  –-name <key-name> \
  --vault-name <key-vault-name> 

# Create new key
az keyvault key create \
  –-name <new-key-name> \
  --vault-name <key-vault-name> 

그런 다음, az acr encryption rotate-key 명령을 실행하여 새 키 ID와 구성할 ID를 전달합니다.Then run the az acr encryption rotate-key command, passing the new key ID and the identity you want to configure:

# Rotate key and use user-assigned identity
az acr encryption rotate-key \
  --name <registry-name> \
  --key-encryption-key <new-key-id> \
  --identity <principal-id-user-assigned-identity>

# Rotate key and use system-assigned identity
az acr encryption rotate-key \
  --name <registry-name> \
  --key-encryption-key <new-key-id> \
  --identity [system]

포털Portal

레지스트리의 암호화 설정을 사용하여 고객 관리형 키에 사용되는 키 버전, 키, 키 자격 증명 모음 또는 ID 설정을 업데이트합니다.Use the registry's Encryption settings to update the key version, key, key vault, or identity settings used for the customer-managed key.

예를 들어 새 키 버전을 생성하고 구성하려면 다음을 수행합니다.For example, to generate and configure a new key version:

  1. 포털에서 레지스트리로 이동합니다.In the portal, navigate to your registry.

  2. 설정 아래에서 암호화 > 키 변경을 차례로 선택합니다.Under Settings, select Encryption > Change key.

  3. 키 선택을 선택합니다.Select Select key

    Azure Portal에서 키 회전

  4. Azure Key Vault에서 키 선택 창에서 이전에 구성한 키 자격 증명 모음 및 키를 선택하고, 버전에서 새로 만들기를 선택합니다.In the Select key from Azure Key Vault window, select the key vault and key you configured previously, and in Version, select Create new.

  5. 키 만들기 창에서 생성, 만들기를 차례로 선택합니다.In the Create a key window, select Generate, and then Create.

  6. 키 선택을 완료하고, 저장을 선택합니다.Complete the key selection and select Save.

키 철회Revoke key

키 자격 증명 모음의 액세스 정책을 변경하거나 키를 삭제하여 고객 관리형 암호화 키를 철회합니다.Revoke the customer-managed encryption key by changing the access policy on the key vault or by deleting the key. 예를 들어 az keyvault delete-policy 명령을 사용하여 레지스트리에서 사용하는 관리 ID의 액세스 정책을 변경합니다.For example, use the az keyvault delete-policy command to change the access policy of the managed identity used by your registry:

az keyvault delete-policy \
  --resource-group <resource-group-name> \
  --name <key-vault-name> \
  --object-id $identityPrincipalID

레지스트리는 암호화 키에 액세스할 수 없으므로 키를 철회하면 모든 레지스트리 데이터에 대한 액세스가 효과적으로 차단됩니다.Revoking the key effectively blocks access to all registry data, since the registry can't access the encryption key. 키에 대한 액세스를 사용하도록 설정되거나 삭제된 키가 복원되는 경우 레지스트리에서 암호화된 레지스트리 데이터에 다시 액세스할 수 있도록 키를 선택합니다.If access to the key is enabled or the deleted key is restored, your registry will pick the key so you can again access the encrypted registry data.

고급 시나리오Advanced scenarios

시스템 할당 IDSystem-assigned identity

암호화 키에 대한 키 자격 증명 모음에 액세스하도록 레지스트리의 시스템이 할당한 관리 ID를 구성할 수 있습니다.You can configure a registry's system-assigned managed identity to access the key vault for encryption keys. Azure 리소스에 대한 다양한 관리 ID에 익숙하지 않은 경우 개요를 참조하세요.If you're unfamiliar with the different managed identities for Azure resources, see the overview.

포털에서 레지스트리의 시스템이 할당한 ID를 사용하도록 설정하려면 다음을 수행합니다.To enable the registry's system-assigned identity in the portal:

  1. 포털에서 레지스트리로 이동합니다.In the portal, navigate to your registry.
  2. 설정 > ID를 차례로 선택합니다.Select Settings > Identity.
  3. 시스템 할당 아래에서 상태켜기로 설정합니다.Under System assigned, set Status to On. 저장을 선택합니다.Select Save.
  4. ID의 개체 ID를 복사합니다.Copy the Object ID of the identity.

키 자격 증명 모음에 대한 ID 액세스 권한을 부여하려면 다음을 수행합니다.To grant the identity access to your key vault:

  1. 키 자격 증명 모음으로 이동합니다.Navigate to your key vault.
  2. 설정 > 액세스 정책 > + 액세스 정책 추가를 차례로 선택합니다.Select Settings > Access policies > +Add Access Policy.
  3. 키 권한을 선택하고, 가져오기, 키 래핑 해제키 래핑을 선택합니다.Select Key permissions, and select Get, Unwrap Key, and Wrap Key.
  4. 보안 주체 선택을 선택하고, 시스템이 할당한 관리 ID의 개체 ID 또는 레지스트리 이름을 검색합니다.Select Select principal and search for the object ID of your system-assigned managed identity, or the name of your registry.
  5. 추가, 저장을 차례로 선택합니다.Select Add, then select Save.

ID를 사용하도록 레지스트리의 암호화 설정을 업데이트하려면 다음을 수행합니다.To update the registry's encryption settings to use the identity:

  1. 포털에서 레지스트리로 이동합니다.In the portal, navigate to your registry.
  2. 설정 아래에서 암호화 > 키 변경을 차례로 선택합니다.Under Settings, select Encryption > Change key.
  3. ID에서 시스템 할당을 선택하고, 저장을 선택합니다.In Identity, select System assigned, and select Save.

Key Vault 방화벽Key Vault firewall

Azure 키 자격 증명 모음이 Key Vault 방화벽을 사용하는 가상 네트워크에 배포되는 경우 다음 단계를 수행합니다.If your Azure key vault is deployed in a virtual network with a Key Vault firewall, perform the following steps:

  1. 레지스트리의 시스템이 할당한 ID를 사용하도록 레지스트리 암호화를 구성합니다.Configure registry encryption to use the registry's system-assigned identity. 이전 섹션을 참조하세요.See the preceding section.
  2. 신뢰할 수 있는 서비스에서 액세스할 수 있도록 키 자격 증명 모음을 구성합니다.Configure the key vault to allow access by any trusted service.

자세한 단계는 Azure Key Vault 방화벽 및 가상 네트워크 구성을 참조하세요.For detailed steps, see Configure Azure Key Vault firewalls and virtual networks.

다음 단계Next steps