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 pengiriman, semua traffic Redis dienkripsi melalui protokol Transport Layer Security (TLS). Hal ini memastikan bahwa semua data yang berpindah antara aplikasi dan Memorystore for Redis Cluster tetap bersifat rahasia dan tidak dirusak.
Saat enkripsi dalam pengiriman diaktifkan, klien Redis berkomunikasi secara eksklusif melalui koneksi yang aman. Klien Redis yang tidak dikonfigurasi untuk TLS akan diblokir. Jika Anda memilih untuk menggunakan enkripsi dalam pengiriman, Anda bertanggung jawab untuk memastikan bahwa klien Redis dapat menggunakan protokol TLS.
Cluster yang menggunakan enkripsi dalam pengiriman memiliki Certificate Authority (CA). Anda menggunakan CA untuk mengautentikasi sertifikat mesin di cluster.
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 perlu mengelola CA Anda 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 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, lalu 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 kumpulan 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 untuk memberi Anda peran IAM Pengelola Operasi CA Service (roles/privateca.caManager) di CA Service.
Anda mungkin juga bisa 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 CA Service untuk membuat setidaknya satu CA dalam kumpulan tersebut.
- Delegasikan 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 dengan tempat Anda berencana membuat cluster di Memorystore for Redis Cluster, atau Anda dapat membuat kumpulan CA di project lain. Namun, jika Anda membuat kumpulan CA di project lain, Kontrol Layanan VPC mungkin akan 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 berada di perimeter layanan yang sama. Untuk mengetahui informasi selengkapnya, lihat Detail dan konfigurasi perimeter layanan dan Mengelola perimeter layanan.
Untuk membuat kumpulan CA, ikuti petunjuk dalam Membuat kumpulan CA. Anda dapat menerima nilai default untuk kumpulan CA, dengan setelan konfigurasi wajib berikut:
- Buat kumpulan CA di region yang sama dengan tempat Anda berencana membuat your cluster. Untuk mengetahui daftar region yang didukung Memorystore for Redis Cluster, lihat Lokasi Memorystore for Redis Cluster.
- Izinkan permintaan sertifikat berbasis konfigurasi.
- Izinkan 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 dalam 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 membuat CA subordinat, Anda harus membuat dan mengonfigurasi CA root terlebih dahulu.
Untuk membuat CA subordinat di CA Service, ikuti petunjuk dalam Membuat CA subordinat.
Untuk membuat CA subordinat dari CA root eksternal, ikuti petunjuk dalam Membuat CA subordinat dari CA eksternal.
Memberikan akses akun layanan ke kumpulan CA
Untuk memastikan akun layanan Memorystore for Redis Cluster Anda memiliki izin untuk meminta dan menandatangani sertifikat untuk cluster, 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 Anda.
gcloud
Untuk memberikan akses akun layanan ke kumpulan CA, gunakan gcloud privateca pools add-iam-policy-binding
perintah.
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 kumpulan 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 cluster 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. Ini 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 shard menentukan kapasitas memori total untuk menyimpan data cluster. Untuk mengetahui informasi selengkapnya tentang spesifikasi cluster, lihat Spesifikasi cluster dan node.
CA_POOL_PROJECT_ID: ID kumpulan 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 kumpulan CA yang Anda buat.
Parameter server-ca-mode mewakili mode CA untuk cluster. Untuk CA yang dikelola pelanggan, customer-managed-cas-ca adalah nilai untuk parameter tersebut.
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 yang melakukan rotasi sertifikat sisi server mingguan, Anda dapat merotasi sertifikat sesuai permintaan.
gcloud
Untuk merotasi sertifikat server untuk semua mesin dalam cluster, gunakan
gcloud redis clusters update
perintah.
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 rotasi
- 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 kumpulan CA untuk cluster.
- Jangan hapus kumpulan CA yang dikelola pelanggan atau cabut izin akun layanan yang terkait dengan CA. Jika Anda melakukannya, sertifikat server tidak dapat dirotasi dan akan berakhir 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 | Pemecahan 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 merotasi 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 adalah yang dikelola pelanggan. |
Invalid format for server CA pool: {CA pool resource}. Expected
projects/{project}/locations/{location}/caPools/{caPool}. |
Kumpulan 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 dari kumpulan CA. | Pastikan cluster yang Anda buat dan kumpulan CA berada di region yang sama. |
Request is prohibited by organization's policy for CA Pool
{CA pool ID}. |
Project yang menghosting kumpulan CA dan project yang menghosting cluster tidak berada di perimeter layanan yang sama. Google Cloud | Konfigurasi Kontrol Layanan VPC sehingga project berada di 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 kumpulan CA. |
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 bahwa CA berada dalam status Diaktifkan. |
Quota exhausted for CA Service. Check quotas
for the project hosting the CA Pool: {CA pool ID}. |
Anda melampaui kuota untuk CA Service di Google Cloud project 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 mengetahui 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 server_ca_pool
parameter. |
Anda tidak dapat menggunakan parameter ini kecuali jika mode CA adalah dikelola pelanggan. |