Simple Log Service oferece suporte a funções padrão e personalizadas para tarefas de transformação de dados. Para utilizar uma função personalizada, conceda a ela permissões de leitura e gravação nos logstores relevantes.
Pré-requisitos
Uma função RAM já deve estar criada. Para mais informações, consulte Criar uma função RAM para um serviço confiável da Alibaba Cloud.
Ao criar a função RAM, defina Principal Type como Cloud Service e Principal Name como Simple Log Service.
-
Verifique a política de confiança da função RAM. Certifique-se de que o elemento
Servicecontenha pelo menos"log.aliyuncs.com".{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "log.aliyuncs.com" ] } } ], "Version": "1" }
Conceder acesso somente leitura ao logstore de origem
Conceda à função RAM acesso de leitura ao logstore de origem. Especifique essa função ao Criar uma tarefa de transformação de dados.
Faça login no RAM console usando sua conta Alibaba Cloud ou um usuário RAM com privilégios administrativos.
-
Crie uma política personalizada. Neste exemplo, cria-se a política
log-etl-source-reader-policy, que concede permissões somente leitura em um logstore de origem. Para mais detalhes, veja Usar o editor de scripts.Na aba JSON da página Create Policy, substitua o script existente no editor de código por um documento de política que utilize correspondência exata ou correspondência aproximada para autorização.
Correspondência exata para autorização
Neste cenário, o nome do projeto de origem é log-project-prod e o nome do logstore de origem é access_log. Substitua os nomes do projeto e do logstore conforme as necessidades do seu negócio.
{ "Version": "1", "Statement": [ { "Action": [ "log:ListShards", "log:GetCursorOrData", "log:GetConsumerGroupCheckPoint", "log:UpdateConsumerGroup", "log:ConsumerGroupHeartBeat", "log:ConsumerGroupUpdateCheckPoint", "log:ListConsumerGroup", "log:CreateConsumerGroup" ], "Resource": [ "acs:log:*:*:project/log-project-prod/logstore/access_log", "acs:log:*:*:project/log-project-prod/logstore/access_log/*" ], "Effect": "Allow" } ] }Correspondência aproximada para autorização
Aqui, os projetos de origem são log-project-dev-a, log-project-dev-b e log-project-dev-c, enquanto os logstores de origem são app_a_log, app_b_log e app_c_log. Ajuste os nomes dos projetos e logstores de acordo com seus requisitos.
{ "Version": "1", "Statement": [ { "Action": [ "log:ListShards", "log:GetCursorOrData", "log:GetConsumerGroupCheckPoint", "log:UpdateConsumerGroup", "log:ConsumerGroupHeartBeat", "log:ConsumerGroupUpdateCheckPoint", "log:ListConsumerGroup", "log:CreateConsumerGroup" ], "Resource": [ "acs:log:*:*:project/log-project-dev-*/logstore/app_*_log", "acs:log:*:*:project/log-project-dev-*/logstore/app_*_log/*" ], "Effect": "Allow" } ] } Anexe a política personalizada criada à função RAM. Saiba mais em Gerenciar permissões de uma função RAM.
Conceder permissão de gravação ao logstore de destino (mesma conta)
Quando os logstores de origem e destino pertencem à mesma conta Alibaba Cloud, conceda à função RAM acesso de gravação ao logstore de destino. Essa função deve ser especificada durante a Criação da tarefa de transformação de dados.
-
Elabore uma política personalizada. O exemplo abaixo utiliza a política
log-etl-target-writer-policy, responsável por permitir a escrita dos resultados da transformação em um logstore de destino. Consulte Usar o editor de scripts para orientações adicionais.Na aba JSON da página Create Policy, substitua o script atual no editor de código por um documento de política baseado em correspondência exata ou correspondência aproximada.
Correspondência exata para autorização
O projeto de destino neste caso é log-project-prod, com o logstore de destino chamado access_log_output. Modifique esses nomes para refletir sua infraestrutura real.
{ "Version": "1", "Statement": [ { "Action": [ "log:Post*" ], "Resource": "acs:log:*:*:project/log-project-prod/logstore/access_log_output", "Effect": "Allow" } ] }Correspondência aproximada para autorização
Nesta configuração, os projetos de destino incluem log-project-dev-a, log-project-dev-b e log-project-dev-c, e os logstores correspondentes são app_a_log_output, app_b_log_output e app_c_log_output. Adapte os identificadores conforme necessário.
{ "Version": "1", "Statement": [ { "Action": [ "log:Post*", "log:BatchPost*" ], "Resource": "acs:log:*:*:project/log-project-dev-*/logstore/app_*_log_output", "Effect": "Allow" } ] } Vincule a política personalizada recém-criada à função RAM. Mais informações disponíveis em Gerenciar permissões de uma função RAM.
Conceder permissão de gravação ao logstore de destino (entre contas)
Se os logstores de origem e destino estiverem em contas Alibaba Cloud distintas, será necessário ajustar a política de confiança da função RAM na conta de destino para habilitar o acesso entre contas. Os passos a seguir tomam como exemplo a Conta A (origem) e a Conta B (destino).
Antes de prosseguir, garanta que a função RAM na Conta B tenha permissão de escrita no logstore de destino, seguindo o procedimento descrito em Conceder permissão de gravação ao logstore de destino (mesma conta).
Acesse o RAM console com sua conta Alibaba Cloud ou um usuário RAM administrador.
No painel de navegação à esquerda, escolha .
Localize e clique em na função RAM desejada.
-
Na aba Trust Policy, clique em Edit Trust Policy.
Adicione
o ID da Conta Alibaba Cloud A à qual o logstore de origem pertenceno campoService. Substituao ID da Conta Alibaba Cloud A à qual o logstore de origem pertencepelo ID real da conta, obtido em Account Management. Essa política autoriza a Conta A a usar um token temporário do SLS para operar sobre recursos da Conta B.{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "Alibaba Cloud account ID of Account A@log.aliyuncs.com" ] } } ], "Version": "1" } Obtenha o ARN (Alibaba Cloud Resource Name) da função RAM. Para instruções detalhadas, consulte Visualizar uma função RAM.
Próximos passos
Especifique o ARN da função RAM ao Criar uma tarefa de transformação de dados.