Apache Cassandra용 Azure Managed Instance의 고객 관리형 키

Apache Cassandra용 Azure Managed Instance에서 사용자 고유의 키를 사용하여 디스크의 데이터를 암호화할 수 있습니다. 이 문서에서는 Azure Key Vault를 사용하여 고객 관리형 키를 구현하는 방법을 설명합니다.

필수 조건

  • Azure Key Vault를 사용하여 비밀을 설정합니다. 자세한 내용은 Azure Key Vault 비밀 정보를 참조 하세요.

  • 리소스 그룹에 가상 네트워크를 배포합니다.

  • Azure Cosmos DB 서비스 주체를 멤버로 사용하여 네트워크 기여자 역할을 적용합니다. 다음 명령을 사용합니다.

        az role assignment create \
        --assignee a232010e-820c-4083-83bb-3ace5fc29d0b \
        --role 4d97b98b-1d4f-4787-a291-c67834d212e7 \
        --scope /subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/virtualNetworks/<vnetName>
    

    가상 네트워크에 적절한 역할을 적용하면 Apache Cassandra용 Azure Managed Instance 클러스터를 배포할 때 오류를 방지할 수 있습니다. 자세한 내용은 Azure CLI를 사용하여 Apache Cassandra용 Azure Managed Instance 클러스터 만들기를 참조하세요.

이 문서에는 Azure CLI 버전 2.30.0 이상이 필요합니다. Azure Cloud Shell을 사용하는 경우 최신 버전이 이미 설치되어 있습니다.

시스템 할당 ID를 사용하여 클러스터 만들기

  1. 다음 명령을 사용하여 클러스터를 만듭니다. , <resourceGroupName><vnetName><subnetName> 적절한 값으로 바꿉<subscriptionID>습니다.

    subnet="/subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/virtualNetworks/<vnetName>/subnets/<subnetName>"
    cluster="thvankra-cmk-test-wcus"
    group="thvankra-nova-cmk-test"
    region="westcentralus"
    password="PlaceholderPassword"
    
    az managed-cassandra cluster create \
        --identity-type SystemAssigned \
        --resource-group $group \
        --location $region \
        --cluster-name $cluster \
        --delegated-management-subnet-id $subnet \
        --initial-cassandra-admin-password $password
    
  2. 만든 클러스터의 ID 정보를 가져옵니다.

    az managed-cassandra cluster show -c $cluster -g $group
    

    출력에는 다음 예제와 같은 ID 섹션이 포함됩니다. principalId 나중에 사용할 수 있는 값을 복사합니다.

      "identity": {
        "principalId": "1aa51c7f-196a-4013-a656-1ccabfdc54e0",
        "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
        "type": "SystemAssigned"
      }
    
  3. Azure Portal에서 키 자격 증명 모음으로 이동하여 액세스 정책을 선택합니다. 그런 다음, 액세스 정책 추가를 선택하여 키에 대한 액세스 정책을 만듭니다.

    Screenshot that shows the pane for access policies in the Azure portal.

  4. 키 권한의 경우 가져오기, 래핑래핑 해제를 선택합니다. 보안 주체 선택 상자를 선택하여 보안 주체 창을 엽니다. 이전에 검색한 클러스터의 principalId 값을 입력한 다음 선택 단추를 선택합니다. 포털에서 클러스터 이름으로 클러스터의 보안 주체 ID를 조회할 수도 있습니다.

    Screenshot that shows an example of adding a principal for an access policy.

    Warning

    키 자격 증명 모음에 제거 보호가 켜져 있는지 확인합니다. 이것이 없으면 데이터 센터 배포에 실패합니다.

  5. 추가를 선택하여 액세스 정책을 추가한 다음 저장을 선택합니다.

    Screenshot that shows the button for saving an access policy.

  6. 키 식별자를 얻으려면 키를 선택한 다음 키를 선택합니다.

    Screenshot that shows the pane for selecting a key.

  7. 현재 버전을 선택합니다.

    Screenshot that shows the box for selecting the current version of a key.

  8. 나중에 사용할 수 있는 키 식별자를 저장합니다.

    Screenshot that shows copying a key identifier to the clipboard.

  9. 관리 디스크() 및 백업 스토리지backup-storage-customer-key-uri() 암호화에 대해 동일한 키(managed-disk-customer-key-uri이전 단계에서 복사한 URI)로 바꿔 <key identifier> 데이터 센터를 만듭니다. 이전에 사용한 것과 동일한 값을 subnet 사용합니다.

    managedDiskKeyUri = "<key identifier>"
    backupStorageKeyUri = "<key identifier>"
    group="thvankra-nova-cmk-test"
    region="westcentralus"
    cluster="thvankra-cmk-test-2"
    dc="dc1"
    nodecount=3
    subnet="/subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/virtualNetworks/<vnetName>/subnets/<subnetName>"
    
    az managed-cassandra datacenter create \
        --resource-group $group \
        --cluster-name $cluster \
        --data-center-name $dc \
        --managed-disk-customer-key-uri $managedDiskKeyUri \
        --backup-storage-customer-key-uri $backupStorageKeyUri \
        --node-count $nodecount \
        --delegated-subnet-id $subnet \
        --data-center-location $region \
        --sku Standard_DS14_v2
    

ID 정보 없이 기존 클러스터에 ID를 할당할 수도 있습니다.

az managed-cassandra cluster update --identity-type SystemAssigned -g $group -c $cluster

키 회전

키를 업데이트하려면 다음 명령을 사용합니다.

managedDiskKeyUri = "<key identifier>"
backupStorageKeyUri = "<key identifier>"
    
az managed-cassandra datacenter update \
    --resource-group $group \
    --cluster-name $cluster \ 
    --data-center-name $dc \
    --managed-disk-customer-key-uri $managedDiskKeyUri \
    --backup-storage-customer-key-uri $backupStorageKeyUri