Sicurezza e privacy dei dati in Ricerca di AzureSecurity and data privacy in Azure Search

Funzionalità di sicurezza complete e controlli di accesso sono integrati in Ricerca di Azure per continuare a garantire la riservatezza del contenuto privato.Comprehensive security features and access controls are built into Azure Search to ensure private content remains that way. Questo articolo enumera le funzionalità di sicurezza e la conformità agli standard integrati in Ricerca di Azure.This article enumerates the security features and standards compliance built into Azure Search.

L'architettura di sicurezza di Ricerca di Azure include sicurezza fisica, trasmissioni crittografate, spazio di archiviazione crittografato e conformità agli standard a livello di piattaforma.Azure Search security architecture spans physical security, encrypted transmissions, encrypted storage, and platform-wide standards compliance. Dal punto di vista operativo, Ricerca di Azure accetta solo richieste autenticate.Operationally, Azure Search only accepts authenticated requests. Facoltativamente, è possibile aggiungere controlli di accesso per utente sul contenuto tramite i filtri di sicurezza.Optionally, you can add per-user access controls on content through security filters. Questo articolo descrive la sicurezza a ogni livello e in particolare illustra come vengono protetti i dati e le operazioni in Ricerca di Azure.This article touches on security at each layer, but is primarily focused on how data and operations are secured in Azure Search.

Conformità agli standard: ISO 27001, SOC 2, HIPAAStandards compliance: ISO 27001, SOC 2, HIPAA

Ricerca di Azure è certificata per gli standard seguenti, come annunciato a giugno 2018:Azure Search is certified for the following standards, as announced in June 2018:

La conformità agli standard si applica alle funzionalità disponibili a livello generale.Standards compliance applies to generally available features. Le funzionalità di anteprima sono certificate quando avviene la transizione all'ambito della disponibilità generale e non devono essere usate in soluzioni con requisiti di standard restrittivi.Preview features are certified when they transition to general availability, and must not be used in solutions having strict standards requirements. La certificazione della conformità è documentata in Overview of Microsoft Azure compliance (Panoramica della conformità di Microsoft Azure) e nel Trust Center.Compliance certification is documented in Overview of Microsoft Azure compliance and the Trust Center.

Trasmissione e risorsa di archiviazione crittografateEncrypted transmission and storage

La crittografia viene applicata all'intera pipeline di indicizzazione: dalle connessioni alla trasmissione fino ai dati indicizzati archiviati in Ricerca di Azure.Encryption extends throughout the entire indexing pipeline: from connections, through transmission, and down to indexed data stored in Azure Search.

Livello di sicurezzaSecurity layer DescrizioneDescription
Crittografia in transitoEncryption in transit
(HTTPS/SSL/TLS)(HTTPS/SSL/TLS)
Ricerca di Azure è in ascolto sulla porta HTTPS 443.Azure Search listens on HTTPS port 443. In tutta la piattaforma le connessioni ai servizi di Azure vengono crittografate.Across the platform, connections to Azure services are encrypted.

Tutte le interazioni Ricerca di Azure da client a servizio supportano SSL/TLS 1.2.All client-to-service Azure Search interactions are SSL/TLS 1.2 capable. Assicurarsi di usare TLSv1.2 per le connessioni SSL al servizio.Be sure to use TLSv1.2 for SSL connections to your service.
Crittografia di dati inattiviEncryption at rest
Chiavi gestite da MicrosoftMicrosoft managed keys
La crittografia è completamente incorporata nel processo di indicizzazione, senza impatti significativi sul tempo necessario per il completamento dell'indicizzazione o sulle dimensioni dell'indice.Encryption is fully internalized in the indexing process, with no measurable impact on indexing time-to-completion or index size. Viene applicata automaticamente a tutta l'indicizzazione, inclusi gli aggiornamenti incrementali di un indice non completamente crittografato (creato prima di gennaio 2018).It occurs automatically on all indexing, including on incremental updates to an index that is not fully encrypted (created before January 2018).

Internamente la crittografia si basa su Crittografia del servizio di archiviazione di Azure, con la crittografia AES a 256 bit.Internally, encryption is based on Azure Storage Service Encryption, using 256-bit AES encryption.

La crittografia è interna in Ricerca di Azure, con certificati e chiavi di crittografia gestiti internamente da Microsoft e applicati universalmente.Encryption is internal to Azure Search, with certificates and encryption keys managed internally by Microsoft, and universally applied. Non è possibile attivare o disattivare la crittografia, gestire o sostituire le proprie chiavi oppure visualizzare le impostazioni di crittografia nel portale o a livello di codice.You cannot turn encryption on or off, manage or substitute your own keys, or view encryption settings in the portal or programmatically.

La crittografia dei servizi inattivi è stata annunciata il 24 gennaio 2018 e si applica a tutti i livelli di servizio, incluso il livello gratuito, in tutte le aree.Encryption at rest was announced in January 24, 2018 and applies to all service tiers, including the free tier, in all regions. Per la crittografia completa, gli indici creati prima di tale data devono essere eliminati e ricompilati per poter applicare la crittografia.For full encryption, indexes created prior to that date must be dropped and rebuilt in order for encryption to occur. In caso contrario, vengono crittografati solo i nuovi dati aggiunti dopo il 24 gennaio.Otherwise, only new data added after January 24 is encrypted.
Crittografia di dati inattiviEncryption at rest
Chiavi gestite dal clienteCustomer managed keys
La crittografia con chiavi gestite dal cliente è una funzionalità di Anteprima non disponibile per i servizi gratuiti.Encryption with customer managed keys is a preview feature that is not available for free services. Per i servizi a pagamento, è disponibile solo per i servizi di ricerca creati il o dopo il 2019 gennaio, usando la versione più recente dell'API di anteprima (API-Version = 2019-05-06-Preview).For paid services, it is only available for search services created on or after January 2019, using the latest preview api-version (api-version=2019-05-06-Preview).

Gli indici di ricerca di Azure e le mappe sinonimi possono ora essere crittografati a riposo con chiavi del cliente chiavi gestite in Azure Key Vault.Azure Search indexes and synonym maps can now be encrypted at rest with customer keys managed keys in Azure Key Vault. Per altre informazioni, vedere gestire le chiavi di crittografia in ricerca di Azure.To learn more, see Manage encryption keys in Azure Search.
Questa funzionalità non sostituisce la crittografia predefinita inattiva, ma è invece applicata in aggiunta.This feature is not replacing the default encryption at rest, but rather applied in addition to it.
L'abilitazione di questa funzionalità aumenterà le dimensioni degli indici e diminuirà le prestazioni delle query.Enabling this feature will increase index size and degrade query performance. In base alle osservazioni date, è possibile prevedere un aumento del 30%-60% nei tempi di esecuzione delle query, anche se le prestazioni effettive variano a seconda della definizione dell'indice e dei tipi di query.Based on observations to date, you can expect to see an increase of 30%-60% in query times, although actual performance will vary depending on the index definition and types of queries. A causa di questo effetto sulle prestazioni, si consiglia di abilitare questa funzionalità solo negli indici che lo richiedono effettivamente.Because of this performance impact, we recommend that you only enable this feature on indexes that really require it.

Controlli di accesso utente a livello di AzureAzure-wide user access controls

In Azure sono disponibili diversi meccanismi di sicurezza che sono automaticamente disponibili anche per le risorse di Ricerca di Azure create.Several security mechanisms are available Azure-wide, and thus automatically available to the Azure Search resources you create.

Tutti i servizi di Azure supportano i controlli degli accessi in base al ruolo per impostare i livelli di accesso in modo coerente in tutti i servizi.All Azure services support role-based access controls (RBAC) for setting levels of access consistently across all services. Ad esempio, la visualizzazione di dati sensibili, come la chiave amministratore, è consentita solo ai ruoli Proprietario e Collaboratore, mentre la visualizzazione dello stato del servizio è disponibile per i membri di qualsiasi ruolo.For example, viewing sensitive data, such as the admin key, is restricted to the Owner and Contributor roles, whereas viewing service status is available to members of any role. Il controllo degli accessi in base al ruolo include i ruoli Proprietario, Collaboratore e Lettore.RBAC provides Owner, Contributor, and Reader roles. Per impostazione predefinita, tutti gli amministratori dei servizi sono membri del ruolo Proprietario.By default, all service administrators are members of the Owner role.

Accesso al servizio e autenticazioneService access and authentication

Ricerca di Azure non solo eredita le misure di sicurezza della piattaforma Azure, ma fornisce anche la propria autenticazione basata su chiavi.While Azure Search inherits the security safeguards of the Azure platform, it also provides its own key-based authentication. Una chiave API è una stringa composta da lettere e numeri generati casualmente.An api-key is a string composed of randomly generated numbers and letters. Il tipo di chiave (amministratore o di query) determina il livello di accesso.The type of key (admin or query) determines the level of access. L'invio di una chiave valida è considerato come prova che la richiesta ha origine da un'entità attendibile.Submission of a valid key is considered proof the request originates from a trusted entity.

Esistono due livelli di accesso al servizio di ricerca, abilitati da due tipi di chiavi:There are two levels of access to your search service, enabled by two types of keys:

  • Accesso amministratore (valido per qualsiasi operazione di lettura/scrittura sul servizio)Admin access (valid for any read-write operation against the service)
  • Accesso alle query (valido per le operazioni di sola lettura, ad esempio query, sulla raccolta Documents di un indice)Query access (valid for read-only operations, such as queries, against the documents collection of an index)

Le chiavi amministratore vengono create quando viene effettuato il provisioning del servizio.Admin keys are created when the service is provisioned. Esistono due chiavi amministratore, designate come primaria e secondaria per distinguerle, ma di fatto sono intercambiabili.There are two admin keys, designated as primary and secondary to keep them straight, but in fact they are interchangeable. Ogni servizio ha due chiavi amministratore in modo che sia possibile eseguire il rollover di una senza perdere l'accesso al servizio.Each service has two admin keys so that you can roll one over without losing access to your service. È possibile rigenerare la chiave di amministrazione periodicamente per le procedure consigliate per la sicurezza di Azure, ma non è possibile aggiungere il numero totale di chiavi amministrative.You can regenerate admin key periodically per Azure security best practices, but you cannot add to the total admin key count. Sono disponibili al massimo due chiavi amministrative per servizio di ricerca.There are a maximum of two admin keys per search service.

Le chiavi di query vengono create in base alle necessità e sono progettate per le applicazioni client che inviano query.Query keys are created as-needed and are designed for client applications that issue queries. È possibile creare fino a 50 chiavi di query.You can create up to 50 query keys. Nel codice dell'applicazione è possibile specificare l'URL di ricerca e una chiave API di query per consentire l'accesso in sola lettura alla raccolta Documents di un indice specifico.In application code, you specify the search URL and a query api-key to allow read-only access to the documents collection of a specific index. L'endpoint, una chiave API per l'accesso di sola lettura e un indice di destinazione definiscono insieme l'ambito e il livello di accesso della connessione dall'applicazione client.Together, the endpoint, an api-key for read-only access, and a target index define the scope and access level of the connection from your client application.

L'autenticazione è necessaria per ogni richiesta, dove ogni richiesta è costituita da una chiave obbligatoria, un'operazione e un oggetto.Authentication is required on each request, where each request is composed of a mandatory key, an operation, and an object. Se concatenati, i due livelli di autorizzazione (completa o di sola lettura) più il contesto (ad esempio un'operazione di query su un indice) sono sufficienti per fornire una sicurezza ad ampio spettro per le operazioni del servizio.When chained together, the two permission levels (full or read-only) plus the context (for example, a query operation on an index) are sufficient for providing full-spectrum security on service operations. Per altre informazioni sulle chiavi, vedere Create and manage api-keys (Creare e gestire le chiavi API).For more information about keys, see Create and manage api-keys.

Accesso all'indiceIndex access

In Ricerca di Azure un singolo indice non è un oggetto a protezione diretta.In Azure Search, an individual index is not a securable object. L'accesso a un indice è invece determinato a livello di servizio (accesso in lettura o scrittura), con il contesto di un'operazione.Instead, access to an index is determined at the service layer (read or write access), along with the context of an operation.

Per l'accesso utente finale, è possibile strutturare le richieste di query per la connessione tramite una chiave di query, che imposta qualsiasi richiesta come di sola lettura, e includere l'indice specifico usato dall'app.For end-user access, you can structure query requests to connect using a query key, which makes any request read-only, and include the specific index used by your app. In una richiesta di query non è previsto il join degli indici o l'accesso a più indici simultaneamente, quindi tutte le richiesta specificano come destinazione un solo indice per definizione.In a query request, there is no concept of joining indexes or accessing multiple indexes simultaneously so all requests target a single index by definition. Di conseguenza, la costruzione della richiesta della query (una chiave più un singolo indice di destinazione) definisce di per sé il limite di sicurezza.As such, construction of the query request itself (a key plus a single target index) defines the security boundary.

L'accesso amministratore e sviluppatore agli indici è indifferenziato: entrambi richiedono l'accesso in scrittura per creare, eliminare e aggiornare gli oggetti gestiti dal servizio.Administrator and developer access to indexes is undifferentiated: both need write access to create, delete, and update objects managed by the service. Chiunque abbia una chiave amministratore per il servizio può leggere, modificare o eliminare qualsiasi indice nello stesso servizio.Anyone with an admin key to your service can read, modify, or delete any index in the same service. Per proteggersi dall'eliminazione accidentale o intenzionale degli indici, il controllo del codice sorgente interno per gli asset del codice è la risoluzione che consente di invertire l'eliminazione o la modifica indesiderata di un indice.For protection against accidental or malicious deletion of indexes, your in-house source control for code assets is the remedy for reversing an unwanted index deletion or modification. In Ricerca di Azure è disponibile il failover nel cluster per assicurare la disponibilità, ma il codice proprietario usato per creare o caricare gli indici non viene archiviato o eseguito.Azure Search has failover within the cluster to ensure availability, but it does not store or execute your proprietary code used to create or load indexes.

Le soluzioni multi-tenancy che richiedono limiti di sicurezza a livello di indice includono in genere un livello intermedio, che i clienti usano per gestire l'isolamento degli indici.For multitenancy solutions requiring security boundaries at the index level, such solutions typically include a middle tier, which customers use to handle index isolation. Per altre informazioni sul caso d'uso multi-tenant, vedere Modelli di progettazione per le applicazioni SaaS multi-tenant e Ricerca di Azure.For more information about the multitenant use case, see Design patterns for multitenant SaaS applications and Azure Search.

Accesso amministratoreAdmin access

L'accesso in base al ruolo (RBAC) determina se è possibile accedere ai controlli sul servizio e il relativo contenuto.Role-based access (RBAC) determines whether you have access to controls over the service and its content. Se si è un proprietario o un collaboratore in un servizio di ricerca di Azure, è possibile usare il portale o il modulo di PowerShell AZ. search per creare, aggiornare o eliminare oggetti nel servizio.If you are an Owner or Contributor on an Azure Search service, you can use the portal or the PowerShell Az.Search module to create, update, or delete objects on the service. È anche possibile usare l' API REST di gestione di ricerca di Azure.You can also use the Azure Search Management REST API.

Accesso utenteUser access

Per impostazione predefinita, l'accesso utente a un indice è determinato dalla chiave di accesso per la richiesta della query.By default, user access to an index is determined by the access key on the query request. La maggior parte degli sviluppatori crea e assegna chiavi di query per le richieste di ricerca lato client.Most developers create and assign query keys for client-side search requests. Una chiave di query concede l'accesso in lettura a tutti i contenuti all'interno dell'indice.A query key grants read access to all content within the index.

Se è necessario il controllo per utente granulare sul contenuto, è possibile creare filtri di sicurezza sulle query, che restituiscono i documenti associati a una determinata identità di sicurezza.If you require granular, per-user control over content, you can build security filters on your queries, returning documents associated with a given security identity. Invece di ruoli e assegnazioni di ruolo predefiniti, il controllo di accesso basato sull'identità viene implementato come un filtro che limita i risultati della ricerca di documenti e contenuto in base alle identità.Instead of predefined roles and role assignments, identity-based access control is implemented as a filter that trims search results of documents and content based on identities. La tabella seguente descrive due approcci per limitare i risultati della ricerca di contenuto non autorizzato.The following table describes two approaches for trimming search results of unauthorized content.

ApproccioApproach DescrizioneDescription
Limitazione per motivi di sicurezza in base ai filtri delle identitàSecurity trimming based on identity filters Documenta il flusso di lavoro di base per implementare il controllo di accesso dell'identità utente.Documents the basic workflow for implementing user identity access control. Illustra l'aggiunta di ID di sicurezza a un indice e quindi illustra l'applicazione di filtri a tale campo per limitare i risultati di contenuto non consentito.It covers adding security identifiers to an index, and then explains filtering against that field to trim results of prohibited content.
Limitazione per motivi di sicurezza in base alle identità di Azure Active DirectorySecurity trimming based on Azure Active Directory identities Questo articolo è un approfondimento dell'articolo precedente e contiene la procedura per recuperare le identità da Azure Active Directory (AAD), uno dei servizi gratuiti della piattaforma cloud Azure.This article expands on the previous article, providing steps for retrieving identities from Azure Active Directory (AAD), one of the free services in the Azure cloud platform.

Tabella: operazioni con autorizzazioneTable: Permissioned operations

La tabella seguente riepiloga le operazioni consentite in Ricerca di Azure e la chiave che sblocca l'accesso a una determinata operazione.The following table summarizes the operations allowed in Azure Search and which key unlocks access a particular operation.

OperazioneOperation PermissionsPermissions
Creare un servizioCreate a service Titolare della sottoscrizione di AzureAzure subscription holder
Ridimensionare un servizioScale a service Chiave amministratore, proprietario di Controllo degli accessi in base al ruolo o Collaboratore nella sottoscrizioneAdmin key, RBAC Owner or Contributor on the resource
Eliminare un servizioDelete a service Chiave amministratore, proprietario di Controllo degli accessi in base al ruolo o Collaboratore nella sottoscrizioneAdmin key, RBAC Owner or Contributor on the resource
Creare, modificare, eliminare oggetti nel servizio:Create, modify, delete objects on the service:
indici e parti componenti (inclusi definizioni degli analizzatori, profili di punteggio, opzioni CORS), indicizzatori, origini dati, sinonimi, strumenti suggerimenti.Indexes and component parts (including analyzer definitions, scoring profiles, CORS options), indexers, data sources, synonyms, suggesters.
Chiave amministratore, proprietario di Controllo degli accessi in base al ruolo o Collaboratore nella sottoscrizioneAdmin key, RBAC Owner or Contributor on the resource
Eseguire una query su un indiceQuery an index Chiave amministratore o di query (Controllo degli accessi in base al ruolo non applicabile)Admin or query key (RBAC not applicable)
Eseguire una query sulle informazioni sul sistema, ad esempio per restituire statistiche, conteggi ed elenchi di oggetti.Query system information, such as returning statistics, counts, and lists of objects. Chiave amministratore, Controllo degli accessi in base al ruolo nella risorsa (Proprietario, Collaboratore, Lettore)Admin key, RBAC on the resource (Owner, Contributor, Reader)
Gestire le chiavi amministratoreManage admin keys Chiave amministratore, proprietario di Controllo degli accessi in base al ruolo o Collaboratore nella sottoscrizione.Admin key, RBAC Owner or Contributor on the resource.
Gestire le chiavi di queryManage query keys Chiave amministratore, proprietario di Controllo degli accessi in base al ruolo o Collaboratore nella sottoscrizione.Admin key, RBAC Owner or Contributor on the resource.

Sicurezza fisicaPhysical security

I data center Microsoft garantiscono la sicurezza fisica leader di settore e sono conformi a un portafoglio completo di standard e normative.Microsoft data centers provide industry-leading physical security and are compliant with an extensive portfolio of standards and regulations. Per altre informazioni, vedere la pagina Data center globali o guardare un breve video sulla sicurezza dei data center.To learn more, go to the Global data centers page or watch a short video on data center security.

Vedere ancheSee also