O vazamento de pares de AccessKey ou tokens STS de contas da Alibaba Cloud ou de usuários RAM pode comprometer seus recursos de cloud e seus negócios. Siga estas práticas para proteger as credenciais e evitar acesso não autorizado.
A Alibaba Cloud usa dois tipos de credenciais: pares de AccessKey e tokens do Security Token service (STS). Para mais informações, consulte Credentials.
Erros comuns
Inserir pares de AccessKey diretamente no código os expõe a qualquer pessoa com acesso ao repositório. Publicar esse código em plataformas de open source ou em serviços de hospedagem amplia o risco.
Incorporar pares de AccessKey no código do lado do cliente permite que invasores os extraiam por descompilação.
Documentação ou materiais compartilhados expõem pares de AccessKey.
Código de exemplo na documentação expõe pares de AccessKey.
Respostas da API expõem pares de AccessKey além do escopo de gerenciamento pretendido.
Soluções de segurança
Evite transmitir ou inserir credenciais diretamente no código durante o desenvolvimento.
Não use o par de AccessKey da sua conta Alibaba Cloud
Uma conta da Alibaba Cloud tem permissões totais sobre todos os recursos; portanto, o vazamento de um par de AccessKey representa riscos críticos. Nunca use um par de AccessKey de uma conta da Alibaba Cloud diretamente.
Evite inserir credenciais diretamente no código
Armazene credenciais em variáveis de ambiente. O exemplo a seguir usa ALIBABA_CLOUD_ACCESS_KEY_ID e ALIBABA_CLOUD_ACCESS_KEY_SECRET. Para mais informações, consulte Configure environment variables on Linux, macOS, and Windows.
Código de exemplo:
public static com.aliyun.ecs20140526.Client createClient() throws Exception {
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
config.endpoint = "ecs.cn-shanghai.aliyuncs.com";
return new com.aliyun.ecs20140526.Client(config);
}
Use o KMS para gerencie credenciais
O Key Management service (KMS) gerencia suas credenciais de forma segura. Para mais informações, consulte Secret management. O Secrets Manager do KMS rotaciona segredos RAM de forma agendada ou sob demanda. Com o plug-in de segredos RAM instalado, sua aplicação recupera dinamicamente o par de AccessKey atual. Para mais informações, consulte Manage and use RAM secrets.
Use uma função RAM de instância
Anexe uma função RAM de instância a uma instância do Elastic Compute Service (ECS), a uma instância de contêiner elástico ou a um nó de trabalho do container service for kubernetes (ACK). O servidor de metadados do ECS fornece tokens STS, eliminando a inserção de pares de AccessKey diretamente no código. Para mais informações, consulte Instance RAM roles, Use an instance RAM role using API operations e Assign a RAM role to an ECI pod.
Use o recurso RRSA
No ACK, um nó de trabalho pode hospedar pods de vários serviços. Qualquer pod pode acessar o servidor de metadados do ECS e obter o token STS da função RAM do nó de trabalho, causando o vazamento de permissões. O RAM Roles for Service Accounts (RRSA) fornece controle de acesso no nível do pod, injetando informações do OpenID Connect (OIDC) em variáveis de ambiente. Use a ferramenta Alibaba Cloud Credentials para obter tokens STS. Para mais informações, consulte Use RRSA for pod-level access control.
Use a ferramenta Alibaba Cloud Credentials
A ferramenta Alibaba Cloud Credentials fornece uma cadeia de provedores de credenciais padrão que elimina a inserção de credenciais diretamente no código. Para mais informações, consulte Manage credentials.
Detecte vazamentos de AccessKey com o Security Center
O Security Center monitora o GitHub em tempo real em busca de pares de AccessKey expostos de contas da Alibaba Cloud e de usuários RAM, e emite alertas ao detectá-los. Trate eventos de vazamento imediatamente. Para mais informações, consulte AccessKey pair leak detection.
Trate vazamentos de pares de AccessKey
Vazamentos de pares de AccessKey
-
Desative ou exclua um par de AccessKey
Desative ou exclua imediatamente o par de AccessKey comprometido e crie um par substituto. Para mais informações, consulte Disable a RAM user's access key e Delete a RAM user's AccessKey.
-
Consulte eventos de pares de AccessKey
Use o recurso de auditoria de pares de AccessKey do ActionTrail para consultar detalhes dos pares de AccessKey, incluindo serviços acessados, endereços IP e recursos. Isso ajuda a rastrear o uso e a identificar vazamentos.
Vazamentos de tokens STS
Um token STS é válido de 15 minutos a 12 horas. Mesmo dentro dessa janela, um token vazado representa sérios riscos de segurança. Para invalidar um token STS comprometido:
Faça logon no console RAM.
-
Desvincule todas as políticas da função RAM.
Para mais informações, consulte Revoke permissions from a RAM role.
-
Ou exclua totalmente a função RAM.
Para mais informações, consulte Delete a RAM role.
Essa ação invalida imediatamente todos os tokens STS não expirados dessa função.
Para voltar a usar a função posteriormente, crie uma nova função com o mesmo nome e as mesmas políticas.
Referências
Tópicos relacionados: