Hashicorp - https. // nhà phát triển. mysql. com/doc/refman/8. 0/vi/keyring-hashicorp-plugin. html#keyring-hashicorp-plugin-configuration
AWS-https. // nhà phát triển. mysql. com/doc/refman/8. 0/en/keyring-aws-plugin. html#keyring-aws-plugin-configuration
keyring_vault cung cấp giao diện cho cơ sở dữ liệu với máy chủ HashiCorp Vault để lưu trữ khóa và khóa mã hóa an toàn
Ghi chú
Không nên sử dụng plugin keyring_file
để tuân thủ quy định
Để cài đặt plugin, hãy làm theo hướng dẫn cài đặt và gỡ cài đặt plugin
Tải plugin keyring
Bạn nên tải plugin khi khởi động máy chủ với tùy chọn -early-plugin-load
để kích hoạt chuỗi khóa
Cảnh báo
Mỗi lần chỉ nên bật một plugin khóa. Kích hoạt nhiều phần bổ trợ khóa không được hỗ trợ và có thể dẫn đến mất dữ liệu
Chúng tôi khuyên bạn nên tải plugin trong tệp cấu hình để tạo điều kiện khôi phục cho các bảng được mã hóa. Ngoài ra, không thể sử dụng mã hóa nhật ký làm lại và mã hóa nhật ký hoàn tác nếu không có --early-plugin-load
. Tải plugin bình thường xảy ra quá muộn khi khởi động
Ghi chú
Tiện ích mở rộng keyring_vault, “. so” và vị trí tệp cho cấu hình vault phải được thay đổi để phù hợp với phần mở rộng của hệ điều hành và vị trí tệp trong hệ điều hành của bạn
Để sử dụng keyring_vault, bạn có thể thêm tùy chọn này vào tệp cấu hình của mình
[mysqld]
early-plugin-load="keyring_vault=keyring_vault.so"
loose-keyring_vault_config="/home/mysql/keyring_vault.conf"
The keyring_vault extension, ".so" and the file location for the vault
configuration should be changed to match your operating system's extension
and operating system location.
Bạn cũng có thể chạy lệnh sau để tải plugin keyring_file
$ mysqld --early-plugin-load="keyring_file=keyring_file.so"
Ghi chú
Nếu máy chủ bắt đầu với các plugin khác nhau được tải sớm, tùy chọn --early-plugin-load
sẽ chứa tên plugin trong danh sách trích dẫn kép với mỗi tên plugin được phân tách bằng dấu chấm phẩy. Việc sử dụng dấu ngoặc kép đảm bảo dấu chấm phẩy không tạo ra sự cố khi danh sách được thực thi trong tập lệnh
Ngoài việc cài đặt plugin, bạn cũng phải đặt biến keyring_vault_config để trỏ đến tệp cấu hình keyring_vault
Tệp keyring_vault_config có thông tin sau
vault_url
- địa chỉ máy chủ Vault
0 - tên điểm gắn kết nơi keyring_vault lưu trữ khóa$ mysqld --early-plugin-load="keyring_file=keyring_file.so"
1 -$ mysqld --early-plugin-load="keyring_file=keyring_file.so"
2 được sử dụng. Được triển khai trong Máy chủ Percona cho MySQL 8. 0. 23-14$ mysqld --early-plugin-load="keyring_file=keyring_file.so"
3 - mã thông báo được tạo bởi máy chủ Vault$ mysqld --early-plugin-load="keyring_file=keyring_file.so"
4 - nếu máy không tin cậy chứng chỉ CA của Vault, thì biến này sẽ trỏ tới chứng chỉ CA được sử dụng để ký chứng chỉ của Vault$ mysqld --early-plugin-load="keyring_file=keyring_file.so"
Đây là một ví dụ về một tập tin cấu hình
vault_url = //vault.public.com:8202
secret_mount_point = secret
secret_mount_point_version = AUTO
token = 58a20c08-8001-fd5f-5192-7498a48eaf20
vault_ca = /data/keyring_vault_confs/vault_ca.crt
Cảnh báo
Mỗi
$ mysqld --early-plugin-load="keyring_file=keyring_file.so"
0 chỉ được sử dụng bởi một máy chủ. Nếu nhiều máy chủ sử dụng cùng một secret_mount_point, hành vi sẽ không thể đoán trướcLần đầu tiên một khóa được tìm nạp từ một chuỗi khóa, keyring_vault sẽ giao tiếp với máy chủ Vault để truy xuất loại khóa và dữ liệu
thông tin secret_mount_point_version
Được triển khai trong Máy chủ Percona cho MySQL 8. 0. 23-14,
$ mysqld --early-plugin-load="keyring_file=keyring_file.so"
1 có thể là $ mysqld --early-plugin-load="keyring_file=keyring_file.so"
7, $ mysqld --early-plugin-load="keyring_file=keyring_file.so"
8, $ mysqld --early-plugin-load="keyring_file=keyring_file.so"
9 hoặc tham số $ mysqld --early-plugin-load="keyring_file=keyring_file.so"
1 không được liệt kê trong tệp cấu hìnhValueDescription1Hoạt động với vault_url = //vault.public.com:8202
secret_mount_point = secret
secret_mount_point_version = AUTO
token = 58a20c08-8001-fd5f-5192-7498a48eaf20
vault_ca = /data/keyring_vault_confs/vault_ca.crt
1. Khi hình thành các URL hoạt động chính, $ mysqld --early-plugin-load="keyring_file=keyring_file.so"
0 luôn được sử dụng mà không có bất kỳ biến đổi nào. Ví dụ: để trả về khóa có tên vault_url = //vault.public.com:8202
secret_mount_point = secret
secret_mount_point_version = AUTO
token = 58a20c08-8001-fd5f-5192-7498a48eaf20
vault_ca = /data/keyring_vault_confs/vault_ca.crt
3, URL là/v1//skey2Works với vault_url = //vault.public.com:8202
secret_mount_point = secret
secret_mount_point_version = AUTO
token = 58a20c08-8001-fd5f-5192-7498a48eaf20
vault_ca = /data/keyring_vault_confs/vault_ca.crt
4 Logic khởi tạo chia tham số $ mysqld --early-plugin-load="keyring_file=keyring_file.so"
0 thành hai phần
6 - đường dẫn gắn kết theo đó bí mật Máy chủ Vault được tạovault_url = //vault.public.com:8202 secret_mount_point = secret secret_mount_point_version = AUTO token = 58a20c08-8001-fd5f-5192-7498a48eaf20 vault_ca = /data/keyring_vault_confs/vault_ca.crt
7 - một hậu tố thư mục ảo có thể được sử dụng để tạo các không gian tên ảo có cùng điểm gắn kết thựcvault_url = //vault.public.com:8202 secret_mount_point = secret secret_mount_point_version = AUTO token = 58a20c08-8001-fd5f-5192-7498a48eaf20 vault_ca = /data/keyring_vault_confs/vault_ca.crt
vault_url = //vault.public.com:8202
secret_mount_point = secret
secret_mount_point_version = AUTO
token = 58a20c08-8001-fd5f-5192-7498a48eaf20
vault_ca = /data/keyring_vault_confs/vault_ca.crt
6 và vault_url = //vault.public.com:8202
secret_mount_point = secret
secret_mount_point_version = AUTO
token = 58a20c08-8001-fd5f-5192-7498a48eaf20
vault_ca = /data/keyring_vault_confs/vault_ca.crt
7 đều cần thiết để tạo URL truy cập chính. /v1/ INSTALL PLUGIN keyring_udf SONAME 'keyring_udf.so';
0 hay mysql> INSTALL PLUGIN keyring_udf SONAME 'keyring_udf.so';
1 và dựa trên kết quả sẽ sử dụng nguyên trạng của ______1_______0 hoặc chia ___1_______0 thành hai phần. Không được liệt kêNếu $ mysqld --early-plugin-load="keyring_file=keyring_file.so"
1 không được liệt kê trong tệp cấu hình, hành vi sẽ giống như $ mysqld --early-plugin-load="keyring_file=keyring_file.so"
9Nếu bạn đặt
$ mysqld --early-plugin-load="keyring_file=keyring_file.so"
1 thành $ mysqld --early-plugin-load="keyring_file=keyring_file.so"
8 nhưng đường dẫn được chỉ định bởi $ mysqld --early-plugin-load="keyring_file=keyring_file.so"
0 dựa trên vault_url = //vault.public.com:8202
secret_mount_point = secret
secret_mount_point_version = AUTO
token = 58a20c08-8001-fd5f-5192-7498a48eaf20
vault_ca = /data/keyring_vault_confs/vault_ca.crt
1, một lỗi sẽ được báo cáo và plugin không khởi tạo đượcNếu bạn đặt
$ mysqld --early-plugin-load="keyring_file=keyring_file.so"
1 thành $ mysqld --early-plugin-load="keyring_file=keyring_file.so"
7 nhưng đường dẫn được chỉ định bởi $ mysqld --early-plugin-load="keyring_file=keyring_file.so"
0 dựa trên keyring_vault
3, thì quá trình khởi tạo plugin thành công nhưng mọi thao tác liên quan đến khóa MySQL không thành côngNâng cấp từ 8. 0. 22-13 hoặc sớm hơn đến 8. 0. 23-14 hoặc muộn hơn
Các tệp cấu hình plugin keyring_vault
được tạo trước Percona Server cho MySQL 8. 0. 23-14 chỉ hoạt động với
vault_url = //vault.public.com:8202
secret_mount_point = secret
secret_mount_point_version = AUTO
token = 58a20c08-8001-fd5f-5192-7498a48eaf20
vault_ca = /data/keyring_vault_confs/vault_ca.crt
1 và không có tham số $ mysqld --early-plugin-load="keyring_file=keyring_file.so"
1. Sau khi nâng cấp lên 8. 0. 23-14 trở đi, $ mysqld --early-plugin-load="keyring_file=keyring_file.so"
1 được mặc nhiên coi là $ mysqld --early-plugin-load="keyring_file=keyring_file.so"
9 và thông tin được thăm dò và phiên bản động cơ bí mật được xác định là $ mysqld --early-plugin-load="keyring_file=keyring_file.so"
7Nâng cấp từ Vault Secrets Engine Phiên bản 1 lên Phiên bản 2
Bạn có thể nâng cấp từ Vault Secrets Engine Phiên bản 1 lên Phiên bản 2. Sử dụng một trong các phương pháp sau
Đặt
1 thành$ mysqld --early-plugin-load="keyring_file=keyring_file.so"
9 hoặc biến không được đặt trong tệp cấu hình plugin$ mysqld --early-plugin-load="keyring_file=keyring_file.so"
keyring_vault
trong tất cả Máy chủ Percona. Giá trị
9 đảm bảo cơ chế tự động phát hiện được gọi trong quá trình khởi tạo plugin$ mysqld --early-plugin-load="keyring_file=keyring_file.so"
Đặt
1 thành$ mysqld --early-plugin-load="keyring_file=keyring_file.so"
8 để đảm bảo rằng plugin không khởi tạo trừ khi quá trình nâng cấp$ mysqld --early-plugin-load="keyring_file=keyring_file.so"
0 thànhmysql> INSTALL PLUGIN keyring_udf SONAME 'keyring_udf.so';
1 hoàn tấtmysql> INSTALL PLUGIN keyring_udf SONAME 'keyring_udf.so';
Ghi chú
Plugin keyring_vault
hoạt động với các công cụ bí mật của
mysql> INSTALL PLUGIN keyring_udf SONAME 'keyring_udf.so';
1 không sử dụng khả năng lập phiên bản khóa tích hợp. Các phiên bản khóa keyring được mã hóa thành tên khóaKV Secret Engine cân nhắc nâng cấp từ 5. 7 đến 8. 0
Khi bạn nâng cấp từ Percona Server cho MySQL 5. 7. 32 tuổi trở lên, bạn chỉ có thể sử dụng -early-plugin-load
0. Bạn có thể nâng cấp lên bất kỳ phiên bản nào của Percona Server cho MySQL 8. 0. Cả plugin keyring_vault
cũ và plugin keyring_vault
mới đều hoạt động chính xác với dữ liệu Máy chủ Vault hiện có trong tệp cấu hình plugin keyring_vault
hiện có
Nếu bạn nâng cấp từ Percona Server cho MySQL 5. 7. 33 trở lên, bạn có các tùy chọn sau
Nếu bạn đang sử dụng
-early-plugin-load
0, bạn có thể nâng cấp với bất kỳ phiên bản nào của Percona Server cho MySQL 8. 0Nếu bạn đang sử dụng
-early-plugin-load
5, bạn có thể nâng cấp với Percona Server cho MySQL 8. 0. 23 hoặc mới hơn. Máy chủ Percona cho MySQL 8. 0. 23. 14 là phiên bản đầu tiên của 8. 0 có pluginkeyring_vault
hỗ trợ
1mysql> INSTALL PLUGIN keyring_udf SONAME 'keyring_udf.so';
Chỉ có thể xóa khóa do người dùng tạo bằng cách sử dụng plugin keyring_udf và xóa khóa khỏi bản đồ băm trong bộ nhớ và máy chủ Vault. Bạn không thể xóa các khóa hệ thống, chẳng hạn như khóa chính
Plugin này hỗ trợ giao diện SQL để quản lý khóa khóa được mô tả trong hướng dẫn Chức năng quản lý khóa khóa mục đích chung
Thư viện plugin chứa các chức năng khóa do người dùng xác định cho phép truy cập vào các chức năng dịch vụ khóa nội bộ. Để kích hoạt các chức năng, bạn phải kích hoạt plugin -early-plugin-load
8
mysql> INSTALL PLUGIN keyring_udf SONAME 'keyring_udf.so';
Ghi chú
Plugin -early-plugin-load
8 phải được cài đặt. Sử dụng các chức năng do người dùng định nghĩa mà không có plugin -early-plugin-load
8 sẽ tạo ra lỗi
Bạn cũng phải tạo các chức năng mã hóa khóa do người dùng xác định
Sử dụng thành phần keyring_file
Xem cài đặt thành phần khóa để biết thông tin về cách cài đặt thành phần
Cảnh báo
Không nên sử dụng thành phần keyring_file
để tuân thủ quy định
Xem thêm
Tài liệu MySQL. Sử dụng thành phần keyring_file
Biến hệ thống
--early-plugin-load
2
Tùy chọnMô tảDòng lệnh–keyring-vault-configScopeGlobalDynamicYesKiểu dữ liệuVăn bảnMặc địnhBiến này xác định vị trí của tệp cấu hình keyring_vault_plugin
--early-plugin-load
3
Tùy chọnMô tảDòng lệnh–keyring-vault-timeoutPhạm viGlobalDynamicYesKiểu dữ liệuNumericDefault15Đặt thời lượng tính bằng giây cho thời gian chờ kết nối máy chủ Vault. Giá trị mặc định là --early-plugin-load
4. Phạm vi cho phép là từ --early-plugin-load
5 đến --early-plugin-load
6. Thời gian chờ cũng có thể bị vô hiệu hóa để đợi một khoảng thời gian vô hạn bằng cách đặt biến này thành --early-plugin-load
5