0 / 0
영어 버전 문서로 돌아가기

애플리케이션의 키 관리

마지막 업데이트 날짜: 2024년 10월 04일
애플리케이션의 키 관리

이 주제는 애플리케이션에서 열 암호화 키를 관리하는 방법을 설명합니다. 마스터 키를 제공하는 방법과 이러한 마스터 키를 사용하여 암호화된 데이터를 읽고 쓰는 방법을 설명합니다.

마스터 키 제공

마스터 키를 제공하려면 다음을 수행하십시오.

  1. 다음 형식으로 명시적인 마스터 키를 전달하십시오.

    parameter name: "encryption.key.list"
    parameter value: "<master key ID>:<master key (base64)> , <master key ID>:<master key (base64)>.."
    

    예를 들어,

    sc.hadoopConfiguration.set("encryption.key.list" , "k1:iKwfmI5rDf7HwVBcqeNE6w== , k2:LjxH/aXxMduX6IQcwQgOlw== , k3:rnZHCxhUHr79Y6zvQnxSEQ==")
    

    base64 인코딩 앞의 마스터 키 길이는 16, 24 또는 32바이트(128, 192 또는 256비트)입니다.

암호화된 데이터 쓰기

암호화된 데이터를 쓰려면 다음을 수행하십시오.

  1. 암호화할 열과 사용할 마스터 키를 지정하십시오.

    parameter name:  "encryption.column.keys"
    parameter value: "<master key ID>:<column>,<column>;<master key ID>:<column> .."
    
  2. 푸터 키를 지정하십시오.

    parameter name:  "encryption.footer.key"
    parameter value:  "<master key ID>"
    

    예를 들어,

    dataFrame.write
    .option("encryption.footer.key" , "k1")
    .option("encryption.column.keys" , "k2:SSN,Address;k3:CreditCard")
    .parquet("<path to encrypted files>")
    
    참고: ` "" `는 URL에 문자열 ` .encrypted `를 포함해야 합니다 (예: `/path/to/my_table.parquet.encrypted`). ` "encryption.column.keys" ` 매개변수 또는 ` "encryption.footer.key" ` 매개변수가 설정되지 않으면 예외가 발생합니다.

암호화된 데이터 읽기

필요한 메타데이터는 암호화된 Parquet 파일에 저장되어 있습니다.

암호화된 데이터를 읽으려면 다음을 수행하십시오.

  1. 암호화 키를 제공하십시오.

    sc.hadoopConfiguration.set("encryption.key.list" , "k1:iKwfmI5rDf7HwVBcqeNE6w== , k2:LjxH/aXxMduX6IQcwQgOlw== , k3:rnZHCxhUHr79Y6zvQnxSEQ==")
    
  2. 다음과 같은 일반 Parquet 읽기 명령을 호출하십시오.

    val dataFrame = spark.read.parquet("<path to encrypted files>")
    
    참고: ` "" `는 URL에 문자열 ` .encrypted `를 포함해야 합니다 (예: `/path/to/my_table.parquet.encrypted`).

상위 주제: Parquet 암호화