Policy

Zasady Identity and Access Management (IAM), które określają kontrolę dostępu do zasobów Google Cloud.

Policy to zbiór bindings. binding wiąże co najmniej 1 members lub podmiot zabezpieczeń z 1 role. Podmiotami zabezpieczeń mogą być konta użytkowników, konta usługi, grupy dyskusyjne Google i domeny (np. G Suite). role to nazwana lista uprawnień. Każda role może być wstępnie zdefiniowaną rolą uprawnień lub utworzoną przez użytkownika rolą niestandardową.

W przypadku niektórych typów zasobów Google Cloud binding może też określić condition, czyli wyrażenie logiczne, które umożliwia dostęp do zasobu tylko wtedy, gdy jego wartość to true. Warunek może dodawać ograniczenia na podstawie atrybutów żądania, zasobu lub obu tych elementów. Informacje o tym, które zasoby obsługują warunki w swoich zasadach uprawnień, znajdziesz w dokumentacji IAM.

Przykład JSON:

    {
      "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
    }

Przykład YAML:

    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

Opis IAM i jego funkcji znajdziesz w dokumentacji IAM.

Zapis JSON
{
  "version": integer,
  "bindings": [
    {
      object (Binding)
    }
  ],
  "etag": string
}
Pola
version

integer

Określa format zasady.

Prawidłowe wartości to 0, 13. Żądania, które określają nieprawidłową wartość, są odrzucane.

Każda operacja, która wpływa na warunkowe powiązania ról, musi określać wersję 3. Ten wymóg dotyczy tych operacji:

  • Pobieranie zasad, które obejmują warunkowe powiązanie roli
  • Dodawanie warunkowego powiązania ról do zasady
  • Zmienianie warunkowego powiązania roli w zasadach
  • usuwanie z zasad zawierających warunki dowolnego powiązania roli z warunkiem lub bez niego;

Ważne: jeśli używasz warunków uprawnień, musisz uwzględnić pole etag za każdym razem, gdy wywołujesz setIamPolicy. Jeśli pominiesz to pole, IAM umożliwi Ci zastąpienie zasady wersji 3 zasadą wersji 1, a wszystkie warunki w zasadzie wersji 3 zostaną utracone.

Jeśli zasady nie zawierają żadnych warunków, operacje na tych zasadach mogą określać dowolną prawidłową wersję lub pozostawić to pole bez ustawienia.

Informacje o tym, które zasoby obsługują warunki w swoich zasadach uprawnień, znajdziesz w dokumentacji IAM.

bindings[]

object (Binding)

Powiązuje listę members, czyli podmiotów zabezpieczeń, z role. Opcjonalnie możesz określić condition, które określa, jak i kiedy stosowane są bindings. Każdy z elementów bindings musi zawierać co najmniej 1 podmiot zabezpieczeń.

bindings w Policy może odwoływać się do maksymalnie 1500 podmiotów zabezpieczeń,z czego maksymalnie 250 mogą stanowić grupy Google. Każde wystąpienie podmiotu zabezpieczeń wlicza się do tych limitów. Jeśli na przykład podmiot bindings przyzna 50 różnych ról podmiotowi user:alice@example.com, a nie żadnemu innemu podmiotowi zabezpieczeń, możesz dodać do podmiotu bindingsPolicy jeszcze 1450 podmiotów zabezpieczeń.

etag

string (bytes format)

etag jest używany do optymistycznej kontroli współbieżności, aby zapobiec jednoczesnym aktualizacjom zasad, które mogłyby się wzajemnie nadpisywać. Zdecydowanie zalecamy, aby systemy korzystały z wartości etag w cyklu odczyt-modyfikacja-zapis, aby przeprowadzać aktualizacje zasad i uniknąć sytuacji wyścigu: wartość etag jest zwracana w odpowiedzi na żądanie getIamPolicy, a systemy powinny umieszczać tę wartość w żądaniu setIamPolicy, aby mieć pewność, że zmiana zostanie zastosowana do tej samej wersji zasad.

Ważne: jeśli używasz warunków uprawnień, musisz uwzględnić pole etag za każdym razem, gdy wywołujesz setIamPolicy. Jeśli pominiesz to pole, IAM umożliwi Ci zastąpienie zasady wersji 3 zasadą wersji 1, a wszystkie warunki w zasadzie wersji 3 zostaną utracone.

Ciąg tekstowy zakodowany w formacie Base64.