จัดการข้อมูลลับของเซิร์ฟเวอร์

Tableau Server จำเป็นต้องเก็บข้อมูลลับส่วนหนึ่งที่ใช้ในการดำเนินการฟังก์ชันต่างๆ ซึ่งโดยทั่วไปจะรักษาความปลอดภัยในการสื่อสารภายใน การสื่อสารกับแอปพลิเคชันอื่นหรือระบบปฏิบัติการ หรือให้การสื่อสารที่ปลอดภัยกับไคลเอ็นต์ ในบริบทนี้ คำว่า ข้อมูลลับ อาจหมายถึงรหัสผ่าน โทเค็น หรือสตริงอื่นๆ ที่ใช้ในการตรวจสอบสิทธิ์เอนทิตีหนึ่งกับอีกเอนทิตีหนึ่ง

ข้อมูลลับที่จำเป็นในการเรียกใช้ Tableau Server มีสองหมวดหมู่ โดยแต่ละหมวดหมู่จะต่างกันไปตามวิธีการสร้างข้อมูลลับ ดังนี้

  • ข้อมูลลับที่สร้างขึ้นโดยผู้ดูแลระบบ ข้อมูลลับเหล่านี้รวมถึงข้อมูลเข้าสู่ระบบและข้อมูลลับที่เกี่ยวข้องสำหรับบัญชีเรียกใช้งานในฐานะผู้ใช้และข้อมูลเข้าสู่ระบบ SMTP ที่ Tableau Server ใช้งาน
  • ข้อมูลลับที่สร้างขึ้นโดยอัตโนมัติโดยกระบวนการต่างๆ ในระบบ ตัวอย่างเช่น จำเป็นต้องมีข้อมูลลับเพื่อปกป้องการสื่อสารระหว่างตัวควบคุมคลัสเตอร์และกระบวนการ ZooKeeper และต้องใช้รหัสผ่านที่แตกต่างกันหลายรายการสำหรับแต่ละบริการและผู้ใช้โปรแกรมที่สื่อสารกับ Postgres

ระบบจะเข้ารหัสข้อมูลลับส่วนใหญ่ในขณะที่ไม่ได้ใช้งาน เมื่อต้องใช้ข้อมูลลับ ระบบจะถอดรหัสข้อมูลลับนั้นในขณะใช้งาน

หัวข้อนี้อธิบายวิธีการทำงานของพื้นที่เก็บข้อมูลลับและสิ่งที่คุณต้องทำเพื่อจัดการพื้นที่เก็บข้อมูลลับบน Tableau Server อย่างเหมาะสม

การทำความเข้าใจวิธีการทำงานของพื้นที่เก็บข้อมูลลับ

ในระหว่างการติดตั้ง Tableau Server จะสร้างและจัดเก็บคีย์หลักในคีย์สโตร์ของ Java ระบบจะใช้คีย์หลักเพื่อเข้ารหัสคีย์การเข้ารหัสการกำหนดค่าที่ใช้ทั่วทั้งระบบ

เมื่อใดก็ตามที่มีการสร้างข้อมูลลับใหม่หรืออัปเดตข้อมูลลับ ระบบจะเข้ารหัสข้อมูลลับด้วยคีย์การเข้ารหัสการกำหนดค่า จากนั้นระบบจะจัดเก็บค่าที่เข้ารหัสพร้อมกับพารามิเตอร์การกำหนดค่าที่เกี่ยวข้องในไฟล์ YAML บนเซิร์ฟเวอร์ พารามิเตอร์ที่มีค่าที่เข้ารหัสจะใช้รูปแบบ ENC(<encrypted string>) โดยที่ <encrypted string> เป็นสตริงที่เข้ารหัสแบบ Base64

ขณะใช้งาน เมื่อจำเป็นต้องเข้าถึงข้อมูลลับที่กำหนด ระบบจะอ่านค่าที่เข้ารหัสในหน่วยความจำและถอดรหัสด้วยคีย์การเข้ารหัสการกำหนดค่า

ในกรณีของการเปลี่ยนแปลงที่รอดำเนินการ ซึ่งมีการป้อนข้อมูลลับระหว่างการเปลี่ยนแปลงการกำหนดค่า ระบบจะเข้ารหัสธุรกรรมทั้งหมด ในกรณีนี้ หลังจากที่คุณป้อนข้อมูลลับแล้วบันทึกการเปลี่ยนแปลงที่รอดำเนินการ ระบบจะส่งข้อมูลลับไปยังบริการประสานงาน (ผ่าน SSL ที่เข้ารหัส) บริการประสานงานจะเข้ารหัสข้อมูลลับและจัดเก็บข้อมูลลับไว้จนกว่าจะมีการเปลี่ยนแปลงที่รอดำเนินการ เมื่อมีการเปลี่ยนแปลง ข้อมูลลับ (ยังเข้ารหัสอยู่) จะได้รับการเลื่อนระดับเป็นเวอร์ชันการกำหนดค่าปัจจุบัน

Tableau Server เข้ารหัสข้อมูลลับโดยใช้ AES 256 บิตในโหมด GCM คีย์ที่ใช้สำหรับพื้นที่เก็บข้อมูลที่ปลอดภัยจะแตกต่างจากคีย์เนื้อหาที่ใช้ในการเข้ารหัสข้อมูลเข้าสู่ระบบฐานข้อมูลที่ฝังอยู่ก่อนที่ระบบจะจัดเก็บไว้ในที่เก็บ

ใครสามารถเข้าถึงคีย์หลักได้บ้าง

ในการติดตั้งที่เป็นค่าเริ่มต้น ระบบจะติดตั้งคีย์สโตร์ของ Java สำหรับ Tableau Server ไว้ในโฟลเดอร์ \ProgramData\Tableau\Tableau Server\data\tabsvc\crypto\keystores\ หากคุณติดตั้ง Tableau บนไดรฟ์ที่ไม่ใช่ระบบ เส้นทางดังกล่าวจะเป็น <install drive>:\Tableau\Tableau Server\data\tabsvc\crypto\keystores\ ตามค่าเริ่มต้น บัญชีต่อไปนี้สามารถเข้าถึงไดเรกทอรีนี้ได้

  • บัญชีเรียกใช้งานในฐานะผู้ใช้ (หากกำหนดค่าไว้)
  • บัญชี NetworkService ที่กำหนดไว้ล่วงหน้าของ Windows ในระบบ
  • บัญชี LocalSystem ที่กำหนดไว้ล่วงหน้าของ Windows ในระบบ
  • สมาชิกของกลุ่มผู้ดูแลระบบคอมพิวเตอร์

นำเข้าและส่งออกข้อมูลการกำหนดค่า

Tableau Services Manager เพิ่มความสามารถในการนำเข้าและส่งออกข้อมูลการกำหนดค่าโดยใช้ส่งออกการตั้งค่า TSM

หมายเหตุ: Tableau Server เวอร์ชันนี้ไม่รองรับการกู้คืนข้อมูลการกำหนดค่าจากข้อมูลสำรอง แต่เราขอแนะนำให้ใช้คำสั่งส่งออกและนำเข้าการกำหนดค่าเพื่อสำรองข้อมูลและกู้คืนข้อมูลการกำหนดค่า

ขณะที่ระบบเข้ารหัสข้อมูลลับการกำหนดค่าเมื่อจัดเก็บบนดิสก์ภายในและเมื่อส่งออกการกำหนดค่าเหล่านี้ไปยังไฟล์ ระบบจะเขียนข้อมูลลับไปยังไฟล์เป็นข้อความธรรมดา จึงขึ้นอยู่กับผู้ดูแลระบบที่จะต้องมีมาตรการในการปกป้องไฟล์นี้ ตัวเลือกมีหลากหลายดังต่อไปนี้

  • เขียนไฟล์ไปยังระบบไฟล์ที่เข้ารหัส
  • เขียนไฟล์ไปยังไดเรกทอรีที่จำกัดเฉพาะผู้ใช้หรือกลุ่มตามสิทธิ์ของระบบไฟล์
  • เข้ารหัสไฟล์เอาต์พุต

การรักษาความปลอดภัยของข้อมูลลับสำหรับการดำเนินการนำเข้าและส่งออก

ใช้ชุดเครื่องมือของบุคคลที่สาม เช่น OpenSSL เพื่อเข้ารหัสเอาต์พุตข้อมูลสำรอง

โหนดคลัสเตอร์

เมื่อเพิ่มโหนดใหม่ให้กับคลัสเตอร์ Tableau Server ของคุณ คุณจะต้องสร้างไฟล์การกำหนดค่าโหนดก่อน (tsm topology) ไฟล์การกำหนดค่าโหนดมีสำเนาของไฟล์คีย์สโตร์หลักที่ใช้สำหรับเข้ารหัสข้อมูลลับของการกำหนดค่า

สำคัญ: เราขอแนะนำเป็นอย่างยิ่งให้คุณใช้มาตรการเพิ่มเติมเพื่อรักษาความปลอดภัยไฟล์การกำหนดค่าโหนดเมื่อส่งออกไฟล์การกำหนดค่าที่มีข้อมูลลับ

เมื่อติดตั้งและกำหนดค่า Tableau Server บนโหนดใหม่ คุณจะต้องจัดเตรียมไฟล์การกำหนดค่าโหนดให้กับคำสั่ง initialize-tsm

การบันทึกเหตุการณ์ในพื้นที่เก็บข้อมูลลับ

ระบบจะบันทึกเหตุการณ์ต่อไปนี้ที่เกี่ยวข้องกับพื้นที่เก็บข้อมูลลับไว้

  • การสร้างคีย์การเข้ารหัสใหม่
  • คีย์การเข้ารหัสย้อนกลับหรือเปลี่ยนแปลง
  • การเข้ารหัสค่าใหม่ในไฟล์การกำหนดค่า

หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับไฟล์บันทึกและตำแหน่งที่จัดเก็บไฟล์บันทึก โปรดดู ทำงานกับไฟล์บันทึก

การจัดการข้อมูลลับ

ในฐานะผู้ดูแลระบบ Tableau Server งานที่สำคัญที่สุดที่เกี่ยวข้องกับพื้นที่เก็บข้อมูลลับคือการอัปเดตข้อมูลลับเป็นระยะ ในบางกรณี (การแก้ไขปัญหาเซิร์ฟเวอร์หรือการตรวจสอบ) คุณอาจต้องดึงข้อมูลรหัสผ่าน

สำหรับการดำเนินการอื่นๆ เช่น การอัปเกรดเวอร์ชัน การสำรองข้อมูลและการกู้คืน หรือการเพิ่มโหนดใหม่ให้กับคลัสเตอร์ ตามที่กล่าวไว้ข้างต้น Tableau Server จะจัดการพื้นที่เก็บข้อมูลลับและกระบวนการที่เกี่ยวข้องโดยอัตโนมัติ

การอัปเดตข้อมูลลับ

คุณควรอัปเดตข้อมูลลับเป็นระยะๆ ตามนโยบายความปลอดภัยของบริษัทของคุณ

หากต้องการอัปเดตคีย์หลักและข้อมูลลับที่สร้างไว้โดยอัตโนมัติ ให้เรียกใช้ tsm security regenerate-internal-tokens

การดึงข้อมูลรหัสผ่าน

ในบางกรณี คุณอาจต้องดึงข้อมูลรหัสผ่านสำหรับการแก้ไขปัญหาหรือการดำเนินการอื่นๆ ตัวอย่างเช่น คุณอาจต้องใช้ข้อมูลเข้าสู่ระบบของผู้ใช้ Postgres แบบ readonly ที่สร้างขึ้นและเข้ารหัสโดย Tableau Server ในกรณีเหล่านี้ คุณสามารถเรียกใช้คำสั่ง tsm ที่จะดึงข้อมูลและถอดรหัสรหัสผ่านสำหรับคุณได้

ในการดึงข้อมูลรหัสผ่าน ให้เปิดข้อความแจ้งคำสั่งและออกคำสั่ง tsm configuration get สำหรับพารามิเตอร์ใดพารามิเตอร์หนึ่งที่แสดงอยู่ในตารางด้านล่าง

ตัวอย่างเช่น ในการดึงข้อมูลรหัสผ่านสำหรับผู้ใช้ Postgres แบบ readonly ให้พิมพ์คำสั่งต่อไปนี้

tsm configuration get -k pgsql.readonly_password

คำสั่งจะส่งคืนรหัสผ่านเป็นข้อความที่ชัดเจน ดังนี้

$ tsm configuration get -k pgsql.readonly_password

password

Configuration ParameterDescription
clustercontroller.zookeeper.passwordPassword 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.passwordPassword 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.passwordPassword 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.passwordPassword 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_secretClient secret of the Google Cloud Platform account.
oauth.quickbooks.consumer_secretConsumer secret of the Intuit developer account.
oauth.salesforce.client_secretClient secret of the Salesforce developer account.
pgsql.adminpassword

รหัสผ่านสำหรับผู้ใช้ Postgres แบบ tblwgadmin

หมายเหตุ: แม้ว่าพารามิเตอร์การกำหนดค่าจะได้รับการเข้ารหัสในไฟล์การกำหนดค่าของ Tableau (tabsvc.yml, workgroup.yml) ระบบจะจัดเก็บรหัสผ่านนี้เป็นข้อความธรรมดาในไฟล์ที่ใช้โดย SAML

pgsql.readonly_passwordPassword for the readonly Postgres user.
pgsql.remote_passwordPassword for the tableau Postgres user.
redis.password

รหัสผ่านสำหรับ Redis

หมายเหตุ: แม้ว่าพารามิเตอร์การกำหนดค่าจะได้รับการเข้ารหัสในไฟล์การกำหนดค่าของ Tableau (tabsvc.yml, workgroup.yml) การกำหนดค่าจะยังคงเป็นข้อความธรรมดาในไฟล์ redis.conf ที่แอปพลิเคชัน Redis ใช้งาน Redis ไม่รองรับรหัสผ่านที่เข้ารหัสหรือปลอดภัย

servercrashupload.proxy_server_passwordPassword for custom proxy server used to upload crash reports.
service.runas.passwordPassword 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_bytesKey file(s) for the certificates uploaded by the administrator for external SSL.
ssl.key.passphraseOptional passphrase used to protect the external SSL key.
svcmonitor.notification.smtp.passwordSMTP Server password supplied by the administrator through TabConfig.exe.
tabadminservice.passwordPassword for the service that allows server admins to download log files through the web interface.
vizportal.openid.client_secretThis 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.passwordPassword used to bind to Active Directory.
wgserver.saml.key.passphrasePassphrase used to access the PKCS#8 SAML key file.
zookeeper.tsm.passwordPassword that TSM uses to connect to Zookeeper coordination service
ขอบคุณสำหรับข้อเสนอแนะของคุณส่งข้อเสนอแนะของคุณเรียบร้อยแล้ว ขอขอบคุณ