Ranger를 사용하여 캐싱 사용 설정 및 권한 축소

캐싱 사용 설정

이 섹션에는 토큰을 암호화하고 복호화하기 위한 Ranger 키 관리 시스템 (KMS)의 왕복 이동 횟수를 줄이기 위해 Ranger에서 캐싱을 사용 설정하는 단계가 나와 있습니다.

  1. Managed Service for Apache Spark 클러스터 VM에 memcached를 설치합니다. 기본적으로 Memcached 서버는 VM 포트 11211 (localhost:11211)에서 시작됩니다.

    sudo apt-get install -y memcached
    

  2. Managed Service for Apache Spark 클러스터 VM의 /etc/dataproc-ranger-gcs-plugin/conf/ranger-gcs-site.xml Ranger 구성 파일에서 다음 속성을 설정합니다.

    <property>
    <name>authorization.service.remoteCaching.address</name>
    <value>localhost:11211</value>
    </property>
    <property> <name>authorization.service.remoteCaching.class</name> <value>com.google.cloud.hadoop.ranger.gcs.authorization.caching.MemcachedCache</value> </property>
    <property> <name>authorization.service.remoteCaching.encryption.key.uri</name> <value>gcp-kms://projects/PROJECT_ID_OF_KMS_KEY/locations/REGION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME</value> </property>

  3. 승인 서비스를 다시 시작합니다.

    sudo systemctl restart ranger-gcs-plugin-authorization-server
    

캐시 상태 보기

telnet을 사용하여 Ranger 캐시 상태를 볼 수 있습니다.

  1. telnet을 설치합니다.

    sudo apt-get install -y telnet
    

  2. telnet을 사용하여 VM 포트 11211memcache에 연결합니다.

    sudo telnet 127.0.0.1 11211
    

  3. 다음 명령어를 포함하여 telnet 명령어를 사용하여 캐시 상태를 확인합니다.

    • stats items: 캐시 항목의 상태를 나열합니다. 샘플 출력:
      STAT items:17:number 2
      STAT items:17:number_hot 0
      STAT items:17:number_warm 0
      STAT items:17:number_cold 2
      
    • stats cachedump: 캐시에 저장된 키를 나열합니다. 샘플 출력:
      stats cachedump 17 2
      ITEM 0616eeeeb54e23a09505da5bf75cd7fafe733eacf0d07bd7b1ac9cf46d17c188 [3051 b; 1707948281 s]
      ITEM d23645df9c79290d59ddb1b9710ff04fee37aa0b5de866b9b6d56b54641d68b4 [3078 b; 1707948281 s]
      
    • flush_all: 캐시 항목을 무효화합니다.

Cloud Storage 액세스 토큰 권한 축소

외부 Hive 테이블이 가리키는 Cloud Storage 경로를 위로 이동 (범위 확대)하려면 Ranger 액세스 토큰 범위를 축소해야 할 수 있습니다.

모든 파티션과 하위 파티션을 테이블 수준으로 이동하려면 Managed Service for Apache Spark 클러스터 VM의 ranger-gcs-site.xml 구성 파일에서 downscope.table.partition-name.pruning.enabled 속성을 true로 설정합니다.

<property>
  <name>downscope.table.partition-name.pruning.enabled</name>
  <value>true</value>
</property>

예:

  • Cloud Storage 버킷 이름: gs://warehouse
  • 원래의 액세스 토큰 경로: warehouse/hive/table/type=debit/year=2017/month=Aug/day=01/
  • downscope.table.partition-name.pruning.enabledtrue로 설정한 후 범위가 확대된 액세스 토큰 경로: warehouse/hive/table/