Restriction de l'accès à Parameter Store paramètres à l'aide IAM de politiques - 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 à Parameter Store paramètres à l'aide IAM de politiques

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 IAM politiques qui restreignent l'accès aux API opérations suivantes :

Lorsque vous utilisez IAM des politiques pour restreindre l'accès aux paramètres Systems Manager, nous vous recommandons de créer et d'utiliser des IAM politiques restrictives. Par exemple, la politique suivante permet à un utilisateur d'appeler les GetParameters API opérations DescribeParameters et 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 explicitement refuser l'accès au paramètre IAM for/a/b, il peut toujours appeler l'GetParametersByPathAPIopération de manière récursive pour /a et view/a/b.

Pour les administrateurs de confiance, vous pouvez fournir un accès complet à toutes les API opérations de 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

Chacune 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 IAM principaux du 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 API opérations 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 sélectionnez le type de SecureString paramètre lors de la création de votre paramètre, Systems Manager 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 afficher la Clé gérée par AWS en exécutant la commande suivante à partir de l' 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 dansIAM. 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 Gestion EC2 des instances avec Systems Manager.

{ "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" ] } ] }

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

Parameter Store SecureStringles 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é AWS KMS key ou de la KMS clé par défaut fournie par AWS.

Lorsque vous utilisez une clé gérée par le client, la IAM politique qui accorde à un utilisateur l'accès à un paramètre ou à un chemin d'accès doit fournir des kms:Encrypt autorisations 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 SecureString paramètres et que vous ne souhaitez pas que les utilisateurs utilisent des SecureString paramètres, leurs IAM politiques 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 AWS KMS console sur la page Clés AWS gérées par. 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 :