Mengamankan data Anda dengan menggunakan Otoritas Sertifikat (CA) yang dikelola pelanggan

Anda dapat mengenkripsi semua data yang berpindah antara aplikasi klien dan Memorystore for Valkey dengan aman. Ini adalah enkripsi dalam pengiriman. Dengan menggunakan enkripsi dalam transit, semua traffic Valkey dienkripsi melalui protokol Transport Layer Security (TLS). Tindakan ini memastikan bahwa semua data yang berpindah antara aplikasi Anda dan Memorystore untuk Valkey tetap bersifat rahasia dan tidak dimodifikasi.

Jika enkripsi dalam transit diaktifkan, klien Valkey akan berkomunikasi secara eksklusif melalui koneksi yang aman. Klien Valkey yang tidak dikonfigurasi untuk TLS akan diblokir. Jika memilih untuk menggunakan enkripsi dalam transit, Anda bertanggung jawab untuk memastikan bahwa klien Valkey Anda dapat menggunakan protokol TLS.

Instance yang menggunakan enkripsi dalam transit memiliki Certificate Authority (CA). Anda menggunakan CA untuk mengautentikasi sertifikat komputer di instance Anda.

Salah satu mode CA yang dapat Anda gunakan adalah CA yang dikelola pelanggan. Anda dapat menggunakan CA yang dikelola pelanggan untuk instance Memorystore for Valkey. Jika perlu mengelola CA sendiri karena alasan kepatuhan, Anda dapat menggunakan mode CA ini. Sebagai bagian dari penggunaan mode ini, Anda harus menyiapkan kumpulan CA sendiri yang dihosting di Certificate Authority Service.

Sebelum dapat mengonfigurasi instance untuk menggunakan CA yang dikelola pelanggan, Anda harus membuat kumpulan CA di region yang sama dengan instance Anda dan setidaknya satu CA dalam kumpulan tersebut menggunakan CA Service. CA dapat berupa CA root atau CA subordinat. Anda juga dapat membuat CA subordinat di CA Service dan kemudian menghubungkan CA subordinat ke CA root eksternal.

Saat membuat instance, Anda menentukan kumpulan CA. Sebagai bagian dari konfigurasi ini, akun layanan Memorystore for Valkey khusus project memiliki izin untuk menggunakan kumpulan CA. Akun layanan meminta CA dari pool dan Memorystore untuk Valkey menggunakan CA tersebut untuk menandatangani sertifikat server untuk instance.

Sebelum memulai

Sebelum menggunakan mode CA yang dikelola pelanggan, pastikan Anda memenuhi persyaratan berikut.

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk membuat kumpulan CA dan CA, minta administrator Anda untuk memberi Anda peran IAM CA Service Operation Manager (roles/privateca.caManager) di CA Service.

Anda mungkin juga mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Alur kerja untuk menggunakan CA yang dikelola pelanggan

Untuk menggunakan CA yang dikelola pelanggan, alur kerjanya adalah sebagai berikut:

  1. Buat kumpulan CA. Sebelum dapat mengonfigurasi instance untuk menggunakan CA yang dikelola pelanggan, Anda harus membuat kumpulan CA di CA Service. Kumpulan ini harus berada di region yang sama dengan instance Anda.
  2. Buat CA di kumpulan CA. Setelah membuat kumpulan CA, Anda harus menggunakan Layanan CA untuk membuat setidaknya satu CA dalam kumpulan tersebut.
  3. Delegasikan izin ke akun layanan Memorystore for Valkey untuk menerbitkan sertifikat server dengan CA dari kumpulan CA yang Anda buat.
  4. Buat instance untuk menggunakan CA yang dikelola pelanggan.

Membuat kumpulan CA

Anda dapat membuat kumpulan CA di CA Service dalam project yang sama tempat Anda berencana membuat instance Memorystore for Valkey, atau Anda dapat membuat kumpulan CA di project yang berbeda. Namun, jika Anda membuat kumpulan CA di project yang berbeda, Kontrol Layanan VPC dapat memblokir Anda untuk membuat instance apa pun, bergantung pada kebijakan organisasi Anda. Untuk memperbaiki masalah ini, pastikan project yang menghosting kumpulan CA dan CA, serta project yang menghosting Memorystore untuk Valkey berada dalam perimeter layanan yang sama. Untuk mengetahui informasi selengkapnya, lihat Detail dan konfigurasi perimeter layanan dan Mengelola perimeter layanan.

Untuk membuat pool CA, ikuti petunjuk di Membuat pool CA. Anda dapat menerima nilai default untuk kumpulan CA, dengan setelan konfigurasi wajib berikut:

  • Buat kumpulan CA di region yang sama tempat Anda berencana membuat instance. Untuk mengetahui daftar region yang didukung Memorystore for Valkey, lihat Lokasi Memorystore for Valkey.
  • Mengizinkan permintaan sertifikat berbasis konfigurasi.
  • Mengizinkan nama DNS dalam nama alternatif subjek (SAN). Saat mengonfigurasi batasan identitas pool CA, jangan menetapkan batasan apa pun pada format untuk nama DNS yang mungkin bertentangan dengan apa yang mungkin ditambahkan Memorystore for Valkey ke SAN.

Membuat CA di kumpulan CA

Buat setidaknya satu CA di kumpulan CA yang Anda buat.

Anda dapat membuat CA root atau CA subordinat.

Untuk membuat CA root, ikuti petunjuk di Membuat CA root. Anda dapat menerima nilai default untuk CA, tetapi pastikan Anda membuat CA dalam status Diaktifkan.

Saat mengonfigurasi ukuran dan algoritma kunci CA, Anda dapat memilih ukuran dan algoritma kunci apa pun.

Jika Anda membuat CA subordinat, Anda harus membuat dan mengonfigurasi CA root terlebih dahulu.

Memberi akun layanan akses ke kumpulan CA

Untuk memastikan akun layanan Memorystore for Valkey Anda memiliki izin untuk meminta dan menandatangani sertifikat untuk instance Anda, berikan peran roles/privateca.certificateRequester ke akun layanan untuk kumpulan CA yang Anda buat.

Akun layanan ini memiliki format berikut:
service-PROJECT_NUMBER@cloud-memorystore.iam.gserviceaccount.com. Ganti PROJECT_NUMBER dengan nomor project Google Cloud project Anda.

gcloud

Untuk memberikan akses akun layanan ke kumpulan CA, gunakan perintah gcloud privateca pools add-iam-policy-binding.

gcloud privateca pools add-iam-policy-binding CA_POOL_ID \
--project=PROJECT_ID \
--location=REGION_ID \
--member serviceAccount:SERVICE_ACCOUNT_NAME \
--role=roles/privateca.certificateRequester

Lakukan penggantian berikut:

  • CA_POOL_ID: ID pool CA yang Anda buat.
  • PROJECT_ID: ID Google Cloud project tempat Anda ingin membuat instance.
  • REGION_ID: region tempat kumpulan CA berada.
  • SERVICE_ACCOUNT_NAME: nama akun layanan Memorystore for Valkey. Nomor project untuk akun layanan ini sama dengan nomor project yang terkait dengan PROJECT_ID.

Membuat instance yang menggunakan CA yang dikelola pelanggan

Konsol

Ikuti langkah-langkah di Membuat instance.

gcloud

Untuk membuat instance yang menggunakan CA yang dikelola pelanggan, gunakan perintah gcloud memorystore instances create.

gcloud memorystore instances create INSTANCE_ID \
--location=REGION_ID \
--endpoints='[{"connections": [{"pscAutoConnection": {"network": "projects/PROJECT_ID/global/networks/NETWORK_ID", "projectId": "PROJECT_ID"}}]}]' \
--replica-count=REPLICA_COUNT \
--node-type=NODE_TYPE \
--shard-count=SHARD_COUNT \
--engine-version=ENGINE_VERSION \
--mode=MODE \
--transit-encryption-mode=server-authentication \
--server-ca-mode=customer-managed-cas-ca \
--server-ca-pool="projects/CA_POOL_PROJECT_ID/locations/REGION_ID/caPools/CA_POOL_ID"

Lakukan penggantian berikut:

  • INSTANCE_ID: ID instance yang Anda buat. ID instance harus terdiri dari 1 hingga 63 karakter, dan hanya menggunakan huruf kecil, angka, atau tanda hubung. ID harus diawali dengan huruf kecil, dan diakhiri dengan huruf kecil atau angka.

  • REGION_ID: region tempat Anda ingin menempatkan instance. Anda harus membuat instance di region yang sama dengan CA pool yang Anda buat.

  • PROJECT_ID: ID project tempat Anda ingin membuat instance.

  • NETWORK_ID: ID jaringan yang ingin Anda gunakan untuk membuat instance.

  • REPLICA_COUNT: jumlah replika (per shard). Nilai yang diterima adalah 0-5.

  • NODE_TYPE: jenis node. Nilai yang diterima adalah:

    • shared-core-nano
    • standard-small
    • highmem-medium
    • highmem-xlarge
  • SHARD_COUNT: jumlah shard dalam instance. Jumlah shard menentukan total kapasitas memori untuk menyimpan data instance. Untuk mengetahui informasi selengkapnya tentang spesifikasi instance, lihat Spesifikasi instance dan node.

  • ENGINE_VERSION: versi instance. Nilai yang diterima untuk parameter ini adalah VALKEY_7_2, VALKEY_8_0, dan VALKEY_9_0. Jika Anda tidak menentukan nilai, VALKEY_9_0 adalah nilai defaultnya.

  • MODE: menentukan apakah instance diaktifkan untuk Mode Cluster atau Mode Cluster dinonaktifkan. Jika kolom ini tidak disertakan, instance akan ditetapkan secara default ke Cluster Mode Enabled. Untuk mengetahui informasi selengkapnya, lihat Mengaktifkan dan menonaktifkan mode cluster.

  • CA_POOL_PROJECT_ID: ID pool CA yang Anda buat.

  • REGION_ID: region tempat kumpulan CA berada. Instance yang Anda buat dan kumpulan CA harus berada di region yang sama.

  • CA_POOL_ID: ID pool CA yang Anda buat.

Parameter server-ca-mode menunjukkan mode CA untuk instance. Untuk CA yang dikelola pelanggan, customer-managed-cas-ca adalah nilai untuk parameter. Jika Anda tidak menggunakan parameter ini, mode CA default adalah per-instance.

Contoh:

gcloud memorystore instances create my-instance \
--location=us-central1 \
--endpoints='[{"connections": [{"pscAutoConnection": {"network": "projects/my-project/global/networks/my-network", "projectId": "my-project"}}]}] \
--replica-count=1 \
--node-type=highmem-medium \
--shard-count=3 \
--engine-version=VALKEY_9_0 \
--mode=CLUSTER \
--transit-encryption-mode=server-authentication \
--server-ca-mode=customer-managed-cas-ca \
--server-ca-pool="projects/my-CA-pool-project/locations/us-central1/caPools/my-CA-pool"

Merotasi sertifikat server instance

Selain Memorystore for Valkey melakukan rotasi sertifikat sisi server mingguan, Anda dapat merotasi sertifikat sesuai permintaan.

gcloud

Untuk merotasi sertifikat server untuk semua mesin dalam instance, gunakan perintah gcloud memorystore instances update.

gcloud memorystore instances update INSTANCE_ID \
--location=REGION_ID \
--rotate-server-certificate

Lakukan penggantian berikut:

  • INSTANCE_ID: ID instance yang berisi mesin yang sertifikat servernya ingin Anda ganti
  • REGION_ID: region tempat instance berada

Contoh:

gcloud memorystore instances update my-instance \
--location=us-central1 \
--rotate-server-certificate

Batasan

Batasan berikut berlaku saat menggunakan CA yang dikelola pelanggan dengan Memorystore for Valkey:

  • Setelah mengonfigurasi CA yang dikelola pelanggan untuk instance, Anda tidak dapat mengubah konfigurasi. Misalnya, Anda tidak dapat mengubah ID pool CA untuk instance.
  • Jangan hapus kumpulan CA yang dikelola pelanggan atau batalkan izin akun layanan yang terkait dengan CA. Jika Anda melakukannya, sertifikat server tidak dapat diubah dan akan habis masa berlakunya. Akibatnya, aplikasi klien Anda tidak akan dapat terhubung ke instance.

Memecahkan masalah

Bagian ini mencantumkan pesan error yang mungkin Anda terima saat menggunakan CA yang dikelola pelanggan dan menyertakan tips untuk memecahkan masalah pesan ini.

Pesan error Penyebab Memecahkan masalah
FAILED_PRECONDITION: GetClusterCertificateAuthority not supported for customer-managed CAs Jika Anda menggunakan CA yang dikelola pelanggan, Anda tidak dapat menggunakan Memorystore for Valkey untuk mengambil sertifikat CA. Untuk mendapatkan sertifikat CA untuk CA yang dikelola pelanggan, Anda harus menggunakan CA Service.
Server certificate rotation can only be triggered for customer-managed CAs. Anda mencoba merotasi sertifikat server untuk instance, tetapi mode CA instance adalah per-instance atau bersama. Anda tidak dapat merotasi sertifikat server kecuali jika mode yang Anda gunakan untuk instance dikelola pelanggan.
Invalid format for server CA pool: {CA pool resource}. Expected projects/{project}/locations/{location}/caPools/{caPool}. Pool CA yang Anda gunakan untuk membuat instance memiliki format yang tidak valid. Untuk kumpulan CA, gunakan format ini:
projects/CA_POOL_PROJECT_ID/locations/REGION_ID/ caPools/CA_POOL_ID
The instance/cluster's server CA pool must be in the same region as the instance/cluster. CA Pool region: {CA pool region}, Instance/cluster region: {cluster region}. Anda mencoba membuat instance yang berada di region yang berbeda dengan pool CA. Pastikan instance yang Anda buat dan kumpulan CA Anda berada di region yang sama.
Request is prohibited by organization's policy for CA Pool {CA pool ID}. Project Google Cloud yang menghosting kumpulan CA dan project yang menghosting instance tidak berada dalam perimeter layanan yang sama. Konfigurasi Kontrol Layanan VPC sehingga project termasuk dalam perimeter layanan yang sama.
Permission privateca.certificates.create denied on {CA pool ID}. Make sure that you granted the roles/privateca.certificateRequester role to the service account {P4SA email}. Akun layanan Memorystore for Valkey tidak memiliki peran roles/privateca.certificateRequester untuk kumpulan CA. Akibatnya, Memorystore for Valkey tidak dapat membuat sertifikat server. Berikan peran roles/privateca.certificateRequester ke akun layanan. Untuk mengetahui informasi selengkapnya, lihat Memberikan akses akun layanan ke CA pool.
Resource {CA pool ID} not found. Memorystore untuk Valkey tidak dapat menemukan kumpulan CA yang Anda tentukan saat Anda mencoba membuat instance. Periksa project ID, lokasi, dan nama kumpulan CA.
There are no enabled CAs in the CaPool {CA pool ID}. Please ensure that there is at least one enabled Certificate Authority to issue a certificate. Tidak ada CA yang diaktifkan di kumpulan CA. Memorystore for Valkey tidak dapat membuat sertifikat server untuk instance. Pastikan Anda membuat setidaknya satu CA di kumpulan CA, dan CA tersebut dalam status Diaktifkan.
Quota exhausted for CA Service. Check quotas for the project hosting the CA Pool: {CA pool ID}. Anda melampaui kuota untuk Layanan CA di project Google Cloud yang menghosting kumpulan CA. Memorystore for Valkey tidak dapat melakukan operasi yang memerlukan layanan ini. Periksa kuota untuk CA Service di project Anda. Untuk informasi selengkapnya, lihat Kuota dan batas.
server_ca_pool must be provided when server_ca_mode is SERVER_CA_MODE_CUSTOMER_MANAGED_CAS_CA. Anda mencoba membuat instance yang menggunakan mode CA yang dikelola pelanggan. Namun, Anda tidak memberikan informasi tentang kumpulan CA. Tentukan project ID, lokasi, dan nama kumpulan CA.
server_ca_pool must not be provided when server_ca_mode is not SERVER_CA_MODE_CUSTOMER_MANAGED_CAS_CA. Anda mencoba membuat instance yang menggunakan mode CA per instance atau bersama. Mode CA ini tidak menggunakan parameter server_ca_pool. Anda tidak dapat menggunakan parameter ini kecuali jika mode CA adalah dikelola pelanggan.