Policy

Google Cloud kaynakları için erişim denetimlerini belirten bir Identity and Access Management (IAM) politikası.

Policy, bindings koleksiyonudur. Bir binding, bir veya daha fazla members ya da asıl üyeyi tek bir role'ye bağlar. Asıl kullanıcılar, kullanıcı hesapları, hizmet hesapları, Google Grupları ve alanlar (ör. G Suite) olabilir. role, izinlerin adlandırılmış bir listesidir. Her role, IAM'de önceden tanımlanmış bir rol veya kullanıcı tarafından oluşturulmuş özel bir rol olabilir.

Bazı Google Cloud kaynak türleri için binding, condition da belirtebilir. Bu, yalnızca ifade true olarak değerlendirilirse bir kaynağa erişime izin veren mantıksal bir ifadedir. Bir koşul, isteğin, kaynağın veya her ikisinin de özelliklerine göre kısıtlamalar ekleyebilir. IAM politikalarında koşulları hangi kaynakların desteklediğini öğrenmek için IAM belgelerine bakın.

JSON örneği:

    {
      "bindings": [
        {
          "role": "roles/resourcemanager.organizationAdmin",
          "members": [
            "user:mike@example.com",
            "group:admins@example.com",
            "domain:google.com",
            "serviceAccount:my-project-id@appspot.gserviceaccount.com"
          ]
        },
        {
          "role": "roles/resourcemanager.organizationViewer",
          "members": [
            "user:eve@example.com"
          ],
          "condition": {
            "title": "expirable access",
            "description": "Does not grant access after Sep 2020",
            "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')",
          }
        }
      ],
      "etag": "BwWWja0YfJA=",
      "version": 3
    }

YAML örneği:

    bindings:
    - members:
      - user:mike@example.com
      - group:admins@example.com
      - domain:google.com
      - serviceAccount:my-project-id@appspot.gserviceaccount.com
      role: roles/resourcemanager.organizationAdmin
    - members:
      - user:eve@example.com
      role: roles/resourcemanager.organizationViewer
      condition:
        title: expirable access
        description: Does not grant access after Sep 2020
        expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
    etag: BwWWja0YfJA=
    version: 3

IAM ve özellikleri hakkında bilgi edinmek için IAM belgelerini inceleyin.

JSON gösterimi
{
  "version": integer,
  "bindings": [
    {
      object (Binding)
    }
  ],
  "etag": string
}
Alanlar
version

integer

Politikanın biçimini belirtir.

Geçerli değerler 0, 1 ve 3 şeklindedir. Geçersiz bir değer belirten istekler reddedilir.

Koşullu rol bağlamalarını etkileyen tüm işlemler, 3 sürümünü belirtmelidir. Bu koşul aşağıdaki işlemler için geçerlidir:

  • Koşullu rol bağlaması içeren bir politika edinme
  • Politikaya koşullu rol bağlama ekleme
  • Bir politikadaki koşullu rol bağlamasını değiştirme
  • Koşul içeren bir politikadan koşullu veya koşulsuz herhangi bir rol bağlamasını kaldırma

Önemli: IAM koşullarını kullanıyorsanız setIamPolicy işlevini her çağırdığınızda etag alanını eklemeniz gerekir. Bu alanı atlarsanız IAM, 3 sürümündeki bir politikayı 1 sürümündeki bir politikayla değiştirmenize izin verir ve 3 sürümündeki politikadaki tüm koşullar kaybolur.

Bir politika herhangi bir koşul içermiyorsa bu politikayla ilgili işlemler herhangi bir geçerli sürümü belirtebilir veya alanı ayarlanmamış olarak bırakabilir.

IAM politikalarında koşulları hangi kaynakların desteklediğini öğrenmek için IAM belgelerine bakın.

bindings[]

object (Binding)

members veya asıl sorumlular listesini bir role ile ilişkilendirir. İsteğe bağlı olarak, condition değerini belirtebilirsiniz. Bu değer, bindings değerlerinin nasıl ve ne zaman uygulanacağını belirler. bindings öğelerinin her biri en az bir asıl içermelidir.

Bir Policy içindeki bindings,1.500'e kadar sorumluya atıfta bulunabilir. Bu sorumlulardan 250'ye kadarı Google grubu olabilir. Her bir asıl oluşumu bu sınırlara dahil edilir. Örneğin, bindings, user:alice@example.com'ye 50 farklı rol veriyorsa ve başka hiçbir asıl üyeye vermiyorsa Policy içinde bindings'ya 1.450 asıl üye daha ekleyebilirsiniz.

etag

string (bytes format)

etag, bir politikanın eşzamanlı güncellemelerinin birbirinin üzerine yazılmasını önlemeye yardımcı olmak için iyimser eşzamanlılık kontrolü amacıyla kullanılır. Yarış durumlarını önlemek için sistemlerin politika güncellemelerini okuma-değiştirme-yazma döngüsünde etag kullanarak yapması önemle tavsiye edilir: getIamPolicy yanıtında bir etag döndürülür ve sistemlerin, değişikliklerinin politikanın aynı sürümüne uygulanmasını sağlamak için bu etag'i setIamPolicy isteğine yerleştirmesi beklenir.

Önemli: IAM koşullarını kullanıyorsanız setIamPolicy işlevini her çağırdığınızda etag alanını eklemeniz gerekir. Bu alanı atlarsanız IAM, 3 sürümündeki bir politikayı 1 sürümündeki bir politikayla değiştirmenize izin verir ve 3 sürümündeki politikadaki tüm koşullar kaybolur.

Base64 kodlu bir dize.