Utilisation des politiques basées sur l'identité (politiques IAM) pour Amazon ElastiCache - Amazon ElastiCache for Redis

Utilisation des politiques basées sur l'identité (politiques IAM) pour Amazon ElastiCache

Cette rubrique fournit des exemples de politiques basées sur une identité dans lesquelles un administrateur de compte peut attacher des politiques d'autorisation aux identités IAM (c'est-à-dire aux utilisateurs, groupes et rôles).

Important

En premier lieu, nous vous recommandons de lire les rubriques qui détaillent les concepts de base et les options disponibles pour gérer l'accès à vos ressources Amazon ElastiCache. Pour plus d’informations, consultez Présentation de la gestion des autorisations d'accès à vos ressources ElastiCache.

Les sections de cette rubrique couvrent les sujets suivants :

Un exemple de politique d'autorisation est exposé ci-dessous.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowClusterPermissions", "Effect": "Allow", "Action": [ "elasticache:CreateCacheCluster", "elasticache:CreateReplicationGroup", "elasticache:DescribeCacheClusters", "elasticache:ModifyCacheCluster", "elasticache:RebootCacheCluster"], "Resource": "*" }, { "Sid": "AllowUserToPassRole", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::123456789012:role/EC2-roles-for-cluster" } ] }

La politique possède deux énoncés:

  • La première instruction accorde des autorisations pour les actions Amazon ElastiCache (elasticache:CreateCacheCluster, elasticache:DescribeCacheClusters, elasticache:ModifyCacheCluster et elasticache:RebootCacheCluster) sur un cluster de cache appartenant au compte.

  • La deuxième instruction accorde des autorisations pour l'action IAM (iam:PassRole) sur le nom du rôle IAM spécifié à la fin de la valeur Resource.

La politique ne spécifie pas l'élément Principal car, dans une politique basée sur une identité, vous ne spécifiez pas le mandataire qui obtient l'autorisation. Quand vous attachez une politique à un utilisateur, l'utilisateur est le mandataire implicite. Lorsque vous attachez une politique d'autorisation à un rôle IAM, le mandataire identifié dans la politique d'approbation de ce rôle obtient les autorisations.

Pour un tableau présentant toutes les actions de l'API Amazon ElastiCache et les ressources auxquelles elles s'appliquent, veuillez consulter Autorisations d'API ElastiCache : référence des actions, ressources et conditions.

Autorisations requises pour utiliser la console Amazon ElastiCache

Le tableau de référence des autorisations répertorie les opérations d'API Amazon ElastiCache et affiche les autorisations requises pour chaque opération. Pour plus d'informations sur les opérations d'API ElastiCache, veuillez consulter Autorisations d'API ElastiCache : référence des actions, ressources et conditions.

Pour utiliser la console Amazon ElastiCache, vous devez d'abord accorder des autorisations pour des actions supplémentaires, comme indiqué dans les politiques d'autorisations suivantes.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "MinPermsForECConsole", "Effect": "Allow", "Action": [ "elasticache:Describe*", "elasticache:List*", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "ec2:DescribeAccountAttributes", "ec2:DescribeSecurityGroups", "cloudwatch:GetMetricStatistics", "cloudwatch:DescribeAlarms", "s3:ListAllMyBuckets", "sns:ListTopics", "sns:ListSubscriptions" ], "Resource": "*" } ] }

La console ElastiCache nécessite ces autorisations supplémentaires pour les raisons suivantes :

  • Les autorisations pour les actions ElastiCache permettent à la console d'afficher les ressources ElastiCache du compte.

  • La console a besoin d'autorisations pour les actions ec2 pour interroger Amazon EC2 afin qu'elle puisse afficher les zones de disponibilité, les VPC, les groupes de sécurité et les attributs de compte.

  • Les autorisations pour les actions cloudwatch permettent à la console de récupérer les alarmes et les métriques Amazon CloudWatch, et de les afficher dans la console.

  • Les autorisations pour les actions sns permettent à la console de récupérer les abonnements et les rubriques Amazon Simple Notification Service (Amazon SNS), et de les afficher dans la console.

Politiques (prédéfinies) gérées par AWS pour Amazon ElastiCache

AWS est approprié pour de nombreux cas d'utilisation courants et fournit des politiques IAM autonomes qui sont créées et administrées par AWS. Les politiques gérées octroient les autorisations requises dans les cas d'utilisation courants et vous évitent d'avoir à réfléchir aux autorisations qui sont requises. Pour plus d'informations, consultez Politiques gérées par AWS dans le Guide de l'utilisateur IAM.

Les politiques gérées AWS suivantes, que vous pouvez attacher aux utilisateurs de votre compte, sont propres à ElastiCache :

  • AmazonElastiCacheReadOnlyAccess - accorde l'accès en lecture seule aux ressources Amazon ElastiCache.

  • AmazonElastiCacheFullAccess - accorde l'accès complet aux ressources Amazon ElastiCache.

Note

Vous pouvez consulter ces politiques d'autorisations en vous connectant à la console IAM et en y recherchant des politiques spécifiques.

Vous pouvez également créer vos propres politiques IAM personnalisées pour accorder des autorisations pour les actions d'API Amazon ElastiCache. Vous pouvez attacher ces politiques personnalisées aux utilisateurs ou groupes IAM qui nécessitent ces autorisations.

Exemples de politiques gérées par le client

Si vous n'utilisez pas de politique par défaut et que vous choisissez d'utiliser une politique gérée personnalisée, vous devez assurer l'un des deux points suivants. Vous devez soit avoir les autorisations d'appeler iam:createServiceLinkedRole (pour plus d'informations, veuillez consulter Exemple 5 : Permettre à un utilisateur d'appeler l'API IAM CreateServiceLinkedRole). Ou vous devez avoir créé un rôle lié à un service ElastiCache.

Lorsqu'ils sont combinés avec les autorisations minimales nécessaires à l'utilisation de la console Amazon ElastiCache, les exemples de politiques dans cette section accordent des autorisations supplémentaires. Les exemples s'appliquent également à la AWS CLI et aux kits SDK AWS. Pour plus d'informations sur les autorisations qui sont nécessaires pour utiliser la console ElastiCache, veuillez consulter Autorisations requises pour utiliser la console Amazon ElastiCache.

Pour plus d'informations sur la configuration des utilisateurs et des groupes IAM, veuillez consulter Création de votre premier groupe d'utilisateurs et d'administrateurs IAM dans le Guide de l'utilisateur IAM.

Important

Veillez à toujours tester vos politiques IAM de manière approfondie avant de les utiliser. Certains actions ElastiCache qui peuvent paraître simples peuvent nécessiter d'autres actions pour les prendre en charge lorsque vous utilisez la console ElastiCache. Par exemple, elasticache:CreateCacheCluster donne des autorisations pour créer des clusters de cache ElastiCache. Toutefois, afin d'effectuer cette opération, la console ElastiCache utilise un certain nombre d'actions List et Describe afin de remplir les listes de la console.

Exemple 1 : Permettre à un utilisateur de créer et de gérer des groupes de sécurité

La politique suivante accorde l'autorisation d'effectuer des actions ElastiCache spécifiques au groupe de sécurité. Généralement, vous attachez ce type de politique d'autorisations au groupe d'administrateurs système.

{ "Version": "2012-10-17", "Statement":[{ "Sid": "SecGrpAllows", "Effect":"Allow", "Action":[ "elasticache:CreateCacheSecurityGroup", "elasticache:DeleteCacheSecurityGroup", "elasticache:DescribeCacheSecurityGroup", "elasticache:AuthorizeCacheSecurityGroupIngress", "elasticache:RevokeCacheSecurityGroupIngress"], "Resource":"*" } ] }

Exemple 2 : Accorder à un utilisateur un accès en lecture seule aux ressources ElastiCache

La politique suivante accorde à un utilisateur l'autorisation d'utiliser les actions ElastiCache pour afficher les ressources. En général, vous attachez ce type de politique d'autorisations à un groupe de gestionnaires.

{ "Version": "2012-10-17", "Statement":[{ "Sid": "ECUnrestricted", "Effect":"Allow", "Action": [ "elasticache:Describe*", "elasticache:List*"], "Resource":"*" } ] }

Exemple 3 : Permettre à un utilisateur d'effectuer les tâches courantes d'administrateur système ElastiCach.

Les tâches d'administrateur système courantes comprennent la modification des clusters de cache, des paramètres et des groupes de paramètres. Un administrateur système peut également obtenir des informations sur les événements ElastiCache. La politique suivante accorde à un utilisateur l'autorisation d'effectuer des actions ElastiCache pour ces tâches d'administrateur système courantes. Généralement, vous attachez ce type de politique d'autorisations au groupe d'administrateurs système.

{ "Version": "2012-10-17", "Statement":[{ "Sid": "ECAllowSpecific", "Effect":"Allow", "Action":[ "elasticache:ModifyCacheCluster", "elasticache:RebootCacheCluster", "elasticache:DescribeCacheClusters", "elasticache:DescribeEvents", "elasticache:ModifyCacheParameterGroup", "elasticache:DescribeCacheParameterGroups", "elasticache:DescribeCacheParameters", "elasticache:ResetCacheParameterGroup", "elasticache:DescribeEngineDefaultParameters"], "Resource":"*" } ] }

Exemple 4 : Permettre à un utilisateur d'accéder à toutes les Actions d'API ElastiCache

La politique suivante permet à un utilisateur d'accéder à toutes les actions ElastiCache. Nous vous conseillons d'accorder ce type de politique d'autorisations uniquement à un utilisateur administrateur.

{ "Version": "2012-10-17", "Statement":[{ "Sid": "ECAllowSpecific", "Effect":"Allow", "Action":[ "elasticache:*" ], "Resource":"*" } ] }

Exemple 5 : Permettre à un utilisateur d'appeler l'API IAM CreateServiceLinkedRole

La politique suivante permet à un utilisateur d'appeler l'API CreateServiceLinkedRole IAM. Nous vous conseillons d'accorder ce type de politique d'autorisation à l'utilisateur qui appelle les opérations de modification ElastiCache.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"CreateSLRAllows", "Effect":"Allow", "Action":[ "iam:CreateServiceLinkedRole" ], "Resource":"*", "Condition":{ "StringLike":{ "iam:AWSServiceName":"elasticache.amazonaws.com" } } } ] }