O Block Public Access impede o acesso anônimo aos recursos do OSS nos níveis de conta, bucket, access point ou Object FC Access Point. Quando ativado, ignora as permissões públicas existentes e impede a criação de novas.
Verificar acesso público em políticas de bucket e ACLs
Revise as políticas de bucket e as ACLs para verificar se os objetos têm acesso público. Se alguma configuração conceder esse acesso, ative o Block Public Access.
Bucket policy
(Recomendado) Chamar a operação GetBucketPolicyStatus
Chame a operação GetBucketPolicyStatus para verificar se uma política de bucket concede acesso público.
Se IsPublic for true, a política de bucket concede acesso público.
Se IsPublic for false, a política de bucket não concede acesso público.
Para mais informações, consulte GetBucketPolicyStatus.
Revisar manualmente as configurações da política de bucket
Condições e exemplos de acesso não público
-
Uma instrução de política de bucket é considerada não pública se o elemento Principal ou Condition atender a qualquer um destes critérios:
NotaOs elementos Action e Resource não afetam a avaliação de acesso público.
Se o elemento Effect for Deny, a política não concede acesso público.
Elemento
Campo
Valor
Principal
N/A
Especifica um ou mais valores fixos sem o caractere curinga asterisco (*).
Condition
acs:SourceVpcId
Especifica um ou mais valores fixos sem o caractere curinga asterisco (*).
acs:SourceVpc
Especifica um ou mais valores fixos sem o caractere curinga asterisco (*).
acs:AccessId
Especifica um ou mais valores fixos sem o caractere curinga asterisco (*).
acs:SourceVpcIp
Para endereços IPv4, a máscara deve ser maior ou igual a 8.
Para endereços IPv6, a máscara deve ser maior ou igual a 32.
acs:SourceIp
Para endereços IPv4, a máscara deve ser maior ou igual a 8.
Para endereços IPv6, a máscara deve ser maior ou igual a 32.
-
A política de bucket a seguir concede acesso não público:
{ "Version":"1", "Statement":[ { "Action":[ "oss:GetObject", "oss:GetObjectAcl", "oss:GetObjectVersion", "oss:GetObjectVersionAcl" ], "Effect":"Allow", "Principal":[ "20214760404935xxxx" ], "Resource":[ "acs:oss:*:174649585760xxxx:examplebucket/hangzhou/2020/*", "acs:oss:*:174649585760xxxx:examplebucket/shanghai/2015/*" ] }, { "Action":[ "oss:ListObjects", "oss:ListObjectVersions" ], "Condition":{ "StringLike":{ "oss:Prefix":[ "hangzhou/2020/*", "shanghai/2015/*" ] } }, "Effect":"Allow", "Principal":[ "20214760404935xxxx" ], "Resource":[ "acs:oss:*:174649585760xxxx:examplebucket" ] } ] }
Condições e exemplos de acesso público
Uma política de bucket concede acesso público se não atender aos critérios de acesso não público. Exemplos:
-
Exemplo 1
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "oss:GetObject", "Principal": "*", "Resource": "acs:oss:*:17464958576xxxx:examplebucket/*" } ] } -
Exemplo 2
Se uma política de bucket contiver uma instrução que permite acesso de todas as VPCs e outra instrução não pública para usuários específicos, a política concede acesso público.
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "oss:GetObject", "Principal": "*", "Resource": "acs:oss:*:17464958576xxxx:examplebucket/*", "Condition": { "StringLike": { "acs:SourceVpc": [ "vpc-*" ] } } }, { "Effect": "Allow", "Action": "oss:*", "Principal": "27464958576xxxx", "Resource": "*" } ] }
ACL
Se a ACL do bucket ou do objeto estiver definida como public-read ou public-read-write, o acesso público será permitido.
Se a ACL do bucket e do objeto estiverem definidas como private, o acesso público será negado.
Prioridade do Block Public Access
O Block Public Access aplica-se nos níveis de conta, bucket, access point e Object FC Access Point. Quando configurado em vários níveis, o OSS segue esta prioridade:
Account > Bucket > Access point > Object FC Access Point
As configurações de nível superior substituem as de nível inferior. Por exemplo, o Block Public Access no nível da conta bloqueia o acesso público de todos os buckets, access points e Object FC Access Points, independentemente das configurações individuais.
Para permitir acesso público a um bucket, desative o Block Public Access nos níveis global e de bucket.
Para permitir acesso público por meio de um access point, desative o Block Public Access nos níveis de conta, bucket e access point.
Para permitir acesso público por meio de um Object FC Access Point, desative o Block Public Access nos níveis de conta, bucket, access point e Object FC Access Point.
Notas de uso
-
Um usuário RAM precisa ter as seguintes permissões para gerenciar o Block Public Access:
No nível da conta:
oss:PutPublicAccessBlock,oss:GetPublicAccessBlockeoss:DeletePublicAccessBlockPara buckets individuais:
oss:PutBucketPublicAccessBlock,oss:GetBucketPublicAccessBlockeoss:DeleteBucketPublicAccessBlockPara access points individuais:
oss:PutAccessPointPublicAccessBlock,oss:GetAccessPointPublicAccessBlockeoss:DeleteAccessPointPublicAccessBlockPara Object FC Access Points individuais:
oss:PutAccessPointConfigForObjectProcess,oss:GetAccessPointConfigForObjectProcesseoss:DeleteAccessPointForObjectProcess
Quando ativado, ignora as permissões de acesso público existentes e impede a configuração de novas. Ao desativar, as permissões existentes voltam a vigorar e novas permissões podem ser configuradas.
Se uma política de bucket permitir que todos os usuários gerenciem um access point, eles poderão alterar o status do Block Public Access pelo subdomínio do bucket, mesmo com o Block Public Access ativado para o access point. As configurações do access point não se aplicam a solicitações feitas via subdomínios de bucket.
Durante a replicação entre regiões (CRR) e a replicação na mesma região (SRR), as ACLs dos objetos são preservadas independentemente das configurações do Block Public Access. Se o Block Public Access estiver ativado no bucket de destino, os objetos replicados não terão acesso público, mesmo que a ACL seja public-read ou public-read-write.
Métodos
Usar o console do OSS
Usar ossutil
Operações de API relacionadas
Chame APIs RESTful diretamente com cálculo de assinatura em seu código.
Consulte PutPublicAccessBlock para bloquear o acesso público no nível da conta.
Consulte PutBucketPublicAccessBlock para bloquear o acesso público de um bucket.
Consulte PutAccessPointPublicAccessBlock para bloquear o acesso público de um access point.
Consulte PutAccessPointConfigForObjectProcess para bloquear o acesso público de um Object FC Access Point.
Tópicos relacionados
Para controlar o acesso no nível de objeto dentro de um bucket, combine o Block Public Access com políticas de bucket e ACLs de objeto.