ApsaraMQ for RabbitMQ utilise des rôles liés aux services pour accéder à d'autres services Alibaba Cloud en votre nom. Le système crée automatiquement chaque rôle (rôle RAM) lors de la première utilisation de la fonctionnalité correspondante. Pour plus d'informations générales, consultez la rubrique Rôles liés aux services.
Rôles et autorisations
ApsaraMQ for RabbitMQ propose quatre rôles liés aux services. Chacun accorde les autorisations minimales nécessaires à une fonctionnalité spécifique.
| Rôle | Nom du service | Fonctionnalité | Services accessibles |
|---|---|---|---|
| AliyunServiceRoleForAmqpMonitoring | monitoring.amqp.aliyuncs.com | Surveillance et alertes, Tableau de bord | CloudMonitor, Application Real-Time Monitoring Service (ARMS) |
| AliyunServiceRoleForAmqpLogDelivery | logdelivery.amqp.aliyuncs.com | Gestion des journaux de messages | Simple Log Service |
| AliyunServiceRoleForAmqpNetwork | network.amqp.aliyuncs.com | Accès VPC | PrivateLink, VPC, ECS |
| AliyunServiceRoleForAmqpEncrypt | encrypt.amqp.aliyuncs.com | Chiffrement au repos | Key Management Service (KMS) |
Création des rôles
Le système crée automatiquement la plupart des rôles liés aux services lors de la première utilisation de la fonctionnalité correspondante dans la console ApsaraMQ for RabbitMQ. Une notification confirme la création du rôle.
Le rôle de chiffrement (AliyunServiceRoleForAmqpEncrypt) fait exception : le système le crée lors de l'achat d'une instance dédiée prenant en charge le chiffrement au repos et vous notifie sa création. Les utilisateurs RAM peuvent également créer ce rôle en appelant l'opération API CreateServiceLinkedRole.
Détails des politiques
Chaque rôle lié à un service dispose d'une politique attachée qui définit les actions autorisées. Les sections suivantes répertorient ces actions ; le code JSON complet de chaque politique est disponible dans des blocs réductibles.
AliyunServiceRoleForAmqpMonitoring
Lit les métriques CloudMonitor et gère les tableaux de bord ARMS.
Actions autorisées :
cms:DescribeMetricRuleList,cms:DescribeMetricList,cms:DescribeMetricDatasur toutes les ressourcesarms:OpenVCluster,arms:ListDashboards,arms:CheckServiceStatussur toutes les ressourcesram:DeleteServiceLinkedRole(restreint au nom de servicemonitoring.amqp.aliyuncs.com)
Code JSON complet de la politique
{
"Version": "1",
"Statement": [
{
"Action": [
"cms:DescribeMetricRuleList",
"cms:DescribeMetricList",
"cms:DescribeMetricData"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"arms:OpenVCluster",
"arms:ListDashboards",
"arms:CheckServiceStatus"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": "ram:DeleteServiceLinkedRole",
"Resource": "*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"ram:ServiceName": "monitoring.amqp.aliyuncs.com"
}
}
}
]
}
AliyunServiceRoleForAmqpLogDelivery
Répertorie les projets et les entrepôts de journaux (logstores) de Simple Log Service, et écrit les données de journalisation.
Actions autorisées :
log:ListProject,log:ListLogStores,log:PostLogStoreLogssur toutes les ressourcesram:DeleteServiceLinkedRole(restreint au nom de servicelogdelivery.amqp.aliyuncs.com)
Code JSON complet de la politique
{
"Version": "1",
"Statement": [
{
"Action": [
"log:ListProject",
"log:ListLogStores",
"log:PostLogStoreLogs"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": "ram:DeleteServiceLinkedRole",
"Resource": "*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"ram:ServiceName": "logdelivery.amqp.aliyuncs.com"
}
}
}
]
}
AliyunServiceRoleForAmqpNetwork
Gère les endpoints PrivateLink, interroge les attributs VPC et vSwitch, et administre les groupes de sécurité ECS.
Actions autorisées :
15 actions PrivateLink, notamment
CreateVpcEndpoint,DeleteVpcEndpoint,ListVpcEndpoints, ainsi que la gestion des zones et des groupes de sécurité sur toutes les ressourcesvpc:DescribeVpcAttribute,vpc:DescribeVpcs,vpc:ListVSwitchCidrReservations,vpc:GetVSwitchCidrReservationUsage,vpc:DescribeVSwitches,vpc:DescribeVSwitchAttributessur toutes les ressourcesEcs:CreateSecurityGroup,Ecs:DeleteSecurityGroup,Ecs:DescribeSecurityGroupAttribute,Ecs:DescribeSecurityGroupssur toutes les ressourcesram:DeleteServiceLinkedRole(restreint au nom de servicenetwork.amqp.aliyuncs.com)ram:CreateServiceLinkedRole(restreint au nom de serviceprivatelink.aliyuncs.com)
Code JSON complet de la politique
{
"Version": "1",
"Statement": [
{
"Action": [
"privatelink:GetVpcEndpointServiceAttribute",
"privatelink:ListVpcEndpointServices",
"privatelink:DeleteVpcEndpoint",
"privatelink:CreateVpcEndpoint",
"privatelink:UpdateVpcEndpointAttribute",
"privatelink:ListVpcEndpoints",
"privatelink:GetVpcEndpointAttribute",
"privatelink:ListVpcEndpointServicesByEndUser",
"privatelink:AddZoneToVpcEndpoint",
"privatelink:ListVpcEndpointZones",
"privatelink:RemoveZoneFromVpcEndpoint",
"privatelink:AttachSecurityGroupToVpcEndpoint",
"privatelink:ListVpcEndpointSecurityGroups",
"privatelink:DetachSecurityGroupFromVpcEndpoint",
"privatelink:UpdateVpcEndpointZoneConnectionResourceAttribute"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"vpc:DescribeVpcAttribute",
"vpc:DescribeVpcs",
"vpc:ListVSwitchCidrReservations",
"vpc:GetVSwitchCidrReservationUsage",
"vpc:DescribeVSwitches",
"vpc:DescribeVSwitchAttributes",
"Ecs:CreateSecurityGroup",
"Ecs:DeleteSecurityGroup",
"Ecs:DescribeSecurityGroupAttribute",
"Ecs:DescribeSecurityGroups"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": "ram:DeleteServiceLinkedRole",
"Resource": "*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"ram:ServiceName": "network.amqp.aliyuncs.com"
}
}
},
{
"Action": "ram:CreateServiceLinkedRole",
"Resource": "*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"ram:ServiceName": "privatelink.aliyuncs.com"
}
}
}
]
}
AliyunServiceRoleForAmqpEncrypt
Répertorie et décrit les clés KMS, gère les tags de clé, et exécute les opérations de chiffrement et de déchiffrement sur les clés taguées pour le chiffrement des instances RabbitMQ.
Actions autorisées :
kms:List*,kms:DescribeKey,kms:TagResource,kms:UntagResourcesur toutes les ressources KMS (acs:kms:*:*:*)kms:Encrypt,kms:Decrypt,kms:GenerateDataKeysur les ressources KMS, avec restriction par conditionkms:tag/acs:rabbitmq:instance-encryption = trueram:DeleteServiceLinkedRole(restreint au nom de serviceencrypt.amqp.aliyuncs.com)
Code JSON complet de la politique
{
"Version": "1",
"Statement": [
{
"Action": [
"kms:List*",
"kms:DescribeKey",
"kms:TagResource",
"kms:UntagResource"
],
"Resource": [
"acs:kms:*:*:*"
],
"Effect": "Allow"
},
{
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:GenerateDataKey"
],
"Resource": [
"acs:kms:*:*:*"
],
"Effect": "Allow",
"Condition": {
"StringEqualsIgnoreCase": {
"kms:tag/acs:rabbitmq:instance-encryption": "true"
}
}
},
{
"Action": "ram:DeleteServiceLinkedRole",
"Resource": "*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"ram:ServiceName": "encrypt.amqp.aliyuncs.com"
}
}
}
]
}
Supprimer un rôle lié à un service
La suppression d'un rôle lié à un service révoque toutes les autorisations qu'il accorde. Vous ne pourrez plus utiliser la fonctionnalité correspondante en raison d'autorisations insuffisantes.
Pour recréer un rôle lié à un service supprimé :
Créez un rôle RAM pour un service Alibaba Cloud approuvé. Pour plus d'informations, consultez la rubrique Créer un rôle RAM pour un service Alibaba Cloud approuvé.
Attachez les autorisations requises au rôle. Pour plus d'informations, consultez la rubrique Accorder des autorisations à un rôle RAM.
FAQ
Pourquoi mon utilisateur RAM ne peut-il pas créer le rôle lié au service ?
Si le rôle lié au service existe déjà sous votre compte Alibaba Cloud, les utilisateurs RAM en héritent automatiquement. Si un utilisateur RAM ne peut pas hériter du rôle, accordez-lui explicitement l'autorisation de créer des rôles liés aux services :
Connectez-vous à la console RAM.
Créez une politique personnalisée avec le contenu suivant :
{
"Statement": [
{
"Action": [
"ram:CreateServiceLinkedRole"
],
"Resource": "acs:ram:*:${accountid}:role/*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"ram:ServiceName": [
"logdelivery.amqp.aliyuncs.com",
"monitoring.amqp.aliyuncs.com",
"network.amqp.aliyuncs.com",
"encrypt.amqp.aliyuncs.com"
]
}
}
}
],
"Version": "1"
}
Remplacez ${accountid} par l'ID de votre compte Alibaba Cloud.
Attachez la politique personnalisée à l'utilisateur RAM.
Si le problème persiste après avoir attaché cette politique, attachez plutôt la politique système AliyunAMQPFullAccess à l'utilisateur RAM. Pour plus d'informations, consultez la rubrique Accorder des autorisations à un utilisateur RAM.