Como fazer alterações em massa em perímetros de serviço

Usando o Access Context Manager, é possível fazer atualizações em massa de recursos que pertencem à política de acesso da sua organização, como níveis de acesso e perímetros de serviço. As alterações nos seus recursos serão aplicadas apenas se todas as partes da operação em massa forem bem-sucedidas.

Este tópico descreve somente a substituição em massa de perímetros de serviço. Para ver mais informações sobre a substituição em massa de níveis de acesso, consulte a documentação do Access Context Manager.

Antes de começar

Como as operações em massa afetam todos os perímetros de serviço da sua organização, convém obter uma lista completa dos perímetros. A lista pode ser formatada como YAML, que também pode fazer alterações em massa nos perímetros com mais facilidade.

Para ver uma lista formatada de níveis de acesso, consulte Listar perímetros de serviço (formatados).

Substituir em massa os perímetros de serviço

A seção a seguir detalha como substituir os perímetros de serviço.

gcloud

Para substituir em massa todos os perímetros de serviço, use o comando replace-all.

gcloud beta access-context-manager perimeters replace-all \
  --source-file=FILE \
  --etag=ETAG \
  [--policy=POLICY_NAME]

Onde:

  • FILE é o nome de um arquivo .yaml que define as novas configurações para os perímetros de serviço atuais.

    Exemplo:

    - name: accessPolicies/11271009391/servicePerimeters/storage_perimeter
      title: Storage Perimeter
      description: Perimeter to protect Storage resources.
      perimeterType: PERIMETER_TYPE_REGULAR
      status:
        restrictedServices:
        - storage.googleapis.com
    - name: accessPolicies/11271009391/servicePerimeters/bigquery_perimeter
      title: BigQuery Perimeter
      description: Perimeter to protect BigQuery resources.
      perimeterType: PERIMETER_TYPE_REGULAR
      status:
        restrictedServices:
        - bigquery.googleapis.com
    

    Para mais informações sobre a formatação do arquivo YAML, consulte a estrutura JSON do objeto ServicePerimeterConfig do Access Context Manager.

  • ETAG (opcional) é uma string que representa a versão de destino da política de acesso da sua organização. Se você não incluir um etag, a operação em massa terá como alvo a versão mais recente da política de acesso da sua organização.

    Para receber a última etag da sua política de acesso, list suas políticas de acesso.

  • POLICY_NAME é o nome da política de acesso da organização. Esse valor é necessário somente se você não tiver definido uma política de acesso padrão.

API

Para substituir todos os perímetros de serviço em massa, chame servicePerimeters.replaceAll.

POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/servicePerimeters.replaceAll?alt=json

Onde:

  • POLICY_NAME é o nome da política de acesso da organização.

Corpo da solicitação

O corpo da solicitação precisa incluir uma lista de objetos ServicePerimeterConfig que especifiquem as alterações que você quer fazer.

Opcionalmente, para direcionar uma versão específica da política de acesso da sua organização, é possível incluir um etag. Se você não incluir um etag, a operação em massa terá como alvo a versão mais recente da política de acesso da sua organização.

Exemplo:

{
  "servicePerimeters": [
    object (ServicePerimeterConfig),
    object (ServicePerimeterConfig),
    ...
  ]
  "etag": string
}

Corpo da resposta

Se for bem-sucedido, o corpo da resposta da chamada conterá um recurso Operation que fornece detalhes sobre a operação de postagem.

Exemplo de resposta:

{
  "name": "operations/accessPolicies/11271009391/replacePerimeters/1583523447707087",
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.identity.accesscontextmanager.v1.ReplaceServicePerimetersResponse",
    "servicePerimeters": [
      {
        "name": "accessPolicies/11271009391/servicePerimeters/storage_perimeter",
        "title": "Storage Perimeter",
        "description": "Perimeter to protect Storage resources.",
        "status": {
          "accessLevels": [
            "accessPolicies/11271009391/accessLevels/corpnet_access"
          ],
          "restrictedServices": [
            "bigtable.googleapis.com"
          ]
        }
      },
      {
        "name": "accessPolicies/11271009391/servicePerimeters/storage_perimeter",
        "title": "BigQuery Perimeter",
        "description": "Perimeter to protect BigQuery resources.",
        "status": {
          "accessLevels": [
            "accessPolicies/11271009391/accessLevels/prodnet_access"
          ],
          "restrictedServices": [
            "bigtable.googleapis.com"
          ]
        }
      }
    ]
  }
}