Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Contrôlez l'accès aux fenêtres de maintenance à l'aide du AWS CLI
Les procédures suivantes décrivent comment utiliser le AWS Command Line Interface (AWS CLI) pour créer les autorisations et les rôles requis pour Maintenance Windows, une capacité de AWS Systems Manager.
Rubriques
- Tâche 1 : créer des fichiers de politique de confiance et de politique gérés par le client au JSON format
- Tâche 2 : créer et vérifier un rôle de service personnalisé pour les fenêtres de maintenance à l'aide du AWS CLI
- Tâche 3 : accorder des autorisations aux utilisateurs spécifiés pour enregistrer les tâches de la fenêtre de maintenance à l'aide du AWS CLI
- Tâche 4 : Empêcher les utilisateurs spécifiés d'enregistrer les tâches de la fenêtre de maintenance à l'aide du AWS CLI
Tâche 1 : créer des fichiers de politique de confiance et de politique gérés par le client au JSON format
Les tâches de la fenêtre de maintenance nécessitent un IAM rôle fournissant les autorisations requises pour s'exécuter sur les ressources cibles. Les autorisations sont fournies par le biais d'une IAM politique attachée au rôle. Les types de tâches que vous exécutez et vos autres exigences opérationnelles déterminent le contenu de cette politique. Nous proposons une politique de base que vous pouvez adapter à vos besoins. En fonction des tâches et des types de tâches exécutées par vos fenêtres de maintenance, il se peut que vous n'ayez pas besoin de toutes les autorisations de cette politique, et que vous deviez inclure des autorisations supplémentaires.
Dans cette tâche, vous spécifiez les autorisations nécessaires pour votre rôle de fenêtre de maintenance personnalisé dans une paire de JSON fichiers. Vous attachez cette politique au rôle que vous créez ultérieurement dans Tâche 2 : créer et vérifier un rôle de service personnalisé pour les fenêtres de maintenance à l'aide du AWS CLI.
Pour créer des politiques de confiance et des fichiers de politique gérés par le client
-
Copiez et collez la politique d'approbation suivante dans un fichier texte. Enregistrez ce fichier sous le nom et l'extension de fichier suivants :
mw-role-trust-policy.json
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
Copiez et collez la JSON politique suivante dans un autre fichier texte. Dans le répertoire où vous avez créé le premier fichier, enregistrez ce fichier sous le nom et l'extension de fichier suivants :
mw-role-custom-policy.json
.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:SendCommand", "ssm:CancelCommand", "ssm:ListCommands", "ssm:ListCommandInvocations", "ssm:GetCommandInvocation", "ssm:GetAutomationExecution", "ssm:StartAutomationExecution", "ssm:ListTagsForResource", "ssm:GetParameters" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "states:DescribeExecution", "states:StartExecution" ], "Resource": [ "arn:aws:states:*:*:execution:*:*", "arn:aws:states:*:*:stateMachine:*" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:*:*:function:*" ] }, { "Effect": "Allow", "Action": [ "resource-groups:ListGroups", "resource-groups:ListGroupResources" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "tag:GetResources" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": [ "ssm.amazonaws.com" ] } } } ] }
-
Modifiez le contenu de selon
mw-role-custom-policy.json
les besoins pour les tâches de maintenance que vous exécutez dans votre compte. Les modifications que vous apportez sont spécifiques à vos opérations planifiées.Par exemple :
-
Vous pouvez fournir des Amazon Resource Names (ARNs) pour des fonctions et des machines d'état spécifiques au lieu d'utiliser des qualificatifs génériques (*).
-
Si vous ne prévoyez pas d'exécuter AWS Step Functions des tâches, vous pouvez supprimer les
states
autorisations et (ARNs). -
Si vous ne prévoyez pas d'exécuter AWS Lambda des tâches, vous pouvez supprimer les
lambda
autorisations etARNs. -
Si vous ne prévoyez pas d'exécuter des tâches d'automatisation, vous pouvez supprimer les autorisations
ssm:GetAutomationExecution
etssm:StartAutomationExecution
. -
Ajoutez des autorisations supplémentaires qui peuvent être nécessaires à l'exécution des tâches. Par exemple, certaines actions Automation utilisent des piles AWS CloudFormation . Par conséquent, les autorisations
cloudformation:CreateStack
,cloudformation:DescribeStacks
etcloudformation:DeleteStack
sont requises.Autre exemple, le runbook Automation
AWS-CopySnapshot
nécessite des autorisations pour créer un instantané Amazon Elastic Block Store (AmazonEBS). Par conséquent, la fonction du service a besoin de l'autorisationec2:CreateSnapshot
.Pour plus d'informations sur les autorisations de rôle requises par les runbooks d'automatisation, consultez les descriptions du runbook dans la référence du runbook d'automatisation d'AWS Systems Manager.
Enregistrez à nouveau le fichier après avoir apporté les modifications nécessaires.
-
Tâche 2 : créer et vérifier un rôle de service personnalisé pour les fenêtres de maintenance à l'aide du AWS CLI
La politique que vous avez créée lors de la tâche précédente est attachée au rôle de service de fenêtre de maintenance que vous créez dans cette tâche. Lorsque les utilisateurs enregistrent une tâche de fenêtre de maintenance, ils spécifient ce IAM rôle dans le cadre de la configuration de la tâche. Les autorisations de ce rôle permettent à Systems Manager d'exécuter des tâches dans les fenêtres de maintenance en votre nom.
Important
Auparavant, la console Systems Manager vous permettait de choisir le rôle IAM lié au service AWS géré AWSServiceRoleForAmazonSSM
à utiliser comme rôle de maintenance pour vos tâches. L'utilisation de ce rôle et de la politique associée, AmazonSSMServiceRolePolicy
, pour les tâches de la fenêtre de maintenance n'est plus recommandée. Si vous utilisez ce rôle pour des tâches de fenêtre de maintenance maintenant, nous vous encourageons à cesser de l'utiliser. Créez plutôt votre propre IAM rôle qui permet la communication entre Systems Manager et les autres Services AWS
lorsque les tâches de votre fenêtre de maintenance s'exécutent.
Dans cette tâche, vous exécutez des CLI commandes pour créer votre rôle de service Windows de maintenance, en ajoutant le contenu de la politique à partir des JSON fichiers que vous avez créés.
Créez un rôle de service personnalisé pour les fenêtres de maintenance à l'aide du AWS CLI
-
Ouvrez le AWS CLI et exécutez la commande suivante dans le répertoire où vous avez placé
mw-role-custom-policy.json
etmw-role-trust-policy.json
. La commande crée un rôle de service de fenêtre de maintenance appelémy-maintenance-window-role
et y associe la politique de confiance.Le système renvoie des informations similaires à ce qui suit :
{ "Role": { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" } } ] }, "RoleId": "AROAIIZKPBKS2LEXAMPLE", "CreateDate": "2024-08-19T03:40:17.373Z", "RoleName": "my-maintenance-window-role", "Path": "/", "Arn": "arn:aws:iam::123456789012:role/my-maintenance-window-role" } }
Note
Notez les valeurs de
RoleName
etArn
. Vous les incluez dans la commande suivante. -
Exécutez la commande suivante pour associer la politique gérée par le client au rôle. Remplacez le
account-id
espace réservé avec votre propre identifiant Compte AWS -
Exécutez la commande suivante pour vérifier que votre rôle a été créé et que la politique de confiance a été attachée.
aws iam get-role --role-name my-maintenance-window-role
La commande renvoie des informations semblables à ce qui suit :
{ "Role": { "Path": "/", "RoleName": "my-maintenance-window-role", "RoleId": "AROA123456789EXAMPLE", "Arn": "arn:aws:iam::123456789012:role/my-maintenance-window-role", "CreateDate": "2024-08-19T14:13:32+00:00", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }, "MaxSessionDuration": 3600, "RoleLastUsed": { "LastUsedDate": "2024-08-19T14:30:44+00:00", "Region": "us-east-2" } } }
-
Exécutez la commande suivante pour vérifier que la politique gérée par le client est attachée au rôle.
aws iam list-attached-role-policies --role-name my-maintenance-window-role
La commande renvoie des informations semblables à ce qui suit :
{ "AttachedPolicies": [ { "PolicyName": "mw-role-custom-policy", "PolicyArn": "arn:aws:iam::123456789012:policy/mw-role-custom-policy" } ] }
Tâche 3 : accorder des autorisations aux utilisateurs spécifiés pour enregistrer les tâches de la fenêtre de maintenance à l'aide du AWS CLI
Le fait de donner aux utilisateurs les autorisations nécessaires pour accéder au rôle de service personnalisé pour les fenêtres de maintenance leur permet de l'utiliser dans le cadre de leurs tâches liées aux fenêtres de maintenance. Cela vient s'ajouter aux autorisations que vous leur avez déjà accordées pour utiliser les API commandes Systems Manager pour Maintenance Windows capacité. Ce IAM rôle indique les autorisations nécessaires pour exécuter une tâche de fenêtre de maintenance. Par conséquent, un utilisateur ne peut pas enregistrer de tâches dans une fenêtre de maintenance à l'aide de votre rôle de service personnalisé s'il n'est pas en mesure de transmettre ces IAM autorisations.
Lorsque vous enregistrez une tâche avec une fenêtre de maintenance, vous spécifiez un rôle de service pour exécuter les opérations de tâche réelles. C'est le rôle que le service endossera lorsqu'il exécutera des tâches en votre nom. Avant cela, pour enregistrer la tâche elle-même, attribuez la IAM PassRole
politique à une IAM entité (telle qu'un utilisateur ou un groupe). Cela permet à l'IAMentité de spécifier, dans le cadre de l'enregistrement de ces tâches dans la fenêtre de maintenance, le rôle à utiliser lors de l'exécution des tâches. Pour plus d'informations, voir Accorder à un utilisateur l'autorisation de transmettre un rôle à un Service AWS dans le Guide de IAM l'utilisateur.
Pour configurer les autorisations pour les utilisateurs autorisés à enregistrer les tâches de la fenêtre de maintenance à l'aide du AWS CLI
-
Copiez et collez la politique suivante AWS Identity and Access Management (IAM) dans un éditeur de texte et enregistrez-la sous le nom et l'extension de fichier suivants :
mw-passrole-policy.json
.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::
account-id
:role/my-maintenance-window-role
" }, { "Effect": "Allow", "Action": "iam:ListRoles", "Resource": "arn:aws:iam::account-id
:role/" }, { "Effect": "Allow", "Action": "iam:ListRoles", "Resource": "arn:aws:iam::account-id
:role/aws-service-role/ssm.amazonaws.com/" } ] }Remplacez
my-maintenance-window-role
avec le nom du rôle de fenêtre de maintenance personnalisé que vous avez créé précédemment.Remplacez
account-id
avec l'identifiant de votre Compte AWS. L'ajout de cette autorisation pour la ressourcearn:aws:iam::
permet aux utilisateurs du groupe d'afficher et de choisir parmi les rôles clients dans la console lorsqu'ils créent une tâche de fenêtre de maintenance. L'ajout de cette autorisation pouraccount-id
:role/arn:aws:iam::
permet aux utilisateurs du groupe de choisir le rôle lié au service Systems Manager dans la console lorsqu'ils créent une tâche de fenêtre de maintenance.account-id
:role/aws-service-role/ssm.amazonaws.com/ -
Ouvrez le AWS CLI.
-
Selon que vous attribuez l'autorisation à une IAM entité (utilisateur ou groupe), exécutez l'une des commandes suivantes.
-
Pour une IAM entité :
Dans
user-name
, spécifiez l'utilisateur qui affecte les tâches aux fenêtres de maintenance. Danspolicy-name
, spécifiez le nom que vous souhaitez utiliser pour identifier la politique, par exemplemy-iam-passrole-policy
. Danspath-to-document
, spécifiez le chemin d'accès au fichier que vous avez enregistré à l'étape 1. Par exemple :file://C:\Temp\mw-passrole-policy.json
Note
Pour autoriser un utilisateur à enregistrer des tâches pour les fenêtres de maintenance à l'aide de la console Systems Manager, vous devez également attribuer la
AmazonSSMFullAccess
politique à votre utilisateur (ou une IAM politique fournissant un ensemble réduit d'autorisations d'accès pour Systems Manager qui couvre les tâches des fenêtres de maintenance). Exécutez la commande suivante pour attribuer laAmazonSSMFullAccess
politique à votre utilisateur. -
Pour un groupe IAM :
Dans
group-name
, spécifiez le groupe dont les membres attribuent des tâches aux fenêtres de maintenance. Danspolicy-name
, spécifiez le nom que vous souhaitez utiliser pour identifier la politique, par exemplemy-iam-passrole-policy
. Danspath-to-document
, spécifiez le chemin d'accès au fichier que vous avez enregistré à l'étape 1. Par exemple :file://C:\Temp\mw-passrole-policy.json
Note
Pour autoriser les membres d'un groupe à enregistrer des tâches pour les fenêtres de maintenance à l'aide de la console Systems Manager, vous devez également affecter la politique
AmazonSSMFullAccess
à votre groupe. Exécutez la commande suivante pour attribuer cette politique à votre groupe.
-
-
Exécutez la commande suivante pour vérifier que la politique a bien été attribuée au groupe.
Tâche 4 : Empêcher les utilisateurs spécifiés d'enregistrer les tâches de la fenêtre de maintenance à l'aide du AWS CLI
Vous pouvez refuser l'ssm:RegisterTaskWithMaintenanceWindow
autorisation aux utilisateurs de votre site Compte AWS auxquels vous ne souhaitez pas enregistrer des tâches dans les fenêtres de maintenance. Cela fournit une couche de prévention supplémentaire pour les utilisateurs qui ne devraient pas enregistrer les tâches de la fenêtre de maintenance.
Selon que vous refusez l'autorisation ssm:RegisterTaskWithMaintenanceWindow
à un utilisateur individuel ou à un groupe, utilisez l'une des procédures suivantes pour empêcher les utilisateurs d'enregistrer des tâches avec une fenêtre de maintenance.
Pour configurer les autorisations pour les utilisateurs qui ne sont pas autorisés à enregistrer les tâches de la fenêtre de maintenance à l'aide du AWS CLI
-
Copiez et collez la IAM politique suivante dans un éditeur de texte et enregistrez-la sous le nom et l'extension de fichier suivants :
deny-mw-tasks-policy.json
.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "ssm:RegisterTaskWithMaintenanceWindow", "Resource": "*" } ] }
-
Ouvrez le AWS CLI.
-
Selon que vous attribuez l'autorisation à une IAM entité (utilisateur ou groupe), exécutez l'une des commandes suivantes.
-
Pour un utilisateur :
Dans
user-name
, spécifiez l'utilisateur à empêcher d'attribuer des tâches aux fenêtres de maintenance. Danspolicy-name
, spécifiez le nom que vous souhaitez utiliser pour identifier la politique, par exemplemy-deny-mw-tasks-policy
. Danspath-to-document
, spécifiez le chemin d'accès au fichier que vous avez enregistré à l'étape 1. Par exemple :file://C:\Temp\deny-mw-tasks-policy.json
-
Pour un groupe :
Dans
group-name
, spécifiez le groupe dont vous souhaitez empêcher l'attribution de tâches aux fenêtres de maintenance. Danspolicy-name
, spécifiez le nom que vous souhaitez utiliser pour identifier la politique, par exemplemy-deny-mw-tasks-policy
. Danspath-to-document
, spécifiez le chemin d'accès au fichier que vous avez enregistré à l'étape 1. Par exemple :file://C:\Temp\deny-mw-tasks-policy.json
-
-
Exécutez la commande suivante pour vérifier que la politique a bien été attribuée au groupe.