4단계: 표 형식 파일의 암호화 스키마 생성 - AWS Clean Rooms

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

4단계: 표 형식 파일의 암호화 스키마 생성

데이터를 암호화하려면 데이터 사용 방법을 설명하는 암호화 스키마가 필요합니다. 이 섹션에서는 C3R 암호화 클라이언트가 헤더 행이 있는 파일이나 CSV 파일에 대한 암호화 스키마를 생성하는 데 어떤 도움을 주는지 설명합니다. Parquet

요청은 파일당 한 번만 하면 됩니다. 스키마가 존재하면 이를 다시 사용하여 동일한 파일(또는 열 이름이 동일한 파일)을 암호화할 수 있습니다. 열 이름이나 원하는 암호화 스키마가 변경되면 스키마 파일을 업데이트해야 합니다. 자세한 내용은 (선택 사항) 스키마 생성(고급 사용자) 단원을 참조하십시오.

중요

모든 공동 작업 당사자가 동일한 공유 비밀 키를 사용하는 것이 가장 중요합니다. 또한 공동 작업 당사자는 쿼리에서 동일성을 유지하기 위해 열 이름이 JOIN될지 또는 다른 방식으로 비교될지 일치하도록 열 이름을 조정해야 합니다. 그렇지 않으면 SQL 쿼리에서 예상치 못한 결과가 나오거나 잘못된 결과가 나올 수 있습니다. 하지만 공동 작업 생성자가 공동 작업 생성 중에 allowJoinsOnColumnsWithDifferentNames 암호화 설정을 활성화한 경우에는 이 방법이 필요하지 않습니다. 암호화 관련 설정에 대한 자세한 내용은 암호화 컴퓨팅 파라미터 섹션을 참조하세요.

스키마 모드에서 실행할 경우 C3R 암호화 클라이언트는 입력 파일을 열별로 검토하여 해당 열을 처리할지 여부와 처리 방법을 묻는 메시지를 표시합니다. 파일에 암호화된 출력에 필요하지 않은 열이 많이 포함된 경우 원하지 않는 각 열을 건너뛰어야 하므로 대화형 스키마 생성이 번거로울 수 있습니다. 이를 방지하려면 스키마를 수동으로 작성하거나 원하는 열만 포함하는 입력 파일의 단순화된 버전을 만들 수 있습니다. 그러면 축소된 파일에서 대화형 스키마 생성기를 실행할 수 있습니다. C3R 암호화 클라이언트는 스키마 파일에 대한 정보를 출력하고 대상 출력에 소스 열을 포함하거나 암호화하는 방법(있는 경우)을 묻습니다.

입력 파일의 각 소스 열에 대해 를 묻는 메시지가 표시됩니다.

  1. 생성해야 하는 대상 열의 수

  2. 각 대상 열을 암호화하는 방법(있는 경우)

  3. 각 대상 열의 이름

  4. 열을 sealed 열로 암호화하는 경우 암호화 전에 데이터를 패딩하는 방법

참고

sealed 열로 암호화된 열의 데이터를 암호화할 때는 패딩이 필요한 데이터를 결정해야 합니다. C3R 암호화 클라이언트는 스키마 생성 중에 열의 모든 항목을 동일한 길이로 채우는 기본 패딩을 제안합니다.

fixed의 길이를 결정할 때는 패딩이 비트가 아니라 바이트 단위라는 점에 유의하세요.

다음은 스키마 생성에 대한 의사 결정 테이블입니다.

스키마 의사결정표
결정 소스 열 <' name-of-column '>의 대상 열 수? 대상 열 유형: [c] cleartext, [f] fingerprint, 또는 [s] sealed? 대상 열 헤더 이름 <default 'name-of-column'> <suffix>암호화된 방식을 나타내는 접미사를 헤더에 추가합니다 ([y] 예 또는 [n] 아니요 <기본 '예'> <' name-of-column _sealed'> 패딩 유형: [n] 1개, [f] 고정 또는 최대 [m] <default 'max'>
열을 암호화하지 않은 상태로 두세요. 1 c 해당 사항 없음 해당 사항 없음 해당 사항 없음
열을 fingerprint 열로 암호화합니다. 1 f 기본값을 선택하거나 새 헤더 이름을 입력합니다. y를 입력하여 기본값(_fingerprint)을 선택하거나 n을 입력합니다. 해당 사항 없음
열을 sealed 열로 암호화합니다. 1 s 기본값을 선택하거나 새 헤더 이름을 입력합니다. y를 입력하여 기본값(_sealed)을 선택하거나 n을 입력합니다.

패딩 유형을 선택합니다.

자세한 내용은 (선택 사항) 스키마 생성(고급 사용자) 단원을 참조하십시오.

열을 fingerprint 및 sealed로 모두 암호화합니다. 2

첫 번째 대상 열 입력: f .

두 번째 대상 열 입력: s.

각 대상 열의 대상 헤더를 선택합니다. y를 입력하여 기본값을 선택하거나 n.을 입력합니다

패딩 유형을 선택합니다(sealed 열만 해당).

자세한 내용은 (선택 사항) 스키마 생성(고급 사용자) 단원을 참조하십시오.

다음은 암호화 스키마 생성 방법에 대한 두 가지 예제입니다. 상호 작용의 정확한 내용은 입력 파일과 제공하는 응답에 따라 달라집니다.

예: fingerprint 열과 cleartext 열에 대한 암호화 스키마 생성

이 예제에서 ads.csv의 경우 열은 usernamead_variant 두 개뿐입니다. 이 열에는 다음이 필요합니다.

  • username 열을 fingerprint 열로 암호화하려면

  • ad_variant 열을 cleartext 열로 만들려면

fingerprint 열 및 cleartext 열에 대한 암호화 스키마를 생성하려는 경우
  1. (선택 사항) 암호화할 c3r-cli.jar 파일 및 파일이 있는지 확인하려면:

    1. 원하는 디렉토리로 이동하여 ls(Mac 또는 Unix/Linux를 사용하는 경우) 또는 dir(Windows을 사용하는 경우)을 실행합니다.

    2. 테이블 형식 데이터 파일(예: .csv) 목록을 보고 암호화할 파일을 선택합니다.

      이 예에서는 ads.csv가 암호화하려는 파일입니다.

  2. 에서 다음 CLI 명령을 실행하여 대화형 방식으로 스키마를 생성합니다.

    java -jar c3r-cli.jar schema ads.csv --interactive --output=ads.json

    참고
    • java --jar PATH/TO/c3r-cli.jar를 실행할 수 있습니다. 또는 CLASSPATH 환경 변수에 PATH/TO/c3r-cli.jar 추가한 경우 클래스 이름을 실행할 수도 있습니다. C3R 암호화 클라이언트는 CLASSPATH 에서 찾아 찾습니다 (예:). java com.amazon.psion.cli.Main

    • --interactive 플래그는 스키마 개발을 위한 대화형 모드를 선택합니다. 이를 통해 스키마 생성을 위한 마법사가 사용자를 안내합니다. 고급 기술을 갖춘 사용자는 마법사를 JSON 사용하지 않고도 자신만의 스키마를 만들 수 있습니다. 자세한 내용은 (선택 사항) 스키마 생성(고급 사용자) 단원을 참조하십시오.

    • --output 플래그는 출력 이름을 설정합니다. --output 플래그를 포함하지 않으면 C3R 암호화 클라이언트는 기본 출력 이름(예: <input>.out.csv 또는 스키마의 경우, <input>.json)을 선택하려고 합니다.

  3. Number of target columns from source column ‘username’?의 경우 1을 입력한 다음 Enter 키를 누릅니다.

  4. Target column type: [c]leartext, [f]ingerprint, or [s]ealed?의 경우 f를 입력한 다음 Enter 키를 누릅니다.

  5. Target column headername <default 'username'>의 경우 Enter 키를 누릅니다.

    기본 사용자 이름은 ‘username’입니다.

  6. Add suffix '_fingerprint' to header to indicate how it was encrypted, [y]es or [n]o <default 'yes'>의 경우 y를 입력한 다음 Enter 키를 누릅니다.

    참고

    대화형 모드에서는 암호화된 열 헤더(fingerprint 열의 경우 _fingerprint, sealed 열의 경우 _sealed)에 추가할 접미사를 제안합니다. 접미사는 데이터를 컬래버레이션에 AWS 서비스 업로드하거나 컬래버레이션을 생성하는 등의 작업을 수행할 때 유용할 수 있습니다. AWS Clean Rooms 이러한 접미사는 각 열의 암호화된 데이터로 수행할 수 있는 작업을 나타내는 데 도움이 됩니다. 예를 들어 sealed 열을 열(_sealed)로 암호화한 후 그 위에 JOIN을 시도하거나 그 반대의 경우를 시도하면 작동하지 않습니다.

  7. Number of target columns from source column ‘ad_variant’?의 경우 1을 입력한 다음 Enter 키를 누릅니다.

  8. Target column type: [c]leartext, [f]ingerprint, or [s]ealed?의 경우 c를 입력한 다음 Enter 키를 누릅니다.

  9. Target column headername <default 'username'>의 경우 Enter 키를 누릅니다.

    기본 사용자 이름은 ‘ad_variant’입니다.

    ads.json이라는 새 파일에 스키마가 기록됩니다.

    참고

    스키마는 텍스트 편집기에서 열면 볼 수 있습니다(예: Windows에서 Notepad 또는 macOS에서 TextEdit).

  10. 이제 데이터를 암호화할 준비가 되었습니다.

예:sealed, fingerprint, cleartext 열을 사용하여 암호화 스키마 생성

이 예제에서는 sales.csv의 경우, username , purchased, 및 product 세 개의 열이 있습니다. 이 열에는 다음이 필요합니다.

  • product 열을 sealed 열로 만들려면

  • username 열을 fingerprint 열로 암호화하려면

  • purchased 열을 cleartext 열로 만들려면

sealed, fingerprint, cleartext 열이 있는 암호화 스키마를 생성하려는 경우
  1. (선택 사항) 암호화할 c3r-cli.jar 파일 및 파일이 있는지 확인하려는 경우:

    1. 원하는 디렉토리로 이동하여 ls(Mac 또는 Unix/Linux를 사용하는 경우) 또는 dir(Windows를 사용하는 경우)을 실행합니다.

    2. 표 형식 데이터 파일(.csv) 목록을 보고 암호화할 파일을 선택합니다.

      이 예에서는 sales.csv가 암호화하려는 파일입니다.

  2. 에서 다음 CLI 명령을 실행하여 대화형 방식으로 스키마를 생성합니다.

    java -jar c3r-cli.jar schema sales.csv --interactive --output=sales.json

    참고
    • --interactive 플래그는 스키마 개발을 위한 대화형 모드를 선택합니다. 이를 통해 사용자는 스키마 생성을 위한 안내가 있는 워크플로를 안내합니다.

    • 고급 사용자인 경우 안내가 제공되는 워크플로를 JSON 사용하지 않고도 자신만의 스키마를 만들 수 있습니다. 자세한 내용은 (선택 사항) 스키마 생성(고급 사용자) 단원을 참조하십시오.

    • 열 헤더가 없는.csv 파일의 경우 에서 사용할 수 있는 스키마 명령의 --noHeaders 플래그를 참조하십시오. CLI

    • --output 플래그는 출력 이름을 설정합니다. --output 플래그를 포함하지 않으면 C3R 암호화 클라이언트는 기본 출력 이름(예: <input>.out 또는 스키마의 경우, <input>.json)을 선택하려고 합니다.

  3. Number of target columns from source column ‘username’?의 경우 1을 입력한 다음 Enter 키를 누릅니다.

  4. Target column type: [c]leartext, [f]ingerprint, or [s]ealed?의 경우 f를 입력한 다음 Enter 키를 누릅니다.

  5. Target column headername <default 'username'>의 경우 Enter 키를 누릅니다.

    기본 사용자 이름은 ‘username’입니다.

  6. Add suffix '_fingerprint' to header to indicate how it was encrypted, [y]es or [n]o <default 'yes'>의 경우 y을 입력한 다음 Enter 키를 누릅니다.

  7. Number of target columns from source column ‘purchased’?의 경우 1을 입력한 다음 Enter 키를 누릅니다.

  8. Target column type: [c]leartext, [f]ingerprint, or [s]ealed?의 경우 c를 입력한 다음 Enter 키를 누릅니다.

  9. Target column headername <default 'purchased'>의 경우 Enter 키를 누릅니다.

    기본 사용자 이름은 ‘purchased’입니다.

  10. Number of target columns from source column ‘product’?의 경우 1을 입력한 다음 Enter 키를 누릅니다.

  11. Target column type: [c]leartext, [f]ingerprint, or [s]ealed?의 경우 s를 입력한 다음 Enter 키를 누릅니다.

  12. Target column headername <default 'product'>의 경우 Enter 키를 누릅니다.

    기본 사용자 이름은 ‘product’입니다.

  13. ‘product_sealed’ padding type: [n]one, [f]ixed, or [m]ax <default ’max’?>의 경우 Enter 키를 눌러 기본값을 선택합니다.

  14. Byte-length beyond max length to pad cleartext to in ‘product_sealed’ <default ‘0’>?의 경우 Enter 키를 눌러 기본값을 선택합니다.

    sales.json이라는 새 파일에 스키마가 기록됩니다.

  15. 이제 데이터를 암호화할 준비가 되었습니다.