2016-07-12 1 views
2

RDBMS에서 Hadoop 클러스터로 데이터를 가져 오기 위해 사용하고있는 비밀번호를 숨기고 싶습니다. 내 비밀번호와 사용자 이름을 텍스트 파일로 유지하기 위해 --option-files을 사용하고 있지만 보호되지는 않았습니다.Sqoop에서 비밀번호와 사용자 이름을 보호하는 방법은 무엇입니까?

더 나은 보호를 위해 특정 파일에 대한 종류의 암호화를 수행 할 수 있습니까?

답변

2

데이터베이스에 암호를 안전하게 제공하는 방법.

당신은 400 권한을 가진 사용자의 홈 디렉토리에있는 파일에 암호를 저장하고 --password-file 인수를 사용하여 해당 파일의 경로를 지정하고 자격 증명을 입력의 선호하는 방법입니다해야한다. 그런 다음 Sqoop은 파일에서 암호를 읽고 작업 구성에서 암호를 노출하지 않고 안전한 수단을 사용하여 MapReduce 클러스터로 패스합니다. 암호가 들어있는 파일은 로컬 FS 또는 HDFS에있을 수 있습니다.

$ sqoop import --connect jdbc:mysql://database.example.com/employees \ 
--username venkatesh --password-file ${user.home}/.password 

확인 드릴 docs 자세한 내용은 예를 들면 다음과 같습니다.

또한 -P 옵션을 에 사용하면 콘솔에서 암호를 읽을 수 있습니다.

1

이 질문은 이전에 here, 에 대해 설명 된 것으로 보입니다. hortonworks page과 기본적으로 만들기 및 .enc 파일로 구성되어 있습니다. 또한 암호화를 나타 내기 위해 키와 같은 여러 매개 변수를 구성해야합니다. 자격

  • org.apache.sqoop 및 로더를 -

    • org.apache.sqoop.credentials.loader.class는 :

      sqoop import \ 
      -Dorg.apache.sqoop.credentials.loader.class=org.apache.sqoop.util.password.CryptoFileLoader \ 
      -Dorg.apache.sqoop.credentials.loader.crypto.passphrase=sqoop2 \ 
      --connect jdbc:mysql://example.com/sqoop \ 
      --username sqoop \ 
      --password-file file:///tmp/pass.enc \ 
      --table tbl 
      

      여기 (다시 참조하여 아래)를 구성 할 수있는 여러 파라미터 .credentials.loader.crypto.alg - 파일을 해독하는 데 사용되는 알고리즘입니다 (기본값은 AES/ECB/PKCS5Padding).

    • org.apache.sqoop.credentials.loader.crypto.salt - 암호를 사용하여 키를 파생시키는 데 사용되는 소금 (기본값은 SALT 임).
    • org.apache.sqoop.credentials.loader.crypto.iterations - PBKDF2 반복 수 (기본값은 10000)입니다.
    • org.apache.sqoop.credentials.loader.crypto.salt.key.len - 파생 키 길이 (기본값은 128).
    • org.apache.sqoop.credentials.loader.crypto.passphrase 키를 파생시키는 데 사용되는 암호.

    Sqoop documentation page을 따르고 CredentialProviderPasswordLoader 클래스의 구현으로 검색되는 비밀번호 별칭을 만들 수도 있습니다. 전체 수업을 볼 수 있습니다 here

  • 관련 문제