Azure Data Lake Storage Gen1의 데이터 암호화Encryption of data in Azure Data Lake Storage Gen1

Azure Data Lake Storage Gen1의 암호화를 통해 데이터를 보고하고 엔터프라이즈 보안 정책을 구현하고 규정 준수 요구 사항을 충족할 수 있습니다.Encryption in Azure Data Lake Storage Gen1 helps you protect your data, implement enterprise security policies, and meet regulatory compliance requirements. 이 문서에서는 디자인 개요를 제공하고 구현의 일부 기술적인 측면을 설명합니다.This article provides an overview of the design, and discusses some of the technical aspects of implementation.

Data Lake Storage Gen1은 미사용 또는 전송 중인 데이터의 암호화를 지원합니다.Data Lake Storage Gen1 supports encryption of data both at rest and in transit. Data Lake Storage Gen1은 미사용 데이터에 대해 기본적으로 투명한 암호화를 지원합니다.For data at rest, Data Lake Storage Gen1 supports "on by default," transparent encryption. 이러한 용어의 의미를 좀 더 자세히 알아보겠습니다.Here is what these terms mean in a bit more detail:

  • 기본적으로: 새 Data Lake Storage Gen1 계정을 만들 때 암호화를 사용하는 것이 기본 설정입니다.On by default: When you create a new Data Lake Storage Gen1 account, the default setting enables encryption. 따라서 Data Lake Storage Gen1에 저장되는 데이터는 영구 미디어에 저장되기 전에 항상 암호화됩니다.Thereafter, data that is stored in Data Lake Storage Gen1 is always encrypted prior to storing on persistent media. 이것은 모든 데이터에 적용되는 동작이며 계정을 만든 후 변경할 수 없습니다.This is the behavior for all data, and it cannot be changed after an account is created.
  • 투명한: Data Lake Storage Gen1은 영구 미디어에 저장하기 전에 자동으로 데이터를 암호화하고 검색하기 전에 데이터를 해독합니다.Transparent: Data Lake Storage Gen1 automatically encrypts data prior to persisting, and decrypts data prior to retrieval. 암호화는 Data Lake Storage Gen1 계정 수준에서 관리자에 의해 구성 및 관리됩니다.The encryption is configured and managed at the Data Lake Storage Gen1 account level by an administrator. 데이터 액세스 API는 변경되지 않습니다.No changes are made to the data access APIs. 따라서 암호화 때문에 Data Lake Storage Gen1과 상호 작용하는 애플리케이션 및 서비스를 변경할 필요가 없습니다.Thus, no changes are required in applications and services that interact with Data Lake Storage Gen1 because of encryption.

전송되는 데이터(즉, 동작 중인 데이터)는 항상 Data Lake Storage Gen1에서 암호화됩니다.Data in transit (also known as data in motion) is also always encrypted in Data Lake Storage Gen1. 영구 미디어에 저장하기 전에 데이터를 암호화하는 것 외에도 HTTPS를 사용하여 전송 중 데이터를 항상 안전하게 보호합니다.In addition to encrypting data prior to storing to persistent media, the data is also always secured in transit by using HTTPS. HTTPS는 Data Lake Storage Gen1 REST 인터페이스에 지원되는 유일한 프로토콜입니다.HTTPS is the only protocol that is supported for the Data Lake Storage Gen1 REST interfaces. 다음 다이어그램에서는 Data Lake Storage Gen1에서 데이터가 암호화되는 방법을 보여줍니다.The following diagram shows how data becomes encrypted in Data Lake Storage Gen1:

Data Lake Storage Gen1의 데이터 암호화 다이어그램

Data Lake Storage Gen1을 사용하여 암호화 설정Set up encryption with Data Lake Storage Gen1

Data Lake Storage Gen1 암호화는 계정을 만드는 동안 설정되며, 항상 기본적으로 사용됩니다.Encryption for Data Lake Storage Gen1 is set up during account creation, and it is always enabled by default. 사용자가 직접 키를 관리하거나 Data Lake Storage Gen1에서 관리하도록 허용(기본값)할 수 있습니다.You can either manage the keys yourself, or allow Data Lake Storage Gen1 to manage them for you (this is the default).

자세한 내용은 시작을 참조하세요.For more information, see Getting started.

Data Lake Storage Gen1에서 암호화가 작동하는 방법How encryption works in Data Lake Storage Gen1

다음 정보에서는 마스터 암호화 키를 관리하는 방법을 설명하고 Data Lake Storage Gen1의 데이터 암호화에서 사용할 수 있는 세 가지 종류의 키에 대해 설명합니다.The following information covers how to manage master encryption keys, and it explains the three different types of keys you can use in data encryption for Data Lake Storage Gen1.

마스터 암호화 키Master encryption keys

Data Lake Storage Gen1은 MEK(마스터 암호화 키)를 관리하는 두 가지 모드를 제공합니다.Data Lake Storage Gen1 provides two modes for management of master encryption keys (MEKs). 지금은 마스터 암호화 키가 최상위 수준 키라고 가정하겠습니다.For now, assume that the master encryption key is the top-level key. Data Lake Storage Gen1에 저장된 데이터를 해독하려면 마스터 암호화 키 액세스 권한이 필요합니다.Access to the master encryption key is required to decrypt any data stored in Data Lake Storage Gen1.

마스터 암호화 키를 관리하기 두 가지 모드는 다음과 같습니다.The two modes for managing the master encryption key are as follows:

  • 서비스 관리 키Service managed keys
  • 고객 관리 키Customer managed keys

두 모드에서 마스터 암호화 키는 Azure Key Vault에 저장하여 보호됩니다.In both modes, the master encryption key is secured by storing it in Azure Key Vault. Key Vault는 Azure에서 완벽하게 관리되는 매우 안전한 서비스로 암호화 키를 보호하는 데 사용할 수 있습니다.Key Vault is a fully managed, highly secure service on Azure that can be used to safeguard cryptographic keys. 자세한 내용은 Key Vault를 참조하세요.For more information, see Key Vault.

다음은 두 MEK 관리 모드에서 제공하는 기능을 간략히 비교한 것입니다.Here is a brief comparison of capabilities provided by the two modes of managing the MEKs.

질문Question 서비스 관리 키Service managed keys 고객 관리 키Customer managed keys
데이터가 어떻게 저장되나요?How is data stored? 저장하기 전에 항상 암호화됩니다.Always encrypted prior to being stored. 저장하기 전에 항상 암호화됩니다.Always encrypted prior to being stored.
마스터 암호화 키가 어디에 저장되나요?Where is the Master Encryption Key stored? Key VaultKey Vault Key VaultKey Vault
Key Vault 외부에 저장되는 암호화 키가 있나요?Are any encryption keys stored in the clear outside of Key Vault? No 아니요No
Key Vault에서 MEK를 검색할 수 있나요?Can the MEK be retrieved by Key Vault? 아니요.No. MEK는 Key Vault에 저장된 후에 암호화 및 암호 해독에만 사용할 수 있습니다.After the MEK is stored in Key Vault, it can only be used for encryption and decryption. 아니요.No. MEK는 Key Vault에 저장된 후에 암호화 및 암호 해독에만 사용할 수 있습니다.After the MEK is stored in Key Vault, it can only be used for encryption and decryption.
Key Vault 인스턴스 및 MEK 소유자는 누구인가요?Who owns the Key Vault instance and the MEK? Data Lake Storage Gen1 서비스The Data Lake Storage Gen1 service 사용자는 고유한 Azure 구독에 속한 Key Vault 인스턴스를 소유합니다.You own the Key Vault instance, which belongs in your own Azure subscription. Key Vault의 MEK는 소프트웨어 또는 하드웨어로 관리할 수 있습니다.The MEK in Key Vault can be managed by software or hardware.
사용자가 Data Lake Storage Gen1 서비스의 MEK에 대한 액세스를 취소할 수 있나요?Can you revoke access to the MEK for the Data Lake Storage Gen1 service? 아니요No 예.Yes. 사용자는 Key Vault의 액세스 제어 목록을 관리하고 Data Lake Storage Gen1 서비스의 서비스 ID에 대한 액세스 제어 항목을 제거할 수 있습니다.You can manage access control lists in Key Vault, and remove access control entries to the service identity for the Data Lake Storage Gen1 service.
MEK를 영구적으로 삭제할 수 있나요?Can you permanently delete the MEK? 아니요No 예.Yes. Key Vault에서 MEK를 삭제하면 Data Lake Storage Gen1 서비스를 포함하여 누구도 Data Lake Storage Gen1 계정의 데이터를 해독할 수 없습니다.If you delete the MEK from Key Vault, the data in the Data Lake Storage Gen1 account cannot be decrypted by anyone, including the Data Lake Storage Gen1 service.

Key Vault에서 MEK를 삭제하기 전에 명시적으로 백업하면 MEK를 복원하고 데이터 복구할 수 있습니다.If you have explicitly backed up the MEK prior to deleting it from Key Vault, the MEK can be restored, and the data can then be recovered. 그러나 Key Vault에서 MEK를 삭제하기 전에 백업하지 않으면 이후에 Data Lake Storage Gen1 계정의 데이터를 해독할 수 없습니다.However, if you have not backed up the MEK prior to deleting it from Key Vault, the data in the Data Lake Storage Gen1 account can never be decrypted thereafter.

MEK 및 MEK가 상주하는 Key Vault 인스턴스를 관리하는 사람이 다르다는 차이점을 제외한 디자인의 나머지 부분은 두 모드가 동일합니다.Aside from this difference of who manages the MEK and the Key Vault instance in which it resides, the rest of the design is the same for both modes.

마스터 암호화 키의 모드를 선택하는 경우 다음 사항에 주의해야 합니다.It's important to remember the following when you choose the mode for the master encryption keys:

  • Data Lake Storage Gen1 계정을 프로비전할 때 고객 관리 키와 서비스 관리 키 중에서 무엇을 사용할 것인지 선택할 수 있습니다.You can choose whether to use customer managed keys or service managed keys when you provision a Data Lake Storage Gen1 account.
  • Data Lake Storage Gen1 계정을 프로비전한 후에는 모드를 변경할 수 없습니다.After a Data Lake Storage Gen1 account is provisioned, the mode cannot be changed.

데이터 암호화 및 암호 해독Encryption and decryption of data

데이터 암호화 디자인에 사용되는 세 가지 종류의 키가 있습니다.There are three types of keys that are used in the design of data encryption. 다음 테이블에서는 요약 정보를 제공합니다.The following table provides a summary:

Key 약어Abbreviation 연결 대상Associated with 스토리지 위치Storage location 형식Type 참고Notes
마스터 암호화 키Master Encryption Key MEKMEK Data Lake Storage Gen1 계정A Data Lake Storage Gen1 account Key VaultKey Vault 비대칭Asymmetric Data Lake Storage Gen1 또는 사용자가 관리할 수 있습니다.It can be managed by Data Lake Storage Gen1 or you.
데이터 암호화 키Data Encryption Key DEKDEK Data Lake Storage Gen1 계정A Data Lake Storage Gen1 account 영구 스토리지, Data Lake Storage Gen1 서비스에서 관리Persistent storage, managed by the Data Lake Storage Gen1 service 대칭Symmetric DEK는 MEK에서 암호화됩니다.The DEK is encrypted by the MEK. 암호화된 DEK는 영구 미디어에 저장됩니다.The encrypted DEK is what is stored on persistent media.
블록 암호화 키Block Encryption Key BEKBEK 데이터 블록A block of data 없음None 대칭Symmetric BEK는 DEK 및 데이터 블록에서 파생됩니다.The BEK is derived from the DEK and the data block.

다음 다이어그램은 이러한 개념을 보여 줍니다.The following diagram illustrates these concepts:

데이터 암호화의 키

파일 암호를 해독해야 할 때의 의사 알고리즘:Pseudo algorithm when a file is to be decrypted:

  1. Data Lake Storage Gen1 계정의 DEK가 캐시되었으며 사용 가능한지 확인합니다.Check if the DEK for the Data Lake Storage Gen1 account is cached and ready for use.
    • 그렇지 않으면 영구 스토리지에서 암호화된 DEK를 읽고 Key Vault로 보내서 해독합니다.If not, then read the encrypted DEK from persistent storage, and send it to Key Vault to be decrypted. 메모리에서 해독된 DEK를 캐시합니다.Cache the decrypted DEK in memory. 이제 사용할 준비가 되었습니다.It is now ready to use.
  2. 파일에 있는 모든 데이터 블록에 대해For every block of data in the file:
    • 영구 스토리지에서 암호화된 데이터 블록을 읽습니다.Read the encrypted block of data from persistent storage.
    • DEK 및 암호화된 데이터 블록에서 BEK를 생성합니다.Generate the BEK from the DEK and the encrypted block of data.
    • BEK를 사용하여 데이터를 해독합니다.Use the BEK to decrypt data.

데이터 블록을 암호화해야 할 때의 의사 알고리즘:Pseudo algorithm when a block of data is to be encrypted:

  1. Data Lake Storage Gen1 계정의 DEK가 캐시되었으며 사용 가능한지 확인합니다.Check if the DEK for the Data Lake Storage Gen1 account is cached and ready for use.
    • 그렇지 않으면 영구 스토리지에서 암호화된 DEK를 읽고 Key Vault로 보내서 해독합니다.If not, then read the encrypted DEK from persistent storage, and send it to Key Vault to be decrypted. 메모리에서 해독된 DEK를 캐시합니다.Cache the decrypted DEK in memory. 이제 사용할 준비가 되었습니다.It is now ready to use.
  2. DEK에서 데이터 블록에 대한 고유의 BEK를 생성합니다.Generate a unique BEK for the block of data from the DEK.
  3. AES-256 암호화를 사용하여 BEK로 데이터 블록을 암호화합니다.Encrypt the data block with the BEK, by using AES-256 encryption.
  4. 암호화된 데이터 블록을 영구 스토리지에 저장합니다.Store the encrypted data block of data on persistent storage.

참고

DEK는 영구 미디어이든 메모리에 캐시되든 상관 없이 항상 MEK로 암호화되어 저장됩니다.The DEK is always stored encrypted by the MEK, whether on persistent media or cached in memory.

키 회전Key rotation

고객이 관리하는 키를 사용하는 경우 MEK를 회전할 수 있습니다.When you are using customer-managed keys, you can rotate the MEK. 고객 관리 키를 사용하여 Data Lake Storage Gen1 계정을 설정하는 방법을 알아보려면 시작을 참조하세요.To learn how to set up a Data Lake Storage Gen1 account with customer-managed keys, see Getting started.

필수 구성 요소Prerequisites

Data Lake Storage Gen1 계정을 설정할 때에 고유한 키를 사용하기로 했습니다.When you set up the Data Lake Storage Gen1 account, you have chosen to use your own keys. 계정을 만든 후에는 이 옵션을 변경할 수 없습니다.This option cannot be changed after the account has been created. 다음 단계에서는 사용자가 고객 관리 키를 사용(즉, Key Vault에서 사용자 고유의 키를 선택함)한다고 가정합니다.The following steps assume that you are using customer-managed keys (that is, you have chosen your own keys from Key Vault).

암호화에 대한 기본 옵션을 사용하는 경우 데이터는 항상 Data Lake Storage Gen1에서 관리되는 키를 사용하여 암호화됩니다.Note that if you use the default options for encryption, your data is always encrypted by using keys managed by Data Lake Storage Gen1. 이 옵션에는 Data Lake Storage Gen1에서 관리하는 것처럼 키를 회전하는 기능이 없습니다.In this option, you don't have the ability to rotate keys, as they are managed by Data Lake Storage Gen1.

Data Lake Storage Gen1에서 MEK를 회전하는 방법How to rotate the MEK in Data Lake Storage Gen1

  1. Azure Portal에 로그인합니다.Sign in to the Azure portal.

  2. Data Lake Storage Gen1 계정에 연결된 키를 저장하는 Key Vault 인스턴스로 이동합니다.Browse to the Key Vault instance that stores your keys associated with your Data Lake Storage Gen1 account. 를 선택 합니다.Select Keys.

    Key Vault의 스크린샷

  3. Data Lake Storage Gen1 계정에 연결된 키를 선택하고 이 키의 새 버전을 만듭니다.Select the key associated with your Data Lake Storage Gen1 account, and create a new version of this key. 현재 Data Lake Storage Gen1은 새 버전의 키에 대한 키 회전만을 지원합니다.Note that Data Lake Storage Gen1 currently only supports key rotation to a new version of a key. 다른 키에 대한 회전을 지원하지 않습니다.It doesn't support rotating to a different key.

    강조 표시된 새 버전에서 키 창의 스크린샷

  4. Data Lake Storage Gen1 계정으로 이동하여 암호화를 선택합니다.Browse to the Data Lake Storage Gen1 account, and select Encryption.

    강조 표시된 암호화에서 Data Lake Storage Gen1 계정 창의 스크린샷

  5. 메시지는 새로운 주요 버전의 키를 사용할 수 있는지 알려 줍니다.A message notifies you that a new key version of the key is available. 키 회전을 클릭하여 키를 새 버전으로 업데이트합니다.Click Rotate Key to update the key to the new version.

    강조 표시된 메시지와 회전 키에서 Data Lake Storage Gen1 창의 스크린샷

이 작업은 2분 이내에 완료되며 키 회전으로 인해 예상되는 가동 중지 시간은 없습니다.This operation should take less than two minutes, and there is no expected downtime due to key rotation. 작업이 완료되면 새 버전의 키가 사용됩니다.After the operation is complete, the new version of the key is in use.

중요

키 회전 작업이 완료되면 이전 버전의 키는 데이터를 암호화하는 데 더 이상 적극적으로 사용되지 않습니다.After the key rotation operation is complete, the old version of the key is no longer actively used for encrypting your data. 그러나 데이터의 중복 복사본도 영향을 받는 예기치 않은 오류의 드문 경우에 여전히 이전 키를 사용하는 백업에서 데이터를 복원할 수 있습니다.However, in rare instances of unexpected failure where even redundant copies of your data are impacted, data may be restored from a backup that is still using the old key. 이러한 드문 경우에서 데이터에 액세스할 수 있도록 이전 버전의 암호화 키 복사본을 보관합니다.To ensure your data is accessible in these rare circumstances, keep a copy of the previous version of your encryption key. 재해 복구 계획에 대한 모범 사례는 Data Lake Storage Gen1의 데이터에 대한 재해 복구 가이드를 참조하세요.See Disaster recovery guidance for data in Data Lake Storage Gen1 for best practices for your disaster recovery planning.