Upprätta utgående anslutningar via en delad privat länk

Den här artikeln beskriver hur du konfigurerar privata, utgående anrop från Azure AI Search till en Azure PaaS-resurs som körs i ett virtuellt nätverk.

Om du konfigurerar en privat anslutning kan en söktjänst ansluta till en VIRTUELL nätverks-IP-adress i stället för en port som är öppen för Internet. Objektet som skapas för anslutningen kallas för en delad privat länk. På anslutningen använder söktjänsten den delade privata länken internt för att nå en Azure PaaS-resurs inom nätverksgränsen.

Delad privat länk är en premiumfunktion som debiteras av användning. När du konfigurerar en delad privat länk läggs avgifter för den privata slutpunkten till på din Azure-faktura. När du använder den delade privata länken faktureras även dataöverföringshastigheter för inkommande och utgående åtkomst. Mer information finns i Priser för Azure Private Link.

Kommentar

Om du konfigurerar en privat indexerareanslutning till en SQL Managed Instance kan du läsa den här artikeln i stället.

Azure AI Search gör utgående anrop till andra Azure PaaS-resurser i följande scenarier:

  • Indexerare eller sökmotor ansluter till Azure OpenAI för text-till-vektorinbäddningar
  • Indexeraren ansluter till datakällor som stöds
  • Indexerareanslutningar (kompetensuppsättning) till Azure Storage för cachelagring av berikningar, felsökning av sessionssat eller skrivning till ett kunskapslager
  • Krypteringsnyckelbegäranden till Azure Key Vault
  • Anpassade kunskapsförfrågningar till Azure Functions eller liknande resurs

Delade privata länkar fungerar endast för Azure-till-Azure-anslutningar. Om du ansluter till OpenAI eller en annan extern modell måste anslutningen vara via det offentliga Internet.

Delade privata länkar gäller åtgärder och data som nås via en privat slutpunkt för Azure-resurser eller -klienter som körs i ett virtuellt Azure-nätverk.

En delad privat länk är:

  • Skapad med hjälp av Azure AI Search-verktyg, API:er eller SDK:er
  • Godkänd av Azure PaaS-resursägaren
  • Används internt av Azure AI Search på en privat anslutning till en specifik Azure-resurs

Endast din söktjänst kan använda de privata länkar som den skapar, och det kan bara finnas en delad privat länk som skapas på din tjänst för varje kombination av resurs och underresurs.

När du har konfigurerat den privata länken används den automatiskt när söktjänsten ansluter till den PaaS-resursen. Du behöver inte ändra anslutningssträng eller ändra klienten som du använder för att utfärda begäranden, även om enheten som används för anslutningen måste ansluta med hjälp av en auktoriserad IP-adress i Azure PaaS-resursens brandvägg.

Det finns två scenarier för att använda Azure Private Link och Azure AI Search tillsammans.

Scenario ett beskrivs i den här artikeln.

Båda scenarierna är beroende av Azure Private Link, men de är oberoende. Du kan skapa en delad privat länk utan att behöva konfigurera din egen söktjänst för en privat slutpunkt.

Begränsningar

När du utvärderar delade privata länkar för ditt scenario bör du komma ihåg dessa begränsningar.

  • Flera av de resurstyper som används i en delad privat länk finns i förhandsversionen. Om du ansluter till en förhandsversionsresurs (Azure Database for MySQL, Azure Functions eller Azure SQL Managed Instance) använder du en förhandsversion av REST API:et för hantering för att skapa den delade privata länken. Dessa versioner inkluderar 2020-08-01-preview, 2021-04-01-previewoch 2024-03-01-preview.

  • Indexerarens körning måste använda den privata körningsmiljö som är specifik för din söktjänst. Privata slutpunktsanslutningar stöds inte från miljön för flera klienter. Konfigurationsinställningen för det här kravet beskrivs i den här artikeln.

Förutsättningar

  • En Azure AI-sökning på Basic-nivån eller högre. Om du använder AI-berikning och kompetensuppsättningar måste nivån vara Standard 2 (S2) eller högre. Mer information finns i Tjänstbegränsningar .

  • En Azure PaaS-resurs från följande lista över resurstyper som stöds, konfigurerad för att köras i ett virtuellt nätverk.

  • Behörigheter för både Azure AI Search och datakällan:

    • På Azure PaaS-resursen måste du ha behörighet att godkänna privata slutpunktsanslutningar. Om du till exempel använder ett Azure Storage-konto som datakälla (till exempel Blob-container, Azure Files-resurs, Azure-tabell) behöver Microsoft.Storage/storageAccounts/privateEndpointConnectionsApproval/actiondu .

    • I söktjänsten måste du ha läs- och skrivbehörighet för delade privata länkresurser och status för läsåtgärder:

      • Microsoft.Search/searchServices/sharedPrivateLinkResources/write
      • Microsoft.Search/searchServices/sharedPrivateLinkResources/read
      • Microsoft.Search/searchServices/sharedPrivateLinkResources/operationStatuses/read

Resurstyper som stöds

Du kan skapa en delad privat länk för följande resurser.

Resurstyp Underresurs (eller grupp-ID)
Microsoft.Storage/storageAccounts 1 blob, table, , dfsfile
Microsoft.DocumentDB/databaseAccounts 2 Sql
Microsoft.Sql/servers sqlServer
Microsoft.KeyVault/vaults vault
Microsoft.DBforMySQL/servers (förhandsversion) mysqlServer
Microsoft.Web/sites (förhandsversion) 3 sites
Microsoft.Sql/managedInstances (förhandsversion) 4 managedInstance
Microsoft.CognitiveServices/accounts (förhandsversion) 5 openai_account

1 Om Azure Storage och Azure AI Search finns i samma region görs anslutningen till lagringen via Microsofts stamnätverk, vilket innebär att en delad privat länk är redundant för den här konfigurationen. Men om du redan har konfigurerat en privat slutpunkt för Azure Storage bör du också konfigurera en delad privat länk eller så nekas anslutningen på lagringssidan. Om du använder flera lagringsformat för olika scenarier i sökningen måste du också skapa en separat delad privat länk för varje underresurs.

2 Resurstypen Microsoft.DocumentDB/databaseAccounts används för indexerareanslutningar till Azure Cosmos DB för NoSQL. Providernamnet och grupp-ID:t är skiftlägeskänsliga.

3 Resurstypen Microsoft.Web/sites används för App Service- och Azure-funktioner. När det gäller Azure AI Search är en Azure-funktion det mer sannolika scenariot. En Azure-funktion används ofta för att hantera logiken för en anpassad färdighet. Azure Function har värdplaner för förbrukning, Premium och Dedikerad App Service. App Service-miljön (ASE) och Azure Kubernetes Service (AKS) stöds inte just nu.

4 Se Skapa en delad privat länk för en SQL Managed Instance för instruktioner.

5 Resurstypen Microsoft.CognitiveServices/accounts används för indexerareanslutningar till Azure OpenAI vid implementering av integrerad vektorisering.

Använd Azure-portalen, REST API för hantering, Azure CLI eller Azure PowerShell för att skapa en delad privat länk.

Här är några tips:

  • Ge den privata länken ett beskrivande namn. I Azure PaaS-resursen visas en delad privat länk tillsammans med andra privata slutpunkter. Ett namn som "shared-private-link-for-search" kan påminna dig om hur det används.

När du slutför stegen i det här avsnittet har du en delad privat länk som har etablerats i ett väntande tillstånd. Det tar flera minuter att skapa länken. När den har skapats måste resursägaren godkänna begäran innan den tas i drift.

  1. Logga in på Azure-portalen och leta reda på söktjänsten.

  2. Under Inställningar i det vänstra navigeringsfönstret väljer du Nätverk.

  3. På sidan Delad privat åtkomst väljer du + Lägg till delad privat åtkomst.

  4. Välj antingen Anslut till en Azure-resurs i min katalog eller Anslut till en Azure-resurs efter resurs-ID.

  5. Om du väljer det första alternativet (rekommenderas) hjälper portalen dig att välja rätt Azure-resurs och fyller i andra egenskaper, till exempel resursens grupp-ID och resurstyp.

    Skärmbild av sidan Lägg till delad privat åtkomst som visar en guidad upplevelse för att skapa en resurs för delad privat länk.

  6. Om du väljer det andra alternativet anger du Azure-resurs-ID:t manuellt och väljer lämpligt grupp-ID i listan i början av den här artikeln.

    Skärmbild av sidan Lägg till delad privat åtkomst som visar den manuella upplevelsen för att skapa en resurs för delad privat länk.

  7. Bekräfta att etableringsstatusen är "Uppdatera".

    Skärmbild av sidan Lägg till delad privat åtkomst som visar hur resursen skapas.

  8. När resursen har skapats ändras etableringstillståndet för resursen till "Lyckades".

    Skärmbild av sidan Lägg till delad privat åtkomst som visar att resursskapandet har slutförts.

Ett 202 Accepted svar returneras vid lyckat resultat. Processen att skapa en utgående privat slutpunkt är en tidskrävande (asynkron) åtgärd. Det innebär att du distribuerar följande resurser:

  • En privat slutpunkt, allokerad med en privat IP-adress i ett "Pending" tillstånd. Den privata IP-adressen hämtas från adressutrymmet som allokeras till det virtuella nätverket i körningsmiljön för den söktjänstspecifika privata indexeraren. När den privata slutpunkten har godkänts kommer all kommunikation från Azure AI Search till Azure-resursen från den privata IP-adressen och en säker privat länkkanal.

  • En privat DNS-zon för resurstypen baserat på grupp-ID: t. Genom att distribuera den här resursen ser du till att alla DNS-sökningar till den privata resursen använder DEN IP-adress som är associerad med den privata slutpunkten.

2 – Godkänn den privata slutpunktsanslutningen

Godkännande av den privata slutpunktsanslutningen beviljas på Azure PaaS-sidan. Uttryckligt godkännande av resursägaren krävs. Följande steg beskriver godkännande med hjälp av Azure-portalen, men här är några länkar för att godkänna anslutningen programmatiskt från Azure PaaS-sidan:

Utför följande steg med hjälp av Azure-portalen:

  1. Öppna sidan Nätverk för Azure PaaS-resursen.Text

  2. Leta reda på avsnittet som visar de privata slutpunktsanslutningarna. Följande exempel är för ett lagringskonto.

    Skärmbild av Azure-portalen som visar fönstret Privata slutpunktsanslutningar.

  3. Välj anslutningen och välj sedan Godkänn. Det kan ta några minuter innan statusen uppdateras i portalen.

    Skärmbild av Azure-portalen som visar statusen Godkänd i fönstret Privata slutpunktsanslutningar.

När den privata slutpunkten har godkänts skapar Azure AI Search nödvändiga DNS-zonmappningar i DNS-zonen som skapas för den.

Även om den privata slutpunktslänken på sidan Nätverk är aktiv löses den inte.

Skärmbild av länken för den privata slutpunkten på Azure PaaS-nätverkssidan.

Om du väljer länken genereras ett fel. Ett statusmeddelande för "The access token is from the wrong issuer" och must match the tenant associated with this subscription visas eftersom den privata slutpunktsresursen för serverdelen etableras av Microsoft i en Microsoft-hanterad klientorganisation, medan den länkade resursen (Azure AI Search) finns i din klientorganisation. Det är avsiktligt att du inte kan komma åt den privata slutpunktsresursen genom att välja länken för privat slutpunktsanslutning.

Följ anvisningarna i nästa avsnitt för att kontrollera statusen för din delade privata länk.

På Azure AI Search-sidan kan du bekräfta godkännande av begäran genom att gå tillbaka till sidan Delad privat åtkomst på söktjänstens nätverkssida . Anslut ionstillstånd bör godkännas.

Skärmbild av Azure-portalen som visar en godkänd resurs för delad privat länk.

Du kan också hämta anslutningstillstånd med hjälp av API:et GET Shared Private Link.

az rest --method get --uri https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.Search/searchServices/contoso-search/sharedPrivateLinkResources/blob-pe?api-version=2023-11-01

Detta returnerar en JSON, där anslutningstillståndet visas som "status" under avsnittet "egenskaper". Följande är ett exempel för ett lagringskonto.

{
      "name": "blob-pe",
      "properties": {
        "privateLinkResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.Storage/storageAccounts/contoso-storage",
        "groupId": "blob",
        "requestMessage": "please approve",
        "status": "Approved",
        "resourceRegion": null,
        "provisioningState": "Succeeded"
      }
}

Om etableringstillståndet (properties.provisioningState) för resursen är "Lyckades" och anslutningstillstånd(properties.status) är "Godkänd" innebär det att resursen för delad privat länk fungerar och att indexeraren kan konfigureras för att kommunicera via den privata slutpunkten.

4 – Konfigurera indexeraren så att den körs i den privata miljön

Indexerarens körning sker antingen i en privat miljö som är specifik för söktjänsten eller i en miljö med flera klientorganisationer som används internt för att avlasta dyr kompetensuppsättningsbearbetning för flera kunder.

Körningsmiljön är transparent, men när du börjar skapa brandväggsregler eller upprätta privata anslutningar måste du ta hänsyn till indexerarens körning. För en privat anslutning konfigurerar du indexerarens körning så att den alltid körs i den privata miljön.

Det här steget visar hur du konfigurerar indexeraren så att den körs i den privata miljön med hjälp av REST-API:et. Du kan också ange körningsmiljön med JSON-redigeraren i portalen.

Kommentar

Du kan utföra det här steget innan den privata slutpunktsanslutningen godkänns. Men tills den privata slutpunktsanslutningen visas som godkänd kommer alla befintliga indexerare som försöker kommunicera med en säker resurs (till exempel lagringskontot) att hamna i ett tillfälligt feltillstånd och nya indexerare kommer inte att skapas.

  1. Skapa datakällans definition, index och kompetensuppsättning (om du använder en) som vanligt. Det finns inga egenskaper i någon av dessa definitioner som varierar när du använder en delad privat slutpunkt.

  2. Skapa en indexerare som pekar på datakällan, indexet och kompetensuppsättningen som du skapade i föregående steg. Tvinga dessutom indexeraren att köras i den privata körningsmiljön genom att ange indexerarens executionEnvironment konfigurationsegenskap till private.

    {
        "name": "indexer",
        "dataSourceName": "blob-datasource",
        "targetIndexName": "index",
        "parameters": {
            "configuration": {
                "executionEnvironment": "private"
            }
        },
        "fieldMappings": []
    }
    

När indexeraren har skapats bör den ansluta till Azure-resursen via den privata slutpunktsanslutningen. Du kan övervaka indexerarens status med indexerarens status-API.

Kommentar

Om du redan har befintliga indexerare kan du uppdatera dem via PUT-API:et executionEnvironment genom att ange till private eller använda JSON-redigeraren i portalen.

  1. Om du inte redan har gjort det kontrollerar du att Azure PaaS-resursen nekar anslutningar från det offentliga Internet. Om anslutningar godkänns granskar du DNS-inställningarna på sidan Nätverk för din Azure PaaS-resurs.

  2. Välj ett verktyg som kan anropa ett scenario för utgående begäran, till exempel en indexerareanslutning till en privat slutpunkt. Ett enkelt val är att använda guiden Importera data , men du kan också prova en REST-klient och REST-API:er för mer precision. Förutsatt att söktjänsten inte också har konfigurerats för en privat anslutning kan REST-klientanslutningen för sökning ske via det offentliga Internet.

  3. Ange anslutningssträng till den privata Azure PaaS-resursen. Formatet för anslutningssträng ändras inte för delad privat länk. Söktjänsten anropar den delade privata länken internt.

    För indexerares arbetsbelastningar finns anslutningssträng i datakällans definition. Ett exempel på en datakälla kan se ut så här:

     {
       "name": "my-blob-ds",
       "type": "azureblob",
       "subtype": null,
       "credentials": {
         "connectionString": "DefaultEndpointsProtocol=https;AccountName=<YOUR-STORAGE-ACCOUNT>;AccountKey=..."
       }
    
  4. Kom ihåg att ange körningsmiljön i indexerardefinitionen för indexerarens arbetsbelastningar. Ett exempel på en indexerares definition kan se ut så här:

    "name": "indexer",
    "dataSourceName": "my-blob-ds",
    "targetIndexName": "my-index",
    "parameters": {
       "configuration": {
           "executionEnvironment": "private"
           }
       },
    "fieldMappings": []
    }
    
  5. Kör indexeraren. Om indexerarens körning lyckas och sökindexet fylls i fungerar den delade privata länken.

Felsökning

  • Om det inte går att skapa indexeraren med "Datakällans autentiseringsuppgifter är ogiltiga" kontrollerar du godkännandestatusen för den delade privata länken innan du felsöker anslutningen. Om statusen är Approvedkontrollerar du egenskapen properties.provisioningState . Om det är Incompletekan det finnas ett problem med underliggande beroenden. I det här fallet skickar PUT du begäran igen för att återskapa den delade privata länken. Du kan också behöva upprepa godkännandesteget.

  • Om indexerare misslyckas konsekvent eller tillfälligt kontrollerar du executionEnvironment egenskapen på indexeraren. Värdet ska anges till private. Om du inte angav den här egenskapen och indexerarens körningar lyckades tidigare beror det på att söktjänsten använde en privat miljö av egen vilja. En söktjänst flyttar bearbetningen från standardmiljön om systemet är under belastning.

  • Om du får ett fel när du skapar en delad privat länk kontrollerar du tjänstbegränsningarna för att kontrollera att du är under kvoten för din nivå.

Nästa steg

Läs mer om privata slutpunkter och andra säkra anslutningsmetoder: