Como usar acesso uniforme no nível do intervalo

Nesta página, mostramos como ativar, desativar e verificar o status do acesso uniforme no nível do intervalo em um intervalo no Cloud Storage. Para mais detalhes sobre esse recurso, consulte Acesso uniforme no nível do intervalo.

Pré-requisitos

Antes de usar este recurso no Cloud Storage, realize estas etapas:

  1. Tenha permissão suficiente para ver e atualizar intervalos no Cloud Storage:

    • Se você é proprietário do projeto que contém o intervalo, provavelmente já tem as permissões necessárias.

    • Ter as permissões do IAM storage.buckets.update e storage.buckets.get no intervalo pertinente. Consulte Como usar permissões do IAM para instruções sobre como conseguir um papel, por exemplo, roles/storage.admin, com essas permissões.

Verificar o uso da ACL

Antes de ativar o acesso uniforme no nível do intervalo, use o Stackdriver para garantir que seu intervalo não use ACLs para fluxos de trabalho. Para mais informações, consulte Verificar o uso da ACL do objeto.

Console

Para visualizar as métricas de um recurso monitorado usando o Metrics Explorer, faça o seguinte:

  1. No Console do Google Cloud, acesse Monitoramento ou use este botão:
    Acessar Monitoring.
  2. Se o painel de navegação não estiver expandido, clique em Expandir. Esse botão está localizado no canto inferior esquerdo do console.
  3. Clique em Metrics Explorer se ele aparecer no painel de navegação. Caso contrário, selecione Recursos e, em seguida, Metrics Explorer.
  4. Verifique se Métrica é a guia selecionada.
  5. Clique na caixa Localizar tipo de recurso e métrica e, em seguida, selecione ou insira no menu o nome do recurso e da métrica. Use as seguintes informações para preencher os campos dessa caixa de texto:
    1. Em Recurso, selecione ou insira gcs_bucket.
    2. Em Métrica, selecione ou insira uso de ACLs.
    O nome totalmente qualificado para este recurso monitorado é storage.googleapis.com/authz/acl_operations_count.
  6. Use os menus Filtro, Agrupar por e Agregação para modificar a exibição dos dados. Por exemplo, para agrupar os dados por operação de ACL e intervalo, selecione operação_acl em Agrupar por e soma em Agregador. Para mais informações, consulte o tópico Outras configurações da página "Como selecionar métricas".

Consulte storage para acessar uma lista completa das métricas disponíveis para o Cloud Storage. Para mais informações sobre séries temporais, consulte Métricas, série temporal e recursos.

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. Use cURL para chamar a API JSON do Monitoring:

curl \
'https://monitoring.googleapis.com/v3/projects/[PROJECT_ID]/timeSeries?filter=metric.type%20%3D%20%22storage.googleapis.com%2Fauthz%2Facl_operations_count%22&interval.endTime=[END_TIME]&interval.startTime=[START_TIME]' \
--header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
--header 'Accept: application/json'

Em que:

  • [PROJECT_ID] é o ID ou número do projeto de que você quer o uso da ACL. Por exemplo, my-project;
  • [END_TIME] é o final do período de que você quer ver o uso da ACL. Por exemplo, 2014-11-02T15:01:23.045123456Z;
  • [START_TIME] é o início do período de que você quer ver o uso da ACL. Por exemplo, 2014-10-02T15:01:23.045123456Z;
  • [YOUR_ACCESS_TOKEN] é o token de acesso gerado na Etapa 1.

Se a solicitação retornar um objeto vazio {}, não há uso recente da ACL para o projeto.

Ativar acesso uniforme no nível do intervalo

Confira o que fazer para ativar o acesso uniforme no nível do intervalo no seu intervalo:

Console

  1. Abra o navegador do Cloud Storage no Console do Google Cloud.
    Abra o navegador do Cloud Storage
  2. Na lista de intervalos, clique no nome do intervalo pretendido.

  3. Selecione a guia Permissões na parte superior da página.

  4. Na caixa de texto que começa com Este intervalo dispõe de um controle de acesso minucioso..., clique em Editar.

  5. No menu pop-up exibido, selecione Uniforme.

  6. Clique em Salvar.

gsutil

Use a opção on em um comando uniformbucketlevelaccess set, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:

gsutil uniformbucketlevelaccess set on gs://[BUCKET_NAME]/

Se bem-sucedida, a resposta terá esta aparência:

Enabling uniform bucket-level access for gs://test-bucket/...

Amostras de código

C++

Para mais informações, consulte a documentação de Referência da API Cloud Storage para C++.

namespace gcs = google::cloud::storage;
using google::cloud::StatusOr;
[](gcs::Client client, std::string bucket_name) {
  gcs::BucketIamConfiguration configuration;
  configuration.uniform_bucket_level_access =
      gcs::UniformBucketLevelAccess{true, {}};
  StatusOr<gcs::BucketMetadata> updated_metadata = client.PatchBucket(
      bucket_name, gcs::BucketMetadataPatchBuilder().SetIamConfiguration(
                       std::move(configuration)));

  if (!updated_metadata) {
    throw std::runtime_error(updated_metadata.status().message());
  }

  std::cout << "Successfully enabled Uniform Bucket Level Access on bucket "
            << updated_metadata->name() << "\n";
}

C#

Para mais informações, consulte a documentação de Referência da API Cloud Storage para C#.

        private void EnableUniformBucketLevelAccess(string bucketName)
        {
            var storage = StorageClient.Create();
            var bucket = storage.GetBucket(bucketName);
            bucket.IamConfiguration.UniformBucketLevelAccess.Enabled = true;
            bucket = storage.UpdateBucket(bucket, new UpdateBucketOptions()
            {
                // Use IfMetagenerationMatch to avoid race conditions.
                IfMetagenerationMatch = bucket.Metageneration,
            });

            Console.WriteLine($"Uniform bucket-level access was enabled for {bucketName}.");
        }

Go

Para mais informações, consulte a documentação de Referência da API Cloud Storage para Go.

bucket := c.Bucket(bucketName)
enableUniformBucketLevelAccess := storage.BucketAttrsToUpdate{
	UniformBucketLevelAccess: &storage.UniformBucketLevelAccess{
		Enabled: true,
	},
}
if _, err := bucket.Update(ctx, enableUniformBucketLevelAccess); err != nil {
	return err
}

Java

Para mais informações, consulte a documentação de Referência da API Cloud Storage para Java.

// Instantiate a Google Cloud Storage client
Storage storage = StorageOptions.getDefaultInstance().getService();

// The name of a bucket, e.g. "my-bucket"
// String bucketName = "my-bucket";

BucketInfo.IamConfiguration iamConfiguration =
    BucketInfo.IamConfiguration.newBuilder().setIsUniformBucketLevelAccessEnabled(true).build();
Bucket bucket =
    storage.update(
        BucketInfo.newBuilder(bucketName).setIamConfiguration(iamConfiguration).build());

System.out.println("Uniform bucket-level access was enabled for " + bucketName);

Node.js

Para mais informações, consulte a documentação de Referência da API Cloud Storage para Node.js.

// Imports the Google Cloud client library
const {Storage} = require('@google-cloud/storage');

// Creates a client
const storage = new Storage();

/**
 * TODO(developer): Uncomment the following lines before running the sample.
 */
// const bucketName = 'Name of a bucket, e.g. my-bucket';

// Enables uniform bucket-level access for the bucket
await storage.bucket(bucketName).setMetadata({
  iamConfiguration: {
    uniformBucketLevelAccess: {
      enabled: true,
    },
  },
});

console.log(`Uniform bucket-level access was enabled for ${bucketName}.`);

PHP

Para mais informações, consulte a documentação de Referência da API Cloud Storage para PHP.

use Google\Cloud\Storage\StorageClient;

/**
 * Enable uniform bucket-level access.
 *
 * @param string $bucketName Name of your Google Cloud Storage bucket.
 *
 * @return void
 */
function enable_uniform_bucket_level_access($bucketName)
{
    $storage = new StorageClient();
    $bucket = $storage->bucket($bucketName);
    $bucket->update([
        'iamConfiguration' => [
            'uniformBucketLevelAccess' => [
                'enabled' => true
            ],
        ]
    ]);
    printf('Uniform bucket-level access was enabled for %s' . PHP_EOL, $bucketName);
}

Python

Para mais informações, consulte a documentação de Referência da API Cloud Storage para Python.

from google.cloud import storage

def enable_uniform_bucket_level_access(bucket_name):
    """Enable uniform bucket-level access for a bucket"""
    # bucket_name = "my-bucket"

    storage_client = storage.Client()
    bucket = storage_client.get_bucket(bucket_name)

    bucket.iam_configuration.uniform_bucket_level_access_enabled = True
    bucket.patch()

    print(
        "Uniform bucket-level access was enabled for {}.".format(bucket.name)
    )

Ruby

Para mais informações, consulte a documentação de Referência da API Cloud Storage para Ruby.

# project_id  = "Your Google Cloud project ID"
# bucket_name = "Name of your Google Cloud Storage bucket"

require "google/cloud/storage"

storage = Google::Cloud::Storage.new project_id: project_id
bucket  = storage.bucket bucket_name

bucket.uniform_bucket_level_access = true

puts "Uniform bucket-level access was enabled for #{bucket_name}."

APIs REST

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 que contenha as informações a seguir, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:

    {
      "iamConfiguration": {
          "uniformbucketlevelaccess": {
            "enabled": true
          }
      }
    }
  3. Use cURL (em inglês) para chamar a API JSON com uma solicitação de intervalo PATCH, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:

    curl -X PATCH --data-binary @[JSON_FILE_NAME].json \
    -H "Authorization: Bearer [OAUTH2_TOKEN]" \
    -H "Content-Type: application/json" \
    "https://storage.googleapis.com/storage/v1/b/[BUCKET_NAME]?fields=iamConfiguration"

API XML

A API XML não pode ser usada para trabalhar com acesso uniforme no nível do intervalo. Use uma das outras ferramentas do Cloud Storage, como o gsutil.

Visualizar o status do acesso uniforme no nível do intervalo

Console

  1. Abra o navegador do Cloud Storage no Console do Google Cloud.
    Abra o navegador do Cloud Storage
  2. Verifique se a opção Controle de acesso está marcada no menu Opções de exibição da coluna (Ícone de opções da coluna.).

  3. Na lista de intervalos, o status do acesso uniforme no nível do intervalo de cada intervalo é encontrado na coluna Controle de acesso.

gsutil

Use o comando uniformbucketlevelaccess get, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:

gsutil uniformbucketlevelaccess get gs://[BUCKET_NAME]/

Se o acesso uniforme no nível do intervalo estiver ativado, a resposta será parecida com esta:

Uniform bucket-level access setting for gs://[BUCKET_NAME]/:
    Enabled: True
    LockedTime: [LOCK_DATE] 

Amostras de código

C++

Para mais informações, consulte a documentação de Referência da API Cloud Storage para C++.

namespace gcs = google::cloud::storage;
using google::cloud::StatusOr;
[](gcs::Client client, std::string bucket_name) {
  StatusOr<gcs::BucketMetadata> bucket_metadata =
      client.GetBucketMetadata(bucket_name);

  if (!bucket_metadata) {
    throw std::runtime_error(bucket_metadata.status().message());
  }

  if (bucket_metadata->has_iam_configuration() &&
      bucket_metadata->iam_configuration()
          .uniform_bucket_level_access.has_value()) {
    gcs::UniformBucketLevelAccess uniform_bucket_level_access =
        *bucket_metadata->iam_configuration().uniform_bucket_level_access;

    std::cout << "Uniform Bucket Level Access is enabled for "
              << bucket_metadata->name() << "\n";
    std::cout << "Bucket will be locked on " << uniform_bucket_level_access
              << "\n";
  } else {
    std::cout << "Uniform Bucket Level Access is not enabled for "
              << bucket_metadata->name() << "\n";
  }
}

C#

Para mais informações, consulte a documentação de Referência da API Cloud Storage para C#.

        private void GetUniformBucketLevelAccess(string bucketName)
        {
            var storage = StorageClient.Create();
            var bucket = storage.GetBucket(bucketName);
            var uniformBucketLevelAccess = bucket.IamConfiguration.UniformBucketLevelAccess;

            bool? enabledOrNull = uniformBucketLevelAccess?.Enabled;
            bool uniformBucketLevelAccessEnabled =
                enabledOrNull.HasValue ? enabledOrNull.Value : false;
            if (uniformBucketLevelAccessEnabled)
            {
                Console.WriteLine($"Uniform bucket-level access is enabled for {bucketName}.");
                Console.WriteLine(
                    $"Uniform bucket-level access will be locked on {uniformBucketLevelAccess.LockedTime}.");
            }
            else
            {
                Console.WriteLine($"Uniform bucket-level access is not enabled for {bucketName}.");
            }
        }

Go

Para mais informações, consulte a documentação de Referência da API Cloud Storage para Go.

attrs, err := c.Bucket(bucketName).Attrs(ctx)
if err != nil {
	return nil, err
}
uniformBucketLevelAccess := attrs.UniformBucketLevelAccess
if uniformBucketLevelAccess.Enabled {
	log.Printf("Uniform bucket-level access is enabled for %q.\n",
		attrs.Name)
	log.Printf("Bucket will be locked on %q.\n",
		uniformBucketLevelAccess.LockedTime)
} else {
	log.Printf("Uniform bucket-level access is not enabled for %q.\n",
		attrs.Name)
}

Java

Para mais informações, consulte a documentação de Referência da API Cloud Storage para Java.

// Instantiate a Google Cloud Storage client
Storage storage = StorageOptions.getDefaultInstance().getService();

// The name of a bucket, e.g. "my-bucket"
// String bucketName = "my-bucket";

Bucket bucket = storage.get(bucketName, BucketGetOption.fields(BucketField.IAMCONFIGURATION));
BucketInfo.IamConfiguration iamConfiguration = bucket.getIamConfiguration();

Boolean enabled = iamConfiguration.isUniformBucketLevelAccessEnabled();
Date lockedTime = new Date(iamConfiguration.getUniformBucketLevelAccessLockedTime());

if (enabled != null && enabled) {
  System.out.println("Uniform bucket-level access is enabled for " + bucketName);
  System.out.println("Bucket will be locked on " + lockedTime);
} else {
  System.out.println("Uniform bucket-level access is disabled for " + bucketName);
}

Node.js

Para mais informações, consulte a documentação de Referência da API Cloud Storage para Node.js.

// Imports the Google Cloud client library
const {Storage} = require('@google-cloud/storage');

// Creates a client
const storage = new Storage();

/**
 * TODO(developer): Uncomment the following lines before running the sample.
 */
// const bucketName = 'Name of a bucket, e.g. my-bucket';

// Gets Bucket Metadata and checks if uniform bucket-level access is enabled.
const [metadata] = await storage.bucket(bucketName).getMetadata();

if (metadata.iamConfiguration) {
  const uniformBucketLevelAccess =
    metadata.iamConfiguration.uniformBucketLevelAccess;
  console.log(`Uniform bucket-level access is enabled for ${bucketName}.`);
  console.log(
    `Bucket will be locked on ${uniformBucketLevelAccess.lockedTime}.`
  );
} else {
  console.log(
    `Uniform bucket-level access is not enabled for ${bucketName}.`
  );
}

PHP

Para mais informações, consulte a documentação de Referência da API Cloud Storage para PHP.

use Google\Cloud\Storage\StorageClient;

/**
 * Enable uniform bucket-level access.
 *
 * @param string $bucketName Name of your Google Cloud Storage bucket.
 *
 * @return void
 */
function get_uniform_bucket_level_access($bucketName)
{
    $storage = new StorageClient();
    $bucket = $storage->bucket($bucketName);
    $bucketInformation = $bucket->info();
    $ubla = $bucketInformation['iamConfiguration']['uniformBucketLevelAccess'];
    if ($ubla['enabled']) {
        printf('Uniform bucket-level access is enabled for %s' . PHP_EOL, $bucketName);
        printf('Uniform bucket-level access will be locked on %s' . PHP_EOL, $ubla['LockedTime']);
    } else {
        printf('Uniform bucket-level access is disabled for %s' . PHP_EOL, $bucketName);
    }
}

Python

Para mais informações, consulte a documentação de Referência da API Cloud Storage para Python.

from google.cloud import storage

def get_uniform_bucket_level_access(bucket_name):
    """Get uniform bucket-level access for a bucket"""
    # bucket_name = "my-bucket"

    storage_client = storage.Client()
    bucket = storage_client.get_bucket(bucket_name)
    iam_configuration = bucket.iam_configuration

    if iam_configuration.uniform_bucket_level_access_enabled:
        print(
            "Uniform bucket-level access is enabled for {}.".format(
                bucket.name
            )
        )
        print(
            "Bucket will be locked on {}.".format(
                iam_configuration.uniform_bucket_level_locked_time
            )
        )
    else:
        print(
            "Uniform bucket-level access is disabled for {}.".format(
                bucket.name
            )
        )

Ruby

Para mais informações, consulte a documentação de Referência da API Cloud Storage para Ruby.

# project_id  = "Your Google Cloud project ID"
# bucket_name = "Name of your Google Cloud Storage bucket"

require "google/cloud/storage"

storage = Google::Cloud::Storage.new project_id: project_id
bucket  = storage.bucket bucket_name

if bucket.uniform_bucket_level_access?
  puts "Uniform bucket-level access is enabled for #{bucket_name}."
  puts "Bucket will be locked on #{bucket.uniform_bucket_level_access_locked_at}."
else
  puts "Uniform bucket-level access is disabled for #{bucket_name}."
end

APIs REST

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. Use cURL para chamar a API JSON com uma solicitação de intervalo GET que inclua o fields pretendido, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:

    curl -X GET -H "Authorization: Bearer [OAUTH2_TOKEN]" \
    "https://storage.googleapis.com/storage/v1/b/[BUCKET_NAME]?fields=iamConfiguration"

    Se o acesso uniforme no nível do intervalo estiver ativado no intervalo, a resposta será parecida com este exemplo:

    {
      "iamConfiguration": {
          "uniformbucketlevelaccess": {
            "enabled": true,
            "lockedTime": "[LOCK_DATE]"
          }
        }
      }

API XML

A API XML não pode ser usada para trabalhar com acesso uniforme no nível do intervalo. Use uma das outras ferramentas do Cloud Storage, como o gsutil.

Desativar acesso uniforme no nível do intervalo

É necessário remover todas as condições do Cloud IAM da política do Cloud IAM de um intervalo para que você possa desativar o acesso uniforme no nível do intervalo.

Confira como desativar o acesso uniforme no nível intervalo no seu intervalo:

Console

  1. Abra o navegador do Cloud Storage no Console do Google Cloud.
    Abra o navegador do Cloud Storage
  2. Na lista de intervalos, clique no nome do intervalo pretendido.

  3. Selecione a guia Permissões na parte superior da página.

  4. Na caixa de texto que começa com Este intervalo usa um controle de acesso uniforme no nível do intervalo..., clique em Editar. A caixa de texto desaparece 90 dias depois da ativação do acesso uniforme no nível do intervalo.

  5. No menu pop-up, selecione Detalhado.

  6. Clique em Salvar.

gsutil

Use a opção off em um comando uniformbucketlevelaccess set, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:

gsutil uniformbucketlevelaccess set off gs://[BUCKET_NAME]/

Se bem-sucedida, a resposta terá esta aparência:

Disabling uniform bucket-level access for gs://test-bucket/...

Amostras de código

C++

Para mais informações, consulte a documentação de Referência da API Cloud Storage para C++.

namespace gcs = google::cloud::storage;
using google::cloud::StatusOr;
[](gcs::Client client, std::string bucket_name) {
  gcs::BucketIamConfiguration configuration;
  configuration.uniform_bucket_level_access =
      gcs::UniformBucketLevelAccess{false, {}};
  StatusOr<gcs::BucketMetadata> updated_metadata = client.PatchBucket(
      bucket_name, gcs::BucketMetadataPatchBuilder().SetIamConfiguration(
                       std::move(configuration)));

  if (!updated_metadata) {
    throw std::runtime_error(updated_metadata.status().message());
  }

  std::cout << "Successfully disabled Uniform Bucket Level Access on bucket "
            << updated_metadata->name() << "\n";
}

C#

Para mais informações, consulte a documentação de Referência da API Cloud Storage para C#.

        private void DisableUniformBucketLevelAccess(string bucketName)
        {
            var storage = StorageClient.Create();
            var bucket = storage.GetBucket(bucketName);
            bucket.IamConfiguration.UniformBucketLevelAccess.Enabled = false;
            /** THIS IS A WORKAROUND */
            bucket.IamConfiguration.BucketPolicyOnly.Enabled = false;
            /** THIS IS A WORKAROUND */
            bucket = storage.UpdateBucket(bucket, new UpdateBucketOptions()
            {
                // Use IfMetagenerationMatch to avoid race conditions.
                IfMetagenerationMatch = bucket.Metageneration,
            });

            Console.WriteLine($"Uniform bucket-level access was disabled for {bucketName}.");
        }

Go

Para mais informações, consulte a documentação de Referência da API Cloud Storage para Go.

bucket := c.Bucket(bucketName)
disableUniformBucketLevelAccess := storage.BucketAttrsToUpdate{
	UniformBucketLevelAccess: &storage.UniformBucketLevelAccess{
		Enabled: false,
	},
}
if _, err := bucket.Update(ctx, disableUniformBucketLevelAccess); err != nil {
	return err
}

Java

Para mais informações, consulte a documentação de Referência da API Cloud Storage para Java.

// Instantiate a Google Cloud Storage client
Storage storage = StorageOptions.getDefaultInstance().getService();

// The name of a bucket, e.g. "my-bucket"
// String bucketName = "my-bucket";

BucketInfo.IamConfiguration iamConfiguration =
    BucketInfo.IamConfiguration.newBuilder()
        .setIsUniformBucketLevelAccessEnabled(false)
        .build();
Bucket bucket =
    storage.update(
        BucketInfo.newBuilder(bucketName).setIamConfiguration(iamConfiguration).build());

System.out.println("Uniform bucket-level access was disabled for " + bucketName);

Node.js

Para mais informações, consulte a documentação de Referência da API Cloud Storage para Node.js.

// Imports the Google Cloud client library
const {Storage} = require('@google-cloud/storage');

// Creates a client
const storage = new Storage();

/**
 * TODO(developer): Uncomment the following lines before running the sample.
 */
// const bucketName = 'Name of a bucket, e.g. my-bucket';

// Disables uniform bucket-level access for the bucket
await storage.bucket(bucketName).setMetadata({
  iamConfiguration: {
    uniformBucketLevelAccess: {
      enabled: false,
    },
  },
});

console.log(`Uniform bucket-level access was disabled for ${bucketName}.`);

PHP

Para mais informações, consulte a documentação de Referência da API Cloud Storage para PHP.

use Google\Cloud\Storage\StorageClient;

/**
 * Enable uniform bucket-level access.
 *
 * @param string $bucketName Name of your Google Cloud Storage bucket.
 *
 * @return void
 */
function disable_uniform_bucket_level_access($bucketName)
{
    $storage = new StorageClient();
    $bucket = $storage->bucket($bucketName);
    $bucket->update([
        'iamConfiguration' => [
            'uniformBucketLevelAccess' => [
                'enabled' => false
            ],
        ]
    ]);
    printf('Uniform bucket-level access was disabled for %s' . PHP_EOL, $bucketName);
}

Python

Para mais informações, consulte a documentação de Referência da API Cloud Storage para Python.

from google.cloud import storage

def disable_uniform_bucket_level_access(bucket_name):
    """Disable uniform bucket-level access for a bucket"""
    # bucket_name = "my-bucket"

    storage_client = storage.Client()
    bucket = storage_client.get_bucket(bucket_name)

    bucket.iam_configuration.uniform_bucket_level_access_enabled = False
    bucket.patch()

    print(
        "Uniform bucket-level access was disabled for {}.".format(bucket.name)
    )

Ruby

Para mais informações, consulte a documentação de Referência da API Cloud Storage para Ruby.

# project_id  = "Your Google Cloud project ID"
# bucket_name = "Name of your Google Cloud Storage bucket"

require "google/cloud/storage"

storage = Google::Cloud::Storage.new project_id: project_id
bucket  = storage.bucket bucket_name

bucket.uniform_bucket_level_access = false

puts "Uniform bucket-level access was disabled for #{bucket_name}."

APIs REST

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 que contenha as informações a seguir, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:

    {
      "iamConfiguration": {
          "uniformbucketlevelaccess": {
            "enabled": false
          }
      }
    }
  3. Use cURL (em inglês) para chamar a API JSON com uma solicitação de intervalo PATCH, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:

    curl -X PATCH --data-binary @[JSON_FILE_NAME].json \
    -H "Authorization: Bearer [OAUTH2_TOKEN]" \
    -H "Content-Type: application/json" \
    "https://storage.googleapis.com/storage/v1/b/[BUCKET_NAME]?fields=iamConfiguration"

API XML

A API XML não pode ser usada para trabalhar com acesso uniforme no nível do intervalo. Use uma das outras ferramentas do Cloud Storage, como o gsutil.

A seguir