1. Giriş
Cloud KMS Autokey, sağlama ve atama işlemlerini otomatikleştirerek müşteri tarafından yönetilen şifreleme anahtarlarının (CMEK) oluşturulmasını ve kullanılmasını kolaylaştırır. Autokey ile anahtarlıklarınızın, anahtarlarınızın ve hizmet hesaplarınızın ihtiyaç duyulmadan önce planlanıp sağlanması gerekmez. Bunun yerine Autokey, kaynaklarınız oluşturulurken anahtarlarınızı isteğe bağlı olarak oluşturur ve Cloud KMS yöneticileri yerine temsilci izinlerini kullanır.
Autokey tarafından oluşturulan anahtarları kullanmak, HSM koruma düzeyi, görevlerin ayrılması, anahtar rotasyonu, konum ve anahtar özgüllüğü dahil olmak üzere veri güvenliğiyle ilgili sektör standartlarına ve önerilen uygulamalara tutarlı bir şekilde uymanıza yardımcı olabilir. Otomatik anahtar, Cloud KMS otomatik anahtarıyla entegre olan Google Cloud hizmetleri için hem genel yönergeleri hem de kaynak türüne özgü yönergeleri izleyen anahtarlar oluşturur. Oluşturulduktan sonra, Autokey işlevi kullanılarak istenen anahtarlar, aynı ayarlara sahip diğer Cloud HSM anahtarlarıyla aynı şekilde çalışır.
Ne oluşturacaksınız?
Bu codelab'de, Cloud KMS Autokey'i kullanarak korumalı kaynakları başlatacaksınız. Bunun için şunları oluşturacaksınız:
- klasör kaynağı
- anahtarlarınızı içerecek bir proje
- anahtar yönetimi asistanınız olarak hareket edecek bir hizmet aracısı
- korunan kaynaklarınızı barındıracak bir proje
- Cloud KMS Autokey ile şifrelenmiş BigQuery veri kümeleri, kalıcı diskler ve Cloud Storage paketleri
Gerekenler
- Google Cloud kuruluşu
- Bu laboratuvarı tamamlamak için Google Cloud sorumlunuzun kuruluş düzeyinde aşağıdaki rollerinin olması gerekir:
- Cloud KMS Autokey Yöneticisi (roles/cloudkms.autokeyAdmin)
- Klasör IAM Yöneticisi (roles/resourcemanager.folderIamAdmin)
- Faturalandırma hesabı kullanıcısı (roles/billing.user)
- Faturalandırmanın Etkin Olduğu Google Cloud Projeleri
- Temel Linux Deneyimi
2. Klasör oluşturma
Klasörler, Cloud Platform kaynak hiyerarşisindeki düğümlerdir. Klasörler; projeleri, diğer klasörleri veya ikisinin kombinasyonunu içerebilir. Kuruluş kaynakları, projeleri hiyerarşideki kuruluş kaynağı düğümü altında gruplandırmak için klasörleri kullanabilir. Klasör oluşturmak için:
- Google Cloud Console'da Kaynakları yönetin sayfasına gidin.
- Kuruluş kaynak adınızın sayfanın üst kısmındaki kuruluş açılır listesinde seçili olduğundan emin olun.
- Klasör oluştur'u tıklayın.

- Standart Klasör'ü seçin.

- Klasör adı kutusuna yeni klasörünüzün adını girin. Bu laboratuvarda "Autokey-Folder"ı kullanın.
- Hedef bölümünde Gözat'ı tıklayın, ardından yeni klasörünüzü oluşturmak istediğiniz kuruluş kaynağını veya klasörü seçin.
- Oluştur'u tıklayın.
3. Kaynak projesi oluşturma
Cloud KMS Autokey ile şifrelemek istediğiniz kaynakları (ör. BigQuery veri kümeleri, kalıcı diskler ve Cloud Storage paketleri) içerecek bir kaynak projesi oluşturmanız önemlidir. Anahtar projesinde Autokey ile korunan kaynaklar oluşturmaya çalışırsanız Autokey, yeni anahtar isteğini reddeder. Kaynak projesini oluşturmak için:
- Google Cloud Console'da Kaynakları yönetin sayfasına gidin.
- Proje Oluştur'u tıklayın.

- Sayfanın üst kısmındaki Kuruluş seç açılır listesinde "Autokey-Folder" klasörünü seçin.
- Açılan Yeni Proje penceresinde bir proje adı girin ve uygun bir faturalandırma hesabı seçin. Bu laboratuvarda "Autokey Encrypted Resources"ı (Otomatik Anahtarlı Şifrelenmiş Kaynaklar) kullanın.
- Konum kutusunda "Autokey-Folder" klasörünü seçin. Bu kaynak, yeni projenin hiyerarşik üst öğesi olur. Ayarlarınız aşağıdaki gibi görünmelidir:

- Proje kimliğini (yukarıdaki örnekte proje kimliği "causal-hour-43319-m4" şeklindedir ancak sizin kimliğiniz farklı olacaktır) istediğiniz metin düzenleyiciye kopyalayın.
- Oluştur'u tıklayın
- Ekranınızın sağ üst köşesindeki Cloud Shell simgesini seçin.

- Cloud Shell etkinleştirildikten sonra aşağıdaki komutu çalıştırarak Autokey proje kimliğinizi değişken olarak kaydedin:
export RESOURCE_PROJECT=<paste your Resource Project ID>
Proje kimliğim "key-management-433319" olduğu için komutum şu şekilde görünüyor:
export AUTOKEY_PROJECT=causal-hour-43319-m4
- Key Project'inizdeki komutları yürütmek için aşağıdaki komutu çalıştırın:
gcloud config set project $RESOURCE_PROJECT
İstendiğinde "Authorize" (Yetkilendir) seçeneğini tıklayarak Cloud Shell'e yetki verin.

- Bu proje kaynak içereceğinden Autokey'in koruyacağı hizmetlerin API'lerini etkinleştirmemiz gerekir. Aşağıdaki komutu çalıştırın:
gcloud services enable storage.googleapis.com bigquery.googleapis.com compute.googleapis.com
4. Önemli proje oluşturma
Autokey tarafından oluşturulan Cloud KMS kaynaklarını içerecek bir proje oluşturmanızı öneririz. Bu proje, bundan sonra "anahtar proje" olarak adlandırılacaktır. Anahtar projesi, Autokey'i etkinleştirmeyi planladığınız klasörün içinde oluşturulabilir. Anahtar proje içinde başka kaynaklar oluşturmamalısınız. Anahtar projesinde Autokey ile korunan kaynaklar oluşturmaya çalışırsanız Autokey, yeni anahtar isteğini reddeder. Anahtar projeyi oluşturmak için:
- Google Cloud Console'da Kaynakları yönetin sayfasına gidin.
- Proje Oluştur'u tıklayın.

- Sayfanın üst kısmındaki Kuruluş seç açılır listesinde "Autokey-Folder" klasörünü seçin.
- Açılan Yeni Proje penceresinde bir proje adı girin ve uygun bir faturalandırma hesabı seçin. Bu laboratuvarda "Anahtar Yönetimi"ni ele alacağız.
- Konum kutusunda "Autokey-Folder" klasörünü seçin. Bu kaynak, yeni projenin hiyerarşik üst öğesi olur. Ayarlarınız aşağıdaki gibi görünmelidir:

- Proje kimliğini (Yukarıdaki örnekte proje kimliği "key-management-433319" şeklindedir ancak sizin kimliğiniz farklı olacaktır.) istediğiniz metin düzenleyiciye kopyalayın.
- Oluştur'u tıklayın.
5. Autokey anahtar projesini hazırlama
Artık her proje oluşturulduğuna göre, anahtar projesini Cloud KMS Autokey'i kullanacak şekilde yapılandırma zamanı geldi.
- Ekranınızın sağ üst köşesindeki Cloud Shell simgesini seçin.

- Cloud Shell etkinleştirildikten sonra aşağıdaki komutu çalıştırarak Autokey proje kimliğinizi değişken olarak kaydedin:
export AUTOKEY_PROJECT=<paste your Autokey Project ID>
Proje kimliğim "key-management-433319" olduğu için komutum şu şekilde görünüyor:
export AUTOKEY_PROJECT=key-management-433319
- Key Project'inizdeki komutları yürütmek için aşağıdaki komutu çalıştırın:
gcloud config set project $AUTOKEY_PROJECT
İstendiğinde "Authorize" (Yetkilendir) seçeneğini tıklayarak Cloud Shell'e yetki verin.

- Aşağıdaki komutu çalıştırarak Cloud KMS API'yi etkinleştirin.
gcloud services enable cloudkms.googleapis.com kmsinventory.googleapis.com
- Proje numaranızı AUTOKEY_PROJECT_NUMBER adlı bir değişken olarak kaydetmek için aşağıdaki komutu çalıştırın:
export AUTOKEY_PROJECT_NUMBER=$(gcloud projects list \
--filter="$(gcloud config get-value project)" \
--format="value(PROJECT_NUMBER)")
- Aşağıdaki komutu çalıştırarak müdürünüzün e-posta adresini değişken olarak kaydedin:
export KEY_ADMIN_EMAIL=<paste your Principal's email>
- Anahtar projesinde Cloud KMS yöneticisi izinlerini Cloud KMS yöneticisi kullanıcılarınıza verme
gcloud projects add-iam-policy-binding $AUTOKEY_PROJECT_NUMBER \
--role=roles/cloudkms.admin \
--member=user:$KEY_ADMIN_EMAIL
6. Cloud KMS hizmet aracısını ayarlama
Bir anahtar projesi için Cloud KMS hizmet aracısı, bir Cloud KMS yöneticisi adına kaynak oluşturma sırasında anahtarlar oluşturur ve IAM politikası bağlamalarını uygular. Anahtar oluşturup atayabilmek için Cloud KMS hizmet aracısının Cloud KMS yönetici izinlerine sahip olması gerekir.
- Aşağıdaki komutla kuruluş kimliğini bulun:
gcloud organizations list | grep -P -i 'ID:' | grep -i '[0-9]'
- Kuruluş kimliğini kopyalayın. Bu, kırmızı renkle vurgulanan sayısal sonuçtur.
- Kuruluş kimliğini ORG_ID adlı bir değişken olarak kaydedin:
export ORG_ID=<paste your Organization ID>
- Aşağıdaki komutu çalıştırarak Cloud KMS hizmet aracısını oluşturun:
gcloud beta services identity create --service=cloudkms.googleapis.com \
--project=$AUTOKEY_PROJECT_NUMBER
- Hizmet aracısına Cloud KMS yöneticisi rolünü atayın:
gcloud projects add-iam-policy-binding $AUTOKEY_PROJECT_NUMBER \
--role=roles/cloudkms.admin \
--member=serviceAccount:service-$AUTOKEY_PROJECT_NUMBER@gcp-sa-cloudkms.iam.gserviceaccount.com
- Cloud KMS anahtar kullanımınızı görüntüleyebilmek için bir IAM politika bağlaması ekleyin. Anahtar Kullanımı, anahtarı kullanan korumalı kaynakların, projelerin ve benzersiz Google Cloud ürünlerinin sayısı da dahil olmak üzere her anahtarla ilgili bilgiler sağlar. Bu ayrıntı düzeyi, anahtarda Cloud KMS Görüntüleyici rolüne sahip olan herkes tarafından kullanılabilir. Aşağıdaki komutu çalıştırın:
gcloud organizations add-iam-policy-binding $ORGANIZATION_ID \
--member="serviceAccount:service-org-$ORGANIZATION_ID@gcp-sa-cloudkms.iam.gserviceaccount.com" \
--role='roles/cloudkms.orgServiceAgent'
- Kuruluş kaynağınızda Cloud KMS hizmet hesabınıza Cloud KMS Kuruluş Hizmet Aracısı (cloudkms.orgServiceAgent) rolünü verin.
gcloud organizations add-iam-policy-binding $ORG_ID \
--member="serviceAccount:service-org-$ORG_ID@gcp-sa-cloudkms.iam.gserviceaccount.com" \
--role='roles/cloudkms.orgServiceAgent'
- Anahtar kullanım ayrıntılarını görüntülemesi gereken herkese kuruluş kaynağınızda Cloud KMS Korunan Kaynaklar Görüntüleyici rolünü verin.
gcloud organizations add-iam-policy-binding $ORG_ID \
--member="user:$KEY_ADMIN_EMAIL" \
--role='roles/cloudkms.protectedResourcesViewer'
7. Autokey kullanıcı rolleri verme
Geliştiricilerinizin Autokey'i kullanabilmesi için onlara gerekli rolü vermeniz gerekir. Rolü klasör düzeyinde veya proje düzeyinde verebilirsiniz. Bu rol, geliştiricilerin söz konusu klasör veya projede kaynak oluştururken Cloud KMS hizmet aracısından anahtar istemesine olanak tanır.
Rol verme işleminin ilk adımı, klasör kimliğini kaydetmektir.
- Aşağıdaki komutla klasör kimliğini bulun:
gcloud projects describe $AUTOKEY_PROJECT | grep 'id' | grep -P -i '[0-9]+'
- Klasör kimliğini kopyalayın. Bu, kırmızıyla vurgulanan kısımdır.
- Klasör kimliğini FOLDER_ID adlı bir değişken olarak kaydedin.
export FOLDER_ID=<paste the folder ID>
Bu laboratuvarın amaçları doğrultusunda, Autokey kullanıcısını temel yönetici olarak tanımlayacağız. Ancak üretim kullanım alanlarında ve birden fazla kişinin bulunduğu kuruluşlarda, anahtar yöneticisi, Autokey'i kullanan geliştiriciden farklı olmalıdır.
- Klasör düzeyinde roller/cloudkms.autokeyUser rolünü verme:
gcloud resource-manager folders add-iam-policy-binding \
$FOLDER_ID --role=roles/cloudkms.autokeyUser \
--member=user:$KEY_ADMIN_EMAIL
8. Bir kaynak klasöründe Cloud KMS Autokey'i etkinleştirme
Bu adımda, bir kaynak klasöründe Cloud KMS Autokey'i etkinleştirecek ve bu klasör için Autokey kaynaklarını içerecek Cloud KMS projesini belirleyeceksiniz. Bu klasörde Otomatik Anahtar'ı etkinleştirdiğinizde klasördeki tüm kaynak projeler için Otomatik Anahtar etkinleştirilir.
- Google Cloud Console'da KMS kontrolleri sayfasına gidin.
- Klasör Seç'i tıklayın.

- Bağlam seçiciden, Autokey'i etkinleştirmek istediğiniz klasörü seçin. Bu, daha önce oluşturduğunuz ve kaynak projenizi ve anahtar yönetimi projenizi içeren klasördür. Aşağıdaki gibi görünmelidir:

- Etkinleştir'i tıklayın.
- Anahtar projeyi seçmek için Gözat'ı tıklayın.
- Anahtar yönetimi projenizi seçip Gönder'i tıklayın.

Cloud KMS Autokey'in klasörde etkinleştirildiğini onaylayan bir mesaj gösterilir. KMS Kontrolleri sayfası aşağıdaki gibi görünmelidir:

9. Cloud KMS Autokey'i kullanarak korunan kaynaklar oluşturma
Compute Engine kalıcı diskleri
Autokey, oluşturulan kaynakla aynı konumda her disk, görüntü ve makine görüntüsü için yeni bir anahtar oluşturur.
Disk oluşturmak için aşağıdaki adımları uygulayın:
- Google Cloud Console'da Diskler sayfasına gidin.
- Diski oluştur'u tıklayın ve yeni diskin özelliklerini girin.
- Şifreleme bölümünde Cloud KMS anahtarı'nı seçin.

- Anahtar türü için "Otomatik anahtarlı Cloud KMS"yi seçin ve ardından "Yeni anahtar iste"yi tıklayın. Anahtarınız başarıyla oluşturulduğunda ve kullanıma hazır olduğunda bir mesaj gösterilir.

- Diski oluşturmayı tamamlamak için Oluştur'u tıklayın.
Korumalı sanal makine örneği, görüntü ve makine görüntüsü kaynakları oluşturmak için benzer bir süreci izleyebilirsiniz.
Google Cloud Storage Buckets
Autokey, paketle aynı konumda yeni bir anahtar oluşturur. Autokey tarafından oluşturulan anahtar, paket varsayılan anahtarı olarak atanır.
Autokey, nesneler için anahtar oluşturmaz. Varsayılan olarak, bir pakette oluşturulan nesneler paket varsayılan anahtarını kullanır. Bir nesneyi paket varsayılan anahtarı dışında bir anahtar kullanarak şifrelemek istiyorsanız CMEK'yi manuel olarak oluşturabilir ve nesneyi oluştururken bu anahtarı kullanabilirsiniz.
- Google Cloud Console'da Paket oluştur sayfasına gidin.
- Genel olarak benzersiz bir kalıcı ad seçin.
- Bir veri konumu seçin.
- "Nesne verilerini nasıl koruyacağınızı seçin" bölümüne gidin.

- Bölümü genişletmek için "Nesne verilerini koruma şeklini seçin"i tıklayın.

- Veri şifreleme bölümünü genişletin ve Cloud KMS anahtarını seçin.

- Anahtar türü için "Otomatik anahtarlı Cloud KMS"yi seçin ve ardından "Yeni anahtar iste"yi tıklayın. Anahtarınız başarıyla oluşturulduğunda ve kullanıma hazır olduğunda bir mesaj gösterilir.

- Paket oluşturma işlemini tamamlamak için Oluştur'u tıklayın. "Herkese açık erişim önlenecek" şeklinde bir iletişim kutusu gösterilirse Onayla'yı tıklayın.
BigQuery veri kümesi
Autokey, her yeni veri kümesi için kaynağın kendisiyle aynı konumda yeni bir anahtar oluşturur. Bu anahtar, veri kümesinin varsayılan anahtarı olur. Autokey, tablolar, sorgular, geçici tablolar veya modeller için anahtar oluşturmaz. Varsayılan olarak bu kaynaklar, veri kümesi varsayılan anahtarıyla korunur. Bir veri kümesindeki kaynağı veri kümesi varsayılan anahtarı dışında bir anahtarla korumak istiyorsanız CMEK'yi manuel olarak oluşturabilir ve kaynağı oluştururken bu anahtarı kullanabilirsiniz.
BigQuery veri kümesi oluşturmak için önce BigQuery Kullanıcı rolüne sahip olmanız gerekir.
- Cloud Shell'e dönme
- Cloud Shell'inizi kaynak projedeki komutları yürütecek şekilde ayarlama
gcloud config set project $RESOURCE_PROJECT
- Proje numaranızı RESOURCE_PROJECT_NUMBER adlı bir değişken olarak kaydetmek için aşağıdaki komutu çalıştırın:
export RESOURCE_PROJECT_NUMBER=$(gcloud projects list --filter="$(gcloud config get-value project)" --format="value(PROJECT_NUMBER)")
- Kendinize BigQuery Kullanıcısı rolünü verme
gcloud projects add-iam-policy-binding $RESOURCE_PROJECT_NUMBER \
--role=roles/bigquery.user \
--member=user:$KEY_ADMIN_EMAIL
BigQuery Kullanıcı rolüne sahip olduğunuz için artık bir veri kümesi oluşturabilir ve bu veri kümesini Autokey ile koruyabilirsiniz.
- Google Cloud Console'da BigQuery sayfasına gidin.
- Veri kümesi oluşturma talimatlarını uygulayarak Gelişmiş seçenekler > Şifreleme bölümüne gidin.
- Şifreleme bölümünde Cloud KMS anahtarını seçin.
- Anahtar türü için "Otomatik anahtarlı Cloud KMS"yi seçin ve ardından "Yeni anahtar iste"yi tıklayın. Anahtarınız başarıyla oluşturulduğunda ve kullanıma hazır olduğunda bir mesaj gösterilir.
- Veri kümesini oluşturma işlemini tamamlamak için Veri kümesi oluştur'u tıklayın.
10. Anahtarlarınızı keşfetme
Bu adımda, Anahtar Envanteri sayfasını ziyaret ederek Cloud KMS Autokey'in sizin adınıza oluşturduğu anahtarları keşfedeceksiniz. Anahtar Envanteri sayfası, projenizdeki şifreleme anahtarları hakkında kapsamlı bilgiler sağlar. Verilerin gecikebileceğini unutmayın. Örneğin, yeni bir korumalı kaynak oluşturursanız korumalı kaynak ve ilişkili anahtar sürümü hemen Kullanım izleme sekmesine eklenmez. Diğer sınırlamaları buradan inceleyebilirsiniz.
- Google Cloud Console'da Anahtar Envanteri sayfasına gidin.
- İsteğe bağlı: Anahtar listesini filtrelemek için arama terimlerinizi filter_list Filtre kutusuna girip Enter tuşuna basın. Örneğin, konuma, anahtarlık, duruma veya anahtarların diğer özelliklerine göre filtreleme yapabilirsiniz.
- Kullanım bilgilerini görüntülemek istediğiniz anahtarın adını tıklayın.
- "Genel Bakış"ı tıklayın. Oluşturulan her kaynak için bir anahtarınız olduğuna dikkat edin. Her anahtar adı, anahtarın koruduğu kaynağın adını (ör. "compute-disk" veya "storage-bucket") içerir. Cloud KMS Autokey, her anahtarın oluşturulduktan 365 gün sonra döndürülmek üzere planlanmasını ve her anahtara "HSM" koruma düzeyinin atanmasını sağlar.

- Kullanım İzleme sekmesini tıklayın. Sunulan bilgi düzeyine dikkat edin: Anahtarın şifrelediği her kaynak, proje, konum ve oluşturulma tarihiyle birlikte burada gösterilir.
- İsteğe bağlı: Korunan kaynakların listesini filtrelemek için arama terimlerinizi filter_list filtre kutusuna girip Enter tuşuna basın.

11. Tebrikler
Tebrikler, Google Cloud kaynaklarını başarıyla oluşturdunuz ve Cloud KMS Autokey ile isteğe bağlı olarak otomatik şekilde şifrelediniz.
Artık Autokey'i ayarlamak ve Cloud KMS anahtarlarıyla kaynaklarınızı otomatik olarak şifrelemek için kullanmak üzere gereken temel adımları biliyorsunuz.
12. Sırada ne var?
Verileri Autokey ile şifrelenmiş kaynaklarınıza yükleme
- Google Compute Engine (GCE) örneği oluşturma
- Autokey ile korunan kalıcı diskinizi GCE örneğinize ekleme
- BigQuery veri kümenize veri yükleme
- Google Cloud Storage paketine nesne yükleme
- Google Cloud Storage verilerini BigQuery'ye yükleme