クラウドSQLでの機密データのセキュリティー保護
13476 ワード
我々は我々のGKEオートパイロットクラスタを作成しました.この部分では、クラウドSQLインスタンスを構成します.
次のリソースが作成されます. 非常に利用可能なプライベートクラウドSQLのMySQLインスタンス データベースとユーザ プライベート接続のための自動内部IP範囲 GCPサービスへのプライベート接続
使用するクラウドSQLインスタンスは、MySQLデータベースサーバーです The インスタンスが公開されておらず、そのプライベートIP 認証はIAM 自動バックアップ 後でデータベースとユーザを作成します 地形ファイルを作成する
IPアドレス範囲を割り当て、プライベートサービス接続を作成するためにプライベートサービスアクセスを設定する必要があります.これにより、Webサブネット内のリソースがクラウドSQLインスタンスに接続できます.
コンプリートファイル
クラウドSQLインスタンス
ピアリング接続
プライベートコネクション
結論
次のリソースが作成されます.
クラウドSQL
Multiples zones
オプションを有効にするinfra/plan/cloud-sql.tf
resource "random_string" "db_name_suffix" {
length = 4
special = false
upper = false
}
resource "google_sql_database_instance" "mysql" {
# Instance info
name = "mysql-private-${random_string.db_name_suffix.result}"
region = var.region
database_version = var.mysql_database_version
settings {
# Region and zonal availability
availability_type = var.mysql_availability_type
location_preference {
zone = var.mysql_location_preference
}
# Machine Type
tier = var.mysql_machine_type
# Storage
disk_size = var.mysql_default_disk_size
# Connections
ip_configuration {
ipv4_enabled = false
private_network = google_compute_network.custom.id
}
# Backups
backup_configuration {
binary_log_enabled = true
enabled = true
start_time = "06:00"
}
}
depends_on = [
google_service_networking_connection.private-vpc-connection
]
}
data "google_secret_manager_secret_version" "wordpress-admin-user-password" {
secret = "wordpress-admin-user-password"
}
resource "google_sql_database" "wordpress" {
name = "wordpress"
instance = google_sql_database_instance.mysql.name
}
resource "google_sql_user" "wordpress" {
name = "wordpress"
instance = google_sql_database_instance.mysql.name
password = data.google_secret_manager_secret_version.wordpress-admin-user-password.secret_data
}
次の出力を追加output "cloud-sql-connection-name" {
value = google_sql_database_instance.mysql.connection_name
}
output "cloud-sql-instance-name" {
value = "mysql-private-${random_string.db_name_suffix.result}"
}
プライベートコネクション
IPアドレス範囲を割り当て、プライベートサービス接続を作成するためにプライベートサービスアクセスを設定する必要があります.これにより、Webサブネット内のリソースがクラウドSQLインスタンスに接続できます.
コンプリートファイル
infra/plan/vpc.tf
次のリソースを使用します.resource "google_compute_global_address" "private-ip-peering" {
name = "google-managed-services-custom"
purpose = "VPC_PEERING"
address_type = "INTERNAL"
prefix_length = 24
network = google_compute_network.custom.id
}
resource "google_service_networking_connection" "private-vpc-connection" {
network = google_compute_network.custom.id
service = "servicenetworking.googleapis.com"
reserved_peering_ranges = [
google_compute_global_address.private-ip-peering.name
]
}
コンプリートファイルinfra/plan/variable.tf
:variable "region" {
type = string
default = "europe-west1"
}
variable "mysql_location_preference" {
type = string
default = "europe-west1-b"
}
variable "mysql_machine_type" {
type = string
default = "db-n1-standard-2"
}
variable "mysql_database_version" {
type = string
default = "MYSQL_8_0"
}
variable "mysql_default_disk_size" {
type = string
default = "100"
}
variable "mysql_availability_type" {
type = string
default = "REGIONAL"
}
変更を適用する前に、ユーザパスワードの秘密を作成する必要があります.gcloud services enable secretmanager.googleapis.com --project $PROJECT_ID
gcloud beta secrets create wordpress-admin-user-password --locations $REGION --replication-policy user-managed
echo -n "changeme" | gcloud beta secrets versions add wordpress-admin-user-password --data-file=-
クラウドSQLインスタンスを配備しましょうcd infra/plan
gcloud services enable sqladmin.googleapis.com --project $PROJECT_ID
terraform apply
すべてのリソースが作成され、正しく動作しているかどうかを確認します.クラウドSQLインスタンス
ピアリング接続
プライベートコネクション
結論
私たちのクラウドのSQLインスタンスが利用可能になりました.ここでは、GKEクラスタで展開されたコンテナーと、クラウドSQLインスタンスで作成されたデータベース間の接続を確立します.
Reference
この問題について(クラウドSQLでの機密データのセキュリティー保護), 我々は、より多くの情報をここで見つけました
https://dev.to/stack-labs/securing-sensitive-data-in-cloud-sql-23hg
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
Reference
この問題について(クラウドSQLでの機密データのセキュリティー保護), 我々は、より多くの情報をここで見つけました https://dev.to/stack-labs/securing-sensitive-data-in-cloud-sql-23hgテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol