Segurança de serviços cognitivas do AzureAzure Cognitive Services security

A segurança deve ser considerada uma prioridade principal ao desenvolver qualquer e todos os aplicativos.Security should be considered a top priority when developing any and all applications. Com o início de aplicativos habilitados para inteligência artificial, a segurança é ainda mais importante.With the onset of artificial intelligence enabled applications, security is even more important. Neste artigo, vários aspectos da segurança dos serviços cognitivas do Azure são descritos, como o uso da segurança da camada de transporte, autenticação, configuração segura de dados confidenciais e Sistema de Proteção de Dados do Cliente para acesso a dados do cliente.In this article various aspects of Azure Cognitive Services security are outlined, such as the use of transport layer security, authentication, securely configuring sensitive data, and Customer Lockbox for customer data access.

Protocolo TLSTransport Layer Security (TLS)

Todos os pontos de extremidade de serviços cognitivas expostos por HTTP impõem o TLS 1,2.All of the Cognitive Services endpoints exposed over HTTP enforce TLS 1.2. Com um protocolo de segurança imposto, os consumidores que tentam chamar um ponto de extremidade de serviços cognitivas devem aderir a estas diretrizes:With an enforced security protocol, consumers attempting to call a Cognitive Services endpoint should adhere to these guidelines:

  • O sistema operacional do cliente (SO) precisa dar suporte a TLS 1,2The client Operating System (OS) needs to support TLS 1.2
  • A linguagem (e a plataforma) usada para fazer a chamada HTTP precisar especificar o TLS 1,2 como parte da solicitaçãoThe language (and platform) used to make the HTTP call need to specify TLS 1.2 as part of the request
    • Dependendo do idioma e da plataforma, a especificação do TLS é feita implicitamente ou explicitamenteDepending on the language and platform, specifying TLS is done either implicitly or explicitly

Para usuários do .NET, considere as práticas recomendadas de segurança da camada de transporte .For .NET users, consider the Transport Layer Security best practices .

AutenticaçãoAuthentication

Ao discutir a autenticação, há várias concepções comuns.When discussing authentication, there are several common misconceptions. A autenticação e a autorização geralmente são confusas entre si.Authentication and authorization are often confused for one another. A identidade também é um componente importante na segurança.Identity is also a major component in security. Uma identidade é uma coleção de informações sobre uma entidade de segurança .An identity is a collection of information about a principal . Os IdP (provedores de identidade) fornecem identidades aos serviços de autenticação.Identity providers (IdP) provide identities to authentication services. A autenticação é o ato de verificar a identidade de um usuário.Authentication is the act of verifying a user's identity. Autorização é a especificação de direitos de acesso e privilégios para recursos para uma determinada identidade.Authorization is the specification of access rights and privileges to resources for a given identity. Várias ofertas de serviços cognitivas incluem o RBAC (controle de acesso baseado em função).Several of the Cognitive Services offerings, include role-based access control (RBAC). O RBAC poderia ser usado para simplificar parte da cerimônia envolvida com o gerenciamento manual de entidades.RBAC could be used to simplify some of the ceremony involved with manually managing principals. Para obter mais detalhes, consulte controle de acesso baseado em função para recursos do Azure.For more details, see role-based access control for Azure resources.

Para obter mais informações sobre autenticação com chaves de assinatura, tokens de acesso e Azure Active Directory (AAD), consulte autenticar solicitações para serviços cognitivas do Azure.For more information on authentication with subscription keys, access tokens and Azure Active Directory (AAD), see authenticate requests to Azure Cognitive Services.

Variáveis de ambiente e configuração de aplicativoEnvironment variables and application configuration

As variáveis de ambiente são pares de nome-valor, armazenadas em um ambiente específico.Environment variables are name-value pairs, stored within a specific environment. Uma alternativa mais segura ao uso de valores codificados para dados confidenciais é usar variáveis de ambiente.A more secure alternative to using hardcoded values for sensitive data, is to use environment variables. Os valores codificados são inseguros e devem ser evitados.Hardcoded values are insecure and should be avoided.

Cuidado

Não use valores codificados para dados confidenciais, fazendo isso é uma grande vulnerabilidade de segurança.Do not use hardcoded values for sensitive data, doing so is a major security vulnerability.

Observação

Embora as variáveis de ambiente sejam armazenadas em texto sem formatação, elas são isoladas em um ambiente.While environment variables are stored in plain text, they are isolated to an environment. Se um ambiente for comprometido, também serão as variáveis com o ambiente.If an environment is compromised, so too are the variables with the environment.

Definir variável de ambienteSet environment variable

Para definir variáveis de ambiente, use um dos comandos a seguir, em que o ENVIRONMENT_VARIABLE_KEY é a chave nomeada e value é o valor armazenado na variável de ambiente.To set environment variables, use one the following commands - where the ENVIRONMENT_VARIABLE_KEY is the named key and value is the value stored in the environment variable.

Crie e atribua a variável de ambiente persistente, dado o valor.Create and assign persisted environment variable, given the value.

:: Assigns the env var to the value
setx ENVIRONMENT_VARIABLE_KEY="value"

Em uma nova instância do prompt de comando, leia a variável de ambiente.In a new instance of the Command Prompt, read the environment variable.

:: Prints the env var value
echo %ENVIRONMENT_VARIABLE_KEY%

Dica

Depois de definir uma variável de ambiente, reinicie o IDE (ambiente de desenvolvimento integrado) para garantir que as variáveis de ambiente adicionadas recentemente estejam disponíveis.After setting an environment variable, restart your integrated development environment (IDE) to ensure that newly added environment variables are available.

Obter variável de ambienteGet environment variable

Para obter uma variável de ambiente, ele deve ser lido na memória.To get an environment variable, it must be read into memory. Dependendo do idioma que você estiver usando, considere os trechos de código a seguir.Depending on the language you're using, consider the following code snippets. Esses trechos de código demonstram como obter a variável de ambiente dada ao ENVIRONMENT_VARIABLE_KEY e atribuir a uma variável chamada value .These code snippets demonstrate how to get environment variable given the ENVIRONMENT_VARIABLE_KEY and assign to a variable named value.

Para obter mais informações, Environment.GetEnvironmentVariable consulte.For more information, see Environment.GetEnvironmentVariable .

using static System.Environment;

class Program
{
    static void Main()
    {
        // Get the named env var, and assign it to the value variable
        var value =
            GetEnvironmentVariable(
                "ENVIRONMENT_VARIABLE_KEY");
    }
}

Sistema de Proteção de Dados do ClienteCustomer Lockbox

Sistema de proteção de dados do cliente para Microsoft Azure fornece uma interface para os clientes revisarem e aprovarem ou rejeitarem solicitações de acesso a dados do cliente.Customer Lockbox for Microsoft Azure provides an interface for customers to review, and approve or reject customer data access requests. Ele é usado nos casos em que um engenheiro da Microsoft precisa acessar os dados do cliente durante uma solicitação de suporte.It is used in cases where a Microsoft engineer needs to access customer data during a support request. Para obter informações sobre como Sistema de Proteção de Dados do Cliente solicitações são iniciadas, controladas e armazenadas para revisões e auditorias posteriores, consulte sistema de proteção de dados do cliente.For information on how Customer Lockbox requests are initiated, tracked, and stored for later reviews and audits, see Customer Lockbox.

Sistema de Proteção de Dados do Cliente está disponível para este serviço cognitiva:Customer Lockbox is available for this Cognitive Service:

  • TradutorTranslator

Por Reconhecimento vocal, os engenheiros da Microsoft não acessarão nenhum dado do cliente na SKU E0.For Language Understanding, Microsoft engineers will not access any customer data in the E0 SKU. Para solicitar a capacidade de usar o SKU E0, preencha e envie o formulário de solicitação de serviço Luis.To request the ability to use the E0 SKU, fill out and submit the LUIS Service Request Form. Levará aproximadamente 3-5 dias úteis para que o status da solicitação seja reproduzido.It will take approximately 3-5 business days to hear back on the status of your request. Dependendo da demanda, você pode ser colocado em uma fila e aprovado, pois o espaço se torna disponível.Depending on demand, you may be placed in a queue and approved as space becomes available. Depois de aprovado para usar o SKU E0 com LUIS, você precisará criar um novo recurso de Reconhecimento vocal da portal do Azure e selecionar E0 como o tipo de preço.Once approved for using the E0 SKU with LUIS, you'll need to create a new Language Understanding resource from the Azure portal and select E0 as the Pricing Tier. Os usuários não poderão atualizar do F0 para o novo SKU E0.Users won't be able to upgrade from the F0 to the new E0 SKU.

No momento, o serviço de fala não oferece suporte a Sistema de Proteção de Dados do Cliente.The Speech service doesn't currently support Customer Lockbox. No entanto, os dados do cliente podem ser armazenados usando BYOS ("Traga seu próprio armazenamento"), permitindo que você obtenha controles de dados semelhantes para sistema de proteção de dados do cliente.However, customer data can be stored using BYOS ("Bring Your Own Storage"), allowing you to achieve similar data controls to Customer Lockbox. Tenha em mente que os dados do serviço de fala permanecem e são processados na região em que o recurso de fala foi criado.Keep in mind that Speech service data stays and is processed in the region where the Speech resource was created. Isso se aplica a quaisquer dados em repouso e dados em trânsito.This applies to any data at rest and data in transit. Ao usar recursos de personalização, como Fala Personalizada e voz personalizada, todos os dados do cliente são transferidos, armazenados e processados na mesma região em que seu BYOS (se usado) e o recurso de serviço de fala residem.When using customization features, like Custom Speech and Custom Voice, all customer data is transferred, stored, and processed in the same region where your BYOS (if used) and Speech service resource reside.

Importante

A Microsoft não usa dados do cliente para melhorar seus modelos de fala.Microsoft does not use customer data to improve its Speech models. Além disso, se o log do ponto de extremidade estiver desabilitado e nenhuma personalização for usada, nenhum dado do cliente será armazenado.Additionally, if endpoint logging is disabled and no customizations are used, then no customer data is stored.

Próximas etapasNext steps