Restriction de l'accès aux paramètres Systems Manager à l'aide des politiques IAM - AWS Systems Manager

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.

Restriction de l'accès aux paramètres Systems Manager à l'aide des politiques IAM

Vous limitez l'accès aux AWS Systems Manager paramètres en utilisant AWS Identity and Access Management (IAM). Plus précisément, vous créez des politiques IAM qui restreignent l'accès aux opérations API suivantes :

Lorsque vous utilisez des politiques IAM pour restreindre l'accès aux paramètres Systems Manager, nous vous recommandons de créer et d'utiliser des politiques IAM restrictives. Par exemple, la politique suivante permet à un utilisateur d'appeler les opérations d'API DescribeParameters et GetParameters pour un ensemble limité de ressources. Cela signifie que l'utilisateur peut obtenir des informations sur les paramètres qui commencent par prod-* et les utiliser.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:DescribeParameters" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:GetParameters" ], "Resource": "arn:aws:ssm:us-east-2:123456789012:parameter/prod-*" } ] }
Important

Si un utilisateur a accès à un chemin, il peut accéder à tous les niveaux de ce chemin. Par exemple, si un utilisateur a l'autorisation d'accéder à un chemin /a, il peut également accéder à /a/b. Même si un utilisateur s'est vu refuser explicitement l'accès au paramètre /a/b dans IAM, il peut toujours appeler l'opération d'API GetParametersByPath de manière récursive pour /a et afficher /a/b.

Pour les administrateurs de confiance, vous pouvez fournir un accès complet à toutes les opérations d'API des paramètres Systems Manager en utilisant une politique similaire à l'exemple suivant. Cette politique accorde à l'utilisateur un accès complet à tous les paramètres de production qui commencent par dbserver-prod-*.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:PutParameter", "ssm:DeleteParameter", "ssm:GetParameterHistory", "ssm:GetParametersByPath", "ssm:GetParameters", "ssm:GetParameter", "ssm:DeleteParameters" ], "Resource": "arn:aws:ssm:us-east-2:123456789012:parameter/dbserver-prod-*" }, { "Effect": "Allow", "Action": "ssm:DescribeParameters", "Resource": "*" } ] }

Refuser des autorisations

Chaque API est unique et dispose d'opérations et d'autorisations distinctes que vous pouvez autoriser ou refuser individuellement. Un refus explicite dans n'importe quelle politique remplace l'autorisation.

Note

La clé par défaut AWS Key Management Service (AWS KMS) Decrypt autorise tous les principaux IAM au sein de. Compte AWS Si vous voulez disposer de différents niveaux d'accès aux paramètres SecureString dans votre compte, n'utilisez pas la clé par défaut.

Si vous voulez que toutes les opérations d'API qui récupèrent des valeurs de paramètres aient un comportement identique, vous pouvez utiliser un modèle tel que GetParameter* dans une politique. L'exemple suivant montre comment refuser GetParameter, GetParameters, GetParameterHistory et GetParametersByPath pour tous les paramètres commençant par prod-*.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "ssm:GetParameter*" ], "Resource": "arn:aws:ssm:us-east-2:123456789012:parameter/prod-*" } ] }

L'exemple suivant montre comment refuser certaines commandes, tout en permettant à l'utilisateur d'en exécuter d'autres sur tous les paramètres commençant par prod-*.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "ssm:PutParameter", "ssm:DeleteParameter", "ssm:DeleteParameters", "ssm:DescribeParameters" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:GetParametersByPath", "ssm:GetParameters", "ssm:GetParameter", "ssm:GetParameterHistory" ], "Resource": "arn:aws:ssm:us-east-2:123456789012:parameter/prod-*" } ] }
Note

L'historique des paramètres inclut toutes les versions de paramètres, y compris la version actuelle. Par conséquent, si un utilisateur se voit refuser l'autorisation pour GetParameter, GetParameters et GetParameterByPath, mais qu'il obtient l'autorisation pour GetParameterHistory, il peut voir le paramètre actuel, y compris les paramètres SecureString, en utilisant GetParameterHistory.

Autoriser uniquement l'exécution de paramètres spécifiques sur des nœuds

Vous pouvez contrôler l'accès afin que les nœuds gérés puissent uniquement exécuter les paramètres que vous spécifiez.

Si vous choisissez le type de SecureString paramètre lorsque vous créez votre paramètre, Systems Manager l'utilise AWS KMS pour chiffrer la valeur du paramètre. AWS KMS chiffre la valeur à l'aide d'une clé gérée par le client Clé gérée par AWS ou d'une clé gérée par le client. Pour plus d'informations sur AWS KMS et AWS KMS key, consultez le Guide du AWS Key Management Service développeur.

Vous pouvez les consulter Clé gérée par AWS en exécutant la commande suivante à partir du AWS CLI.

aws kms describe-key --key-id alias/aws/ssm

L'exemple suivant permet aux nœuds d'obtenir une valeur de paramètre seulement pour les paramètres commençant par prod-. Si le paramètre est un paramètre SecureString, le nœud déchiffre alors la chaîne en utilisant la AWS KMS.

Note

Les politiques d'instances, comme dans l'exemple précédent, sont attribuées au rôle de l'instance dans IAM. Pour plus d'informations sur la configuration de l'accès aux fonctions Systems Manager, y compris la façon d'attribuer des politiques aux utilisateurs et aux instances, consultez Utilisation de Systems Manager avec des instances EC2.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:GetParameters" ], "Resource": [ "arn:aws:ssm:us-east-2:123456789012:parameter/prod-*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:us-east-2:123456789012:key/4914ec06-e888-4ea5-a371-5b88eEXAMPLE" ] } ] }

Autorisations IAM pour l'utilisation des clés AWS par défaut et des clés gérées par le client

Parameter StoreSecureStringles paramètres sont chiffrés et déchiffrés à l'aide de clés. AWS KMS Vous pouvez choisir de chiffrer vos SecureString paramètres à l'aide d'une clé KMS AWS KMS key ou de la clé KMS par défaut fournie par AWS.

Lorsque vous utilisez une clé gérée par le client, la politique IAM qui accorde à un utilisateur l'accès à un paramètre ou à un chemin d'accès doit fournir des autorisations kms:Encrypt explicites pour la clé. Par exemple, la politique suivante permet à un utilisateur de créer, de mettre à jour et d'afficher des SecureString paramètres commençant prod- par le Région AWS et spécifié Compte AWS.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:PutParameter", "ssm:GetParameter", "ssm:GetParameters" ], "Resource": [ "arn:aws:ssm:us-east-2:111122223333:parameter/prod-*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey" Footnote callout 1 to explain a line in a JSON policy ], "Resource": [ "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-12345EXAMPLE" ] } ] }

1L'autorisation kms:GenerateDataKey est requise pour créer des paramètres avancés chiffrés à l'aide de la clé gérée par le client spécifiée.

En revanche, tous les utilisateurs du compte client ont accès à la clé par défaut gérée par AWS . Si vous utilisez cette clé par défaut pour chiffrer des paramètres SecureString et que vous ne souhaitez pas que les utilisateurs utilisent des paramètres SecureString, leurs politiques IAM doivent explicitement refuser l'accès à la clé par défaut, comme illustré dans l'exemple de politique suivant.

Note

Vous pouvez localiser l'Amazon Resource Name (ARN) de la clé par défaut dans la console AWS KMS sur la page Clés gérées par AWS. La clé par défaut est celle identifiée par aws/ssm dans la colonne Alias.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:us-east-2:111122223333:key/abcd1234-ab12-cd34-ef56-abcdeEXAMPLE" ] } ] }

Si vous avez besoin d'un contrôle d'accès précis sur les paramètres SecureString de votre compte, vous devez utiliser une clé gérée par le client pour protéger et restreindre l'accès à ces paramètres. Nous vous recommandons également de l'utiliser AWS CloudTrail pour surveiller l'activité des SecureString paramètres.

Pour plus d’informations, consultez les rubriques suivantes :