Gerenciar políticas de usuário do Elastic Beanstalk - AWS Elastic Beanstalk

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Gerenciar políticas de usuário do Elastic Beanstalk

AWS Elastic Beanstalk fornece duas políticas gerenciadas que permitem que você atribua acesso total ou acesso somente de leitura a todos os recursos gerenciados pelo Elastic Beanstalk. Você pode anexar as políticas a usuários ou grupos AWS Identity and Access Management (IAM) ou a funções assumidas por seus usuários.

Políticas de usuário gerenciadas
  • AdministratorAccess- AWSElasticBeanstalk — Concede ao usuário permissões administrativas completas para criar, modificar e excluir aplicativos, versões de aplicativos, definições de configuração, ambientes e seus recursos subjacentes do Elastic Beanstalk. Para ver o conteúdo da política gerenciada, consulte a AWSElasticBeanstalk página AdministratorAccess- no Guia de referência da política AWS gerenciada.

  • AWSElasticBeanstalkReadOnly— Permite que o usuário visualize aplicativos e ambientes, mas não realize operações que os modifiquem. Ele fornece acesso somente de leitura a todos os recursos do Elastic Beanstalk e a outros recursos AWS que o console do Elastic Beanstalk recupera. Observe que o acesso somente leitura não permite ações como fazer download de logs do Elastic Beanstalk para que você possa lê-los. Isso ocorre porque os logs são preparados no bucket do Amazon S3, em que o Elastic Beanstalk exige permissão para gravação. Consulte o exemplo no fim deste tópico para obter informações sobre como habilitar o acesso aos logs do Elastic Beanstalk. Para ver o conteúdo da política gerenciada, consulte a AWSElasticBeanstalkReadOnlypágina no Guia de referência de políticas AWS gerenciadas.

Importante

As políticas gerenciadas do Elastic Beanstalk não fornecem permissões granulares, elas concedem todas as permissões que são potencialmente necessárias para trabalhar com aplicações Elastic Beanstalk. Em alguns casos, talvez você queira restringir ainda mais as permissões de nossas políticas gerenciadas. Para ver um exemplo de um caso de uso, consulteImpedindo o acesso entre ambientes cruzados ao bucket do Amazon S3.

Nossas políticas gerenciadas também não abrangem permissões para recursos personalizados que você pode adicionar à sua solução e que não são gerenciados pelo Elastic Beanstalk. Para implementar permissões mais granulares, permissões mínimas necessárias ou permissões de recursos personalizadas, use políticas personalizadas.

Políticas gerenciadas pela obsoletas

Anteriormente, o Elastic Beanstalk dava suporte a duas outras políticas de usuários gerenciados, e. AWSElasticBeanstalkFullAccessAWSElasticBeanstalkReadOnlyAccess Planejamos aposentar essas políticas anteriores. Talvez você ainda consiga vê-las e usá-las no console do IAM. No entanto, recomendamos que você faça a transição para o uso das novas políticas de usuário gerenciadas e adicione políticas personalizadas para conceder permissões a recursos personalizados, se você tiver algum.

Políticas de integração com outros serviços

Também fornecemos políticas mais granulares que permitem integrar seu ambiente a outros serviços, se você preferir usá-los.

  • AWSElasticBeanstalkRoleCWL— Permite que um ambiente gerencie grupos de CloudWatch logs do Amazon Logs.

  • AWSElasticBeanstalkRoleRDS— Permite que um ambiente integre uma instância do Amazon RDS.

  • AWSElasticBeanstalkRoleWorkerTier— Permite que um nível de ambiente de trabalho crie uma tabela do Amazon DynamoDB e uma fila do Amazon SQS.

  • AWSElasticBeanstalkRoleECS— Permite que um ambiente Docker de vários contêineres gerencie clusters do Amazon ECS.

  • AWSElasticBeanstalkRoleCore— Permite as operações principais de um ambiente de serviços web.

  • AWSElasticBeanstalkRoleSNS— Permite que um ambiente habilite a integração de tópicos do Amazon SNS.

Para ver a fonte JSON de uma política gerenciada específica, consulte o Guia de referência de políticas AWS gerenciadas.

Controlar o acesso com políticas gerenciadas

É possível usar as políticas gerenciadas para conceder acesso total ou somente leitura ao Elastic Beanstalk. O Elastic Beanstalk atualiza essas políticas automaticamente quando outras permissões são necessárias para acessar novos recursos.

Como aplicar uma política gerenciada a grupos ou usuários do IAM
  1. Abra a página Policies (Políticas) no console do IAM.

  2. Na caixa de pesquisa, digite AWSElasticBeanstalk para filtrar as políticas.

  3. Na lista de políticas, marque a caixa de seleção ao lado de AWSElasticBeanstalkReadOnlyou AdministratorAccess- AWSElasticBeanstalk.

  4. Selecione Ações da política e escolha Anexar.

  5. Selecione um ou mais usuários e grupos aos quais associar a política. Você pode usar o menu Filter (Filtro) e a caixa de pesquisa para filtrar a lista de entidades principais.

  6. Escolha Anexar política.

Criar uma política de usuário personalizada

Você pode criar sua própria política do IAM para permitir ou negar ações específicas da API do Elastic Beanstalk em recursos específicos do Elastic Beanstalk e controlar o acesso a recursos personalizados que não são gerenciados pelo Elastic Beanstalk. Para obter mais informações sobre como anexar uma política a um usuário ou grupo, consulte Trabalhar com políticas no Guia do usuário do IAM. Para obter detalhes sobre a criação de uma política personalizada, consulte Criar políticas do IAM no Guia do usuário do IAM.

nota

Embora seja possível restringir como um usuário interage com as APIs do Elastic Beanstalk, atualmente não existe uma forma eficiente para impedir que os usuários com permissão para criar os recursos subjacentes necessários criem outros recursos no Amazon EC2 e em outros serviços.

Considere essas políticas como uma forma eficiente para distribuir as responsabilidades do Elastic Beanstalk, e não como uma maneira de proteger todos os recursos subjacentes.

Em novembro de 2019, o Elastic Beanstalk lançou suporte para modelos de execução do Amazon EC2. Trata-se de um novo tipo de recurso que o grupo de Auto Scaling do ambiente pode usar para executar instâncias do Amazon EC2 e requer novas permissões. A maioria dos clientes não deve ser afetada, pois os ambientes ainda podem usar o recurso legado e as configurações de execução, se sua política de usuário não tiver as permissões necessárias. No entanto, se você estiver tentando usar um novo recurso que requer modelos de execução do Amazon EC2 e tiver uma política personalizada, a criação ou a atualização do ambiente poderá falhar. Nesse caso, verifique se sua política personalizada tem as seguintes permissões.

Permissões necessárias para modelos de execução do Amazon EC2
  • EC2:CreateLaunchTemplate

  • EC2:CreateLaunchTemplateVersions

  • EC2:DeleteLaunchTemplate

  • EC2:DeleteLaunchTemplateVersions

  • EC2:DescribeLaunchTemplate

  • EC2:DescribeLaunchTemplateVersions

Uma política do IAM contém declarações que descrevem as permissões a serem concedidas. Ao criar uma declaração de política para o Elastic Beanstalk, você precisa entender como usar as seguintes quatro partes:

  • Efeito especifica se é para permitir ou negar as ações na declaração.

  • Ação especifica as operações da API que você deseja controlar. Por exemplo, use elasticbeanstalk:CreateEnvironment para especificar a operação CreateEnvironment. Algumas operações, como criação de ambiente, exigem permissões adicionais para executar essas ações. Para ter mais informações, consulte Recursos e condições para ações do Elastic Beanstalk.

    nota

    Para usar a operação de API UpdateTagsForResource, especifique uma das duas ações virtuais a seguir (ou ambas) em vez do nome de operação da API:

    elasticbeanstalk:AddTags

    Controla a permissão para chamar UpdateTagsForResource e passar uma lista de tags a serem adicionadas ao parâmetro TagsToAdd.

    elasticbeanstalk:RemoveTags

    Controla a permissão para chamar UpdateTagsForResource e passar uma lista de chaves de tags a serem removidas do parâmetro TagsToRemove.

  • Recurso especifica os recursos aos quais você deseja controlar o acesso. Para especificar recursos do Elastic Beanstalk, liste o Nome de recurso da Amazon (ARN) de cada recurso.

  • (opcional) Condição especifica restrições sobre a permissão concedida na declaração. Para ter mais informações, consulte Recursos e condições para ações do Elastic Beanstalk.

As seções a seguir demonstram alguns casos em que você pode considerar uma política de usuário personalizada.

Habilitar a criação limitada do ambiente do Elastic Beanstalk

A política no exemplo a seguir permite que um usuário chame a ação CreateEnvironment para criar um ambiente cujo nome começa com Test com o aplicativo especificado e a versão do aplicativo.

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

A política acima mostra como conceder acesso limitado às operações do Elastic Beanstalk. Para realmente iniciar um ambiente, o usuário também deve ter permissão para criar os AWS recursos que alimentam o ambiente. Por exemplo, a seguinte política concede acesso ao conjunto padrão de recursos para um ambiente de servidor Web:

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

Habilitar o acesso aos logs do Elastic Beanstalk armazenados no Amazon S3

A política no exemplo a seguir permite que um usuário extraia logs do Elastic Beanstalk, prepare-os no Amazon S3 e os recupere.

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

Para restringir essas permissões a somente caminho de logs, use o seguinte formato de recursos.

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

Permitir o gerenciamento de uma aplicação específica do Elastic Beanstalk

A política no exemplo a seguir permite que um usuário gerencie ambientes e outros recursos dentro de uma aplicação específica do Elastic Beanstalk. A política nega ações do Elastic Beanstalk nos recursos de outras aplicações e também nega a criação e exclusão de aplicações do Elastic Beanstalk.

nota

A política não nega acesso a nenhum recurso por meio de outros serviços. Ela se revela uma forma eficiente de distribuir responsabilidades para gerenciar aplicações do Elastic Beanstalk entre diferentes usuários, e não para proteger os recursos subjacentes.

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