Controle de acesso
O DataHub usa o Resource Access Management (RAM) para controle de acesso. Apenas usuários RAM com as permissões necessárias acessam recursos no DataHub. Uma conta Alibaba Cloud tem todas as permissões sobre os recursos associados a ela. Por padrão, um usuário RAM recém-criado não tem permissão para acessar recursos no DataHub. Anexe uma política com permissões de acesso ao DataHub ao usuário RAM antes que ele possa acessar esses recursos. Para mais informações sobre como criar um usuário RAM e anexar políticas, consulte Bind an MFA device to an Alibaba Cloud account. Este tópico descreve como usar o RAM para implementar o controle de acesso no DataHub.
Conceder permissões a usuários RAM
Tipos de recursos do DataHub acessíveis por usuários RAM
Usuários RAM podem acessar os seguintes recursos no DataHub: projetos, tópicos e assinaturas. O DataHub oferece suporte à autenticação RAM para projetos, tópicos e assinaturas. No entanto, a autenticação RAM não permite acesso aos dados dos shards. Assinatura é a ação de configurar um aplicativo para ler e processar registros nos tópicos de um projeto específico.
|
Tipo de recurso |
Descrição |
|
Project |
acs:dhs:$region:$accountid:projects/$projectName |
|
Topic |
acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName |
|
Subscription |
acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName/subscriptions/$subId |
Operações de API no DataHub e políticas RAM correspondentes
Project
|
Operação |
Action |
Resource |
|
CreateProject |
dhs:CreateProject |
acs:dhs:$region:$accountid:projects/* |
|
ListProject |
dhs:ListProject |
acs:dhs:$region:$accountid:projects/* |
|
DeleteProject |
dhs:DeleteProject |
acs:dhs:$region:$accountid:projects/$projectName |
|
GetProject |
dhs:GetProject |
acs:dhs:$region:$accountid:projects/$projectName |
Topic
|
Operação |
Action |
Resource |
|
CreateTopic |
dhs:CreateTopic |
acs:dhs:$region:$accountid:projects/$projectName/topics/* |
|
ListTopic |
dhs:ListTopic |
acs:dhs:$region:$accountid:projects/$projectName/topics/* |
|
DeleteTopic |
dhs:DeleteTopic |
acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName |
|
GetTopic |
dhs:GetTopic |
acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName |
|
UpdateTopic |
dhs:UpdateTopic |
acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName |
Subscription
|
Operação |
Action |
Resource |
|
CreateSubscription |
dhs:CreateSubscription |
acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName/subscriptions/* |
|
DeleteSubscription |
dhs:DeleteSubscription |
acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName/subscriptions/$subId |
|
GetSubscription |
dhs:GetSubscription |
acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName/subscriptions/$subId |
|
UpdateSubscription |
dhs:UpdateSubscription |
acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName/subscriptions/$subId |
|
ListSubscription |
dhs:ListSubscription |
acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName/subscriptions/* |
|
CommitOffset |
dhs:GetSubscription |
acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName/subscriptions/$subId |
|
GetOffset |
dhs:GetSubscription |
acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName/subscriptions/$subId |
Connector
|
Operação |
Action |
Resource |
|
CreateConnector |
dhs:CreateConnector |
acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName/connectors/* |
|
DeleteConnector |
dhs:DeleteConnector |
acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName/connectors/* |
|
GetConnector |
dhs:GetConnector |
acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName/connectors/* |
|
UpdateConnector |
dhs:UpdateConnector |
acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName/connectors/* |
|
ListConnector |
dhs:ListConnector |
acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName/connectors/* |
Shard
|
Operação |
Action |
Resource |
|
ListShard |
dhs:ListShard |
acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName |
|
MergeShard |
dhs:UpdateShard |
acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName |
|
SplitShard |
dhs:UpdateShard |
acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName |
PubSub
|
Operação |
Action |
Resource |
|
PutRecords |
dhs:PutRecords |
acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName |
|
GetRecords |
dhs:GetRecords |
acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName |
|
GetCursor |
dhs:GetRecords |
acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName |
Condições aplicáveis às políticas RAM para o DataHub
|
Condição |
Recurso |
Valor válido |
|
acs:SourceIp |
Especifica o endereço IP ou bloco CIDR. |
Endereços IP regulares. Defina este campo como asterisco (*) para usar como curinga. |
|
acs:SecureTransport |
Especifica se o HTTPS é usado para acessar o objeto indicado. |
true/false |
|
acs:MFAPresent |
Especifica se a autenticação multifator (MFA) é usada durante o logon do usuário. |
true/false |
|
acs:CurrentTime |
Especifica o horário em que o objeto indicado pode ser acessado. |
Especifique o horário no padrão ISO 8601. |
Políticas do sistema
O DataHub fornece políticas de sistema que podem ser anexadas a usuários RAM. Especifique as políticas do sistema conforme suas necessidades.
AliyunDataHubFullAccess
Esta política concede todas as permissões no DataHub aos usuários RAM. Na maioria dos casos, essa política serve para gerenciar recursos no DataHub.
AliyunDataHubReadOnlyAccess
Esta política concede permissões somente leitura no DataHub aos usuários RAM para que eles consultem informações sobre todos os recursos no DataHub. Por exemplo, use esta política para consultar informações sobre um projeto, visualizar a lista de projetos ou ler dados. No entanto, não é possível usá-la para atualizar, crie ou gravar dados.
AliyunDataHubSubscribeAccess
Esta política concede aos usuários RAM permissões para assinar dados no DataHub. Use-a apenas para chamar operações de API que envolvem leitura de dados, incluindo GetTopic, ListShard, GetRecords e todas as operações relacionadas a assinaturas e offsets.
AliyunDataHubPublishAccess
Esta política concede aos usuários RAM permissões para publicar dados no DataHub. Use-a apenas para chamar operações de API que envolvem gravação de dados, incluindo GetTopic, ListShard e PutRecords.
Políticas personalizadas
Se as políticas do sistema fornecidas pelo DataHub não atenderem aos seus requisitos, crie políticas personalizadas. Para criar uma política personalizada, execute as seguintes operações: faça logon no console RAM usando uma conta Alibaba Cloud. No painel de navegação à esquerda, escolha Permissions > Policies. Na página Policies, clique em Create Policy. Exemplos de políticas personalizadas:
Visualize os projetos acessíveis no console do DataHub
// To allow a RAM user to view the projects that the RAM user has the permissions to access in the DataHub console, add the following configurations to the statement block.
// To display the accessible projects in the DataHub console, the permissions to call the ListProject and GetProject operations are required.
{
"Action": ["dhs:ListProject","dhs:GetProject"],
"Resource": "acs:dhs:*:*:projects/*",
"Effect": "Allow"
}
Crie um tópico no console do DataHub
// To display the topics of a project in the DataHub console, the permissions to call the ListTopic and GetTopic operations are required.
// To grant a RAM user the permissions to create a topic in the project named "test" in the DataHub console, use the following configurations.
{
"Version": "1",
"Statement": [
{
"Action": ["dhs:ListProject", "dhs:GetProject"],
"Resource": "acs:dhs:*:*:projects/*",
"Effect": "Allow"
},
{
"Action": ["dhs:ListTopic", "dhs:GetTopic", "dhs:CreateTopic"],
"Resource": "acs:dhs:*:*:projects/test/topics/*",
"Effect": "Allow"
}
]
}
Outras políticas personalizadas
// Sample custom policy that grants a RAM user the permissions to query the information about topics in a specified project.
{
"Version": "1",
"Statement": [
{
"Action": ["dhs:ListTopic", "dhs:GetTopic"],
"Resource": "acs:dhs:cn-hangzhou:12121312:projects/foo/topics/*",
"Effect": "Allow"
}
]
}
// Sample custom policy that grants a RAM user all the permissions on subscriptions to topics in the project named "foo".
{
"Version": "1",
"Statement": [
{
"Action": ["dhs:*Subscription"],
"Resource": "acs:dhs:cn-hangzhou:*:projects/foo/topics/*/subscriptions/*",
"Effect": "Allow"
}
]
}
// Sample custom policy that grants a RAM user the permissions to query the information about subscriptions to topics in the project named "foo".
{
"Version": "1",
"Statement": [
{
"Action": ["dhs:ListSubscription"],
"Resource": "acs:dhs:cn-hangzhou:*:projects/foo/topics/*/subscriptions/*",
"Effect": "Allow"
}
]
}
// Sample custom policy that grants a RAM user the permissions to commit offsets for the subscription with the ID "14985645198374IoCK" to topic t1 in the project named "foo".
{
"Version": "1",
"Statement": [
{
"Action": ["dhs:GetSubscription"],
"Resource": "acs:dhs:cn-hangzhou:*:projects/foo/topics/t1/subscriptions/14985645198374IoCK",
"Effect": "Allow"
}
]
}
// Sample custom policy that grants a RAM user the permissions to split or merge shards for a specified topic. The available operations are ListShard, SplitShard, and MergeShard.
{
"Version": "1",
"Statement": [
{
"Action": ["dhs:*Shard"],
"Resource": "acs:dhs:cn-hangzhou:12121312:projects/foo/topics/bar",
"Effect": "Allow"
}
]
}