Como definir políticas da organização para o Cloud Storage

Nesta página, você aprende a definir políticas da organização específicas para o Cloud Storage no nível do projeto ou acima dele. Isso pode ser usado para gerenciar configurações de intervalos na sua organização. Atualmente, o Cloud Storage tem duas políticas desse tipo disponíveis: uma para aplicar o uso de políticas de retenção de bloqueio do intervalo e outra para aplicar o uso de acesso uniforme no nível do intervalo.

Como definir uma restrição de política de armazenamento

Para exigir que os intervalos da sua organização sejam criados com as políticas de retenção adequadas:

gcloud

  1. Crie um arquivo .json com as seguintes informações, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:

    {
        "constraint": "constraints/storage.retentionPolicySeconds",
        "listPolicy": {
          "allowedValues": [SET_OF_TIMES_IN_SECONDS],
          "inheritFromParent": "[BOOLEAN]"
        }
      }

    Observe que a restrição pode ter vários valores permitidos, por exemplo:

    "allowedValues": [ "100", "200", "1000" ]
  2. Use o comando gcloud beta resource-manager org-policies set-policy, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:

    gcloud beta resource-manager org-policies set-policy [JSON_FILE_NAME].json --[RESOURCE_TYPE]=[RESOURCE_NAME]

API JSON

  1. Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
  2. Crie um arquivo .json com as seguintes informações, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:

    {
        "constraint": "constraints/storage.retentionPolicySeconds",
        "listPolicy": {
          "allowedValues": [SET_OF_TIMES_IN_SECONDS],
          "inheritFromParent": "[BOOLEAN]"
        }
      }

    Observe que a restrição pode ter vários valores permitidos, por exemplo:

    "allowedValues": [ "100", "200", "1000" ]
  3. Use cURL (em inglês) para chamar a API JSON com uma solicitação de POST, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:

    curl -X POST --data-binary @[JSON_FILE_NAME].json \
    -H "Authorization: Bearer [OAUTH2_TOKEN]" \
    -H "Content-Type: application/json" \
    "https://cloudresourcemanager.googleapis.com/v1/[RESOURCE_TYPE]/[RESOURCE_ID]:setOrgPolicy"

Como definir uma restrição de acesso uniforme no nível do intervalo

Para exigir que os intervalos em sua organização sejam criados com acesso uniforme no nível do intervalo e impedir que os intervalos existentes desativem esse acesso:

gcloud

  1. Crie um arquivo .json com as seguintes informações, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:

    {
        "constraint": "constraints/storage.uniformBucketLevelAccess",
        "booleanPolicy": {
          "enforced": "[BOOLEAN]"
        }
      }

  2. Use o comando gcloud beta resource-manager org-policies set-policy, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:

    gcloud beta resource-manager org-policies set-policy [JSON_FILE_NAME].json --[RESOURCE_TYPE]=[RESOURCE_NAME]

API JSON

  1. Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
  2. Crie um arquivo .json com as seguintes informações, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:

    {
        "constraint": "constraints/storage.uniformBucketLevelAccess",
        "booleanPolicy": {
          "enforced": "[BOOLEAN]"
        }
      }
  3. Use cURL (em inglês) para chamar a API JSON com uma solicitação de POST, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:

    curl -X POST --data-binary @[JSON_FILE_NAME].json \
    -H "Authorization: Bearer [OAUTH2_TOKEN]" \
    -H "Content-Type: application/json" \
    "https://cloudresourcemanager.googleapis.com/v1/[RESOURCE_TYPE]/[RESOURCE_ID]:setOrgPolicy"

Como desativar a criação da chave HMAC

Para impedir que chaves HMAC sejam criadas para contas de serviço na sua organização:

gcloud

  1. Crie um arquivo .json com as seguintes informações, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:

    {
        "constraint": "constraints/storage.disableServiceAccountHmacKeyCreation",
        "booleanPolicy": {
          "enforced": "[BOOLEAN]"
        }
      }

  2. Use o comando gcloud beta resource-manager org-policies set-policy, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:

    gcloud beta resource-manager org-policies set-policy [JSON_FILE_NAME].json --[RESOURCE_TYPE]=[RESOURCE_NAME]

API JSON

  1. Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
  2. Crie um arquivo .json com as seguintes informações, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:

    {
        "constraint": "constraints/storage.disableServiceAccountHmacKeyCreation",
        "booleanPolicy": {
          "enforced": "[BOOLEAN]"
        }
      }
  3. Use cURL (em inglês) para chamar a API JSON com uma solicitação de POST, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:

    curl -X POST --data-binary @[JSON_FILE_NAME].json \
    -H "Authorization: Bearer [OAUTH2_TOKEN]" \
    -H "Content-Type: application/json" \
    "https://cloudresourcemanager.googleapis.com/v1/[RESOURCE_TYPE]/[RESOURCE_ID]:setOrgPolicy"

Como remover uma restrição da política da organização

Para remover uma restrição de uma política da organização:

gcloud

  1. Use o comando gcloud beta resource-manager org-policies delete, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:

    gcloud beta resource-manager org-policies delete [CONSTAINT_NAME] --[RESOURCE_TYPE]=[RESOURCE_NAME]

API JSON

  1. Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
  2. Crie um arquivo .json com as seguintes informações, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:

    {
        "constraint": "[CONSTRAINT_NAME]",
      }
  3. Use cURL (em inglês) para chamar a API JSON com uma solicitação de POST, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:

    curl -X POST --data-binary @[JSON_FILE_NAME].json \
    -H "Authorization: Bearer [OAUTH2_TOKEN]" \
    -H "Content-Type: application/json" \
    "https://cloudresourcemanager.googleapis.com/v1/[RESOURCE_TYPE]/[RESOURCE_ID]:clearOrgPolicy"

Considerações ao usar políticas da organização

  • É possível aplicar uma restrição a qualquer recurso no nível do projeto ou superior, inclusive para um recurso da organização.

  • As restrições retentionPolicySeconds e uniformBucketLevelAccess são aplicadas ao criar novos intervalos no recurso, bem como ao adicionar/atualizar o parâmetro relevante em intervalos existentes no recurso.

  • As restrições retentionPolicySeconds e uniformBucketLevelAccess não são aplicadas retroativamente em intervalos existentes, exceto quando o parâmetro relevante está sendo definido em um intervalo desse tipo.

  • Se um recurso tiver chaves HMAC existentes quando você ativar a restrição disableServiceAccountHmacKeyCreation, essas chaves continuarão a existir.

  • Para restrições de políticas de retenção, ao definir várias restrições em diferentes níveis do recurso, elas serão aplicadas hierarquicamente. Por esse motivo, é recomendável definir o campo inheritFromParent como true, garantindo que as políticas nas camadas superiores também sejam consideradas.