Azure 주요 자격 증명 모음을 사용한 확장 가능 키 관리 설정 단계Setup Steps for Extensible Key Management Using the Azure Key Vault

이 항목은 다음에 적용됩니다.예SQL Server(2008부터)아니요Azure SQL Database아니요Azure SQL Data Warehouse 아니요병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

다음 단계는 Azure 주요 자격 증명 모음용 SQL ServerSQL Server 커넥터 설치 및 구성을 안내합니다.The following steps walkthrough the installation and configuration of the SQL ServerSQL ServerConnector for Azure Key Vault.

시작하기 전에Before You Start

SQL Server에서 Azure 주요 자격 증명 모음을 사용하려면 몇 가지 필수 조건이 있습니다.To use Azure Key Vault with your SQL Server, there are a few prerequisites:

  • Azure 구독이 있어야 합니다.You must have an Azure subscription

  • 최신 Azure PowerShell (1.0.1 이상)을 설치하세요.Install the latest Azure PowerShell (1.0.1 or higher).

  • Azure Active Directory 만들기Create an Azure Active Directory

  • Azure 주요 자격 증명 모음을 사용한 확장 가능 키 관리 (SQL Server)를 검토하여 Azure 주요 자격 증명 모음을 사용하는 EKM 저장소의 보안 주체를 파악합니다.Familiarize yourself with the principals of EKM storage using the Azure Key Vault by reviewing Extensible Key Management Using Azure Key Vault (SQL Server).

  • 실행 중인 SQL Server 버전에 적절한 재배포 가능한 Visual Studio C++의 최신 버전이 설치되어 있는지 확인하세요.Have the appropriate version of the Visual Studio C++ redistributable installed based on the version of SQL Server that you are running:

SQL Server 버전SQL Server Version 재배포 가능 설치 링크Redistributable Install Link
2008, 2008 R2, 2012, 20142008, 2008 R2, 2012, 2014 Visual Studio 2013용 Visual C++ 재배포 가능 패키지Visual C++ Redistributable Packages for Visual Studio 2013
20162016 Visual Studio 2015용 Visual C++ 재배포 가능 패키지Visual C++ Redistributable for Visual Studio 2015

1부: Azure Active Directory 서비스 사용자 설정Part I: Set up an Azure Active Directory service principal

Azure 주요 자격 증명 모음에 SQL Server 액세스 권한을 부여하려면 AAD(Azure Active Directory)의 서비스 사용자 계정이 필요합니다.In order to grant SQL Server access permissions to your Azure Key Vault, you will need a Service Principal account in Azure Active Directory (AAD).

  1. Azure 클래식 포털로 이동하고 로그인합니다.Go to the Azure classic portal, and sign in.

  2. Azure Active Directory에 응용 프로그램을 등록합니다.Register an application with Azure Active Directory. 응용 프로그램 등록에 대한 자세한 단계별 지침은 Azure 주요 자격 증명 모음 블로그 게시물응용 프로그램의 ID 가져오기섹션을 참조하세요.For detailed step-by-step instructions to register an application, see the Get an identity for the application section of the Azure Key Vault blog post.

  3. 클라이언트 ID클라이언트 암호 를 복사하여 이후 단계에서 주요 자격 증명 모음에 대한 SQL ServerSQL Server 액세스 권한을 부여하는 데 사용합니다.Copy the Client ID and Client Secret for a later step, where they will be used to grant SQL ServerSQL Server access to your key vault.

    ekm-client-idekm-client-id

    ekm-key-idekm-key-id

2부: 주요 자격 증명 모음 및 키 만들기Part II: Create a Key Vault and Key

여기에서 만드는 주요 자격 증명 모음 및 키는 암호화 키 보호에 대해 SQL Server 데이터베이스 엔진에서 사용됩니다.The key vault and key created here will be used by the SQL Server Database Engine for encryption key protection.

중요

주요 자격 증명 모음이 생성되는 구독은 Azure Active Directory 서비스 사용자가 생성된 동일한 기본 Azure Active Directory에 있어야 합니다.The subscription where the key vault is created must be in the same default Azure Active Directory where the Azure Active Directory service principal was created. SQL Server 커넥터에 대한 서비스 보안 주체를 만들기 위한 기본 Active Directory가 아닌 다른 Active Directory를 사용하려는 경우 사용자 키 자격 증명 모음을 만들기 전에 Azure 계정에 기본 Active Directory를 변경해야 합니다.If you want to use an Active Directory other than your default Active Directory for creating a service principal for the SQL Server Connector, you must change the default Active Directory in your Azure account before creating your key vault. 사용할 디렉터리로 기본 Active Directory를 변경하는 방법을 알아보려면 SQL Server 커넥터 FAQ를 참조하세요.To learn how to change the default Active Directory to the one you'd like to use, please refer to the SQL Server Connector FAQs.

  1. PowerShell 열기 및 로그인Open PowerShell and Sign in

    최신 Azure PowerShell (1.0.1 이상)을 설치하고 시작합니다.Install and start the latest Azure PowerShell (1.0.1 or higher). 다음 명령을 사용하여 Azure 계정에 로그인합니다.Sign in to your Azure account with the following command:

    Login-AzureRmAccount  
    

    문은 다음을 반환합니다.The statement returns:

    Environment           : AzureCloud  
    Account               : <account_name>  
    TenantId              : <tenant_id>  
    SubscriptionId        : <subscription_id>  
    CurrentStorageAccount :  
    

    참고

    구독이 여러 개 있는 상황에서 자격 증명 모음에 특정 구독 하나만 사용하도록 지정하려면 Get-AzureRmSubscription 을 사용하여 구독을 표시하고, Select-AzureRmSubscription 을 사용하여 올바른 구독을 선택합니다.If you have multiple subscriptions and want to specify a specific one to use for the vault, then use Get-AzureRmSubscription to see the subscriptions and Select-AzureRmSubscription to choose the correct subscription. 그러지 않으면 PowerShell에서 기본적으로 구독을 하나 선택합니다.Otherwise, PowerShell will select one for you by default.

  2. 새 리소스 그룹 만들기Create a new resource group

    Azure Resource Manager를 통해 생성된 모든 Azure 리소스는 리소스 그룹에 포함되어야 합니다.All Azure resources created via Azure Resource Manager must be contained in resource groups. 주요 자격 증명 모음을 보관하는 리소스 그룹을 만듭니다.Create a resource group to house your key vault. 이 예에서는 ContosoDevRG를 사용합니다.This example uses ContosoDevRG. 모든 주요 자격 증명 모음 이름은 전역적으로 고유하므로 고유한 리소스 그룹 및 주요 자격 증명 모음 이름을 선택합니다.Choose your own unique resource group and key vault name as all key vault names are globally unique.

    New-AzureRmResourceGroup -Name ContosoDevRG -Location 'East Asia'  
    

    문은 다음을 반환합니다.The statement returns:

    ResourceGroupName: ContosoDevRG  
    Location         : eastasia  
    ProvisioningState: Succeeded  
    Tags             :   
    ResourceId       : /subscriptions/<subscription_id>/  
                        resourceGroups/ContosoDevRG  
    

    참고

    -Location parameter의 경우 Get-AzureLocation 명령을 사용하여 이 예제의 리소스 그룹에 대체 위치를 지정하는 방법을 확인합니다.For the -Location parameter, use the command Get-AzureLocation to identify how to specify an alternative location to the one in this example. 자세한 내용을 보려면 다음을 입력합니다. Get-Help Get-AzureLocationIf you need more information, type: Get-Help Get-AzureLocation

  3. 주요 자격 증명 모음 만들기Create a Key Vault

    New-AzureRmKeyVault cmdlet에는 리소스 그룹 이름, 주요 자격 증명 모음 이름, 지리적 위치가 필요합니다.The New-AzureRmKeyVault cmdlet requires a resource group name, a key vault name, and a geographic location. 예를 들어 ContosoDevKeyVault라고 이름이 지정된 주요 자격 증명 모음의 경우 다음을 입력합니다.For example, for a key vault named ContosoDevKeyVault, type:

    New-AzureRmKeyVault -VaultName 'ContosoDevKeyVault' `  
       -ResourceGroupName 'ContosoDevRG' -Location 'East Asia'  
    

    주요 자격 증명 모음의 이름을 기록합니다.Record the name of your key vault.

    문은 다음을 반환합니다.The statement returns:

    Vault Name                       : ContosoDevKeyVault  
    Resource Group Name              : ContosoDevRG  
    Location                         : East Asia  
    ResourceId                       : /subscriptions/<subscription_id>/  
                                        resourceGroups/ContosoDevRG/providers/  
                                        Microsoft/KeyVault/vaults/ContosoDevKeyVault  
    Vault URI: https://ContosoDevKeyVault.vault.azure.net  
    Tenant ID                        : <tenant_id>  
    SKU                              : Standard  
    Enabled For Deployment?          : False  
    Enabled For Template Deployment? : False  
    Enabled For Disk Encryption?     : False  
    Access Policies                  :  
             Tenant ID              : <tenant_id>  
             Object ID              : <object_id>  
             Application ID         :   
             Display Name           : <display_name>  
             Permissions to Keys    : get, create, delete, list, update, import,   
                                      backup, restore  
             Permissions to Secrets : all  
    Tags                             :  
    
  4. Azure Active Directory 서비스 사용자가 주요 자격 증명 모음에 액세스할 수 있는 권한 부여Grant Permission for the Azure Active Directory Service Principal to Access the Key Vault

    다른 사용자 및 응용 프로그램이 사용자의 주요 자격 증명 모음을 사용하도록 권한을 부여할 수 있습니다.You can authorize other users and applications to use your key vault.
    이 경우 1부에서 만든 Azure Active Directory 서비스 사용자를 사용하여 SQL ServerSQL Server 인스턴스에 권한을 부여해 봅시다.In this case, let’s use the Azure Active Directory service principal created in Part I to authorize the SQL ServerSQL Server instance.

    중요

    Azure Active Directory 서비스 사용자는 주요 자격 증명 모음에 대해 적어도 get, list, wrapKeyunwrapKey 권한이 있어야 합니다.The Azure Active Directory service principal must have at least the get, list, wrapKey, and unwrapKey permissions for the key vault.

    아래와 같이 매개 변수에 대해 1부의 클라이언트 ID ServicePrincipalName 를 사용합니다.As shown below, use the Client ID from Part I for the ServicePrincipalName parameter. 성공적으로 실행되는 경우 Set-AzureRmKeyVaultAccessPolicy 가 출력 없이 자동으로 실행됩니다.The Set-AzureRmKeyVaultAccessPolicy runs silently with no output if it runs successfully.

    Set-AzureRmKeyVaultAccessPolicy -VaultName 'ContosoDevKeyVault'`  
      -ServicePrincipalName EF5C8E09-4D2A-4A76-9998-D93440D8115D `  
      -PermissionsToKeys get, list, wrapKey, unwrapKey  
    

    Get-AzureRmKeyVault cmdlet을 호출하여 권한을 확인합니다.Call the Get-AzureRmKeyVault cmdlet to confirm the permissions. '액세스 정책' 아래의 문 출력에 이 주요 자격 증명 모음에 대한 액세스 권한이 다른 테넌트로 나열되는 AAD 응용 프로그램 이름이 표시되어야 합니다.In the statement output under ‘Access Policies,’ you should see your AAD application name listed as another tenant that has access to this key vault.

  5. 주요 자격 증명 모음에서 비대칭 키 생성Generate an Asymmetric Key in the Key Vault

    Azure Key Vault에서 키를 생성하는 방법은 두 가지입니다. 1) 기존 키 가져오기 또는 2) 새 키 만들기There are two ways to generate a key in Azure Key Vault: 1) Import an existing key or 2) create a new key.

    최선의 구현 방법:Best Practice:

    빠른 키 복구를 보장하고 Azure 외부의 데이터에 액세스하려면 다음 모범 사례를 권장합니다.To ensure quick key recovery and be able to access your data outside of Azure, we recommend the following best practice:

    1. 로컬 HSM 장치에 암호화 키를 로컬로 만듭니다.Create your encryption key locally on a local HSM device. (이 키는 Azure Key Vault에 저장할 수 있도록 비대칭, RSA 2048 키여야 합니다.)(Make sure this is an asymmetric, RSA 2048 key so it's storable in Azure Key Vault.)
    2. Azure Key Vault에 암호화 키를 가져옵니다.Import the encryption key to Azure Key Vault. 작업을 수행하는 방법은 다음 단계를 참조하세요.See the steps below for how to do that.
    3. Azure Key Vault에 키를 처음 사용하는 경우 먼저 Azure Key Vault 키 백업을 수행합니다.Before using the key in Azure Key Vault for the first time, take an Azure Key Vault key backup. 백업-AzureKeyVaultKey 명령에 대해 알아 봅니다.Learn more about the Backup-AzureKeyVaultKey command.
    4. 키에 대한 어떤 변경이 발생할 때마다 (예: ACLs 추가, 태그 추가, 키 특성 추가) 또 다른 Azure Key Vault 키 백업을 수행해야 합니다.Whenever any changes are made to the key (e.g. add ACLs, add tags, add key attributes), be sure to take another Azure Key Vault key backup.

      참고

      키 백업 작업은 장소에 상관없이 저장할 수 있는 파일을 반환하는 Azure Key Vault 키 작업입니다.Backing up a key is an Azure Key Vault key operation which returns a file that can be saved anywhere."

    키의 유형:Types of keys:

    Azure 주요 자격 증명 모음에서 생성할 수 있는 키는 두 가지 유형입니다.There are two types of keys you can generate in Azure Key Vault. 둘 다 비대칭 2048비트 RSA 키입니다.Both are asymmetric 2048-bit RSA keys.

    • 소프트웨어 보호: 소프트웨어에서 처리되고 안전하게 암호화됩니다.Software-protected: Processed in software and encrypted at rest. 소프트웨어 보호된 키에 대한 작업은 Azure 가상 컴퓨터에서 발생합니다.Operations on software-protected keys occur on Azure Virtual Machines. 프로덕션 배포에 사용되지 않는 키의 경우 추천됩니다.Recommended for keys not used in a production deployment.

    • HSM 보호: 추가 보안을 위해 HSM(하드웨어 보안 모듈)에서 생성하고 보호합니다.HSM-protected: Created and protected by a hardware security module (HSM) for additional security. 비용은 키 버전당 약 1달러입니다.Costs about $1 per key version.

      중요

      SQL Server 커넥터는 “a-z”, “A-Z”, “0-9” 및 “-” 문자만 키 이름에 사용할 수 있으며, 키 이름은 26자로 제한됩니다.The SQL Server Connector requires the key name to only use the characters “a-z”, “A-Z”, “0-9”, and “-“, with a 26-character limit.
      Azure 주요 자격 증명 모음에서 동일한 키 이름의 여러 키 버전은 SQL ServerSQL Server 커넥터와 함께 작동되지 않습니다.Different key versions under the same key name in Azure Key Vault will not work with SQL ServerSQL Server Connector. SQL ServerSQL Server에서 사용하는 Azure 주요 자격 증명 모음을 회전하려면 [SQL Server 커넥터 유지 관리 및 문제 해결](../../../relational-databases/security/encryption/sql-server-connector-maintenance-troubleshooting.md)에서 키 롤오버 단계를 참조하세요.To rotate an Azure Key Vault key that’s being used by SQL ServerSQL Server, please refer to the Key Rollover steps in the SQL Server Connector Maintenance & Troubleshooting.

    기존 키 가져오기Import an Existing Key

    기존 2048비트 RSA 소프트웨어 보호된 키가 있는 경우 키를 Azure Key Vault에 업로드할 수 있습니다.If you have an existing 2048-bit RSA software-protected key, you can upload the key to Azure Key Vault. 예를 들어 C:\\ 드라이브에 저장된 .PFX 파일(이름: softkey.pfx )이 있고 Azure Key Vault에 업로드하려는 경우에는 다음을 입력하여 .PFX 파일에 securepfxpwd 의 암호에 대한 12987553 변수를 설정합니다.For example, if you had a .PFX file saved to your C:\\ drive in a file named softkey.pfx that you want to upload to Azure Key Vault, type the following to set the variable securepfxpwd for a password of 12987553 for the .PFX file:

    $securepfxpwd = ConvertTo-SecureString –String '12987553' `  
      –AsPlainText –Force  
    

    다음을 입력하여 .PFX 파일에서 키를 가져올 수 있습니다. 이렇게 하면 Key Vault 서비스에서 하드웨어(권장)로부터 키가 보호됩니다.Then you can type the following to import the key from the .PFX file, which protects the key by hardware (recommended) in the Key Vault service:

        Add-AzureKeyVaultKey -VaultName 'ContosoKeyVault' `  
          -Name 'ContosoFirstKey' -KeyFilePath 'c:\softkey.pfx' `  
          -KeyFilePassword $securepfxpwd $securepfxpwd  -Destination 'HSM'  
    

    중요

    비대칭 키를 가져오면 관리자가 키 에스크로 시스템에 키를 위탁할 수 있으므로 비대칭 키를 가져오는 것은 프로덕션 시나리오에 매우 좋습니다.Importing the asymmetric key is highly recommended for production scenarios because it allows the administrator to escrow the key in a key escrow system. 개인 키는 자격 증명 모음을 벗어날 수 없으므로 비대칭 키를 자격 증명 모음에서 만든 경우에는 키를 위탁할 수 없습니다.If the asymmetric key is created in the vault, it cannot be escrowed because the private key can never leave the vault. 중요한 데이터를 보호하는 데 사용되는 키는 위탁해야 합니다.Keys used to protect critical data should be escrowed. 비대칭 키가 손실되는 경우 데이터를 영구적으로 복구할 수 없습니다.The loss of an asymmetric key will result in permanently unrecoverable data.

    새 키 만들기Create a new key

    예:Example:

    원하는 경우 Azure Key Vault에 직접 새 암호화 키를 만들고 소프트웨어 보호 또는 HSM 보호를 설정할 수 있습니다.If you'd like, you can create a new encryption key directly in Azure Key vault and have it be either software-protected or HSM-protected. 이 예제에서는 Add-AzureKeyVaultKey cmdlet을 사용하여 소프트웨어 보호된 키를 만들어 봅시다.In this example, let’s create a software-protected key using the Add-AzureKeyVaultKey cmdlet:

    Add-AzureKeyVaultKey -VaultName 'ContosoDevKeyVault' `  
      -Name 'ContosoRSAKey0' -Destination 'Software'  
    

    문은 다음을 반환합니다.The statement returns:

    Attributes : Microsoft.Azure.Commands.KeyVault.Models.KeyAttributes  
    Key        :  {"kid":"https:contosodevKeyVault.azure.net/keys/  
                   ContosoRSAKey0/<guid>","dty":"RSA:,"key_ops": ...  
    VaultName  : contosodevkeyvault  
    Name       : contosoRSAKey0  
    Version    : <guid>  
    Id         : https://contosodevkeyvault.vault.azure.net:443/  
                 keys/ContosoRSAKey0/<guid>  
    

    중요

    주요 자격 증명 모음은 동일한 이름이 지정된 키의 여러 버전을 지원하지만 SQL ServerSQL Server 커넥터에서 사용할 키는 버전이 지정되거나 여기저기 사용해서는 안 됩니다.The key vault supports multiple versions of the same named key, but keys to be used by SQL ServerSQL Server Connector should not be versioned or rolled. 관리자가 SQL ServerSQL Server 암호화에 사용된 키를 다른 곳에 사용하려는 경우, 자격 증명 모음에서 다른 이름으로 새 키를 만들어 DEK를 암호화하는 데 사용해야 합니다.If the administrator wants to roll the key used for SQL ServerSQL Server encryption, a new key with a different name should be created in the vault and used to encrypt the DEK.

3부: SQL ServerSQL Server 커넥터 설치Part III: Install the SQL ServerSQL Server Connector

Microsoft 다운로드 센터에서 SQL Server 커넥터를 다운로드합니다.Download the SQL Server Connector from the Microsoft Download Center. 이 작업은 SQL ServerSQL Server 컴퓨터의 관리자가 수행해야 합니다.(This should be done by the administrator of the SQL ServerSQL Server computer.)

참고

1.0.0.440 및 이전 버전은 대체되었으며 프로덕션 환경에서 더 이상 지원되지 않습니다.Versions 1.0.0.440 and older have been replaced and are no longer supported in production environments. Microsoft 다운로드 센터를 방문하고 "SQL Server 커넥터 업그레이드"의 SQL Server 커넥터 유지 관리 및 문제 해결 페이지에 있는 지침을 사용하여 1.0.1.0 또는 이후 버전으로 업그레이드하세요.Upgrade to version 1.0.1.0 or later by visiting the Microsoft Download Center and using the instructions on the SQL Server Connector Maintenance & Troubleshooting page under “Upgrade of SQL Server Connector.”

ekm-connector-installekm-connector-install

기본적으로 커넥터는 C:\Program Files\SQL Server Connector for Microsoft Azure 주요 자격 증명 모음에 설치됩니다.By default, the connector installs at C:\Program Files\SQL Server Connector for Microsoft Azure Key Vault. 이 위치는 설치 중 변경할 수 있습니다.This location can be changed during setup. (변경할 경우 아래의 스크립트를 조정하세요.)(If changed, adjust the scripts below.)

커넥터에 대한 인터페이스가 없는데도 성공적으로 설치되는 경우에는 컴퓨터에 Microsoft.AzureKeyVaultService.EKM.dll 이 설치되어 있기 때문입니다.There is no interface for the Connector, but if it is installed successfully, the Microsoft.AzureKeyVaultService.EKM.dll is installed on the machine. 이것은 SQL ServerSQL Server 문을 사용하여 CREATE CRYPTOGRAPHIC PROVIDER 에 등록해야 하는 암호화 EKM 공급자 DLL입니다.This is the cryptographic EKM provider DLL that needs to be registered with SQL ServerSQL Server by using the CREATE CRYPTOGRAPHIC PROVIDER statement.

SQL Server 커넥터를 설치하면 원할 경우 SQL Server 암호화를 위한 샘플 스크립트를 다운로드할 수도 있습니다.The SQL Server Connector installation also allows you to optionally download sample scripts for SQL Server encryption.

SQL Server 커넥터에 대한 오류 코드 설명, 구성 설정 또는 유지 관리 작업을 보려면 이 항목의 맨 아래에 있는 부록을 참조하세요.To view error code explanations, configuration settings, or maintenance tasks for SQL Server Connector, visit the appendix at the bottom of this topic:

4부: 구성 SQL ServerSQL ServerPart IV: Configure SQL ServerSQL Server

이 섹션의 각 작업에 필요한 최소 권한 수준에 대한 정보를 보려면 B. 질문과 대답 을 참조하세요.Please refer to B. Frequently Asked Questions to see a note about the minimum permission levels needed for each action in this section.

  1. sqlcmd.exe 또는 SQL ServerSQL Server Management Studio 실행Launch sqlcmd.exe or SQL ServerSQL Server Management Studio

  2. SQL ServerSQL Server 을(를) 구성하여 EKM 사용Configure SQL ServerSQL Server to use EKM

    다음 Transact-SQLTransact-SQL 스크립트를 실행하여 데이터베이스 엔진Database Engine 을(를) 구성하고 EKM 공급자를 사용합니다.Execute the following Transact-SQLTransact-SQL script to configure the 데이터베이스 엔진Database Engine to use an EKM provider.

    -- Enable advanced options.  
    USE master;  
    GO  
    
    sp_configure 'show advanced options', 1;  
    GO  
    RECONFIGURE;  
    GO  
    
    -- Enable EKM provider  
    sp_configure 'EKM provider enabled', 1;  
    GO  
    RECONFIGURE;  
    
  3. EKM 공급자로 SQL ServerSQL Server 커넥터 등록(만들기) SQL ServerSQL ServerRegister (create) the SQL ServerSQL Server Connector as an EKM provider with SQL ServerSQL Server

    -- Azure 주요 자격 증명 모음에 대한 EKM 공급자인 SQL ServerSQL Server 커넥터를 사용하여 암호화 공급자를 만듭니다.-- Create a cryptographic provider, using the SQL ServerSQL Server Connector which is an EKM provider for the Azure Key Vault.
    이 예제에서는 AzureKeyVault_EKM_Prov이름을 사용합니다.This example uses the name AzureKeyVault_EKM_Prov.

    CREATE CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM_Prov   
    FROM FILE = 'C:\Program Files\SQL Server Connector for Microsoft Azure Key Vault\Microsoft.AzureKeyVaultService.EKM.dll';  
    GO  
    

    참고

    파일 경로 길이는 256자를 초과할 수 없습니다.The file path length cannot exceed 256 characters.

  4. 주요 자격 증명 모음을 사용하기 위해 SQL ServerSQL Server 로그인에 대해 SQL ServerSQL Server 자격 증명 설정Setup a SQL ServerSQL Server credential for a SQL ServerSQL Server login to use the key vault

    주요 자격 증명 모음에서 키를 사용하여 암호화를 수행할 각 로그인에 자격 증명을 추가해야 합니다.A credential must be added to each login that will be performing encryption using a key from the Key Vault. 여기에는 다음이 포함될 수 있습니다.This might include:

    • SQL ServerSQL Server 암호화 시나리오를 설정하고 관리하기 위해 주요 자격 증명 모음을 사용할 SQL ServerSQL Server 관리자 로그인A SQL ServerSQL Server administrator login who will use key vault in order to setup and manage SQL ServerSQL Server encryption scenarios.

    • TDE(투명한 데이터 암호화)를 사용하도록 설정할 수 있는 기타 SQL ServerSQL Server 로그인 또는 기타 SQL ServerSQL Server 암호화 기능Other SQL ServerSQL Server logins who might enable Transparent Data Encryption (TDE), or other SQL ServerSQL Server encryption features.

      자격 증명과 로그인은 일대일로 매핑됩니다.There is one-to-one mapping between credentials and logins. 즉 각 로그인에는 고유한 자격 증명이 있어야 합니다.That is, each login must have a unique credential.

      다음과 같이 아래 Transact-SQLTransact-SQL 스크립트를 수정합니다.Modify the Transact-SQLTransact-SQL script below in the following ways:

    • Azure Key Vault를 가리키도록 IDENTITY 인수(ContosoDevKeyVault)를 편집합니다.Edit the IDENTITY argument (ContosoDevKeyVault) to point to your Azure Key Vault.

      • 공용 Azure를 사용하는 경우 IDENTITY 인수를 파트 2의 Azure Key Vault 이름으로 바꿉니다.If you're using public Azure, replace the IDENTITY argument with the name of your Azure Key Vault from Part II.
      • 사설 Azure 클라우드 (예:If you're using a private Azure cloud (ex. Azure Government, Azure China 또는 Azure Germany)를 사용하는 경우는 IDENTITY 인수를 파트 2의 3단계에서 반환된 자격 증명 모음 URI로 바꿉니다.Azure Government, Azure China, or Azure Germany), replace the IDENTITY argument with the Vault URI that is returned in Part II, step 3. 자격 증명 모음 URI에 "https://"를 포함하지 마세요.Do not include "https://" in the Vault URI.
    • SECRET 인수의 첫 번째 부분을 1부의 Azure Active Directory 클라이언트 ID 로 바꿉니다. 이 예제에서 클라이언트 IDEF5C8E094D2A4A769998D93440D8115D입니다.Replace the first part of the SECRET argument with the Azure Active Directory Client ID from Part I. In this example, the Client ID is EF5C8E094D2A4A769998D93440D8115D.

      중요

      클라이언트 ID에서 하이픈을 제거해야 합니다.You must remove the hyphens from the Client ID.

    • SECRET 인수의 두 번째 부분을 파트 1의 클라이언트 암호 를 사용하여 완성합니다. 이 예제에서 파트 1의 클라이언트 암호Replace-With-AAD-Client-Secret입니다.Complete the second part of the SECRET argument with Client Secret from Part I. In this example the Client Secret from Part 1 is Replace-With-AAD-Client-Secret. SECRET 인수의 최종 문자열은 하이픈 없는 문자 및 숫자의 긴 시퀀스가 됩니다.The final string for the SECRET argument will be a long sequence of letters and numbers, with no hyphens.

    USE master;  
    CREATE CREDENTIAL sysadmin_ekm_cred   
        WITH IDENTITY = 'ContosoDevKeyVault', -- for public Azure
        -- WITH IDENTITY = 'ContosoDevKeyVault.vault.usgovcloudapi.net', -- for Azure Government
        -- WITH IDENTITY = 'ContosoDevKeyVault.vault.azure.cn', -- for Azure China
        -- WITH IDENTITY = 'ContosoDevKeyVault.vault.microsoftazure.de', -- for Azure Germany   
        SECRET = 'EF5C8E094D2A4A769998D93440D8115DReplace-With-AAD-Client-Secret'   
    FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM_Prov;  
    
    -- Add the credential to the SQL Server administrator's domain login   
    ALTER LOGIN [<domain>\<login>]  
    ADD CREDENTIAL sysadmin_ekm_cred;  
    

    CREATE CREDENTIAL 인수에 대한 변수 사용과 클라이언트 ID에서 하이픈을 프로그래밍 방식으로 제거하는 예는 CREATE CREDENTIAL (Transact-SQL)을 참조하세요.For an example of using variables for the CREATE CREDENTIAL arguments and programmatically removing the hyphens from the Client ID, see CREATE CREDENTIAL (Transact-SQL).

  5. Azure 주요 자격 증명 모음 키 열기 SQL ServerSQL ServerOpen your Azure Key Vault key in SQL ServerSQL Server

    2부에 설명한 대로 비대칭 키를 가져온 경우 다음 Transact-SQLTransact-SQL 스크립트에서 키 이름을 제공하여 키를 엽니다.If you imported an asymmetric key as described in Part II, open the key by providing your key name in the following Transact-SQLTransact-SQL script.

    • CONTOSO_KEYSQL ServerSQL Server에서 사용할 키 이름으로 바꿉니다.Replace CONTOSO_KEY with the name you’d like the key to have in SQL ServerSQL Server.

    • ContosoRSAKey0 을 Azure 주요 자격 증명 모음의 키 이름으로 바꿉니다.Replace ContosoRSAKey0 with the name of your key in Azure Key Vault.

    CREATE ASYMMETRIC KEY CONTOSO_KEY   
    FROM PROVIDER [AzureKeyVault_EKM_Prov]  
    WITH PROVIDER_KEY_NAME = 'ContosoRSAKey0',  
    CREATION_DISPOSITION = OPEN_EXISTING;  
    

    다음 단계Next Step

이제 기본 구성을 완료했으므로 SQL 암호화 기능을 통해 SQL Server 커넥터 사용방법을 참조하세요.Now that you have completed the basic configuration, see how to Use SQL Server Connector with SQL Encryption Features

참고 항목See Also

Azure 키 자격 증명 모음을 사용한 확장 가능 키 관리 Extensible Key Management Using Azure Key Vault
SQL Server 커넥터 유지 관리 및 문제 해결SQL Server Connector Maintenance & Troubleshooting