Seguridad de Azure Cognitive ServicesAzure Cognitive Services security

La seguridad se debe considerar una de las máximas prioridades cuando se desarrolla cualquier aplicación.Security should be considered a top priority when developing any and all applications. Con la aparición de las aplicaciones habilitadas para la inteligencia artificial, la seguridad cobra aún mayor importancia.With the onset of artificial intelligence enabled applications, security is even more important. En este artículo se describen varios aspectos de la seguridad de Azure Cognitive Services, como el uso de la seguridad de la capa de transporte, la autenticación, la configuración segura de los datos confidenciales y la Caja de seguridad del cliente para el acceso a los datos de los clientes.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.

Seguridad de la capa de transporte (TLS)Transport Layer Security (TLS)

Todos los puntos de conexión de Cognitive Services expuestos a través de HTTP aplican TLS 1.2.All of the Cognitive Services endpoints exposed over HTTP enforce TLS 1.2. Con un protocolo de seguridad aplicado, los consumidores que intentan llamar a un punto de conexión de Cognitive Services deben cumplir estas directrices:With an enforced security protocol, consumers attempting to call a Cognitive Services endpoint should adhere to these guidelines:

  • El sistema operativo (SO) del cliente debe admitir TLS 1.2The client Operating System (OS) needs to support TLS 1.2
  • El lenguaje (y la plataforma) que se usa para hacer la llamada HTTP tiene que especificar TLS 1.2 como parte de la solicitudThe language (and platform) used to make the HTTP call need to specify TLS 1.2 as part of the request
    • En función del lenguaje y la plataforma, la especificación de TLS se realiza de forma implícita o explícitaDepending on the language and platform, specifying TLS is done either implicitly or explicitly

En el caso de los usuarios de .NET, tenga en cuenta los procedimientos recomendados de Seguridad de la capa de transporte .For .NET users, consider the Transport Layer Security best practices .

AuthenticationAuthentication

Cuando se habla de autenticación, hay varias ideas equivocadas que son habituales.When discussing authentication, there are several common misconceptions. La autenticación y la autorización suelen confundirse.Authentication and authorization are often confused for one another. La identidad es también un componente importante de la seguridad.Identity is also a major component in security. Una identidad es una colección de información sobre una entidad de seguridad.An identity is a collection of information about a principal . Los proveedores de identidades (IdP) proporcionan identidades a los servicios de autenticación.Identity providers (IdP) provide identities to authentication services. La autenticación es el acto de comprobar la identidad de un usuario.Authentication is the act of verifying a user's identity. La autorización es la especificación de los privilegios y derechos de acceso a los recursos de una identidad determinada.Authorization is the specification of access rights and privileges to resources for a given identity. Varias de las ofertas de Cognitive Services incluyen el control de acceso basado en roles de Azure (Azure RBAC).Several of the Cognitive Services offerings, include Azure role-based access control (Azure RBAC). Azure RBAC se puede usar para simplificar una parte del ceremonial implicado en la administración manual de entidades de seguridad.Azure RBAC could be used to simplify some of the ceremony involved with manually managing principals. Para obtener más detalles, consulte Control de acceso basado en roles de Azure para recursos de Azure.For more details, see Azure role-based access control for Azure resources.

Para más información sobre la autenticación con claves de suscripción, tokens de acceso y Azure Active Directory (AAD), consulte Autenticación de solicitudes en Azure Cognitive Services.For more information on authentication with subscription keys, access tokens and Azure Active Directory (AAD), see authenticate requests to Azure Cognitive Services.

Configuración de las variables de entorno y de la aplicaciónEnvironment variables and application configuration

Las variables de entorno son pares nombre-valor que se almacenan en un entorno específico.Environment variables are name-value pairs, stored within a specific environment. Son una alternativa más segura al uso de valores codificados de forma rígida para datos confidenciales.A more secure alternative to using hardcoded values for sensitive data, is to use environment variables. Los valores codificados de forma rígida no son seguros y deben evitarse.Hardcoded values are insecure and should be avoided.

Precaución

No use valores codificados de forma rígida para datos confidenciales, ya que representa una importante vulnerabilidad de la seguridad.Do not use hardcoded values for sensitive data, doing so is a major security vulnerability.

Nota

Aunque las variables de entorno se almacenan en texto sin formato, están aisladas en un entorno.While environment variables are stored in plain text, they are isolated to an environment. Si un entorno está en peligro, también lo están sus variables.If an environment is compromised, so too are the variables with the environment.

Establecimiento de una variable de entornoSet environment variable

Para establecer las variables de entorno, use uno de los siguientes comandos (donde ENVIRONMENT_VARIABLE_KEY es la clave con nombre y value es el valor almacenado en la variable de entorno).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.

Cree y asigne una variable de entorno persistente según el valor.Create and assign persisted environment variable, given the value.

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

En una nueva instancia del símbolo del sistema, lea la variable de entorno.In a new instance of the Command Prompt, read the environment variable.

:: Prints the env var value
echo %ENVIRONMENT_VARIABLE_KEY%

Sugerencia

Después de establecer una variable de entorno, reinicie su entorno de desarrollo integrado (IDE) para asegurarse de que las variables de entorno recién agregadas están disponibles.After setting an environment variable, restart your integrated development environment (IDE) to ensure that newly added environment variables are available.

Obtención de una variable de entornoGet environment variable

Para obtener una variable de entorno, se debe leer en memoria.To get an environment variable, it must be read into memory. En función del lenguaje que se utilice, plantéese la posibilidad de usar los siguientes fragmentos de código.Depending on the language you're using, consider the following code snippets. Estos fragmentos de código muestran cómo obtener una variable de entorno dada la clave ENVIRONMENT_VARIABLE_KEY y asignarla a una variable denominada value.These code snippets demonstrate how to get environment variable given the ENVIRONMENT_VARIABLE_KEY and assign to a variable named value.

Para más información, consulte Environment.GetEnvironmentVariable .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");
    }
}

Caja de seguridad del clienteCustomer Lockbox

La Caja de seguridad del cliente de Microsoft Azure proporciona una interfaz para los clientes y así permitirles revisar y aprobar o rechazar las solicitudes de acceso de datos de cliente.Customer Lockbox for Microsoft Azure provides an interface for customers to review, and approve or reject customer data access requests. Se utiliza en casos donde un ingeniero de Microsoft necesita obtener acceso a los datos del cliente durante una solicitud de soporte técnico.It is used in cases where a Microsoft engineer needs to access customer data during a support request. En este artículo se indica la manera de iniciar, seguir y almacenar las solicitudes de la Caja de seguridad del cliente para realizar revisiones y auditorías posteriores; consulte Caja de seguridad del cliente.For information on how Customer Lockbox requests are initiated, tracked, and stored for later reviews and audits, see Customer Lockbox.

La Caja de seguridad del cliente está disponible para esta instancia de Cognitive Services:Customer Lockbox is available for this Cognitive Service:

  • TraductorTranslator

En cuanto a los siguientes servicios, los ingenieros de Microsoft no obtendrán acceso a los datos de clientes del nivel E0:For the following services, Microsoft engineers will not access any customer data in the E0 tier:

  • Language UnderstandingLanguage Understanding
  • CarasFace
  • Content ModeratorContent Moderator
  • PersonalizerPersonalizer

Importante

En el caso de Form Recognizer, los ingenieros de Microsoft no tendrán acceso a los datos de los clientes en los recursos creados después del 10 de julio de 2020.For Form Recognizer, Microsoft engineers will not access any customer data in resources created after July 10, 2020.

Para solicitar la capacidad de usar la SKU de E0, rellene y envíe este  formulario de solicitud.To request the ability to use the E0 SKU, fill out and submit this request Form. Tardará de tres a cinco días hábiles aproximadamente en recibir una respuesta sobre el estado de la solicitud.It will take approximately 3-5 business days to hear back on the status of your request. En función de la demanda, es posible que se coloque en una cola y se apruebe a medida que haya espacio disponible.Depending on demand, you may be placed in a queue and approved as space becomes available. Una vez aprobado el uso de E0 SKU con LUIS, deberá crear un nuevo recurso desde Azure Portal y seleccionar E0 como el plan de tarifa.Once approved for using the E0 SKU with LUIS, you'll need to create a new resource from the Azure portal and select E0 as the Pricing Tier. Los usuarios no podrán realizar la actualización de F0 a la nueva SKU de E0.Users won't be able to upgrade from the F0 to the new E0 SKU.

El servicio de voz no admite actualmente la Caja de seguridad del cliente.The Speech service doesn't currently support Customer Lockbox. Sin embargo, los datos del cliente se pueden almacenar con Traiga su propio almacenamiento (BYOS), lo que le permite lograr controles de datos similares para la Caja de seguridad del cliente.However, customer data can be stored using bring your own storage (BYOS), allowing you to achieve similar data controls to Customer Lockbox. Tenga en cuenta que los datos del servicio de voz permanecen y se procesan en la región en la que se creó el recurso de voz.Keep in mind that Speech service data stays and is processed in the region where the Speech resource was created. Esto se aplica a los datos en reposo y a los datos en tránsito.This applies to any data at rest and data in transit. Cuando se usan características de personalización, como el Habla personalizada y la Voz personalizada, todos los datos del cliente se transfieren, almacenan y procesan en la misma región donde residen el recurso de BYOS (si se usa) y el servicio de voz.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

Microsoft no usa los datos del cliente para mejorar sus modelos de voz.Microsoft does not use customer data to improve its Speech models. Además, si el registro de puntos de conexión está deshabilitado y no se usa ninguna personalización, no se almacenan los datos de clientes.Additionally, if endpoint logging is disabled and no customizations are used, then no customer data is stored.

Pasos siguientesNext steps