Bu sayfada, aşağıdaki Cloud Storage for Firebase kaynaklarında belirli işlemleri kısıtlamak için Google Cloud Kuruluş Politikası Hizmeti özel kısıtlamalarının nasıl kullanılacağı gösterilmektedir:
firebasestorage.googleapis.com/DefaultBucket
Kuruluş Politikası hakkında daha fazla bilgi edinmek için Özel kuruluş politikaları başlıklı makaleyi inceleyin.
Kuruluş politikaları ve kısıtlamaları hakkında
Google Cloud Organization Policy Service, kuruluşunuzun kaynakları üzerinde merkezi ve programatik kontrol sağlar. Kuruluş politikası yöneticisi olarak, Google Cloud kaynak hiyerarşisindeki Google Cloud kaynaklarına ve bu kaynakların alt öğelerine uygulanan kısıtlamalar adlı bir kısıtlama grubu olan kuruluş politikasını tanımlayabilirsiniz. Kuruluş politikalarını kuruluş, klasör veya proje düzeyinde uygulayabilirsiniz.
Kuruluş Politikası, çeşitli Google Cloud hizmetleri için yerleşik yönetilen kısıtlamalar sunar. Ancak kuruluş politikalarınızda kısıtlanan belirli alanlar üzerinde daha ayrıntılı ve özelleştirilebilir bir kontrol istiyorsanız özel kısıtlamalar oluşturabilir ve bu özel kısıtlamaları bir kuruluş politikasında kullanabilirsiniz.
Politika devralma
Varsayılan olarak kuruluş politikaları, politikayı uyguladığınız kaynakların alt öğeleri tarafından devralınır. Örneğin, bir klasörde politika uygularsanız Google Cloud, politikayı klasördeki tüm projelere uygular. Bu davranış ve nasıl değiştirileceği hakkında daha fazla bilgi edinmek için Hiyerarşi değerlendirme kuralları başlıklı makaleyi inceleyin.
Ayrıca Cloud Storage for Firebase, dosyaları temel Cloud Storage paketlerinde depoladığı için Cloud Storage kaynaklarına uygulanan tüm kuruluş politikaları veya özel kısıtlamalar Cloud Storage for Firebase paketleriniz için de geçerlidir.
Avantajları
- Güvenlik ve yönetim: Veri barındırma ve maliyet yönetimiyle ilgili kurallara uyulmasını sağlamak için paket temel hazırlığı üzerinde merkezi kurumsal kontrolü zorunlu kılın.Cloud Storage
- Ayrıntılı özellik kontrolü:
storageClassveyalocationgibi belirli kaynak özelliklerine göre varsayılan paket oluşturma işlemini kısıtlayın.
Sınırlamalar
Cloud Storage for Firebase ile özel kuruluş politikaları kullanılırken aşağıdaki sınırlamalar geçerlidir:
- Geçmişe dönük yaptırım yok: Yeni uygulanan özel kısıtlamalar mevcut kaynaklar için geçerli değildir. Mevcut varsayılan paketler güncellenmedikleri sürece değerlendirilmez. Bir kısıtlamayı ihlal edebilecek mevcut kaynakları belirlemek için deneme modunu kullanarak politikaları test edebilirsiniz.
- Erişim denetimi kısıtlamaları: Özel kısıtlamalar, paketlerdeki erişim denetimi listelerini (ACL'ler) veya IAM politikalarını kısıtlayamaz.
Başlamadan önce
Firebase konsolunda bir Firebase projesi seçin veya oluşturun.
Projenizin bir kuruluşun parçası olduğundan ve kuruluş kimliğinizi bildiğinizden emin olun.
Komut satırını kullanarak özel kısıtlamalar oluşturmak ve uygulamak için Google Cloud CLI'yı yükleyin (
gcloud). Özel kuruluş politikaları, Firebase CLI kullanılarak yönetilemez.
Gerekli roller
Özel kuruluş politikalarını yönetmek için gereken izinleri almak üzere yöneticinizden size kuruluşta Kuruluş Politikası Yöneticisi (roles/orgpolicy.policyAdmin) IAM rolünü vermesini isteyin.
Cloud Storage for Firebase desteklenen kaynak
Aşağıdaki tabloda, özel kısıtlamalarda referans verebileceğiniz Cloud Storage for Firebase kaynakları listelenmiştir. Bu kaynaklardaki özel kısıtlamalar Cloud Storage for Firebase paketleri için de geçerli olduğundan Cloud Storage desteklenen kaynaklara da başvurabilirsiniz.
| Kaynak | Desteklenen alanlar |
|---|---|
firebasestorage.googleapis.com/DefaultBucket |
|
Özel kısıtlama oluşturma
Özel kısıtlama, kuruluş politikasını uyguladığınız hizmet tarafından desteklenen kaynaklar, yöntemler, koşullar ve işlemlerle bir YAML dosyasında tanımlanır. Özel kısıtlamalarınızın koşulları, Common Expression Language (CEL) kullanılarak tanımlanır. CEL kullanarak özel kısıtlamalarda koşul oluşturma hakkında daha fazla bilgi için Özel kısıtlama oluşturma ve yönetme başlıklı makalenin CEL bölümüne bakın.
Konsol
Özel kısıtlama oluşturmak için aşağıdakileri yapın:
- Google Cloud konsolunda Kuruluş politikaları sayfasına gidin.
- Proje seçiciden, kuruluş politikasını ayarlamak istediğiniz projeyi seçin.
- Özel kısıtlama'yı tıklayın.
- Görünen ad kutusuna kısıtlama için okunabilir bir ad girin. Bu ad, hata mesajlarında kullanılır ve tanımlama ile hata ayıklama için kullanılabilir. Görünen adlarda kişisel veri (PII) veya hassas veriler kullanmayın. Bu ad, hata mesajlarında açığa çıkabilir. Bu alan en fazla 200 karakter içerebilir.
- Kısıtlama kimliği kutusuna yeni özel kısıtlamanız için istediğiniz kimliği girin. Özel kısıtlamalar yalnızca harf (büyük ve küçük harfler dahil) veya sayı içerebilir (ör.
custom.restrictStorageClass). Bu alan, önek (custom.) hariç en fazla 70 karakter içerebilir (ör.organizations/123456789/customConstraints/custom.restrictStorageClass). Hata mesajlarında gösterilebileceğinden kısıtlama kimliğinize kimliği tanımlayabilecek bilgiler veya hassas veriler eklemeyin. - Açıklama kutusuna kısıtlamanın kullanıcıların okuyabileceği bir açıklamasını girin. Bu açıklama, politika ihlal edildiğinde hata mesajı olarak kullanılır. Politika ihlalinin neden gerçekleştiği ve nasıl çözüleceğiyle ilgili ayrıntıları ekleyin. Hata mesajlarında gösterilebileceğinden açıklamanıza kimliği tanımlayabilecek bilgiler veya hassas veriler eklemeyin. Bu alan en fazla 2.000 karakter içerebilir.
- Kaynak türü kutusunda, kısıtlamak istediğiniz nesneyi ve alanı içeren REST kaynağının adını (ör.
firebasestorage.googleapis.com/DefaultBucket) seçin. Çoğu kaynak türü en fazla 20 özel kısıtlamayı destekler. Daha fazla özel kısıtlama oluşturmaya çalışırsanız işlem başarısız olur. - Zorunlu kılma yöntemi bölümünde, kısıtlamanın bir REST
CREATEyönteminde mi yoksa hemCREATEhem deUPDATEyöntemlerinde mi zorunlu kılınacağını seçin. (Not:DefaultBucketyalnızcaCREATEdestekler). - Koşul tanımlamak için Koşulu düzenle'yi tıklayın.
- Koşul ekle panelinde, desteklenen bir hizmet kaynağına (ör.
resource.storageClass == 'STANDARD') başvuran bir CEL koşulu oluşturun. Bu alan en fazla 1.000 karakter içerebilir. CEL kullanımıyla ilgili ayrıntılar için Common Expression Language başlıklı makaleyi inceleyin. - Kaydet'i tıklayın.
- Koşul ekle panelinde, desteklenen bir hizmet kaynağına (ör.
- İşlem bölümünde, koşul karşılanırsa değerlendirilen yönteme izin verilip verilmeyeceğini veya yöntemin reddedilip reddedilmeyeceğini seçin.
Reddetme işlemi, koşul doğru olarak değerlendirilirse kaynağı oluşturma veya güncelleme işleminin engellendiği anlamına gelir.
İzin verme işlemi, kaynağı oluşturma veya güncelleme işlemine yalnızca koşul doğru olarak değerlendirildiğinde izin verildiği anlamına gelir. Koşulda açıkça listelenenler dışındaki tüm durumlar engellenir.
- Kısıtlama oluştur'u tıklayın.
gcloud
- Özel kısıtlama oluşturmak için aşağıdaki biçimi kullanarak bir YAML dosyası oluşturun:
name: organizations/ORGANIZATION_ID/customConstraints/custom.restrictStorageClass resourceTypes: firebasestorage.googleapis.com/DefaultBucket methodTypes: - CREATE condition: "resource.storageClass == 'STANDARD'" actionType: DENY displayName: Restrict Standard Storage Class description: Deny creating buckets with STANDARD storage class.
- Yeni bir özel kısıtlama için YAML dosyasını oluşturduktan sonra, kısıtlamayı kuruluşunuzdaki kuruluş politikalarında kullanılabilir hale getirmek için ayarlamanız gerekir. Özel kısıtlama oluşturmak için
gcloud org-policies set-custom-constraintkomutunu kullanın:gcloud org-policies set-custom-constraint CONSTRAINT_PATH
CONSTRAINT_PATHifadesini özel kısıtlama dosyanızın tam yoluyla değiştirin. Örneğin,/home/user/customconstraint.yaml. - Özel kısıtlamanın mevcut olduğunu doğrulamak için
gcloud org-policies list-custom-constraintskomutunu kullanın:gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID
Özel bir kuruluş politikasını zorunlu kılma
Kısıtlamayı zorunlu kılmak için kısıtlamaya referans veren bir kuruluş politikası oluşturup bu politikayı bir Google Cloud kaynağına uygulayabilirsiniz.
Konsol
- Google Cloud konsolunda Kuruluş politikaları sayfasına gidin.
- Proje seçiciden, kuruluş politikasını ayarlamak istediğiniz projeyi seçin.
- Kuruluş politikaları sayfasındaki listeden kısıtlamanızı seçerek ilgili kısıtlamanın Politika ayrıntıları sayfasını görüntüleyin.
- Bu kaynağın kuruluş politikasını yapılandırmak için Politikayı yönet'i tıklayın.
- Politikayı düzenle sayfasında Üst kaynağın politikasını geçersiz kıl'ı seçin.
- Add a rule'u (Kural ekle) tıklayın.
- Yaptırım bölümünde, bu kuruluş politikasının uygulanıp uygulanmayacağını seçin.
- Kuruluş politikasını prova modunda uygulamak için Prova politikası ayarla'yı tıklayın. Daha fazla bilgi için Kuruluş politikalarını test etme başlıklı makaleyi inceleyin.
- Deneme modundaki kuruluş politikasının amaçlandığı şekilde çalıştığını doğruladıktan sonra Politikayı ayarla'yı tıklayarak canlı politikayı ayarlayın.
gcloud
- Boole kuralları içeren bir kuruluş politikası oluşturmak için kısıtlamaya referans veren bir politika YAML dosyası oluşturun:
name: projects/PROJECT_ID/policies/custom.restrictStorageClass spec: rules: - enforce: true dryRunSpec: rules: - enforce: true
- Kuruluş politikasını deneme modunda uygulamak için aşağıdaki komutu
dryRunSpecişaretiyle çalıştırın:gcloud org-policies set-policy POLICY_PATH --update-mask=dryRunSpec
- Kuruluş politikasının deneme modunda amaçlandığı gibi çalıştığını doğruladıktan sonra
org-policies set-policykomutu vespecişaretiyle canlı politikayı ayarlayın:gcloud org-policies set-policy POLICY_PATH --update-mask=spec
Özel kuruluş politikasını test etme
Aşağıdaki örnekte, yeni oluşturulan tüm varsayılan paketlerin STANDARD depolama sınıfını kullanmasını engelleyen özel bir kısıtlama ve politika oluşturulmaktadır. Politikanın engellemesi gereken bir işlemi yapmayı deneyerek politikayı test edebilirsiniz.
Kısıtlamayı oluşturma
Aşağıdaki dosyayı
constraint-restrict-storage-class.yamlolarak kaydedin:name: organizations/ORGANIZATION_ID/customConstraints/custom.restrictStorageClass resourceTypes: - firebasestorage.googleapis.com/DefaultBucket methodTypes: - CREATE condition: "resource.storageClass == 'STANDARD'" actionType: DENY displayName: Restrict Standard Storage Class description: Deny creating buckets with STANDARD storage class.ORGANIZATION_IDyerine kuruluş kimliğinizi yazın.Kısıtlamayı uygulayın:
gcloud org-policies set-custom-constraint ~/constraint-restrict-storage-class.yamlKısıtlamanın mevcut olduğunu doğrulayın:
gcloud org-policies list-custom-constraints --organization=ORGANIZATION_IDÇıkış şuna benzer:
CUSTOM_CONSTRAINT ACTION_TYPE METHOD_TYPES RESOURCE_TYPES DISPLAY_NAME custom.restrictStorageClass DENY CREATE firebasestorage.googleapis.com/DefaultBucket Restrict Standard Storage Class ...
Politikayı oluşturma
Aşağıdaki dosyayı
policy-restrict-storage-class.yamlolarak kaydedin:name: projects/PROJECT_ID/policies/custom.restrictStorageClass spec: rules: - enforce: truePROJECT_IDyerine proje kimliğinizi yazın.Politikayı uygulayın:
gcloud org-policies set-policy ~/policy-restrict-storage-class.yamlPolitikanın mevcut olduğunu doğrulayın:
gcloud org-policies list --project=PROJECT_IDÇıkış şuna benzer:
CONSTRAINT LIST_POLICY BOOLEAN_POLICY ETAG custom.restrictStorageClass - SET CIqktscGELiZn6cC-
Politikayı uyguladıktan sonra Google Cloud uygulamasının politikayı uygulamaya başlaması için yaklaşık iki dakika bekleyin.
Politikayı test etme
Depolama sınıfı belirtmeden (varsayılan olarak STANDARD kullanılır) Cloud Storage for Firebase REST API'yi kullanarak varsayılan bir paket oluşturmayı deneyin:
PROJECT_ID="PROJECT_ID"
TOKEN=$(gcloud auth print-access-token)
curl -X POST "https://firebasestorage.googleapis.com/v1beta/projects/${PROJECT_ID}/defaultBucket" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-d '{"location": "US-EAST1"}'
İstek, aşağıdakine benzer bir hatayla başarısız olur:
FAILED_PRECONDITION: Operation denied by org policy: ["customConstraints/custom.restrictStorageClass": "Deny creating buckets with STANDARD storage class."].
- '@type': type.googleapis.com/google.rpc.ErrorInfo
domain: iam.googleapis.com
metadata:
customConstraints: customConstraints/custom.restrictStorageClass
reason: CUSTOM_ORG_POLICY_VIOLATION
Yaygın kullanım alanları için örnek özel kuruluş politikaları
Bu tabloda, bazı yaygın özel kısıtlamalar için söz dizimi örnekleri verilmiştir.
| Açıklama | Kısıtlama söz dizimi |
|---|---|
| STANDARD depolama sınıfıyla varsayılan paket oluşturmayı kısıtlama |
name: organizations/ORGANIZATION_ID/customConstraints/custom.restrictStorageClass resourceTypes: - firebasestorage.googleapis.com/DefaultBucket methodTypes: - CREATE condition: "resource.storageClass == 'STANDARD'" actionType: DENY displayName: Restrict Standard Storage Class description: Deny creating buckets with STANDARD storage class. |
| Varsayılan paketlerin belirli bir konumda oluşturulmasını zorunlu kılma |
name: organizations/ORGANIZATION_ID/customConstraints/custom.requireDefaultBucketLocation resourceTypes: - firebasestorage.googleapis.com/DefaultBucket methodTypes: - CREATE condition: "resource.location != 'US-EAST1'" actionType: DENY displayName: Require US-EAST1 Location description: Deny creating default buckets outside the US-EAST1 location. |
Sırada ne var?
- Kuruluş Politikası Hizmeti hakkında daha fazla bilgi edinin.
- Kuruluş politikaları oluşturma ve yönetme hakkında daha fazla bilgi edinin.
- Yönetilen kuruluş politikası kısıtlamalarının tam listesini inceleyin.