Use uma conta Alibaba Cloud (Conta Alibaba Cloud A) para criar uma função do Resource Access Management (RAM). Especifique outra conta Alibaba Cloud (Conta Alibaba Cloud B) para assumir essa função e conceda a ela permissões específicas sobre os recursos do Simple Log Service da Conta Alibaba Cloud A. Em seguida, atribua a permissão AssumeRole a um usuário RAM da Conta Alibaba Cloud B. Assim, a Conta Alibaba Cloud B ou o usuário RAM especificado pode chamar uma operação de API do Security Token Service (STS) para obter credenciais de segurança temporárias, que incluem o AccessKey ID, o AccessKey secret e o token de segurança. Dessa forma, o usuário RAM chama operações de API do Simple Log Service e acessa seus recursos.
Visão geral da solução
A Empresa A possui uma conta chamada Conta Alibaba Cloud A, e a Empresa B possui a Conta Alibaba Cloud B. Para isolar dados comerciais ou projetos terceirizados, o usuário da Conta Alibaba Cloud A deseja conceder à Conta Alibaba Cloud B permissões específicas sobre os recursos do Simple Log Service pertencentes à Conta Alibaba Cloud A. As seguintes permissões são concedidas:
A Conta Alibaba Cloud B recebe autorização para gravar dados no Simple Log Service da Conta Alibaba Cloud A e usar grupos de consumidores para consumir esses dados.
Um usuário RAM da Conta Alibaba Cloud B recebe permissão para gravar dados no Simple Log Service da Conta Alibaba Cloud A e usar grupos de consumidores para consumir tais dados.
A Conta Alibaba Cloud B obtém direito de chamar uma operação de API do STS para obter credenciais de segurança temporárias e usá-las nas chamadas de API do Simple Log Service. Para mais informações, consulte O que é o Security Token Service (STS)?
Para atender aos requisitos acima, execute as etapas a seguir:
Etapa 2: O usuário da Conta Alibaba Cloud B cria o usuário RAM user-b e concede permissões a ele
Etapa 1: O usuário da Conta Alibaba Cloud A cria uma função RAM para a Conta Alibaba Cloud B e concede permissões
O usuário da Conta Alibaba Cloud A deve criar uma função RAM, especificar a Conta Alibaba Cloud B como confiável para assumi-la e conceder a essa função permissões específicas sobre os recursos do Simple Log Service da Conta Alibaba Cloud A.
Crie a função RAM diretamente no console do RAM. Para mais detalhes, consulte Criar um usuário RAM e conceder permissões. Alternativamente, chame a operação de API CreateRole do RAM. Consulte CreateRole para mais informações. O exemplo abaixo demonstra a criação via console.
Faça login no console do Resource Access Management (RAM) com sua conta Alibaba Cloud.
Crie uma função RAM e indique a Conta Alibaba Cloud B como a conta confiável para assumi-la. Veja mais em Criar uma função RAM para uma conta Alibaba Cloud confiável.
-
Defina uma política personalizada. Na aba JSON da página Create Policy, substitua o script existente no editor de código pelo documento de política abaixo. Para mais detalhes, consulte Usando o editor de scripts.
Conceder permissões de gravação no Simple Log Service
{ "Version": "1", "Statement": [ { "Action": "log:PostLogStoreLogs", "Resource": "*", "Effect": "Allow" } ] }Conceder permissões para usar grupos de consumidores na extração de dados do Simple Log Service
{ "Version": "1", "Statement": [ { "Action": [ "log:GetCursorOrData", "log:CreateConsumerGroup", "log:ListConsumerGroup", "log:ConsumerGroupUpdateCheckPoint", "log:ConsumerGroupHeartBeat", "log:GetConsumerGroupCheckPoint", "log:UpdateConsumerGroup" ], "Resource": "*", "Effect": "Allow" } ] }ImportanteAs políticas acima concedem acesso a todos os projetos e Logstores da Conta Alibaba Cloud A. Caso precise restringir as permissões a um projeto e Logstore específicos, inclua o seguinte código no elemento Resource das políticas:
Para autorizar o acesso a um projeto, use
acs:log::{projectOwnerAliUid}:project/.Para permitir o acesso a um Logstore, use
acs:log::{projectOwnerAliUid}:project/{projectName}/logstore/{logstoreName}/.
Consulte Lista de recursos para mais informações.
Anexe a política personalizada criada à função RAM. Saiba mais em Gerencie permissões de uma função RAM.
Etapa 2: O usuário da Conta Alibaba Cloud B cria o usuário RAM user-b e concede permissões a ele
O usuário da Conta Alibaba Cloud B cria o usuário RAM user-b e anexa a política de sistema AliyunSTSAssumeRoleAccess a esse usuário. Essa política autoriza o usuário RAM a chamar a operação de API AssumeRole do STS.
Com a Conta Alibaba Cloud B, faça login no console do RAM.
-
Crie um usuário RAM chamado
user-be selecione Console Access e Using permanent AccessKey to access na seção Access Mode. Para mais detalhes, veja Criar um usuário RAM.Importante Vincule a política AliyunSTSAssumeRoleAccess ao usuário RAM. Isso permite que ele assuma a função RAM e obtenha tokens do Security Token Service (STS). Consulte Gerencie permissões de usuários RAM para mais informações.
Etapa 3: O usuário RAM user-b obtém tokens do STS para acessar recursos do Simple Log Service
-
Chame a operação de API AssumeRole para receber o par de AccessKey temporário e o token de segurança. Veja mais em AssumeRole.
Execute essa operação pelo método abaixo:
Use o sdk do STS para realizar a chamada. Consulte Visão geral do sdk do STS para detalhes.
Chame as operações de API do Simple Log Service. Para mais informações, acesse Visão geral do sdk do Simple Log Service.