Anda dapat mengenkripsi semua data yang berpindah antara aplikasi klien dan Memorystore for Redis Cluster dengan aman. Ini adalah enkripsi dalam pengiriman. Dengan menggunakan enkripsi dalam transit, semua traffic Redis dienkripsi melalui protokol Transport Layer Security (TLS). Hal ini memastikan bahwa semua data yang berpindah antara aplikasi Anda dan Memorystore for Redis Cluster tetap rahasia dan tidak dimodifikasi.
Jika enkripsi dalam transit diaktifkan, klien Redis hanya berkomunikasi melalui koneksi aman. Klien Redis yang tidak dikonfigurasi untuk TLS akan diblokir. Jika memilih untuk menggunakan enkripsi saat transit, Anda bertanggung jawab untuk memastikan bahwa klien Redis Anda dapat menggunakan protokol TLS.
Cluster yang menggunakan enkripsi dalam pengiriman memiliki Certificate Authority (CA). Anda menggunakan CA untuk mengautentikasi sertifikat mesin di cluster Anda.
Salah satu mode CA yang dapat Anda gunakan adalah CA yang dikelola pelanggan. Anda dapat menggunakan CA yang dikelola pelanggan untuk cluster di Memorystore for Redis Cluster. Jika Anda perlu mengelola CA sendiri karena alasan kepatuhan, Anda dapat menggunakan mode CA ini. Sebagai bagian dari penggunaan mode ini, Anda harus menyiapkan kumpulan CA Anda sendiri yang dihosting di Certificate Authority Service.
Sebelum dapat mengonfigurasi cluster untuk menggunakan CA yang dikelola pelanggan, Anda harus membuat kumpulan CA di region yang sama dengan cluster dan minimal 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 cluster, Anda menentukan kumpulan CA. Sebagai bagian dari konfigurasi ini, akun layanan Memorystore for Redis Cluster khusus project memiliki izin untuk menggunakan kumpulan CA. Akun layanan meminta CA dari pool dan Memorystore for Redis Cluster menggunakan CA tersebut untuk menandatangani sertifikat server untuk cluster.
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:
- Buat kumpulan CA. Sebelum dapat mengonfigurasi cluster untuk menggunakan CA yang dikelola pelanggan, Anda harus membuat kumpulan CA di CA Service. Kumpulan ini harus berada di region yang sama dengan cluster Anda.
- Buat CA di kumpulan CA. Setelah membuat kumpulan CA, Anda harus menggunakan Layanan CA untuk membuat setidaknya satu CA dalam kumpulan tersebut.
- Mendelegasikan izin ke akun layanan Memorystore for Redis Cluster untuk menerbitkan sertifikat server dengan CA dari kumpulan CA yang Anda buat.
- Buat cluster 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 cluster di Memorystore for Redis Cluster, 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 cluster apa pun, bergantung pada kebijakan organisasi Anda. Untuk memperbaiki masalah ini, pastikan project yang menghosting kumpulan CA dan CA, serta project yang menghosting Memorystore for Redis Cluster termasuk 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 cluster. Untuk mengetahui daftar region yang didukung Memorystore for Redis Cluster, lihat Lokasi Memorystore for Redis Cluster.
- Mengizinkan permintaan sertifikat berbasis konfigurasi.
- Mengizinkan nama DNS dalam nama alternatif subjek (SAN). Saat mengonfigurasi batasan identitas kumpulan CA, jangan tetapkan batasan apa pun pada format untuk nama DNS yang mungkin bertentangan dengan apa yang mungkin ditambahkan Memorystore for Redis Cluster 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.
Untuk membuat CA subordinat di Layanan CA, ikuti petunjuk dalam Membuat CA subordinat.
Untuk membuat subordinate CA dari CA root eksternal, ikuti petunjuk di Membuat subordinate CA dari CA eksternal.
Memberi akun layanan akses ke kumpulan CA
Untuk memastikan akun layanan Memorystore for Redis Cluster Anda memiliki izin untuk
meminta dan menandatangani sertifikat untuk cluster 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-redis.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 cluster.
- REGION_ID: region tempat kumpulan CA berada.
- SERVICE_ACCOUNT_NAME: nama akun layanan Memorystore for Redis Cluster. Nomor project untuk akun layanan ini sama dengan nomor project yang terkait dengan PROJECT_ID.
Membuat cluster yang menggunakan CA yang dikelola pelanggan
Konsol
Ikuti langkah-langkah di Membuat instance.
gcloud
Untuk membuat cluster yang menggunakan CA yang dikelola pelanggan, gunakan perintah gcloud redis clusters create.
gcloud redis clusters create CLUSTER_ID \ --region=REGION_ID \ --network=NETWORK \ --replica-count=REPLICA_COUNT \ --node-type=NODE_TYPE \ --shard-count=SHARD_COUNT \ --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:
CLUSTER_ID: ID cluster yang Anda buat. ID cluster 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 cluster. Anda harus membuat cluster di region yang sama dengan kumpulan CA yang Anda buat.
NETWORK: jaringan yang Anda gunakan untuk membuat cluster. Harus menggunakan format ini:
projects/NETWORK_PROJECT_ID/global/networks/NETWORK_ID. ID jaringan yang Anda gunakan harus cocok dengan ID jaringan yang digunakan oleh kebijakan koneksi layanan. Jika tidak, Anda tidak dapat membuat cluster.REPLICA_COUNT: jumlah replika (per shard). Nilai yang diterima adalah
0-5.NODE_TYPE: jenis node. Nilai yang diterima adalah:
redis-shared-core-nanoredis-standard-smallredis-highmem-mediumredis-highmem-xlarge
SHARD_COUNT: jumlah shard dalam cluster. Jumlah partisi menentukan total kapasitas memori untuk menyimpan data cluster. Untuk mengetahui informasi selengkapnya tentang spesifikasi cluster, lihat Spesifikasi cluster dan node.
CA_POOL_PROJECT_ID: ID pool CA yang Anda buat.
REGION_ID: region tempat kumpulan CA berada. Cluster 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 cluster. 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 redis clusters create my-cluster \ --region=us-central1 \ --network=projects/my-network-project/global/networks/default \ --replica-count=1 \ --node-type=redis-highmem-medium \ --shard-count=3 \ --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 cluster
Selain Memorystore for Redis Cluster melakukan rotasi sertifikat sisi server mingguan, Anda dapat merotasi sertifikat sesuai permintaan.
gcloud
Untuk merotasi sertifikat server untuk semua mesin dalam cluster, gunakan perintah
gcloud redis clusters update.
gcloud redis clusters update CLUSTER_ID \ --region=REGION_ID \ --rotate-server-certificate
Lakukan penggantian berikut:
- CLUSTER_ID: ID cluster yang berisi mesin yang sertifikat servernya ingin Anda ganti
- REGION_ID: region tempat cluster berada
Contoh:
gcloud redis clusters update my-cluster \ --region=us-central1 \ --rotate-server-certificate
Batasan
Batasan berikut berlaku saat menggunakan CA yang dikelola pelanggan dengan Memorystore for Redis Cluster:
- Setelah mengonfigurasi CA yang dikelola pelanggan untuk cluster, Anda tidak dapat mengubah konfigurasi. Misalnya, Anda tidak dapat mengubah ID pool CA untuk cluster.
- 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 cluster.
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 menggunakan CA yang dikelola pelanggan, Anda tidak dapat menggunakan Memorystore for Redis Cluster 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 mengganti sertifikat server untuk cluster, tetapi mode CA cluster adalah per-instance atau bersama. | Anda tidak dapat merotasi sertifikat server kecuali jika mode yang Anda gunakan untuk cluster 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 cluster 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 cluster yang berada di region yang berbeda dengan kumpulan CA. | Pastikan cluster 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 cluster 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 Redis Cluster tidak memiliki peran
roles/privateca.certificateRequester untuk kumpulan CA. Akibatnya, Memorystore for Redis Cluster 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 for Redis Cluster tidak dapat menemukan kumpulan CA yang Anda tentukan saat Anda mencoba membuat cluster. | 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 Redis Cluster tidak dapat membuat sertifikat server untuk cluster. | 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 Redis Cluster 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 cluster 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 cluster 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. |