Para permitir que um usuário RAM acesse outros recursos da cloud, consulte este documento e conceda as permissões correspondentes ao usuário RAM conforme o seu cenário (mesma conta ou contas diferentes). Este tópico descreve as etapas detalhadas para autorização na mesma conta e entre contas distintas.
Pré-requisitos
O cluster deve ser das edições Enterprise Edition, Basic Edition ou Lakehouse Edition.
Permissões de job Spark
Para enviar um job Spark, são necessários os três tipos de permissão a seguir:
Permissão | Descrição |
Uma das seguintes permissões:
|
Para obter detalhes sobre as ações específicas, consulte Grant permissions to a RAM user. |
Permissões de leitura e gravação em bancos de dados e tabelas do AnalyticDB for MySQL | No AnalyticDB for MySQL, as contas de banco de dados gerenciam por padrão as permissões de bancos de dados e tabelas. Ao enviar um job Spark como usuário RAM, se o job precisar ler ou gravar dados, vincule uma conta de banco de dados padrão ao usuário RAM. Para obter detalhes sobre as ações específicas, consulte Bind or unbind a RAM user and a database account. |
| Autoriza o AnalyticDB for MySQL Spark a acessar outros recursos da cloud, como diretórios do OSS e dados do OTS. Para obter detalhes sobre as ações específicas, consulte Same-Account Authorization. |
Autorização na mesma conta
Pré-requisitos
Procedimento
Autorizar pelo console RAM (recomendado)
Etapa 1: Criar uma função RAM e conceder permissões
-
Crie uma função RAM.
NotaSe você já criou uma função RAM cujo Trusted Entity Type é Alibaba Cloud Service e cuja Trusted Entity é AnalyticDB for MySQL, pule esta etapa e continue com as próximas.
Faça login no console RAM como administrador RAM.
No painel de navegação à esquerda, escolha .
Na página Roles, clique em Create Role.
Na página Create Role, defina Trusted Entity Type como Alibaba Cloud Service, escolha Trusted Entity como AnalyticDB for MySQL e clique em OK.
Na caixa de diálogo Create Role, insira o Role Name e clique em OK.
-
Conceda permissões à função RAM.
Clique em Grant Permission by Policy.
-
No painel Grant Permission by Policy, defina o tipo de política como System Policy ou Custom Policy e insira o nome da política.
Para acessar apenas recursos específicos da cloud, crie uma política personalizada. Para mais informações, consulte Create a custom policy.
Clique em OK.
Etapa 2: Enviar um job Spark
Após criar uma função RAM e conceder permissões pelo console RAM, configure o parâmetro spark.adb.roleArn na configuração do job Spark ao enviá-lo para garantir sua execução correta. Exemplo:
{
"comments": [
"-- Here is just an example of using LakeCache. Modify the content and run your spark program."
],
"args": ["oss://testBucketName/data/readme.txt"],
"name": "spark-oss-test",
"file": "oss://testBucketName/data/example.py",
"conf": {
"spark.adb.lakecache.enabled": "true";
"spark.adb.roleArn": "acs:ram::testAccountID:role/adbtest";
}
}
Autorização rápida
Após a autorização na mesma conta, a função AliyunADBSparkProcessingDataRole recebe por padrão a política AliyunADBSparkProcessingDataRolePolicy. Essa política inclui permissões de acesso a recursos da cloud como OSS, Table Store e DMS, o que pode resultar em excesso de privilégios. Recomendamos que, após a autorização, você remove the AliyunADBSparkProcessingDataRolePolicy policy e grant only the permissions required by your business à função AliyunADBSparkProcessingDataRole.
-
Clique no link de autorização rápida.
NotaSomente usuários com permissões de gerenciamento de usuários RAM (no mínimo permissões para criar funções RAM, criar políticas RAM, consultar funções RAM e consultar políticas RAM) podem realizar a autorização rápida.
-
No canto inferior esquerdo, clique em Confirm Authorization.
Após a autorização, a função de service AliyunADBSparkProcessingDataRole é criada automaticamente para uso do AnalyticDB for MySQL. O AnalyticDB for MySQL utiliza essa função para acessar outros recursos da cloud.
Autorização entre contas
O AnalyticDB for MySQL Spark permite o acesso a todos os recursos da cloud de outras contas Alibaba Cloud. Este tópico utiliza como exemplo a Conta Alibaba Cloud A (conta primária com ID testAccountIDA) acessando dados da Conta Alibaba Cloud B (conta primária com ID testAccountIDB) para descrever o procedimento de autorização entre contas.
Etapa 1: Criar uma função RAM para a Conta B e conceder permissões
-
Crie uma função RAM e permita que a Conta A assuma essa função.
NotaSe você já criou uma função RAM e permitiu que a Conta A a assumisse, pule esta etapa e prossiga com as próximas.
Use a Conta Alibaba Cloud B (conta primária) ou um administrador RAM para fazer login no console RAM.
No painel de navegação à esquerda, escolha .
Na página Roles, clique em Create Role.
Na página Create Role, escolha Trusted Entity Type como Alibaba Cloud Account, especifique a conta Alibaba Cloud e clique em OK.
-
Configure as informações da função.
Insira um Role Name. Neste exemplo, defina o nome da função como
admin-oss.Opcional: Insira uma Description.
Defina a Conta Alibaba Cloud Confiável como Other Alibaba Cloud Account e insira o UID da Conta A (
testAccountIDA).
Clique em Complete.
Conceda permissões à função RAM usando Grant Permission by Policy.
Clique em Grant Permission by Policy.
-
No painel Grant Permission by Policy, defina o tipo de política como System Policy ou Custom Policy e insira o nome da política.
Acessar o OSS
AliyunOSSReadOnlyAccess: permissão para ler recursos do OSS.
AliyunOSSFullAccess: permissão para gerenciar o OSS. Se for necessário executar operações de atualização de dados, como INSERT, em tabelas externas do OSS, conceda esta permissão à função RAM.
Acessar recursos em uma VPC específica
Para acessar recursos em uma VPC específica, crie uma política personalizada e especifique o grupo de segurança e o vSwitch no parâmetro Resource. Para mais informações, consulte Create a custom policy.
Neste exemplo, apenas o acesso à instância do ApsaraDB RDS for MySQL na VPC especificada é autorizado. O nome da política personalizada é
eni_policye o conteúdo da política é o seguinte:NotaAdicione um grupo de segurança à instância RDS MySQL e permita o tráfego de entrada e saída nas regras do grupo de segurança para solicitações de acesso à porta do RDS MySQL.
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "ecs:*", "Resource": "acs:ecs:*:*:securitygroup/<Security group ID of the ApsaraDB RDS instance>" }, { "Effect": "Allow", "Action": "vpc:*", "Resource": "acs:vpc:*:*:vswitch/<vSwitch ID of the ApsaraDB RDS instance>" } ] } Clique em OK.
Clique em Close.
-
Modifique a política de confiança para permitir que qualquer usuário RAM da Conta A assuma esta função RAM.
No painel de navegação à esquerda, escolha .
Na página Roles, clique no nome da função RAM desejada.
Na aba Trust Policy, clique em Edit Trust Policy.
-
No editor, modifique o conteúdo da política de confiança e clique em OK.
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::testAccountIDA:root" ] } }, { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "testAccountIDA@ads.aliyuncs.com" ] } } ], "Version": "1" }
Etapa 2: Criar usuários RAM na Conta A e conceder permissões para assumir funções RAM
-
Crie um usuário RAM.
Use a Conta Alibaba Cloud A (conta primária) ou um administrador RAM para fazer login no console RAM.
No painel de navegação à esquerda, escolha .
Na página Users, clique em Create User.
-
Na página Create User, configure as informações básicas do usuário na seção User Account Information.
Logon Name (Obrigatório): pode conter letras, dígitos, pontos (.), hifens (-) e sublinhados (_). Comprimento máximo: 64 caracteres.
Display Name (Opcional): comprimento máximo de 128 caracteres.
Tag (Opcional): Clique em
e insira chaves e valores de tag para gerenciamento de usuários baseado em tags.
NotaClique em Add User para criar vários usuários RAM simultaneamente.
Na seção Access Method, escolha Console Access e configure a senha de login do console, a política de redefinição de senha e a política de MFA conforme necessário. Para mais informações, consulte Console Access.
Clique em OK.
-
Crie políticas que permitam aos usuários RAM assumir qualquer função.
No painel de navegação à esquerda, escolha .
Na página Policies, clique em CreatePolicies.
Na página CreatePolicies, clique na aba Script Editor.
-
Insira o conteúdo da política e clique em OK.
{ "Version": "1", "Statement": [ { "Action": "ram:PassRole", "Resource": "*", "Effect": "Allow" } ] } Na caixa de diálogo CreatePolicies, insira o Policy Name e a Description, e clique em OK.
-
Conceda permissões ao usuário RAM.
No painel de navegação à esquerda, escolha .
Na página Users, localize o usuário RAM desejado e clique em Actions na coluna Add Permissions.
No painel Add Permissions, adicione a política criada na Etapa 2 ao usuário RAM.
Clique em Confirm.
Clique em Close.