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 dos seus recursos só serão aplicadas se todas as partes da operação em massa forem bem-sucedidas.

Este tópico descreve apenas 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 organização, é possível ter uma lista completa dos perímetros. Além disso, é possível formatar essa lista como YAML e usá-la para fazer alterações em massa nos perímetros.

Para consultar uma lista formatada de perímetros de serviço, 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 em massa.

gcloud

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

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

Em que:

  • 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 uma 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

Em que:

  • 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 uma ETag. Se você não incluir uma 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

Caso a chamada seja bem-sucedida, o corpo da resposta incluirá um recurso Operation que fornece detalhes sobre a operação de publicação.

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