Azure Cognitive Services 보안Azure Cognitive Services security

모든 응용 프로그램을 개발할 때는 보안을 최우선 순위로 고려해 야 합니다.Security should be considered a top priority when developing any and all applications. 인공 지능을 사용 하는 응용 프로그램의 하기 시작 하면 보안은 훨씬 더 중요 합니다.With the onset of artificial intelligence enabled applications, security is even more important. 이 문서에서는 전송 계층 보안, 인증, 중요 한 데이터를 안전 하 게 구성 하는 방법, 고객 데이터 액세스를 위한 고객 Lockbox 등 Azure Cognitive Services 보안의 다양 한 측면을 간략하게 설명 합니다.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.

TLS(전송 계층 보안)Transport Layer Security (TLS)

HTTP를 통해 노출 되는 모든 Cognitive Services 끝점은 TLS 1.2을 적용 합니다.All of the Cognitive Services endpoints exposed over HTTP enforce TLS 1.2. 적용 되는 보안 프로토콜을 사용 하 여 Cognitive Services 끝점을 호출 하려는 소비자는 다음 지침을 준수 해야 합니다.With an enforced security protocol, consumers attempting to call a Cognitive Services endpoint should adhere to these guidelines:

  • 클라이언트 운영 체제 (OS)는 TLS 1.2를 지원 해야 합니다.The client Operating System (OS) needs to support TLS 1.2
  • HTTP 호출을 수행 하는 데 사용 되는 언어 (및 플랫폼)는 요청의 일부로 TLS 1.2을 지정 해야 합니다.The language (and platform) used to make the HTTP call need to specify TLS 1.2 as part of the request
    • 언어 및 플랫폼에 따라 TLS를 암시적으로 지정 하거나 명시적으로 지정 합니다.Depending on the language and platform, specifying TLS is done either implicitly or explicitly

.NET 사용자의 경우 전송 계층 보안 모범 사례 를 고려 합니다.For .NET users, consider the Transport Layer Security best practices .

인증Authentication

인증에 대해 논의할 때 몇 가지 일반적인 오해 있습니다.When discussing authentication, there are several common misconceptions. 인증 및 권한 부여는 서로 혼동 되는 경우가 많습니다.Authentication and authorization are often confused for one another. 또한 id는 보안의 주요 구성 요소입니다.Identity is also a major component in security. Id는 보안 주체 에 대 한 정보 컬렉션입니다.An identity is a collection of information about a principal . IdP (id 공급자)는 인증 서비스에 id를 제공 합니다.Identity providers (IdP) provide identities to authentication services. 인증은 사용자의 id를 확인 하는 동작입니다.Authentication is the act of verifying a user's identity. 권한 부여는 지정 된 id에 대 한 리소스에 대 한 액세스 권한 및 권한을 지정 하는 것입니다.Authorization is the specification of access rights and privileges to resources for a given identity. 몇 가지 Cognitive Services 제공에는 azure 역할 기반 access control (Azure RBAC)이 포함 되어 있습니다.Several of the Cognitive Services offerings, include Azure role-based access control (Azure RBAC). Azure RBAC는 수동으로 보안 주체를 관리 하는 것과 관련 된 일부 공식 절차를 간소화 하는 데 사용할 수 있습니다.Azure RBAC could be used to simplify some of the ceremony involved with manually managing principals. 자세한 내용은 azure 리소스에 대 한 azure 역할 기반 액세스 제어를 참조 하세요.For more details, see Azure role-based access control for Azure resources.

구독 키, 액세스 토큰 및 AAD (Azure Active Directory) 인증에 대 한 자세한 내용은 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.

환경 변수 및 응용 프로그램 구성Environment variables and application configuration

환경 변수는 특정 환경 내에 저장 된 이름-값 쌍입니다.Environment variables are name-value pairs, stored within a specific environment. 중요 한 데이터에 하드 코드 된 값을 사용 하는 대신 환경 변수를 사용 하는 것이 더 안전 합니다.A more secure alternative to using hardcoded values for sensitive data, is to use environment variables. 하드 코드 된 값은 안전 하지 않으므로 피해 야 합니다.Hardcoded values are insecure and should be avoided.

주의

중요 한 데이터에는 하드 코드 된 값을 사용 하지 마십시오 .이는 중요 한 보안 취약점입니다.Do not use hardcoded values for sensitive data, doing so is a major security vulnerability.

참고

환경 변수는 일반 텍스트로 저장 되지만 환경에 격리 됩니다.While environment variables are stored in plain text, they are isolated to an environment. 환경이 손상 된 경우에도 환경에서 변수를 사용할 수 있습니다.If an environment is compromised, so too are the variables with the environment.

환경 변수 설정Set environment variable

환경 변수를 설정 하려면 다음 명령 중 하나를 사용 합니다. 여기서은 ENVIRONMENT_VARIABLE_KEY 명명 된 키이 고 value 는 환경 변수에 저장 된 값입니다.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.

값이 지정 된 경우 지속형 환경 변수를 만들고 할당 합니다.Create and assign persisted environment variable, given the value.

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

명령 프롬프트 의 새 인스턴스에서 환경 변수를 읽습니다.In a new instance of the Command Prompt , read the environment variable.

:: Prints the env var value
echo %ENVIRONMENT_VARIABLE_KEY%

환경 변수를 설정한 후에는 IDE (통합 개발 환경)를 다시 시작 하 여 새로 추가 된 환경 변수를 사용할 수 있는지 확인 합니다.After setting an environment variable, restart your integrated development environment (IDE) to ensure that newly added environment variables are available.

환경 변수 가져오기Get environment variable

환경 변수를 가져오려면 메모리를 읽어야 합니다.To get an environment variable, it must be read into memory. 사용 중인 언어에 따라 다음 코드 조각을 고려 합니다.Depending on the language you're using, consider the following code snippets. 이러한 코드 조각은가 지정 된 환경 변수를 가져오고 이라는 변수에 할당 하는 방법을 보여 줍니다 ENVIRONMENT_VARIABLE_KEY value .These code snippets demonstrate how to get environment variable given the ENVIRONMENT_VARIABLE_KEY and assign to a variable named value.

자세한 내용은 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");
    }
}

고객 LockboxCustomer Lockbox

Microsoft Azure에 대 한 고객 Lockbox 고객 데이터 액세스 요청을 검토 하 고 승인 하거나 거부할 수 있는 인터페이스를 제공 합니다.Customer Lockbox for Microsoft Azure provides an interface for customers to review, and approve or reject customer data access requests. 지원 요청 시 Microsoft 엔지니어가 고객 데이터에 액세스해야 하는 경우에 사용됩니다.It is used in cases where a Microsoft engineer needs to access customer data during a support request. 이후 검토 및 감사를 위해 고객 Lockbox 요청을 시작, 추적 및 저장 하는 방법에 대 한 자세한 내용은 고객 Lockbox을 참조 하세요.For information on how Customer Lockbox requests are initiated, tracked, and stored for later reviews and audits, see Customer Lockbox.

이 인식 서비스에 대해 고객 Lockbox를 사용할 수 있습니다.Customer Lockbox is available for this Cognitive Service:

  • 변환기Translator

다음 서비스의 경우 Microsoft 엔지니어가 E0 계층의 고객 데이터에 액세스 하지 않습니다.For the following services, Microsoft engineers will not access any customer data in the E0 tier:

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

중요

양식 인식기 의 경우 Microsoft 엔지니어가 2020 년 7 월 10 일 이후에 생성 된 리소스에서 고객 데이터에 액세스 하지 않습니다.For Form Recognizer , Microsoft engineers will not access any customer data in resources created after July 10, 2020.

E0 SKU를 사용 하는 기능을 요청 하려면이 요청 양식을작성 하 고 제출 합니다.To request the ability to use the E0 SKU, fill out and submit this request Form. 요청 상태를 다시 들으려면 영업일 3-5 영업일이 소요 됩니다.It will take approximately 3-5 business days to hear back on the status of your request. 요청에 따라 큐에 배치 되 고 공간을 사용할 수 있게 되 면 승인 될 수 있습니다.Depending on demand, you may be placed in a queue and approved as space becomes available. LUIS에서 E0 SKU를 사용 하도록 승인 되 면 Azure Portal에서 새 리소스를 만들고이를 가격 책정 계층으로 선택 해야 합니다.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. 사용자는 F0에서 새 E0 SKU로 업그레이드할 수 없습니다.Users won't be able to upgrade from the F0 to the new E0 SKU.

음성 서비스는 현재 고객 Lockbox을 지원 하지 않습니다.The Speech service doesn't currently support Customer Lockbox. 그러나 사용자 고유의 저장소 (BYOS)를 사용 하 여 고객 데이터를 저장할 수 있으므로 사용자는 비슷한 데이터 컨트롤을 사용 하 여 고객 Lockbox 수 있습니다.However, customer data can be stored using bring your own storage (BYOS), allowing you to achieve similar data controls to Customer Lockbox. 음성 서비스 데이터는 음성 리소스가 생성 된 지역에서 유지 되 고 처리 됩니다.Keep in mind that Speech service data stays and is processed in the region where the Speech resource was created. 이는 미사용 데이터 및 전송 중인 데이터에 적용 됩니다.This applies to any data at rest and data in transit. 사용자 지정 기능을 사용 하는 경우 (예: Custom Speech 및 사용자 지정 음성) 모든 고객 데이터는 BYOS (사용 되는 경우) 및 음성 서비스 리소스가 있는 동일한 지역에서 전송, 저장 및 처리 됩니다.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.

중요

Microsoft 고객 데이터를 사용 하 여 음성 모델을 개선 하지 않습니다.Microsoft does not use customer data to improve its Speech models. 또한 끝점 로깅을 사용 하지 않도록 설정 하 고 사용자 지정을 사용 하지 않은 경우에는 고객 데이터가 저장 되지 않습니다.Additionally, if endpoint logging is disabled and no customizations are used, then no customer data is stored.

다음 단계Next steps