서버 암호 관리
Tableau Server에는 내부 통신 보안, 다른 응용 프로그램 또는 운영 체제와의 통신 또는 클라이언트와의 보안 통신 제공과 같은 다양한 기능을 수행하는 데 필요한 다수의 암호가 저장됩니다. 이 맥락에서 암호는 엔터티의 인증에 사용되는 암호, 토큰 또는 기타 문자열을 나타낼 수 있습니다.
Tableau Server를 실행하려면 두 가지 범주의 암호가 필요합니다. 범주는 암호의 생성 방법에 따라 구분됩니다.
- 관리자가 생성한 암호. 여기에는 Tableau Server에서 사용되는 '서비스 계정 사용자' 계정의 자격 증명 및 연결된 암호와 SMTP 자격 증명이 포함됩니다.
- 시스템의 다양한 프로세스를 통해 자동으로 생성된 암호. 예를 들어 클러스터 컨트롤러와 ZooKeeper 프로세스 간의 통신을 보호하려면 암호가 필요합니다. 또한 Postgres와 통신하는 각 서비스 및 프로그래밍 방식 사용자를 위한 다수의 서로 다른 암호가 필요합니다.
대부분의 암호는 유휴 시간 중에 암호화됩니다. 암호가 필요하면 실행될 때 암호가 해독됩니다.
이 항목에서는 암호 저장소의 작동 원리와 Tableau Server의 암호 저장소를 올바르게 관리하는 데 필요한 작업에 대해 설명합니다.
암호 저장소의 작동 원리 이해
설치 중에 Tableau Server는 마스터 키를 생성하고 Java 키 저장소에 저장합니다. 마스터 키는 시스템 전역에서 사용되는 구성 암호화 키를 암호화하는 데 사용됩니다.
새로 생성되거나 업데이트되는 모든 암호는 구성 암호화 키로 암호화됩니다. 암호화된 값은 해당하는 구성 매개 변수와 함께 서버의 YAML 파일에 저장됩니다. 암호화된 값을 포함하는 매개 변수는 ENC(<encrypted string>)
를 사용하며 여기서 <encrypted string>
은 Base64로 인코딩된 암호화된 문자열입니다.
실행 시 지정된 암호에 대한 액세스가 필요하면 암호화된 값이 메모리로 들어오고 구성 암호화 키를 사용하여 해독됩니다.
구성 변경 중에 암호를 입력한 보류 중인 변경 내용이 있는 경우 전체 트랜잭션이 암호화됩니다. 이 시나리오에서 암호를 입력한 후 보류 중인 변경 내용을 저장하면 암호가 (암호화된 SSL을 통해) 조정 서비스로 전송됩니다. 조정 서비스는 암호를 암호화하고 보류 중인 변경 내용이 적용될 때까지 저장합니다. 변경 내용이 적용되면 암호(아직 암호화된 상태)가 현재 구성 버전으로 수준이 올라갑니다.
Tableau Server는 GCM 모드에서 256비트 AES를 사용하여 암호를 암호화합니다. 저장소 보안에 사용되는 키는 리포지토리에 저장하기 전에 내장된 데이터베이스 자격 증명을 암호화하는 데 사용되는 자산 키와 다릅니다.
마스터 키에 액세스할 수 있는 사용자
기본 설치에서 Tableau Server의 Java 키 저장소는 \ProgramData\Tableau\Tableau Server\data\tabsvc\crypto\keystores\
폴더에 설치됩니다. 시스템 드라이브가 아닌 드라이브에 Tableau를 설치한 경우 경로는 <install drive>:\Tableau\Tableau Server\data\tabsvc\crypto\keystores\
입니다. 기본적으로 이 디렉터리에 액세스할 수 있는 계정은 다음과 같습니다.
- '서비스 계정 사용자' 계정(구성된 경우)
- NetworkService의 미리 정의된 로컬 Windows 계정
- LocalSystem의 미리 정의된 로컬 Windows 계정
- 컴퓨터 관리자 그룹의 멤버
구성 정보 가져오기 및 내보내기
Tableau 서비스 관리자에는 tsm settings export를 사용하여 구성 정보를 가져오고 내보내는 기능이 도입되었습니다.
참고: 이 버전의 Tableau Server는 백업의 구성 정보 복원을 지원하지 않습니다. 대신 내보내기 및 가져오기 구성 명령을 사용하여 구성 정보를 백업 및 복원하는 것이 좋습니다.
구성 암호는 내부적으로 디스크에 저장될 때 암호화되지만 구성을 파일로 내보낼 때 암호가 일반 텍스트로 파일에 기록됩니다. 이 파일을 보호하기 위한 조치를 취하는 것은 관리자의 책임입니다. 다음과 같은 다양한 옵션을 사용할 수 있습니다.
- 파일을 암호화된 파일 시스템에 기록합니다.
- 파일 시스템 사용 권한을 통해 특정 사용자 또는 그룹으로 제한된 디렉터리에 파일을 기록합니다.
- 출력 파일을 암호화합니다.
가져오기 및 내보내기 작업을 위한 암호 보호
OpenSSL 같은 타사 도구 집합을 사용하여 백업 출력을 암호화합니다.
클러스터 노드
Tableau Server 클러스터에 새 노드를 추가하려면 먼저 노드 구성 파일을 생성해야 합니다(tsm topology). 노드 구성 파일에는 구성 암호를 암호화하는 데 사용되는 마스터 키 저장소 파일의 복사본이 포함되어 있습니다.
중요: 암호가 포함된 구성 파일을 내보낼 때는 노드 구성 파일을 보호하는 추가적인 조치를 취하는 것이 좋습니다.
새 노드에 Tableau Server를 설치 및 구성할 때 initialize-tsm
명령에 노드 구성 파일을 지정해야 합니다.
암호 저장소 이벤트 로깅
암호 저장소와 관련된 다음 이벤트가 로그에 기록됩니다.
- 새 암호화 키 생성
- 암호화 키가 롤백되거나 변경됨
- 구성 파일의 새 값 암호화
로그 파일 및 저장 위치에 대한 자세한 내용은 로그 파일 작업을 참조하십시오.
암호 관리
Tableau Server 관리자에게 있어서 암호 저장소와 관련하여 가장 중요한 작업은 암호를 주기적으로 업데이트하는 것입니다. 필요한 경우(서버 문제 해결 또는 감사) 암호를 검색해야 할 수 있습니다.
위에서 설명한 버전 업그레이드, 백업 및 복원 또는 클러스터에 새 노드 추가와 같은 다른 작업을 위한 암호 저장소 및 관련 프로세스는 자동으로 관리됩니다.
암호 업데이트
암호는 회사의 보안 정책에 따라 주기적으로 업데이트해야 합니다.
마스터 키와 자동으로 생성된 암호를 업데이트하려면 tsm security regenerate-internal-tokens를 실행합니다.
암호 검색
일부 경우 문제 해결 또는 다른 작업을 위해 암호를 검색해야 할 수 있습니다. 예를 들어 Tableau Server에 의해 생성되고 암호화된 Postgres readonly 사용자 자격 증명이 필요할 수 있습니다. 이러한 경우 tsm 명령을 실행하여 필요한 암호를 검색하고 해독할 수 있습니다.
암호를 검색하려면 명령 프롬프트를 열고 아래 표에 나열된 매개 변수 중 하나에 대해 tsm configuration get
명령을 실행합니다.
예를 들어 읽기 전용 Postgres 사용자에 대한 암호를 검색하려면 다음 명령을 입력합니다.
tsm configuration get -k pgsql.readonly_password
명령을 실행하면 암호가 일반 텍스트로 반환됩니다.
$ tsm configuration get -k pgsql.readonly_password
password
Configuration Parameter | Description |
---|---|
clustercontroller.zookeeper.password | Password for cluster controller to connect to zookeeper. |
indexandsearchserver.client.password | Password for logging into Index and Search Server. |
indexandsearchserver.ssl.admin.cert.bytes | Admin certificate that is used for administrative access to the Index and Search Server. The admin certificate is used to generate the node certificate. |
indexandsearchserver.ssl.admin.key.file_bytes | Certificate key for administrative access to the Index and Search Server. |
indexandsearchserver.ssl.node.cert.bytes | Certificate that is used for Index and Search Server node-to-node communication. |
indexandsearchserver.ssl.node.key.file_bytes | Certificate key that is used for Index and Search Server node-to-node communication. |
indexandsearchserver.ssl.root.cert.bytes | Certificate that is used to sign the admin and node certificates . This certificate is used by TSM for health check and by NLP to connect to Index and Search Server. |
indexandsearchserver.ssl.root.key.file_bytes | Certificate key for root certificate. |
filestore.zookeeper.password | Password for filestore to connect to zookeeper. |
hyper.connection.init_password | Password used to initialize the Hyper database for user tableau_internal_user and is then used for connecting to Hyper.
|
jdbc.password | Password for the rails Postgres user. |
kms.persistent_store | A collection of master encryption keys (MEKs) used by the Key Management System. |
maestro.rserve.password | Password for connecting to an external Rserve instance used by Tableau Prep Conductor for running flows that have nodes with R scripts. |
maestro.tabpy.password | Password for connecting to an external TabPy (Python server) instance used by Tableau Prep Conductor for running flows that have nodes with Python scripts. |
oauth.google.client_secret | Client secret of the Google Cloud Platform account. |
oauth.quickbooks.consumer_secret | Consumer secret of the Intuit developer account. |
oauth.salesforce.client_secret | Client secret of the Salesforce developer account. |
pgsql.adminpassword | tblwgadmin Postgres 사용자의 암호입니다. 참고: 구성 매개 변수는 Tableau 구성 파일(tabsvc.yml, workgroup.yml)에서 암호화되지만 이 암호가 SAML에 사용되는 파일에 일반 텍스트로 저장됩니다. |
pgsql.readonly_password | Password for the readonly Postgres user. |
pgsql.remote_password | Password for the tableau Postgres user. |
redis.password | Redis의 암호입니다. 참고: 구성 매개 변수는 Tableau 구성 파일(tabsvc.yml, workgroup.yml)에서 암호화되지만 구성은 Redis 응용 프로그램에서 사용하는 redis.conf 파일에 일반 텍스트로 유지됩니다. Redis는 암호화/보안이 적용된 암호를 지원하지 않습니다. |
servercrashupload.proxy_server_password | Password for custom proxy server used to upload crash reports. |
service.runas.password | Password of the Run As users. Stored temporarily. |
ssl.cert.file_bytes | The content of one of the three SSL certificate files uploaded by the administrator. The certificate files are required to enable secure external connections to Tableau Server. |
ssl.chain.file_bytes | The chain file(s) for the certificates uploaded by the administrator for external SSL. |
ssl.key.file_bytes | Key file(s) for the certificates uploaded by the administrator for external SSL. |
ssl.key.passphrase | Optional passphrase used to protect the external SSL key. |
svcmonitor.notification.smtp.password | SMTP Server password supplied by the administrator through TabConfig.exe. |
tabadminservice.password | Password for the service that allows server admins to download log files through the web interface. |
vizportal.openid.client_secret | This is the password ("provider client secret") used for OpenID Connect SSO. |
vizqlserver.external_proxy_password | Password used to authenticate to an external proxy. |
wgserver.domain.password | Password used to bind to Active Directory. |
wgserver.saml.key.passphrase | Passphrase used to access the PKCS#8 SAML key file. |
zookeeper.tsm.password | Password that TSM uses to connect to Zookeeper coordination service |