Combine uma política de VPC com uma política de bucket para controlar o acesso ao OSS tanto na origem da rede quanto no nível do recurso. Essa abordagem evita acessos não autorizados e a exfiltração de dados.
Como funciona
Esta solução associa uma política de VPC a uma política de bucket para estabelecer um modelo de autorização na origem e validação no destino. A política de VPC restringe os buckets acessíveis por uma VPC, o que permite gerenciamento granular de permissões e isolamento de riscos. Já a política de bucket valida a origem da requisição e garante que apenas o tráfego proveniente da VPC autorizada chegue ao recurso.
Acesso permitido: requisições enviadas de uma VPC autorizada para um bucket autorizado são aprovadas em ambas as políticas.
-
Acesso negado:
Negação pela política de VPC: a VPC tenta acessar um bucket não autorizado pela política de VPC.
Negação pela política de bucket: uma requisição chega ao bucket a partir de uma VPC não autorizada.
Pré-requisitos
Antes de configurar o controle de acesso duplo, reúna as seguintes informações:
ID da VPC: acesse o console de VPC e localize o ID da VPC de destino na coluna Instance ID/Name da lista de VPCs. O ID começa com
vpc-, por exemplo,vpc-t4nlw426y44rd3iq4xxxx.VPC de uma instância ECS: para confirmar a qual VPC uma instância ECS pertence, acesse o console de ECS e verifique a coluna VPC na lista de instâncias. Clique no ID da VPC para abrir a página de detalhes.
Se nenhuma VPC estiver disponível: crie uma VPC no console de VPC antes de prosseguir com as etapas a seguir.
Implementação
O exemplo a seguir demonstra o controle de acesso duplo. Um usuário empresarial (UID: 174649585760xxxx) armazena dados comerciais em um bucket do OSS chamado example-bucket. As aplicações rodam em instâncias ECS na VPC vpc-t4nlw426y44rd3iq4xxxx (consulte os Pré-requisitos para obter esse ID). Todo o acesso utiliza a AccessKey do usuário RAM example-user (UID: 20655703638807****). Objetivos do controle de acesso:
Controle na origem pela VPC: permitir que a VPC acesse apenas o
example-bucket.Controle no destino pelo bucket: negar todas as requisições ao OSS que não se originem da VPC especificada.
Etapa 1: Configurar uma política de VPC
Crie uma política de endpoint para a VPC vpc-t4nlw426y44rd3iq4xxxx que restrinja o acesso ao example-bucket.
Acesse o console de VPC. No painel de navegação à esquerda, clique em Endpoints.
-
Clique em Create Endpoint e defina as configurações a seguir.
Se esta for a primeira vez que você utiliza endpoints, ative primeiro o Activate Endpoint Service .
Region: selecione a região onde a VPC está localizada, como Singapore.
Endpoint Name: insira um nome para o endpoint.
Endpoint Type: selecione Gateway Endpoint.
Endpoint Service: selecione Alibaba Cloud Service e escolha o serviço de endpoint do OSS. O nome do serviço termina com
oss.VPC: selecione a VPC de destino.
Route Table: selecione a tabela de rotas de destino.
-
Endpoint Policy: insira a seguinte política no editor.
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "oss:*", "Principal": [ "20655703638807****" ], "Resource": [ "acs:oss:*:*:example-bucket", "acs:oss:*:*:example-bucket/*" ] } ] }
Confirme a configuração e clique em OK.
Etapa 2: Configurar uma política de bucket
Configure uma política de bucket para negar todo o acesso ao OSS de qualquer VPC, exceto vpc-t4nlw426y44rd3iq4xxxx.
Acesse a lista de Buckets e clique no bucket de destino.
No painel de navegação à esquerda do bucket, clique em .
-
Selecione Add by Syntax, clique em Edit e insira a seguinte política.
{ "Statement": [ { "Action": [ "oss:*" ], "Effect": "Deny", "Principal": [ "20655703638807****" ], "Resource": "acs:oss:*:*:*", "Condition": { "StringNotEquals": { "acs:SourceVpc": [ "vpc-t4nlw426y44rd3iq4xxxx" ] } } } ], "Version": "1" }O valor de
acs:SourceVpccorresponde ao ID da VPC de destino obtido no console de VPC, conforme descrito nos Pré-requisitos. Substitua-o pelo seu próprio ID de VPC. Confirme a política, clique em Save e siga as instruções na tela.
Etapa 3: Verificar o controle de acesso
Use o ossutil para verificar a configuração. Baixe o ossutil 2.0 e configure-o com a AccessKey do usuário RAM e o endpoint interno. Por exemplo, use oss-ap-southeast-1-internal.aliyuncs.com.
Verificar o cenário de acesso permitido
Em uma instância ECS na VPC vpc-t4nlw426y44rd3iq4xxxx, use a AccessKey do usuário 20655703638807**** para listar objetos no example-bucket.
ossutil ls oss://example-bucket/
A requisição é bem-sucedida porque ambas as políticas concedem acesso.
Verificar o cenário de negação pela política de VPC
Na mesma VPC, tente acessar um bucket não autorizado pela política de VPC, como other-bucket.
ossutil ls oss://other-bucket/
O acesso é negado com a mensagem Access denied by VPC endpoint policy.., o que confirma que a política de VPC restringe os buckets acessíveis na origem.
Verificar o cenário de negação pela política de bucket
De uma VPC não autorizada ou da internet pública, use a AccessKey do mesmo usuário para acessar o example-bucket.
ossutil ls oss://example-bucket/
O acesso é negado com a mensagem Access denied by bucket policy.., o que confirma que a política de bucket valida a origem da VPC no destino.