Azure AI 검색에서 데이터 암호화를 위한 고객 관리형 키 구성

Azure AI 검색은 서비스 관리형 키를 사용하여 미사용 데이터를 자동으로 암호화합니다. 보호가 더 필요하면 Azure Key Vault에서 만들고 관리하는 키를 사용하여 다른 암호화 계층으로 기본 암호화를 보완할 수 있습니다.

이 문서에서는 CMK(고객 관리형 키) 또는 BYOK(사용자 고유 키) 암호화를 설정하는 단계를 안내합니다. 이때 유의해야 할 몇 가지 사항이 있습니다.

  • CMK 암호화는 개별 개체에 적용됩니다. 검색 서비스 전반에 걸쳐 CMK가 필요한 경우 적용 정책을 설정합니다.

  • CMK 암호화는 Azure Key Vault에 따라 달라집니다. 사용자 고유의 암호화 키를 만들고 Azure Key Vault에 저장할 수도 있고 Azure Key Vault의 API를 사용하여 암호화 키를 생성할 수도 있습니다. Azure Key Vault는 Azure AI 검색과 동일한 구독의 테넌트에 있어야 합니다. Azure AI 검색은 시스템 또는 사용자 관리 ID를 통해 연결하여 사용자의 관리 키를 검색합니다. 이 동작을 수행하려면 두 서비스가 동일한 테넌트를 공유해야 합니다.

  • CMK 암호화는 개체가 만들어질 때 작동합니다. 이미 존재하는 개체는 암호화할 수 없습니다. CMK 암호화는 개체가 디스크에 저장될 때마다(장기 저장을 위한 미사용 데이터 또는 단기 저장을 위한 임시 데이터) 발생합니다. CMK를 사용하면 디스크가 암호화되지 않은 데이터를 볼 수 없습니다.

참고 항목

인덱스가 CMK 암호화된 경우 검색 서비스가 키에 액세스할 수 있는 경우에만 액세스할 수 있습니다. 액세스 권한이 철회되면 인덱스를 사용할 수 없으며 인덱스가 삭제되거나 키에 대한 액세스가 복원될 때까지 서비스의 크기를 조정할 수 없습니다.

CMK 암호화 개체

암호화할 수 있는 개체에는 인덱스, 동의어 목록, 인덱서, 데이터 원본 및 기술 세트가 포함됩니다. 암호화는 암호를 해독하는 데 계산 비용이 많이 들기 때문에 중요한 콘텐츠만 암호화됩니다.

암호화는 다음 콘텐츠에 대해 수행됩니다.

  • 설명을 포함하여 인덱스 및 동의어 목록 내의 모든 콘텐츠입니다.

  • 인덱서, 데이터 원본 및 기술 세트의 경우 연결 문자열, 설명, 키 및 사용자 입력을 저장하는 필드만 암호화됩니다. 예를 들어, 기술 세트에는 Azure AI 서비스 키가 있고 일부 기술은 사용자 지정 엔터티와 같은 사용자 입력을 허용합니다. 두 경우 모두 기술에 대한 키와 사용자 입력이 암호화됩니다.

완전 이중 암호화

CMK 암호화를 도입하면 콘텐츠를 두 번 암호화하게 됩니다. 이전 섹션에서 언급한 개체 및 필드의 경우 콘텐츠는 먼저 CMK로 암호화되고 두 번째로 Microsoft 관리형 키로 암호화됩니다. 콘텐츠는 장기 저장용 데이터 디스크와 단기 저장용 임시 디스크에서 이중으로 암호화됩니다.

CMK 암호화를 사용하도록 설정하면 인덱스 크기가 늘어나고 쿼리 성능이 저하됩니다. 현재까지 관찰한 결과에 따르면 실제 성능은 인덱스 정의 및 쿼리 유형에 따라 다르지만 쿼리 시간이 30~60% 증가하는 것으로 예상할 수 있습니다. 성능이 저하되므로 실제로 필요한 인덱스에서만 이 기능을 사용하도록 설정하는 것이 좋습니다.

이제 이중 암호화는 모든 지역에서 사용할 수 있지만 지원은 두 단계로 롤아웃되었습니다.

  • 첫 번째 출시는 2020년 8월 1일이었으며 아래에 나열된 5개 지역이 포함되었습니다. 다음 지역에서 만들어진 Search Service는 데이터 디스크용 CMK를 지원했지만 임시 디스크는 지원하지 않았습니다.

    • 미국 서부 2
    • 미국 동부
    • 미국 중남부
    • US Gov 버지니아
    • US Gov 애리조나
  • 2021년 5월 13일의 두 번째 출시에서는 임시 디스크에 대한 암호화와 확장된 CMK 암호화를 지원되는 모든 지역에 추가했습니다.

    첫 번째 롤아웃 중에 만들어진 서비스의 CMK를 사용 중이고 임시 디스크에 대한 CMK 암호화도 원하는 경우 선택한 지역에서 새 검색 서비스를 만들고 콘텐츠를 다시 배포해야 합니다.

필수 조건

이 시나리오에서 사용되는 도구와 서비스는 다음과 같습니다.

암호화된 개체를 만들 수 있는 검색 클라이언트가 있어야 합니다. 이 코드에서 키 자격 증명 모음 키 및 애플리케이션 등록 정보를 참조합니다. 이 코드는 작업 중인 앱 또는 C# 코드 샘플 DotNetHowToEncryptionUsingCMK과 같은 프로토타입 코드일 수 있습니다.

REST 클라이언트 또는 Azure PowerShell을 사용하여 암호화 키 매개 변수를 포함하는 인덱스 및 동의어 맵을 만들 수 있습니다. Azure CLI를 사용할 수도 있습니다. 인덱스 또는 동의어 맵에 키를 추가하기 위한 포털 지원은 지원되지 않습니다.

Key Vault 팁

Azure Key Vault 경우 PowerShell을 사용하여 Azure Key Vault 비밀을 설정하고 검색하는 기본 작업에 대해 알아보려면 이 빠른 시작을 살펴보세요. Key Vault를 사용하기 위한 몇 가지 팁은 다음과 같습니다.

  • 필요한 만큼 Key Vault를 사용합니다. 관리형 키는 여러 Key Vault에 있을 수 있습니다. 검색 서비스에는 여러 개의 암호화된 개체가 있을 수 있으며, 각 개체는 서로 다른 고객 관리형 암호화 키로 암호화되어 여러 Key Vault에 저장됩니다.

  • 키 사용을 모니터링할 수 있도록 Key Vault에서 로깅을 사용하도록 설정하는 것이 좋습니다.

  • Key Vault 키 및 Active Directory 애플리케이션 비밀과 등록을 정기적으로 회전하는 동안 엄격한 절차를 수행해야 합니다. 이전 암호 및 키를 삭제하기 전에 새 비밀 및 키를 사용하도록 모든 암호화된 콘텐츠를 항상 업데이트합니다. 이 단계를 수행하지 않은 경우 콘텐츠의 암호를 해독할 수 없습니다.

1 - 제거 방지 사용

첫 번째 단계로 Key Vault에서 일시 삭제제거 방지가 사용하도록 설정되어 있는지 확인합니다. 고객 관리형 키를 사용하는 암호화의 특성으로 인해 Azure 키 자격 증명 모음 키가 삭제되면 아무도 데이터를 검색할 수 없습니다.

Key Vault 실수로 키 삭제로 인한 데이터 손실을 방지하려면 키 자격 증명 모음에 대해 일시 삭제 및 제거 보호를 사용하도록 설정해야 합니다. 일시 삭제는 기본적으로 사용하도록 설정되어 있으므로 의도적으로 사용하지 않도록 설정한 경우에만 문제가 발생합니다. 제거 보호는 기본적으로 사용하도록 설정되지 않지만 Azure AI 검색의 고객 관리형 키 암호화에는 필요합니다.

Portal, PowerShell 또는 Azure CLI 명령을 사용하여 두 속성을 모두 설정할 수 있습니다.

  1. Azure Portal에 로그인하고 키 자격 증명 모음 개요 페이지를 엽니다.

  2. 개요 페이지의 Essentials에서 일시 삭제보호 제거를 사용하도록 설정합니다.

2 - Key Vault에 키 만들기

사용할 Azure Key Vault 키가 이미 있는 경우 키 생성을 건너뛰고 키 식별자를 수집합니다. 암호화된 개체를 만들 때 이 정보가 필요합니다.

  1. Azure Portal에 로그인하고 키 자격 증명 모음 개요 페이지를 엽니다.

  2. 왼쪽에서 를 선택하고 +생성/가져오기를 선택합니다.

  3. 키 만들기 창에 있는 옵션목록에서 키를 만드는 데 사용할 방법을 선택합니다. d새 키를 생성하거나 기존 키를 업로드하거나 복원 백업을 사용하여 키 백업을 선택할 수 있습니다.

  4. 키의 이름을 입력하고 필요에 따라 다른 키 속성을 선택합니다.

  5. 만들기를 선택하여 배포를 시작합니다.

  6. 키를 선택하고 현재 버전을 선택한 다음 키 식별자를 적어 둡니다. 키 값 Uri, 키 이름키 버전으로 구성됩니다. Azure AI 검색에서 암호화된 인덱스를 정의하려면 식별자가 필요합니다.

    새 키 자격 증명 모음 키 만들기

3 - 보안 주체 만들기

런타임에 암호화 키에 액세스하기 위한 몇 가지 옵션이 있습니다. 가장 간단한 방법은 검색 서비스의 관리 ID 및 권한을 사용하여 키를 검색하는 것입니다. 시스템 관리 ID 또는 사용자 관리 ID를 지정할 수 있습니다. 이 방법을 사용하면 애플리케이션 등록 및 애플리케이션 비밀에 대한 단계를 생략하고 암호화 키 정의를 간소화할 수 있습니다.

또는 Microsoft Entra 애플리케이션을 만들고 등록할 수 있습니다. Search Service는 요청 시 애플리케이션 ID를 제공합니다.

관리되는 ID를 사용하면 검색 서비스에서 코드에 자격 증명(ApplicationID 또는 ApplicationSecret)을 저장하지 않고 Azure Key Vault에 인증할 수 있습니다. 이러한 유형의 관리되는 ID의 수명 주기는 관리 ID를 하나만 포함할 수 있는 검색 서비스의 수명 주기에 연결됩니다. 관리 ID의 작동 방식에 대한 자세한 내용은 Azure 리소스의 관리 ID 개요를 참조하세요.

  1. 검색 서비스를 신뢰할 수 있는 서비스로 설정합니다.

    시스템 할당 관리 ID 켜기

이 방식을 채택하지 못하게 하는 조건은 다음과 같습니다.

  • 검색 서비스가 Azure Key Vault와 다른 Microsoft Entra ID 테넌트에 있는 경우와 같이 검색 서비스에 대한 액세스 권한을 키 자격 증명 모음에 직접 부여할 수는 없습니다.

  • 단일 검색 서비스는 각각 다른 키 자격 증명 모음에서 다른 키를 사용하는 여러 암호화된 인덱스 또는 동의어 맵을 호스트해야 합니다. 여기서 각 키 자격 증명 모음이 인증을 위해 다른 ID를 사용해야 합니다. Search Service에는 하나의 관리 ID만 있을 수 있으므로 복수 ID에 대한 요구 사항으로 인해 시나리오에 대한 간소화된 방식이 배제됩니다.

4 - 권한 부여

이 단계에서는 Key Vault에서 액세스 정책을 만듭니다. 이 정책은 사용자가 등록한 애플리케이션에 고객 관리형 키를 사용할 수 있도록 Microsoft Entra ID 권한을 부여합니다.

지정된 시간에 액세스 권한이 해지될 수 있습니다. 해지되면 해당 키 자격 증명 모음을 사용하는 모든 검색 서비스 인덱스 또는 동의어 맵을 사용할 수 없게 됩니다. 나중에 키 자격 증명 모음 액세스 권한을 복원하면 인덱스 및 동의어 맵 액세스가 복원됩니다. 자세한 내용은 키 자격 증명 모음에 대한 보안 액세스를 참조하세요.

  1. 계속 Azure Portal에서 키 자격 증명 모음 개요 페이지를 엽니다.

  2. 왼쪽에서 액세스 정책을 선택하고 + 만들기 를 선택하여 액세스 정책 만들기 마법사를 시작합니다.

    액세스 정책을 만듭니다.

  3. 사용 권한 페이지에서 키 권한, 비밀 권한인증서 권한에 대해 가져오기를 선택합니다. 키 래핑 해제키 래핑을 선택하여 키에 대한 ** 암호화 작업을 수행합니다.

    사용 권한 페이지에서 사용 권한을 선택합니다.

  4. 다음을 선택합니다.

  5. 원칙 페이지에서 검색 서비스가 암호화 키에 액세스하는 데 사용하는 보안 주체를 찾아 선택합니다. 이는 검색 서비스의 시스템 관리 ID 또는 사용자 관리 ID이거나 등록된 애플리케이션입니다.

  6. 다음만들기를 선택합니다.

Important

Azure AI 검색의 암호화된 콘텐츠는 특정 버전의 특정 Azure Key Vault 키를 사용하도록 구성됩니다. 키 또는 버전을 변경하는 경우 이전 키 또는 버전을 삭제하기 전에 새 키 또는 버전을 사용하도록 인덱스 또는 동의어 맵을 업데이트해야 합니다. 이렇게 하지 않으면 인덱스 또는 동의어 맵을 사용할 수 없는 상태로 렌더링하게 됩니다. 키를 분실하면 콘텐츠의 암호를 해독할 수 없습니다.

5-콘텐츠 암호화

개체를 만들 때 암호화 키가 추가됩니다. 인덱스, 동의어 맵, 인덱서, 데이터 원본 또는 기술 집합에 고객 관리형 키를 추가하려면 REST API 검색 또는 Azure SDK를 사용하여 암호화를 사용하도록 설정된 개체를 만듭니다. 포털은 개체 만들 때 암호화 속성을 허용하지 않습니다.

  1. API 만들기를 호출하여 encryptionKey 속성을 지정합니다.

  2. encryptionKey 구문을 개체 정의에 삽입합니다. 이 속성은 이름 및 설명과 동일한 수준의 첫 번째 수준 속성입니다. 다음 REST 예는 속성 배치를 보여 줍니다. 동일한 자격 증명 모음, 키 및 버전을 사용하는 경우 각 개체 정의에 동일한 “encryptionKey” 구문을 붙여넣을 수 있습니다.

    첫 번째 예제에서는 관리 ID를 사용하여 연결하는 검색 서비스에 대한 "encryptionKey"를 보여 줍니다.

    {
      "encryptionKey": {
        "keyVaultUri": "https://demokeyvault.vault.azure.net",
        "keyVaultKeyName": "myEncryptionKey",
        "keyVaultKeyVersion": "eaab6a663d59439ebb95ce2fe7d5f660"
      }
    }
    

    두 번째 예에는 Microsoft Entra ID에 애플리케이션을 등록한 경우 필요한 "accessCredentials"가 포함되어 있습니다.

    {
      "encryptionKey": {
        "keyVaultUri": "https://demokeyvault.vault.azure.net",
        "keyVaultKeyName": "myEncryptionKey",
        "keyVaultKeyVersion": "eaab6a663d59439ebb95ce2fe7d5f660",
        "accessCredentials": {
          "applicationId": "00000000-0000-0000-0000-000000000000",
          "applicationSecret": "myApplicationSecret"
        }
      }
    }
    

검색 서비스에서 암호화된 개체를 생성하면 해당 유형의 다른 개체와 마찬가지로 사용할 수 있습니다. 암호화는 사용자와 개발자에게 투명하게 처리됩니다.

참고 항목

이러한 주요 자격 증명 모음 세부 정보는 비밀로 간주되지 않으며 Azure Portal의 관련 Azure Key Vault 페이지로 이동하여 쉽게 검색할 수 있습니다.

6 - 정책 설정

Azure Policy는 조직 표준을 적용하고 대규모 규정 준수를 평가하는 데 도움이 됩니다. Azure AI 검색에는 선택적 서비스 전체 CMK 적용을 위한 기본 제공 정책이 있습니다.

이 섹션에서는 검색 서비스에 대한 CMK 표준을 정의하는 정책을 설정합니다. 그런 다음 이 정책을 적용하도록 Search Service를 설정합니다.

  1. 웹 브라우저에서 기본 제공 정책으로 이동합니다. 할당 선택

    기본 제공 CMK 정책 할당 스크린샷.

  2. 정책 범위를 설정합니다. 매개 변수 섹션에서 매개 변수만 표시...를 선택 취소하고 효과거부로 설정합니다.

    요청을 평가하는 동안 거부 정책 정의와 일치하는 요청은 비준수로 표시됩니다. 서비스의 표준이 CMK 암호화라고 가정할 때 "거부"는 CMK 암호화를 지정하지 않는 요청이 규정을 준수하지 않음을 의미합니다.

    기본 제공 CMK 정책 효과를 거부로 변경하는 스크린샷.

  3. 정책 만들기를 마칩니다.

  4. 서비스 수준에서 CMK 정책 적용을 사용하도록 설정하려면 서비스 - 업데이트 API를 호출합니다.

PATCH https://management.azure.com/subscriptions/[subscriptionId]/resourceGroups/[resourceGroupName]/providers/Microsoft.Search/searchServices/[serviceName]?api-version=2022-11-01

{
    "properties": {
        "encryptionWithCmk": {
            "enforcement": "Enabled",
            "encryptionComplianceStatus": "Compliant"
        }
    }
}

REST 예제

이 섹션에서는 개체 정의에서 “encryptionKey”를 찾을 위치를 볼 수 있도록 여러 개체에 대한 JSON을 보여줍니다.

인덱스 암호화

REST API를 통해 새 인덱스를 만드는 방법에 대한 자세한 내용은 인덱스 만들기(REST API)에서 찾을 수 있습니다. 유일한 차이점은 인덱스 정의의 일부로 암호화 키 세부 정보를 지정하는 것입니다.

{
 "name": "hotels",
 "fields": [
  {"name": "HotelId", "type": "Edm.String", "key": true, "filterable": true},
  {"name": "HotelName", "type": "Edm.String", "searchable": true, "filterable": false, "sortable": true, "facetable": false},
  {"name": "Description", "type": "Edm.String", "searchable": true, "filterable": false, "sortable": false, "facetable": false, "analyzer": "en.lucene"},
  {"name": "Description_fr", "type": "Edm.String", "searchable": true, "filterable": false, "sortable": false, "facetable": false, "analyzer": "fr.lucene"},
  {"name": "Category", "type": "Edm.String", "searchable": true, "filterable": true, "sortable": true, "facetable": true},
  {"name": "Tags", "type": "Collection(Edm.String)", "searchable": true, "filterable": true, "sortable": false, "facetable": true},
  {"name": "ParkingIncluded", "type": "Edm.Boolean", "filterable": true, "sortable": true, "facetable": true},
  {"name": "LastRenovationDate", "type": "Edm.DateTimeOffset", "filterable": true, "sortable": true, "facetable": true},
  {"name": "Rating", "type": "Edm.Double", "filterable": true, "sortable": true, "facetable": true},
  {"name": "Location", "type": "Edm.GeographyPoint", "filterable": true, "sortable": true}
 ],
  "encryptionKey": {
    "keyVaultUri": "https://demokeyvault.vault.azure.net",
    "keyVaultKeyName": "myEncryptionKey",
    "keyVaultKeyVersion": "eaab6a663d59439ebb95ce2fe7d5f660",
    "accessCredentials": {
      "applicationId": "00000000-0000-0000-0000-000000000000",
      "applicationSecret": "myApplicationSecret"
    }
  }
}

이제 인덱스 생성 요청을 보낸 다음 인덱스를 정상적으로 사용하기 시작할 수 있습니다.

동의어 맵 암호화

동의어 맵 Azure AI 검색 REST API 만들기를 사용하여 암호화된 동의어 맵을 만듭니다. 사용할 암호화 키를 지정하려면 “encryptionKey” 속성을 사용합니다.

{
  "name" : "synonymmap1",
  "format" : "solr",
  "synonyms" : "United States, United States of America, USA\n
  Washington, Wash. => WA",
  "encryptionKey": {
    "keyVaultUri": "https://demokeyvault.vault.azure.net",
    "keyVaultKeyName": "myEncryptionKey",
    "keyVaultKeyVersion": "eaab6a663d59439ebb95ce2fe7d5f660",
    "accessCredentials": {
      "applicationId": "00000000-0000-0000-0000-000000000000",
      "applicationSecret": "myApplicationSecret"
    }
  }
}

이제 동의어 맵 만들기 요청을 보낸 다음 정상적으로 사용을 시작할 수 있습니다.

데이터 원본 암호화

데이터 원본 만들기(REST API)를 사용하여 암호화된 데이터 원본을 만듭니다. 사용할 암호화 키를 지정하려면 “encryptionKey” 속성을 사용합니다.

{
  "name" : "datasource1",
  "type" : "azureblob",
  "credentials" :
  { "connectionString" : "DefaultEndpointsProtocol=https;AccountName=datasource;AccountKey=accountkey;EndpointSuffix=core.windows.net"
  },
  "container" : { "name" : "containername" },
  "encryptionKey": {
    "keyVaultUri": "https://demokeyvault.vault.azure.net",
    "keyVaultKeyName": "myEncryptionKey",
    "keyVaultKeyVersion": "eaab6a663d59439ebb95ce2fe7d5f660",
    "accessCredentials": {
      "applicationId": "00000000-0000-0000-0000-000000000000",
      "applicationSecret": "myApplicationSecret"
    }
  }
}

이제 데이터 원본 만들기 요청을 보낸 다음 정상적으로 사용을 시작할 수 있습니다.

기술 세트 암호화

기술 세트 REST API 만들기를 사용하여 암호화된 기술 세트를 만듭니다. 사용할 암호화 키를 지정하려면 “encryptionKey” 속성을 사용합니다.

{
    "name": "skillset1",
    "skills":  [ omitted for brevity ],
    "cognitiveServices": { omitted for brevity },
      "knowledgeStore":  { omitted for brevity  },
    "encryptionKey": (optional) { 
        "keyVaultKeyName": "myEncryptionKey",
        "keyVaultKeyVersion": "eaab6a663d59439ebb95ce2fe7d5f660",
        "keyVaultUri": "https://demokeyvault.vault.azure.net",
        "accessCredentials": {
            "applicationId": "00000000-0000-0000-0000-000000000000",
            "applicationSecret": "myApplicationSecret"}
    }
}

이제 기술 세트 만들기 요청을 보낸 다음 정상적으로 사용을 시작할 수 있습니다.

인덱서 암호화

인덱서 REST API 만들기를 사용하여 암호화된 인덱서를 만듭니다. 사용할 암호화 키를 지정하려면 “encryptionKey” 속성을 사용합니다.

{
  "name": "indexer1",
  "dataSourceName": "datasource1",
  "skillsetName": "skillset1",
  "parameters": {
      "configuration": {
          "imageAction": "generateNormalizedImages"
      }
  },
  "encryptionKey": {
    "keyVaultUri": "https://demokeyvault.vault.azure.net",
    "keyVaultKeyName": "myEncryptionKey",
    "keyVaultKeyVersion": "eaab6a663d59439ebb95ce2fe7d5f660",
    "accessCredentials": {
      "applicationId": "00000000-0000-0000-0000-000000000000",
      "applicationSecret": "myApplicationSecret"
    }
  }
}

이제 인덱서 만들기 요청을 보낸 다음 정상적으로 사용을 시작할 수 있습니다.

Important

“encryptionKey”는 기존 검색 인덱스 또는 동의어 맵에 추가할 수 없지만 세 가지 주요 자격 증명 모음 세부 정보(예: 키 버전 업데이트)에 대해 다른 값을 제공하여 업데이트할 수 있습니다. 새 Key Vault 키 또는 새 키 버전으로 변경하는 경우 이전 key\version을 삭제하기 전에 먼저 새 key\version을 사용하도록 해당 키를 사용하는 모든 검색 인덱스나 동의어 맵을 업데이트해야 합니다. 이렇게 하지 않으면 인덱스 또는 동의어 맵을 사용할 수 없게 되며 키 액세스가 손실된 후에는 콘텐츠의 암호를 해독할 수 없습니다. 키 자격 증명 모음 액세스 권한을 나중에 복원해도 콘텐츠 액세스가 복원됩니다.

암호화된 열로 작업

고객 관리형 키 암호화를 사용하여 추가 암호화/암호 해독 작업으로 인해 인덱싱 및 쿼리 모두에 대한 대기 시간을 확인할 수 있습니다. Azure AI 검색은 암호화 작업을 기록하지 않지만 키 자격 증명 모음 로깅을 통해 키 액세스를 모니터링할 수 있습니다. 키 자격 증명 모음 구성의 일부로 로깅을 사용하는 것이 좋습니다.

키 회전은 시간이 지남에 따라 발생합니다. 키를 회전할 때마다 다음 시퀀스를 따르는 것이 중요합니다.

  1. 인덱스 또는 동의어 맵에 사용되는 키를 확인합니다.
  2. 키 자격 증명 모음에 새 키를 만들지만 원래 키를 사용할 수 있는 상태로 둡니다.
  3. 인덱스 또는 동의어 맵의 encryptionKey 속성을 업데이트하여 새 값을 사용합니다. 원래 이 속성을 사용하여 만든 개체만 다른 값을 사용하도록 업데이트할 수 있습니다.
  4. 키 자격 증명 모음에서 이전 키를 사용하지 않도록 설정하거나 삭제합니다. 키 액세스를 모니터링하여 새 키가 사용되고 있는지 확인합니다.

성능상의 이유로 검색 서비스는 최대 몇 시간 동안 키를 캐시합니다. 새 키를 제공하지 않고 키를 사용하지 않도록 설정하거나 삭제한 경우에는 캐시가 만료될 때까지 쿼리가 일시적으로 계속 작동합니다. 그러나 검색 서비스에서 콘텐츠 암호를 더 이상 해독할 수 없는 경우 다음 메시지가 표시됩니다. "액세스가 금지되었습니다. 사용된 쿼리 키가 해지되었을 수 있습니다. 다시 시도하십시오."

다음 단계

Azure 보안 아키텍처에 익숙하지 않은 경우 Azure 보안 설명서, 특히 이 문서를 검토합니다.