Simple Log Service suporta funções padrão e personalizadas para trabalhos de transformação de dados. Para usar uma função personalizada, conceda a ela permissões de leitura e gravação nos logstores relevantes.
Pré-requisitos
Uma função do RAM deve estar criada. Para mais informações, consulte Create a RAM role for a trusted Alibaba Cloud service.
Ao criar uma função do RAM, defina Principal Type como Cloud Service e Principal Name como Simple Log Service.
-
Verifique a política de confiança da função do 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 de somente leitura ao logstore de origem
Conceda à função do RAM acesso de leitura ao logstore de origem. Especifique essa função ao Create a data transformation job.
Faça logon no RAM console com a sua conta Alibaba Cloud ou com um usuário do RAM que tenha direitos administrativos.
-
Crie uma política personalizada. Neste exemplo, a política
log-etl-source-reader-policyconcede permissões de somente leitura a um logstore de origem. Para mais informações, consulte Using the script editor.Na aba JSON da página Create Policy, use o documento de política com correspondência exata ou correspondência aproximada para autorização e substitua o script existente no editor de código.
Correspondência exata para autorização
Neste exemplo, 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 de acordo com 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
Neste exemplo, os nomes dos projetos de origem são log-project-dev-a, log-project-dev-b e log-project-dev-c, e os nomes dos logstores de origem são app_a_log, app_b_log e app_c_log. Substitua os nomes dos projetos e dos logstores de acordo com 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-dev-*/logstore/app_*_log", "acs:log:*:*:project/log-project-dev-*/logstore/app_*_log/*" ], "Effect": "Allow" } ] } Anexe a política personalizada à função do RAM. Para mais informações, consulte Manage permissions for a RAM role.
Conceder permissão de gravação ao logstore de destino (mesma conta)
Se os logstores de origem e de destino pertencerem à mesma conta Alibaba Cloud, conceda à função do RAM acesso de gravação ao logstore de destino. Especifique essa função ao Create a data transformation job.
-
Crie uma política personalizada. Neste exemplo, a política
log-etl-target-writer-policyconcede permissões para gravar os resultados da transformação em um logstore de destino. Para mais informações, consulte Using the script editor.Na aba JSON da página Create Policy, use o documento de política com correspondência exata ou correspondência aproximada para autorização e substitua o script existente no editor de código.
Correspondência exata para autorização
Neste exemplo, o nome do projeto de destino é log-project-prod e o nome do logstore de destino é access_log_output. Substitua os nomes do projeto e do logstore de acordo com as necessidades do seu negócio.
{ "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
Neste exemplo, os nomes dos projetos de destino são log-project-dev-a, log-project-dev-b e log-project-dev-c, e os nomes dos logstores de destino são app_a_log_output, app_b_log_output e app_c_log_output. Substitua os nomes dos projetos e dos logstores de acordo com as necessidades do seu negócio.
{ "Version": "1", "Statement": [ { "Action": [ "log:Post*", "log:BatchPost*" ], "Resource": "acs:log:*:*:project/log-project-dev-*/logstore/app_*_log_output", "Effect": "Allow" } ] } Anexe a política personalizada à função do RAM. Para mais informações, consulte Manage permissions for a RAM role.
Conceder permissão de gravação ao logstore de destino (entre contas)
Se os logstores de origem e de destino pertencerem a contas Alibaba Cloud diferentes, modifique a política de confiança da função do RAM da conta de destino para permitir o acesso entre contas. Os passos a seguir usam a Conta A (origem) e a Conta B (destino) como exemplo.
Antes de começar, conceda à função do RAM na Conta B acesso de gravação ao logstore de destino, conforme descrito em Grant write permission to the destination logstore (same account).
Faça logon no RAM console com a sua conta Alibaba Cloud ou com um usuário do RAM que tenha direitos administrativos.
No painel de navegação à esquerda, escolha .
Localize a função do RAM de destino e clique nela.
-
Na aba Trust Policy, clique em Edit Trust Policy.
Adicione
the ID of Alibaba Cloud Account A to which the source logstore belongsao campoService. Substituathe ID of Alibaba Cloud Account A to which the source logstore belongspelo ID real da conta no Account Management. Essa política permite que a Conta A use um token temporário do SLS para operar nos 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 do RAM. Para mais informações, consulte View a RAM role.
Próximos passos
Especifique o ARN da função do RAM ao Create a data transformation job.