Exécutez des commandes Cloud Assistant uniquement sur les instances Elastic Compute Service (ECS) portant des tags spécifiques, en utilisant un rôle RAM ou en tant qu'utilisateur RAM. L'exécution échoue si vous ciblez des instances ECS ne disposant pas de ces tags. Cette rubrique explique comment exécuter des commandes Cloud Assistant sur des instances ECS dotées de tags spécifiques en tant qu'utilisateur RAM. Elle propose également des exemples de politiques personnalisées ainsi que des solutions aux problèmes courants.
Procédure
-
Créez un utilisateur RAM à l'aide d'un compte Alibaba Cloud ou d'un utilisateur RAM disposant des autorisations administratives.
Pour plus d'informations, consultez la rubrique Créer un utilisateur RAM.
-
Créez des politiques personnalisées à l'aide du compte Alibaba Cloud ou de l'utilisateur RAM disposant des autorisations administratives.
Cette rubrique présente les exemples suivants pour illustrer la création de politiques personnalisées :
Pour plus d'informations, consultez la rubrique Créer une politique personnalisée.
-
Attachez les politiques personnalisées à l'utilisateur RAM créé, en utilisant le compte Alibaba Cloud ou l'utilisateur RAM disposant des autorisations administratives.
Pour plus d'informations, consultez la rubrique Accorder des autorisations à l'utilisateur RAM.
-
Connectez-vous à la console ECS en tant qu'utilisateur RAM créé, puis accédez à la page Cloud Assistant pour vérifier si les autorisations définies dans les politiques personnalisées ont bien été accordées à cet utilisateur.
Si vous exécutez une commande sur des instances ECS auxquelles le tag
user:alicen'est pas associé, l'exécution de la commande échoue.Si vous exécutez une commande sur des instances ECS auxquelles le tag
user:aliceest associé, la commande s'exécute avec succès.
Pour savoir comment vous connecter à la console Alibaba Cloud en tant qu'utilisateur RAM, consultez la rubrique Se connecter à la console Alibaba Cloud en tant qu'utilisateur RAM.
Politique 1 : Autoriser un utilisateur RAM à exécuter des commandes et à transférer des fichiers uniquement vers les instances ECS portant des tags spécifiques
Cette politique autorise un utilisateur RAM à exécuter une commande Cloud Assistant et à transférer des fichiers uniquement vers les instances ECS auxquelles le tag user:alice est associé.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecs:InvokeCommand",
"ecs:RunCommand",
"ecs:StopInvocation",
"ecs:SendFile"
],
"Resource": "acs:ecs:*:*:instance/*",
"Condition": {
"StringEquals": {
"acs:ResourceTag/user": "alice"
}
}
},
{
"Effect": "Allow",
"Action": [
"ecs:InvokeCommand",
"ecs:RunCommand",
"ecs:StopInvocation",
"ecs:SendFile"
],
"Resource": "acs:ecs:*:*:command/*"
}
]
}
Politique 2 : Autoriser un utilisateur RAM à interroger les tags associés aux instances ECS, à consulter les instances ECS et à gérer les commandes Cloud Assistant
Cette politique autorise uniquement un utilisateur RAM à interroger les tags associés aux instances ECS, à consulter les instances ECS et à gérer les commandes Cloud Assistant.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecs:DescribeTag*",
"ecs:DescribeInstance*",
"ecs:DescribeCommands",
"ecs:CreateCommand",
"ecs:DeleteCommand",
"ecs:ModifyCommand",
"ecs:DescribeInvocationResults",
"ecs:DescribeSendFileResults",
"ecs:DescribeInstances",
"ecs:DescribeCloudAssistantStatus",
"ecs:DescribeInvocations",
"ecs:DescribeResourceByTags",
"ecs:DescribeTagKeys",
"ecs:DescribeTags",
"ecs:ListTagResources",
"ecs:DescribeManagedInstances"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "oos:ListSecretParameters",
"Resource": "*"
}
]
}
Problèmes courants et solutions
Si les politiques personnalisées ne prennent pas effet, vérifiez si l'élément Effect des autorisations suivantes est défini sur Allow :
["ecs:InvokeCommand","ecs:RunCommand", "ecs:StopInvocation","ecs:SendFile"].
Si l'élément Effect de ces autorisations est défini sur Allow, supprimez ces autorisations des politiques personnalisées.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecs:InvokeCommand",
"ecs:RunCommand",
"ecs:StopInvocation",
"ecs:SendFile"
],
"Resource": "*"
}
]
}