Gestion des stratégies utilisateur Elastic Beanstalk - AWS Elastic Beanstalk

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.

Gestion des stratégies utilisateur Elastic Beanstalk

AWS Elastic Beanstalk fournit deux politiques gérées qui vous permettent d'attribuer un accès complet ou un accès en lecture seule à toutes les ressources gérées par Elastic Beanstalk. Vous pouvez associer les politiques à des utilisateurs ou à des groupes AWS Identity and Access Management (IAM), ou à des rôles assumés par vos utilisateurs.

Stratégies utilisateur gérées
  • AdministratorAccess- AWSElasticBeanstalk — Donne à l'utilisateur les autorisations administratives complètes pour créer, modifier et supprimer des applications Elastic Beanstalk, des versions d'applications, des paramètres de configuration, des environnements et leurs ressources sous-jacentes. Pour consulter le contenu des politiques gérées, consultez la AWSElasticBeanstalk page AdministratorAccess- du Guide de référence des politiques AWS gérées.

  • AWSElasticBeanstalkReadOnly— Permet à l'utilisateur de visualiser les applications et les environnements, mais pas d'effectuer des opérations qui les modifient. Il fournit un accès en lecture seule à toutes les ressources Elastic Beanstalk, ainsi qu'aux autres ressources AWS récupérées par la console Elastic Beanstalk. Notez que l'accès en lecture seule ne permet pas d'effectuer des actions telles que le téléchargement des journaux Elastic Beanstalk en vue de les lire. Cela est dû au fait que les journaux sont indexés dans le compartiment Amazon S3, sur lequel Elastic Beanstalk demanderait une autorisation en écriture. Pour de plus amples informations sur l'activation de l'accès aux journaux Elastic Beanstalk, veuillez consulter l'exemple situé à la fin de cette rubrique. Pour consulter le contenu des politiques gérées, consultez la AWSElasticBeanstalkReadOnlypage du Guide de référence des politiques AWS gérées.

Important

Les stratégies gérées par Elastic Beanstalk ne fournissent pas d'autorisations granulaires : elles accordent toutes les autorisations potentiellement nécessaires à l'utilisation des applications Elastic Beanstalk. Dans certains cas, vous souhaiterez peut-être restreindre davantage les autorisations de nos politiques gérées. Pour un exemple d'un cas d'utilisation, voirEmpêcher l'accès aux compartiments Amazon S3 entre environnements.

Nos stratégies gérées ne couvrent pas non plus les autorisations relatives aux ressources personnalisées que vous pourriez ajouter à votre solution et qui ne sont pas gérées par Elastic Beanstalk. Pour implémenter des autorisations plus granulaires, des autorisations minimales requises ou des autorisations de ressources personnalisées, utilisez des stratégies personnalisées.

Politiques gérées par obsolètes

Auparavant, Elastic Beanstalk prenait en charge deux autres politiques utilisateur gérées, et. AWSElasticBeanstalkFullAccessAWSElasticBeanstalkReadOnlyAccess Nous prévoyons de retirer ces anciennes stratégies. Vous pouvez toujours les voir et les utiliser dans la console IAM. Néanmoins, nous vous recommandons de passer aux nouvelles stratégies utilisateur gérées et d'ajouter des stratégies personnalisées pour accorder des autorisations aux ressources personnalisées, le cas échéant.

Politiques d'intégration à d'autres services

Nous proposons également des politiques plus détaillées qui vous permettent d'intégrer votre environnement à d'autres services, si vous préférez les utiliser.

  • AWSElasticBeanstalkRoleCWL— Permet à un environnement de gérer les groupes de CloudWatch journaux Amazon Logs.

  • AWSElasticBeanstalkRoleRDS— Permet à un environnement d'intégrer une instance Amazon RDS.

  • AWSElasticBeanstalkRoleWorkerTier— Permet à un niveau d'environnement de travail de créer une table Amazon DynamoDB et une file d'attente Amazon SQS.

  • AWSElasticBeanstalkRoleECS— Permet à un environnement Docker multiconteneur de gérer les clusters Amazon ECS.

  • AWSElasticBeanstalkRoleCore— Autorise les opérations de base d'un environnement de service Web.

  • AWSElasticBeanstalkRoleSNS— Permet à un environnement d'activer l'intégration des rubriques Amazon SNS.

Pour consulter la source JSON d'une stratégie gérée spécifique, consultez le Guide de référence des politiques AWS gérées.

Contrôle de l'accès à l'aide de stratégies gérées

Vous pouvez utiliser des stratégies gérées pour accorder un accès complet ou en lecture seule à Elastic Beanstalk. Elastic Beanstalk met à jour ces stratégies automatiquement lorsque des autorisations supplémentaires sont nécessaires pour accéder aux nouvelles fonctionnalités.

Pour appliquer une stratégie gérée à des utilisateurs ou groupes IAM
  1. Ouvrez la page Stratégies dans la console IAM.

  2. Dans la zone de recherche, tapez AWSElasticBeanstalk pour filtrer les stratégies.

  3. Dans la liste des politiques, cochez la case à côté AWSElasticBeanstalkReadOnlyou AdministratorAccess- AWSElasticBeanstalk.

  4. Sélectionnez Policy Actions (Actions de politique), puis sélectionnez Attach (Attacher).

  5. Sélectionnez un ou plusieurs utilisateurs et groupes auxquelles attacher la stratégie. Vous pouvez utiliser le menu Filtre et la zone de recherche pour filtrer la liste des entités du principal.

  6. Choisissez Attach policy (Attacher une politique).

Création d'une stratégie utilisateur personnalisée

Vous pouvez créer votre propre stratégie IAM pour autoriser ou refuser des actions d'API propres à Elastic Beanstalk sur des ressources Elastic Beanstalk spécifique et pour contrôler l'accès aux ressources personnalisées qui ne sont pas gérées par Elastic Beanstalk. Pour en savoir plus sur l'association d'une stratégie à un utilisateur ou à un groupe, veuillez consulter la section Utilisation de stratégies du guide de l'utilisateur IAM. Pour en savoir plus sur la création d'une stratégie personnalisée, veuillez consulter la section Création de stratégies IAM du guide de l'utilisateur IAM.

Note

Vous pouvez limiter la façon dont un utilisateur interagit avec l'API Elastic Beanstalk. Toutefois, aucune méthode efficace ne peut empêcher les utilisateurs autorisés à créer les ressources sous-jacentes nécessaires de créer d'autres ressources dans Amazon EC2 et d'autres services.

Vous devez considérer ces stratégies comme un moyen efficace pour répartir les responsabilités Elastic Beanstalk, et non comme un moyen de sécuriser toutes les ressources sous-jacentes.

En novembre 2019, Elastic Beanstalk a publié la prise en charge des modèles de lancement Amazon EC2. Il s'agit d'un nouveau type de ressource que le groupe Auto Scaling de votre environnement peut utiliser pour lancer des instances Amazon EC2 ; il nécessite de nouvelles autorisations. La plupart des clients ne devraient pas être affectés, car les environnements peuvent toujours utiliser la ressource héritée, lancer des configurations, si votre stratégie utilisateur ne dispose pas des autorisations requises. Toutefois, si vous essayez d'utiliser une nouvelle fonctionnalité qui nécessite des modèles de lancement Amazon EC2 et que vous disposez d'une stratégie personnalisée, la création ou la mise à jour de votre environnement peut échouer. Dans ce cas, assurez-vous que votre stratégie personnalisée dispose des autorisations suivantes.

Autorisations requises pour les modèles de lancement Amazon EC2
  • EC2:CreateLaunchTemplate

  • EC2:CreateLaunchTemplateVersions

  • EC2:DeleteLaunchTemplate

  • EC2:DeleteLaunchTemplateVersions

  • EC2:DescribeLaunchTemplate

  • EC2:DescribeLaunchTemplateVersions

Une stratégie IAM contient des déclarations de stratégie décrivant les autorisations que vous souhaitez accorder. Lorsque vous créez une déclaration de stratégie pour Elastic Beanstalk, vous devez comprendre comment utiliser les quatre parties suivantes d'une déclaration de stratégie :

  • Effect indique s'il faut autoriser ou refuser les actions spécifiées dans la déclaration.

  • Action indique les opérations d'API que vous souhaitez contrôler. Par exemple, utilisez elasticbeanstalk:CreateEnvironment pour spécifier l'opération CreateEnvironment. Certaines opérations, telles que la création d'un environnement, nécessitent des autorisations supplémentaires pour effectuer ces actions. Pour plus d’informations, consultez Ressources et conditions pour les actions Elastic Beanstalk.

    Note

    Pour utiliser l'opération d'API UpdateTagsForResource, spécifiez l'une des deux actions virtuelles suivantes (ou les deux) au lieu du nom de l'opération d'API :

    elasticbeanstalk:AddTags

    Contrôle l'autorisation d'appeler UpdateTagsForResource et de transmettre la liste des balises à ajouter dans le paramètre TagsToAdd.

    elasticbeanstalk:RemoveTags

    Contrôle l'autorisation d'appeler UpdateTagsForResource et de transmettre une liste de clés de balises à supprimer dans le paramètre TagsToRemove.

  • Resource spécifie les ressources auxquelles vous souhaitez contrôler l'accès. Pour spécifier des ressources Elastic Beanstalk, répertoriez l'Amazon Resource Name (ARN) de chaque ressource.

  • (Facultatif) Condition indique les restrictions concernant l'autorisation accordée dans la déclaration. Pour plus d’informations, consultez Ressources et conditions pour les actions Elastic Beanstalk.

Les sections suivantes illustrent quelques cas dans lesquels vous pouvez envisager d'utiliser une stratégie d'utilisateur personnalisée.

Activation de la création d'un environnement Elastic Beanstalk limité

L'exemple de stratégie suivant permet à un utilisateur appliquant cette stratégie d'appeler l'action CreateEnvironment afin de créer un environnement dont le nom commence par Test, avec l'application et la version d'application spécifiées.

{ "Version": "2012-10-17", "Statement": [ { "Sid":"CreateEnvironmentPerm", "Action": [ "elasticbeanstalk:CreateEnvironment" ], "Effect": "Allow", "Resource": [ "arn:aws:elasticbeanstalk:us-east-2:123456789012:environment/My First Elastic Beanstalk Application/Test*" ], "Condition": { "StringEquals": { "elasticbeanstalk:InApplication": ["arn:aws:elasticbeanstalk:us-east-2:123456789012:application/My First Elastic Beanstalk Application"], "elasticbeanstalk:FromApplicationVersion": ["arn:aws:elasticbeanstalk:us-east-2:123456789012:applicationversion/My First Elastic Beanstalk Application/First Release"] } } }, { "Sid":"AllNonResourceCalls", "Action":[ "elasticbeanstalk:CheckDNSAvailability", "elasticbeanstalk:CreateStorageLocation" ], "Effect":"Allow", "Resource":[ "*" ] } ] }

La stratégie ci-dessus montre comment accorder un accès limité aux opérations Elastic Beanstalk. Pour lancer réellement un environnement, l'utilisateur doit être autorisé à créer les AWS ressources qui alimentent également l'environnement. Par exemple, la stratégie suivante accorde l'accès à l'ensemble de ressources par défaut pour un environnement de serveur web :

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:*", "ecs:*", "elasticloadbalancing:*", "autoscaling:*", "cloudwatch:*", "s3:*", "sns:*", "cloudformation:*", "sqs:*" ], "Resource": "*" } ] }

Activation de l'accès aux journaux Elastic Beanstalk stockés dans Amazon S3

La stratégie de l'exemple suivant permet à un utilisateur d'extraire des journaux Elastic Beanstalk, de les afficher dans Amazon S3 et de les récupérer.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:DeleteObject", "s3:GetObjectAcl", "s3:PutObjectAcl" ], "Effect": "Allow", "Resource": "arn:aws:s3:::elasticbeanstalk-*" } ] }
Note

Pour limiter ces autorisations aux chemins d'accès aux journaux, utilisez le format de ressource suivant.

"arn:aws:s3:::elasticbeanstalk-us-east-2-123456789012/resources/environments/logs/*"

Activation de la gestion d'une application Elastic Beanstalk spécifique

L'exemple de stratégie suivant permet à un utilisateur de gérer des environnements et d'autres ressources dans une application Elastic Beanstalk spécifique. La stratégie refuse les actions Elastic Beanstalk sur les ressources des autres applications, et refuse également la création et la suppression des applications Elastic Beanstalk.

Note

La stratégie ne refuse pas l'accès aux ressources par le biais d'autres services. Elle représente un moyen efficace pour répartir les responsabilités de la gestion des applications Elastic Beanstalk entre les différents utilisateurs, et non un moyen de sécuriser les ressources sous-jacentes.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "elasticbeanstalk:CreateApplication", "elasticbeanstalk:DeleteApplication" ], "Resource": [ "*" ] }, { "Effect": "Deny", "Action": [ "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:CreateConfigurationTemplate", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplicationVersion", "elasticbeanstalk:DeleteConfigurationTemplate", "elasticbeanstalk:DeleteEnvironmentConfiguration", "elasticbeanstalk:DescribeApplicationVersions", "elasticbeanstalk:DescribeConfigurationOptions", "elasticbeanstalk:DescribeConfigurationSettings", "elasticbeanstalk:DescribeEnvironmentResources", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DescribeEvents", "elasticbeanstalk:DeleteEnvironmentConfiguration", "elasticbeanstalk:RebuildEnvironment", "elasticbeanstalk:RequestEnvironmentInfo", "elasticbeanstalk:RestartAppServer", "elasticbeanstalk:RetrieveEnvironmentInfo", "elasticbeanstalk:SwapEnvironmentCNAMEs", "elasticbeanstalk:TerminateEnvironment", "elasticbeanstalk:UpdateApplicationVersion", "elasticbeanstalk:UpdateConfigurationTemplate", "elasticbeanstalk:UpdateEnvironment", "elasticbeanstalk:RetrieveEnvironmentInfo", "elasticbeanstalk:ValidateConfigurationSettings" ], "Resource": [ "*" ], "Condition": { "StringNotEquals": { "elasticbeanstalk:InApplication": [ "arn:aws:elasticbeanstalk:us-east-2:123456789012:application/myapplication" ] } } } ] }