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.
Exemples de IAM politiques supplémentaires pour Session Manager
Reportez-vous aux exemples de politiques suivants pour vous aider à créer une politique personnalisée AWS Identity and Access Management (IAM) pour n'importe quel Session Manager scénarios d'accès utilisateur que vous souhaitez prendre en charge.
Rubriques
- Exemple 1 : octroi d'un accès aux documents depuis la console
- Exemple 2 : restriction de l'accès à des nœuds gérés spécifiques
- Exemple 3 : restriction de l'accès en fonction des balises
- Exemple 4 : autorisation d'un utilisateur à mettre fin uniquement aux sessions qu'il a démarrées
- Exemple 5 : octroi d'un accès complet (administrateur) à toutes les sessions
Exemple 1 : octroi d'un accès aux documents depuis la console
Vous pouvez autoriser les utilisateurs à spécifier un document personnalisé lorsqu'ils lancent une session à l'aide de la console Session Manager. L'exemple de IAM politique suivant accorde l'autorisation d'accéder à des documents dont le nom commence par SessionDocument-
la valeur spécifiée Région AWS
et Compte AWS.
Pour utiliser cette politique, remplacez chaque example resource
placeholder
avec vos propres informations.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:GetDocument", "ssm:ListDocuments" ], "Resource": [ "arn:aws:ssm:
region
:account-id
:document/SessionDocument-*" ] } ] }
Note
La console Session Manager ne prend en charge que les documents de session dont le sessionType
et Standard_Stream
et utilisés pour définir les préférences de session. Pour de plus amples informations, veuillez consulter Schéma de document de session.
Exemple 2 : restriction de l'accès à des nœuds gérés spécifiques
Vous pouvez créer une IAM politique qui définit les nœuds gérés auxquels un utilisateur est autorisé à se connecter à l'aide du Gestionnaire de session. Par exemple, la politique suivante accorde à un utilisateur l'autorisation de démarrer, de terminer et de reprendre ses sessions sur trois nœuds spécifiques. La politique interdit à l'utilisateur de se connecter à des nœuds autres que ceux spécifiés.
Note
Pour les utilisateurs fédérés, voirExemple 4 : autorisation d'un utilisateur à mettre fin uniquement aux sessions qu'il a démarrées.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ec2:us-east-2:123456789012:instance/i-1234567890EXAMPLE", "arn:aws:ec2:us-east-2:123456789012:instance/i-abcdefghijEXAMPLE", "arn:aws:ec2:us-east-2:123456789012:instance/i-0e9d8c7b6aEXAMPLE", "arn:aws:ssm:us-east-2:123456789012:document/SSM-SessionManagerRunShell" ] }, { "Effect": "Allow", "Action": [ "ssm:TerminateSession", "ssm:ResumeSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:userid}-*" ] } ] }
Exemple 3 : restriction de l'accès en fonction des balises
Vous pouvez restreindre l'accès à des nœuds gérés en fonction de balises spécifiques. Dans l'exemple suivant, l'utilisateur est autorisé à démarrer et à reprendre des sessions (Effect: Allow, Action: ssm:StartSession,
ssm:ResumeSession
) sur n'importe quel nœud géré (Resource:
arn:aws:ec2:
) à condition que le nœud soit un nœud Finance WebServer (region
:987654321098
:instance/*ssm:resourceTag/Finance: WebServer
). Si l'utilisateur envoie une commande à un nœud géré non balisé ou qui possède une balise autre que Finance: WebServer
, le résultat de la commande affiche AccessDenied
.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ec2:us-east-2:123456789012:instance/*" ], "Condition": { "StringLike": { "ssm:resourceTag/Finance": [ "WebServers" ] } } }, { "Effect": "Allow", "Action": [ "ssm:TerminateSession", "ssm:ResumeSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:userid}-*" ] }, { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ssm:us-east-2:123456789012:document/SSM-SessionManagerRunShell" ] } ] }
Vous pouvez créer des IAM politiques qui permettent à un utilisateur de démarrer des sessions sur des nœuds gérés dotés de plusieurs balises. La politique suivante permet à l'utilisateur de démarrer des sessions sur des nœuds gérés qui contiennent les balises spécifiées. Si un utilisateur envoie une commande à un nœud géré qui ne contient pas ces balises, le résultat de la commande affiche AccessDenied
.
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ssm:StartSession" ], "Resource":"*", "Condition":{ "StringLike":{ "ssm:resourceTag/tag-key1":[ "tag-value1" ], "ssm:resourceTag/tag-key2":[ "tag-value2" ] } } }, { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ssm:us-east-2:123456789012:document/SSM-SessionManagerRunShell" ] } ] }
Pour plus d'informations sur la création de IAM politiques, consultez les sections Politiques gérées et Politiques intégrées dans le guide de l'IAMutilisateur. Pour plus d'informations sur le balisage des nœuds gérés, consultez la section Marquage de vos EC2 ressources Amazon dans le guide de EC2 l'utilisateur Amazon (le contenu s'applique à Windows and Linux nœuds gérés). Pour plus d'informations sur le renforcement de votre posture de sécurité vis-à-vis des commandes de niveau racine non autorisées sur vos nœuds gérés, consultez Limitation de l'accès aux commandes de niveau racine via l'SSM Agent.
Exemple 4 : autorisation d'un utilisateur à mettre fin uniquement aux sessions qu'il a démarrées
Session Manager propose deux méthodes pour contrôler les sessions auxquelles un utilisateur fédéré de votre entreprise Compte AWS est autorisé à mettre fin.
-
Utilisez la variable
{aws:userid}
dans une politique d'autorisation AWS Identity and Access Management (IAM). Les utilisateurs fédérés ne peuvent terminer que les sessions qu'ils ont démarrées. Pour les utilisateurs non fédérés, utilisez la méthode 1. Pour les utilisateurs fédérés, utilisez la méthode 2. -
Utilisez les balises fournies par les AWS balises dans une politique d'IAMautorisation. Dans la politique, vous incluez une condition qui permet aux utilisateurs de ne terminer que les sessions marquées avec des balises spécifiques fournies par AWS. Cette méthode fonctionne pour tous les comptes, y compris ceux qui utilisent la fédération IDs pour accorder l'accès à AWS.
Méthode 1 : octroyer TerminateSession des privilèges à l'aide de la variable {aws:username}
La IAM politique suivante permet à un utilisateur IDs de consulter toutes les sessions de votre compte. Toutefois, les utilisateurs ne peuvent interagir avec les nœuds gérés que par le biais des sessions qu'ils ont démarrées. Un utilisateur auquel vous attribuez la politique suivante ne peut pas se connecter ni mettre fin aux sessions des autres utilisateurs. Cette politique utilise la variable {aws:username}
.
Note
Cette méthode ne fonctionne pas pour les comptes qui autorisent l'accès AWS via Federated. IDs
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ssm:DescribeSessions" ], "Effect": "Allow", "Resource": [ "*" ] }, { "Action": [ "ssm:TerminateSession" ], "Effect": "Allow", "Resource": [ "arn:aws:ssm:*:*:session/${aws:username}-*" ] } ] }
Méthode 2 : octroyer TerminateSession des privilèges à l'aide de balises fournies par AWS
Vous pouvez contrôler les sessions auxquelles un utilisateur peut mettre fin en incluant des variables clés de balises conditionnelles dans une IAM politique. La condition spécifie que l'utilisateur ne peut terminer que les sessions qui sont marquées avec une ou deux des variables de clé de balise spécifiques et une valeur spécifiée.
Lorsqu'un de vos utilisateurs Compte AWS démarre une session, Session Manager applique deux balises de ressources à la session. La première balise de ressource est aws:ssmmessages:target-id
, avec laquelle vous spécifiez l'ID de la cible à laquelle l'utilisateur est autorisé à se terminer. L'autre balise de ressource est aws:ssmmessages:session-id
, avec une valeur au format
.role-id
:caller-specified-role-name
Note
Session Manager ne prend pas en charge les balises personnalisées pour cette politique de contrôle IAM d'accès. Vous devez utiliser les balises de ressources fournies par AWS, décrites ci-dessous.
-
aws:ssmmessages:target-id
-
Avec cette clé de balise, vous incluez l'ID de nœud géré comme valeur dans la politique. Dans le bloc de politique suivant, l'instruction de condition permet à un utilisateur de terminer uniquement le nœud EXAMPLE i-02573cafcf.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:TerminateSession" ], "Resource": "*", "Condition": { "StringLike": { "ssm:resourceTag/aws:ssmmessages:target-id": [ "i-02573cafcfEXAMPLE" ] } } } ] }
Si l'utilisateur tente de mettre fin à une session pour laquelle il n'a pas obtenu cette autorisation
TerminateSession
, il reçoit uneAccessDeniedException
erreur. -
aws:ssmmessages:session-id
-
Cette clé de balise inclut une variable pour l'ID de session comme valeur dans la demande de démarrage d'une session.
L'exemple suivant illustre une politique pour les cas où le type d'appelant est
User
. La valeur que vous fournissez pouraws:ssmmessages:session-id
est l'ID de l'utilisateur. Dans cet exemple,AIDIODR4TAW7CSEXAMPLE
représente l'ID d'un utilisateur de votre Compte AWS. Pour récupérer l'identifiant d'un utilisateur dans votre Compte AWS, utilisez la IAM commande,get-user
. Pour plus d'informations, voir get-user dans la AWS Identity and Access Management section du guide de l'IAMutilisateur.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:TerminateSession" ], "Resource": "*", "Condition": { "StringLike": { "ssm:resourceTag/aws:ssmmessages:session-id": [ "AIDIODR4TAW7CSEXAMPLE" ] } } } ] }
L'exemple suivant illustre une politique pour les cas où le type d'appelant est
AssumedRole
. Vous pouvez utiliser la variable{aws:userid}
pour la valeur que vous attribuez àaws:ssmmessages:session-id
. Vous pouvez également coder en dur un ID de rôle pour la valeur que vous attribuez àaws:ssmmessages:session-id
. Si vous codez en dur un ID de rôle, vous devez fournir la valeur au format
. Par exemple,role-id
:caller-specified-role-name
AIDIODR4TAW7CSEXAMPLE:MyRole
.Important
Pour que les balises système soient appliquées, l'ID de rôle que vous fournissez ne peut contenir que les caractères suivants : Lettres Unicode, 0-9
_
, espace.
,:
,/
,=
,+
,-
,@
et\
.Pour récupérer l'ID de rôle d'un rôle dans votre Compte AWS, utilisez la
get-caller-identity
commande. Pour plus d'informations, reportez-vous get-caller-identityà la référence des AWS CLI commandes.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:TerminateSession" ], "Resource": "*", "Condition": { "StringLike": { "ssm:resourceTag/aws:ssmmessages:session-id": [ "${aws:userid}*" ] } } } ] }
Si un utilisateur tente de mettre fin à une session pour laquelle il n'a pas obtenu cette autorisation
TerminateSession
, il reçoit une erreurAccessDeniedException
. aws:ssmmessages:target-id
etaws:ssmmessages:session-id
-
Vous pouvez également créer des IAM politiques qui permettent à un utilisateur de mettre fin à des sessions étiquetées avec les deux balises système, comme illustré dans cet exemple.
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ssm:TerminateSession" ], "Resource":"*", "Condition":{ "StringLike":{ "ssm:resourceTag/aws:ssmmessages:target-id":[ "i-02573cafcfEXAMPLE" ], "ssm:resourceTag/aws:ssmmessages:session-id":[ "${aws:userid}*" ] } } } ] }
Exemple 5 : octroi d'un accès complet (administrateur) à toutes les sessions
La IAM politique suivante permet à un utilisateur d'interagir pleinement avec tous les nœuds gérés et toutes les sessions créées par tous les utilisateurs pour tous les nœuds. Il ne doit être accordé qu'à un administrateur qui a besoin d'un contrôle total sur les Session Manager activités.
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ssm:StartSession", "ssm:TerminateSession", "ssm:ResumeSession", "ssm:DescribeSessions", "ssm:GetConnectionStatus" ], "Effect": "Allow", "Resource": [ "*" ] } ] }