Använd Azure OpenAI på dina data på ett säkert sätt
Kommentar
Från och med juni 2024 behövs inte längre ansökningsformuläret för microsofts hanterade privata slutpunkt till Azure AI Search.
Den hanterade privata slutpunkten tas bort från microsofts hanterade virtuella nätverk i juli 2025. Om du redan har etablerat en hanterad privat slutpunkt via programprocessen före juni 2024 aktiverar du azure AI Search-betrodd tjänst så tidigt som möjligt för att undvika avbrott i tjänsten.
Använd den här artikeln om du vill lära dig hur du använder Azure OpenAI på dina data på ett säkert sätt genom att skydda data och resurser med rollbaserad åtkomstkontroll i Microsoft Entra, virtuella nätverk och privata slutpunkter.
Den här artikeln gäller endast när du använder Azure OpenAI På dina data med text. Den gäller inte för Azure OpenAI På dina data med bilder.
Datainmatningsarkitektur
När du använder Azure OpenAI På dina data för att mata in data från Azure Blob Storage, lokala filer eller URL:er till Azure AI Search används följande process för att bearbeta data.
- Steg 1 och 2 används endast för filuppladdning.
- Nedladdning av URL:er till bloblagringen visas inte i det här diagrammet. När webbsidorna har laddats ned från Internet och laddats upp till bloblagring är steg 3 och senare desamma.
- Två indexerare, två index, två datakällor och en anpassad färdighet skapas i Azure AI Search-resursen.
- Segmentcontainern skapas i bloblagringen.
- Om schemat utlöser inmatningen börjar inmatningsprocessen från steg 7.
- Azure OpenAI:s
preprocessing-jobs
API implementerar webb-API-protokollet för Azure AI Search-kunskaper och bearbetar dokumenten i en kö. - Azure OpenAI:
- Internt använder den första indexeraren som skapades tidigare för att knäcka dokumenten.
- Använder en heuristisk baserad algoritm för att utföra segmentering. Den respekterar tabelllayouter och andra formateringselement i segmentgränsen för att säkerställa bästa segmentkvalitet.
- Om du väljer att aktivera vektorsökning använder Azure OpenAI den valda inbäddningsinställningen för att vektorisera segmenten.
- När alla data som tjänsten övervakar bearbetas utlöser Azure OpenAI den andra indexeraren.
- Indexeraren lagrar bearbetade data i en Azure AI-tjänsten Search.
För de hanterade identiteter som används i tjänstanrop stöds endast systemtilldelade hanterade identiteter. Användartilldelade hanterade identiteter stöds inte.
Slutsatsdragningsarkitektur
När du skickar API-anrop för att chatta med en Azure OpenAI-modell på dina data måste tjänsten hämta indexfälten under slutsatsdragningen för att utföra fältmappning. Därför kräver tjänsten att Azure OpenAI-identiteten Search Service Contributor
har rollen för söktjänsten även under slutsatsdragningen.
Om ett inbäddningsberoende anges i inferensbegäran kommer Azure OpenAI att vektorisera den omskrivna frågan och både frågan och vektorn skickas till Azure AI Search för vektorsökning.
Åtkomstkontroll på dokumentnivå
Kommentar
Åtkomstkontroll på dokumentnivå stöds endast för Azure AI-sökning.
Med Azure OpenAI På dina data kan du begränsa de dokument som kan användas som svar för olika användare med Säkerhetsfilter för Azure AI Search. När du aktiverar åtkomst på dokumentnivå trimmar Azure AI Search sökresultaten baserat på användarens Microsoft Entra-gruppmedlemskap som anges i filtret. Du kan bara aktivera åtkomst på dokumentnivå för befintliga Azure AI Search-index. Så här aktiverar du åtkomst på dokumentnivå:
Om du vill registrera ditt program och skapa användare och grupper följer du stegen i Azure AI Search-dokumentationen.
Indexera dina dokument med deras tillåtna grupper. Kontrollera att de nya säkerhetsfälten har schemat:
{"name": "group_ids", "type": "Collection(Edm.String)", "filterable": true }
group_ids
är standardfältets namn. Om du använder ett annat fältnamn sommy_group_ids
kan du mappa fältet i mappningen av indexfält.Kontrollera att varje känsligt dokument i indexet har värdet för säkerhetsfältet inställt på de tillåtna grupperna i dokumentet.
Lägg till din datakälla i Azure OpenAI Studio. I avsnittet indexfältmappning kan du mappa noll eller ett värde till fältet tillåtna grupper, så länge schemat är kompatibelt. Om fältet tillåtna grupper inte mappas inaktiveras åtkomst på dokumentnivå.
Azure OpenAI Studio
När Azure AI Search-indexet är anslutet har dina svar i studion dokumentåtkomst baserat på Microsoft Entra-behörigheterna för den inloggade användaren.
Webbapp
Om du använder en publicerad webbapp måste du distribuera om den för att uppgradera till den senaste versionen. Den senaste versionen av webbappen innehåller möjligheten att hämta grupperna för den inloggade användarens Microsoft Entra-konto, cachelagra det och inkludera grupp-ID:n i varje API-begäran.
API
När du använder API:et skickar du parametern filter
i varje API-begäran. Till exempel:
Viktigt!
Följande är till exempel endast. Om du använder en API-nyckel lagrar du den på ett säkert sätt någon annanstans, till exempel i Azure Key Vault. Inkludera inte API-nyckeln direkt i koden och publicera den aldrig offentligt.
Mer information om säkerhet för AI-tjänster finns i Autentisera begäranden till Azure AI-tjänster.
{
"messages": [
{
"role": "user",
"content": "who is my manager?"
}
],
"data_sources": [
{
"type": "azure_search",
"parameters": {
"endpoint": "<AZURE_AI_SEARCH_ENDPOINT>",
"key": "<AZURE_AI_SEARCH_API_KEY>",
"index_name": "<AZURE_AI_SEARCH_INDEX>",
"filter": "my_group_ids/any(g:search.in(g, 'group_id1, group_id2'))"
}
}
]
}
my_group_ids
är det fältnamn som du valde för Tillåtna grupper under fältmappning.group_id1, group_id2
är grupper som tillskrivs den inloggade användaren. Klientprogrammet kan hämta och cachelagrat användargrupper.
Resurskonfiguration
Använd följande avsnitt för att konfigurera dina resurser för optimal säker användning. Även om du planerar att endast skydda en del av dina resurser måste du fortfarande följa alla steg.
I den här artikeln beskrivs nätverksinställningar som rör inaktivering av offentliga nätverk för Azure OpenAI-resurser, Azure AI-sökresurser och lagringskonton. Det går inte att använda valda nätverk med IP-regler eftersom tjänsternas IP-adresser är dynamiska.
Skapa resursgrupp
Skapa en resursgrupp så att du kan organisera alla relevanta resurser. Resurserna i resursgruppen inkluderar men är inte begränsade till:
- Ett virtuellt nätverk
- Tre viktiga tjänster: en Azure OpenAI, en Azure AI Search, ett lagringskonto
- Tre privata slutpunkter, var och en är länkad till en nyckeltjänst
- Tre nätverksgränssnitt, var och en är associerad med en privat slutpunkt
- En virtuell nätverksgateway för åtkomst från lokala klientdatorer
- En webbapp med integrerat virtuellt nätverk
- En Privat DNS zon, så webbappen hittar IP-adressen för din Azure OpenAI
Skapa virtuella nätverk
Det virtuella nätverket har tre undernät.
- Det första undernätet används för den virtuella nätverksgatewayen.
- Det andra undernätet används för de privata slutpunkterna för de tre nyckeltjänsterna.
- Det tredje undernätet är tomt och används för utgående integrering av virtuella nätverk i Web App.
Konfigurera Azure OpenAI
Aktiverad anpassad underdomän
Den anpassade underdomänen krävs för Microsoft Entra ID-baserad autentisering och privat DNS-zon. Om Azure OpenAI-resursen skapas med hjälp av ARM-mallen måste den anpassade underdomänen anges explicit.
Aktivera hanterad identitet
Om du vill tillåta att ditt Azure AI Search- och Storage-konto känner igen din Azure OpenAI-tjänst via Microsoft Entra-ID-autentisering måste du tilldela en hanterad identitet för din Azure OpenAI-tjänst. Det enklaste sättet är att växla på systemtilldelad hanterad identitet på Azure Portal.
Information om hur du anger hanterade identiteter via hanterings-API :et finns i referensdokumentationen för hanterings-API.
"identity": {
"principalId": "<YOUR-PRINCIPAL-ID>",
"tenantId": "<YOUR-TENNANT-ID>",
"type": "SystemAssigned, UserAssigned",
"userAssignedIdentities": {
"/subscriptions/<YOUR-SUBSCIRPTION-ID>/resourceGroups/my-resource-group",
"principalId": "<YOUR-PRINCIPAL-ID>",
"clientId": "<YOUR-CLIENT-ID>"
}
}
Aktivera betrodd tjänst
Om du vill tillåta att Azure AI Search anropar azure OpenAI preprocessing-jobs
som webb-API för anpassad kompetens, medan Azure OpenAI inte har någon offentlig nätverksåtkomst, måste du konfigurera Azure OpenAI för att kringgå Azure AI Search som en betrodd tjänst baserat på hanterad identitet. Azure OpenAI identifierar trafiken från din Azure AI Search genom att verifiera anspråken i JSON-webbtoken (JWT). Azure AI Search måste använda systemtilldelad hanterad identitetsautentisering för att anropa webb-API:et för anpassad kompetens.
Ange networkAcls.bypass
som AzureServices
från hanterings-API:et. Mer information finns i artikeln Om virtuella nätverk.
Det här steget kan bara hoppas över om du har en delad privat länk för din Azure AI Search-resurs.
Inaktivera åtkomst till offentligt nätverk
Du kan inaktivera åtkomsten till det offentliga nätverket för din Azure OpenAI-resurs i Azure Portal.
Om du vill tillåta åtkomst till Azure OpenAI-tjänsten från dina klientdatorer, som att använda Azure OpenAI Studio, måste du skapa privata slutpunktsanslutningar som ansluter till din Azure OpenAI-resurs.
Konfigurera Azure AI Search
Du kan använda den grundläggande prisnivån och högre för sökresursen. Det är inte nödvändigt, men om du använder prisnivån S2 är avancerade alternativ tillgängliga.
Aktivera hanterad identitet
Om du vill att dina andra resurser ska kunna identifiera Azure AI Search med hjälp av Microsoft Entra-ID-autentisering måste du tilldela en hanterad identitet för din Azure AI Search. Det enklaste sättet är att växla på den systemtilldelade hanterade identiteten i Azure Portal.
Aktivera rollbaserad åtkomstkontroll
Eftersom Azure OpenAI använder hanterad identitet för att få åtkomst till Azure AI Search måste du aktivera rollbaserad åtkomstkontroll i Azure AI Search. Om du vill göra det på Azure Portal väljer du Både eller Rollbaserad åtkomstkontroll på fliken Nycklar i Azure Portal.
Mer information finns i artikeln Azure AI Search RBAC.
Inaktivera åtkomst till offentligt nätverk
Du kan inaktivera åtkomsten till det offentliga nätverket för din Azure AI Search-resurs i Azure Portal.
Om du vill tillåta åtkomst till din Azure AI Search-resurs från dina klientdatorer, som att använda Azure OpenAI Studio, måste du skapa privata slutpunktsanslutningar som ansluter till din Azure AI Search-resurs.
Aktivera betrodd tjänst
Du kan aktivera betrodd tjänst för sökresursen från Azure Portal.
Gå till nätverksfliken för sökresursen. Med åtkomsten för det offentliga nätverket inställd på inaktiverad väljer du Tillåt Att Azure-tjänster i listan över betrodda tjänster får åtkomst till den här söktjänsten.
Du kan också använda REST-API:et för att aktivera betrodda tjänster. I det här exemplet används Azure CLI och jq
verktyget.
rid=/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>/providers/Microsoft.Search/searchServices/<YOUR-RESOURCE-NAME>
apiVersion=2024-03-01-Preview
#store the resource properties in a variable
az rest --uri "https://management.azure.com$rid?api-version=$apiVersion" > search.json
#replace bypass with AzureServices using jq
jq '.properties.networkRuleSet.bypass = "AzureServices"' search.json > search_updated.json
#apply the updated properties to the resource
az rest --uri "https://management.azure.com$rid?api-version=$apiVersion" \
--method PUT \
--body @search_updated.json
Skapa delad privat länk
Dricks
Om du använder en grundläggande prisnivå eller standardprisnivå, eller om det är första gången du konfigurerar alla dina resurser på ett säkert sätt, bör du hoppa över det här avancerade ämnet.
Det här avsnittet gäller endast för S2-prisnivåsökningsresursen, eftersom det kräver privat slutpunktsstöd för indexerare med en kompetensuppsättning.
Information om hur du skapar en delad privat länk från sökresursen som ansluter till din Azure OpenAI-resurs finns i sökdokumentationen. Välj Resurstyp som Microsoft.CognitiveServices/accounts
och Grupp-ID som openai_account
.
Med den delade privata länken ändras steg 8 i datainmatningsarkitekturdiagrammet från förbikoppling av betrodd tjänst till delad privat länk.
Konfigurera lagringskonto
Aktivera betrodd tjänst
Om du vill tillåta åtkomst till ditt lagringskonto från Azure OpenAI och Azure AI Search måste du konfigurera lagringskontot för att kringgå Azure OpenAI och Azure AI Search som betrodda tjänster baserat på hanterad identitet.
I Azure Portal går du till nätverksfliken för lagringskontot, väljer "Valda nätverk" och väljer sedan Tillåt Azure-tjänster i listan över betrodda tjänster att komma åt det här lagringskontot och klickar på Spara.
Inaktivera åtkomst till offentligt nätverk
Du kan inaktivera åtkomsten till det offentliga nätverket för ditt lagringskonto i Azure Portal.
Om du vill tillåta åtkomst till ditt lagringskonto från dina klientdatorer, till exempel genom att använda Azure OpenAI Studio, måste du skapa privata slutpunktsanslutningar som ansluter till bloblagringen.
Rolltilldelningar
Hittills har du redan konfigurerat varje resursarbete separat. Därefter måste du tillåta att tjänsterna auktoriserar varandra.
Roll | Tilldelad | Resurs | beskrivning |
---|---|---|---|
Search Index Data Reader |
Azure OpenAI | Azure AI-sökning | Slutsatsdragningstjänsten frågar data från indexet. |
Search Service Contributor |
Azure OpenAI | Azure AI-sökning | Slutsatsdragningstjänsten frågar indexschemat för automatisk fältmappning. Datainmatningstjänsten skapar index, datakällor, kompetensuppsättning, indexerare och frågar indexerarens status. |
Storage Blob Data Contributor |
Azure OpenAI | Lagringskonto | Läser från indatacontainern och skriver det förbearbetade resultatet till utdatacontainern. |
Cognitive Services OpenAI Contributor |
Azure AI-sökning | Azure OpenAI | Anpassad kompetens. |
Storage Blob Data Reader |
Azure AI-sökning | Lagringskonto | Läser dokumentblobar och segmentblobar. |
Reader |
Azure AI Studio-projekt | Privata Slutpunkter för Azure Storage (blob & fil) | Läsa sökindex som skapats i bloblagring i ett AI Studio-projekt. |
Cognitive Services OpenAI User |
Webbapp | Azure OpenAI | Slutsats. |
I tabellen ovan innebär det Assignee
systemtilldelade hanterade identiteten för den resursen.
Administratören Owner
måste ha rollen på dessa resurser för att lägga till rolltilldelningar.
I Dokumentationen för Azure RBAC finns anvisningar om hur du anger dessa roller i Azure Portal. Du kan använda det tillgängliga skriptet på GitHub för att lägga till rolltilldelningarna programmatiskt.
För att göra det möjligt för utvecklarna att använda dessa resurser för att skapa program måste administratören lägga till utvecklarnas identitet med följande rolltilldelningar till resurserna.
Roll | Resurs | beskrivning |
---|---|---|
Cognitive Services OpenAI Contributor |
Azure OpenAI | Anropa offentligt inmatnings-API från Azure OpenAI Studio. Rollen Contributor räcker inte, för om du bara har Contributor en roll kan du inte anropa DATA Plane API via Microsoft Entra ID-autentisering och Microsoft Entra-ID-autentisering krävs i den säkra konfiguration som beskrivs i den här artikeln. |
Cognitive Services User |
Azure OpenAI | Lista API-nycklar från Azure OpenAI Studio. |
Contributor |
Azure AI-sökning | Lista API-nycklar för att lista index från Azure OpenAI Studio. |
Contributor |
Lagringskonto | Lista konto-SAS för att ladda upp filer från Azure OpenAI Studio. |
Contributor |
Resursgruppen eller Azure-prenumerationen där utvecklaren behöver distribuera webbappen till | Distribuera webbappen till utvecklarens Azure-prenumeration. |
Role Based Access Control Administrator |
Azure OpenAI | Behörighet att konfigurera den nödvändiga rolltilldelningen för Azure OpenAI-resursen. Gör att webbappen kan anropa Azure Open AI. |
Konfigurera gateway och klient
För att få åtkomst till Azure OpenAI-tjänsten från dina lokala klientdatorer är en av metoderna att konfigurera Azure VPN Gateway och Azure VPN Client.
Följ den här riktlinjen för att skapa en virtuell nätverksgateway för ditt virtuella nätverk.
Följ den här riktlinjen om du vill lägga till punkt-till-plats-konfiguration och aktivera Microsoft Entra ID-baserad autentisering. Ladda ned konfigurationspaketet för Azure VPN-klientprofilen, packa upp och importera AzureVPN/azurevpnconfig.xml
filen till Din Azure VPN-klient.
Konfigurera din lokala datorfil hosts
så att den pekar resursernas värdnamn på de privata IP-adresserna i det virtuella nätverket. Filen hosts
finns på C:\Windows\System32\drivers\etc
för Windows och på /etc/hosts
i Linux. Exempel:
10.0.0.5 contoso.openai.azure.com
10.0.0.6 contoso.search.windows.net
10.0.0.7 contoso.blob.core.windows.net
Azure OpenAI Studio
Du bör kunna använda alla Azure OpenAI Studio-funktioner, inklusive både inmatning och slutsatsdragning, från dina lokala klientdatorer.
Webbapp
Webbappen kommunicerar med din Azure OpenAI-resurs. Eftersom din Azure OpenAI-resurs har inaktiverat det offentliga nätverket måste webbappen konfigureras för att använda den privata slutpunkten i det virtuella nätverket för att få åtkomst till din Azure OpenAI-resurs.
Webbappen måste matcha ditt Azure OpenAI-värdnamn till den privata IP-adressen för den privata slutpunkten för Azure OpenAI. Därför måste du konfigurera den privata DNS-zonen för ditt virtuella nätverk först.
- Skapa en privat DNS-zon i resursgruppen.
- Lägg till en DNS-post. IP-adressen är den privata IP-adressen för den privata slutpunkten för din Azure OpenAI-resurs och du kan hämta IP-adressen från nätverksgränssnittet som är associerat med den privata slutpunkten för din Azure OpenAI.
- Länka den privata DNS-zonen till ditt virtuella nätverk så att webbappen som är integrerad i det här virtuella nätverket kan använda den här privata DNS-zonen.
När du distribuerar webbappen från Azure OpenAI Studio väljer du samma plats med det virtuella nätverket och väljer en lämplig SKU så att den kan stödja integreringsfunktionen för virtuella nätverk.
När webbappen har distribuerats går du till fliken Azure Portal nätverk och konfigurerar webbappens integrering av utgående trafik för virtuellt nätverk och väljer det tredje undernätet som du har reserverat för webbappen.
Använda API:et
Kontrollera att inloggningsautentiseringsuppgifterna har Cognitive Services OpenAI Contributor
en roll för din Azure OpenAI-resurs och kör az login
först.
Inmatnings-API
Mer information om de begärande- och svarsobjekt som används av inmatnings-API:et finns i referensartikeln för inmatnings-API:et.
Slutsatsdragnings-API
Mer information om de begärande- och svarsobjekt som används av inferens-API:et finns i referensartikeln för slutsatsdragnings-API:et.
Använd Microsoft Defender för molnet
Nu kan du integrera Microsoft Defender för molnet (förhandsversion) med dina Azure-resurser för att skydda dina program. Microsoft Defender för molnet skyddar dina program med skydd mot hot för AI-arbetsbelastningar, ger teamen evidensbaserade säkerhetsaviseringar berikade med Microsofts hotinformationssignaler och gör det möjligt för team att stärka sin säkerhetsstatus med integrerade rekommenderade säkerhetsmetoder.
Använd det här formuläret för att ansöka om åtkomst.