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á.
Esta seção aborda um caso de uso para controlar as permissões de usuário para ações do Elastic Beanstalk que acessam recursos específicos do Elastic Beanstalk. Apresentaremos as políticas de exemplo compatíveis com o caso de uso. Para obter mais informações sobre os recursos do Elastic Beanstalk, consulte Criar uma política de usuário personalizada. Para obter informações sobre como anexar políticas a usuários e grupos, acesse Gerenciamento de políticas do IAM em Uso do AWS Identity and Access Management.
No nosso caso de uso, Exemplo Corp. é uma pequena empresa de consultoria que desenvolve aplicativos para dois clientes diferentes. John é o gerente de desenvolvimento que supervisiona o desenvolvimento das duas aplicações do Elastic Beanstalk, app1 e app2. John faz o desenvolvimento e alguns testes nos dois aplicativos, e apenas ele pode atualizar o ambiente de produção dos dois aplicativos. Estas são as permissões de que ele precisa para o app1 e o app2:
-
Visualização do aplicativo, versões de aplicativos, ambientes e modelos de configuração
-
Criação das versões do aplicativo e implantação no ambiente de preparação
-
Atualização do ambiente de produção
-
Criação e encerramento de ambientes
Jill é uma testadora que precisa de acesso para visualizar os seguintes recursos a fim de monitorar e testar os dois aplicativos: aplicativos, versões de aplicativos, ambientes e modelos de configuração. No entanto, ela não deve ser capaz de fazer alterações em nenhum recurso do Elastic Beanstalk.
Jack é o desenvolvedor do app1 que precisa de acesso para visualizar todos os recursos do app1 e também precisa criar versões de aplicativos para o app1 e implantá-las no ambiente de preparação.
Judy é a administradora da conta da AWS para a Exemplo Corp. Ela já criou usuários do IAM para John, Jill e Jack, e anexa as políticas a seguir a esses usuários para conceder as permissões apropriadas para os aplicativos app1 e app2.
Exemplo 1: John: gerente de desenvolvimento para app1, app2
Dividimos a política de John em três políticas separadas para facilitar a leitura e o gerenciamento. Juntas, elas oferecem a John as permissões de que precisa para executar as ações de desenvolvimento, teste e implantação nos dois aplicativos.
A primeira política especifica ações para Auto Scaling, Amazon S3, Amazon EC2, CloudWatch, Amazon SNS, Elastic Load Balancing, Amazon RDS e AWS CloudFormation. O Elastic Beanstalk depende desses serviços adicionais para provisionar recursos subjacentes ao criar um ambiente.
Observe que esta política é um exemplo. Ela fornece um amplo conjunto de permissões para produtos da AWS que o Elastic Beanstalk usa para gerenciar aplicações e ambientes. Por exemplo, ec2:*
permite que um usuário do IAM realize qualquer ação em qualquer recurso do Amazon EC2 na conta da AWS. Essas permissões não estão limitadas aos recursos utilizados com o Elastic Beanstalk. Como uma das melhores práticas, você deve conceder a indivíduos apenas as permissões de que precisam para executar suas tarefas.
{
"Version": "2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Action":[
"ec2:*",
"ecs:*",
"ecr:*",
"elasticloadbalancing:*",
"autoscaling:*",
"cloudwatch:*",
"s3:*",
"sns:*",
"cloudformation:*",
"dynamodb:*",
"rds:*",
"sqs:*",
"logs:*",
"iam:GetPolicyVersion",
"iam:GetRole",
"iam:PassRole",
"iam:ListRolePolicies",
"iam:ListAttachedRolePolicies",
"iam:ListInstanceProfiles",
"iam:ListRoles",
"iam:ListServerCertificates",
"acm:DescribeCertificate",
"acm:ListCertificates",
"codebuild:CreateProject",
"codebuild:DeleteProject",
"codebuild:BatchGetBuilds",
"codebuild:StartBuild"
],
"Resource":"*"
}
]
}
A segunda política especifica as ações do Elastic Beanstalk que John tem permissão para executar nos recursos do app1 e do app2. A declaração AllCallsInApplications
permite que todas as ações do Elastic Beanstalk ("elasticbeanstalk:*"
) sejam realizadas em todos os recursos no app1 e no app2 (por exemplo, elasticbeanstalk:CreateEnvironment
). A declaração AllCallsOnApplications
permite todas as ações do Elastic Beanstalk ("elasticbeanstalk:*"
) nos recursos do app1 e do app2 (por exemplo, elasticbeanstalk:DescribeApplications
, elasticbeanstalk:UpdateApplication
, etc.). A declaração AllCallsOnSolutionStacks
permite todas as ações do Elastic Beanstalk ("elasticbeanstalk:*"
) para os recursos de pilha de solução (por exemplo, elasticbeanstalk:ListAvailableSolutionStacks
).
{
"Version": "2012-10-17",
"Statement":[
{
"Sid":"AllCallsInApplications",
"Action":[
"elasticbeanstalk:*"
],
"Effect":"Allow",
"Resource":[
"*"
],
"Condition":{
"StringEquals":{
"elasticbeanstalk:InApplication":[
"arn:aws:elasticbeanstalk:us-east-2:123456789012:application/app1",
"arn:aws:elasticbeanstalk:us-east-2:123456789012:application/app2"
]
}
}
},
{
"Sid":"AllCallsOnApplications",
"Action":[
"elasticbeanstalk:*"
],
"Effect":"Allow",
"Resource":[
"arn:aws:elasticbeanstalk:us-east-2:123456789012:application/app1",
"arn:aws:elasticbeanstalk:us-east-2:123456789012:application/app2"
]
},
{
"Sid":"AllCallsOnSolutionStacks",
"Action":[
"elasticbeanstalk:*"
],
"Effect":"Allow",
"Resource":[
"arn:aws:elasticbeanstalk:us-east-2::solutionstack/*"
]
}
]
}
A terceira política especifica as ações do Elastic Beanstalk para as quais a segunda política precisa de permissões para concluir essas ações do Elastic Beanstalk. A instrução AllNonResourceCalls
permite a ação elasticbeanstalk:CheckDNSAvailability
, que é necessária para chamar elasticbeanstalk:CreateEnvironment
e outras ações. Ela também permite a ação elasticbeanstalk:CreateStorageLocation
, que é necessária para elasticbeanstalk:CreateApplication
, elasticbeanstalk:CreateEnvironment
e outras ações.
{
"Version": "2012-10-17",
"Statement":[
{
"Sid":"AllNonResourceCalls",
"Action":[
"elasticbeanstalk:CheckDNSAvailability",
"elasticbeanstalk:CreateStorageLocation"
],
"Effect":"Allow",
"Resource":[
"*"
]
}
]
}
Exemplo 2: Jill: testadora do app1, app2
Dividimos a política de Jill em três separadas para facilitar a leitura e o gerenciamento. Juntas, elas oferecem a Jill as permissões de que precisa para executar as ações de teste e monitoramento nos dois aplicativos.
A primeira política especifica as ações Describe*
, List*
e Get*
no Auto Scaling, Amazon S3, Amazon EC2, CloudWatch, Amazon SNS, Elastic Load Balancing, Amazon RDS e AWS CloudFormation (para tipos de contêiner não herdados) para que as ações do Elastic Beanstalk possam recuperar as informações sobre os recursos subjacentes das aplicações app1 e app2.
{
"Version": "2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Action":[
"ec2:Describe*",
"elasticloadbalancing:Describe*",
"autoscaling:Describe*",
"cloudwatch:Describe*",
"cloudwatch:List*",
"cloudwatch:Get*",
"s3:Get*",
"s3:List*",
"sns:Get*",
"sns:List*",
"rds:Describe*",
"cloudformation:Describe*",
"cloudformation:Get*",
"cloudformation:List*",
"cloudformation:Validate*",
"cloudformation:Estimate*"
],
"Resource":"*"
}
]
}
A segunda política especifica as ações do Elastic Beanstalk que Jill tem permissão para executar nos recursos do app1 e do app2. A instrução AllReadCallsInApplications
permite que ela chame as ações Describe*
e as ações de informações do ambiente. A instrução AllReadCallsOnApplications
permite que ela chame as ações DescribeApplications
and DescribeEvents
nos recursos de aplicativos do app1 e do app2. A instrução AllReadCallsOnSolutionStacks
permite visualizar as ações que envolvem recursos de pilha de soluções (ListAvailableSolutionStacks
, DescribeConfigurationOptions
e ValidateConfigurationSettings
).
{
"Version": "2012-10-17",
"Statement":[
{
"Sid":"AllReadCallsInApplications",
"Action":[
"elasticbeanstalk:Describe*",
"elasticbeanstalk:RequestEnvironmentInfo",
"elasticbeanstalk:RetrieveEnvironmentInfo"
],
"Effect":"Allow",
"Resource":[
"*"
],
"Condition":{
"StringEquals":{
"elasticbeanstalk:InApplication":[
"arn:aws:elasticbeanstalk:us-east-2:123456789012:application/app1",
"arn:aws:elasticbeanstalk:us-east-2:123456789012:application/app2"
]
}
}
},
{
"Sid":"AllReadCallsOnApplications",
"Action":[
"elasticbeanstalk:DescribeApplications",
"elasticbeanstalk:DescribeEvents"
],
"Effect":"Allow",
"Resource":[
"arn:aws:elasticbeanstalk:us-east-2:123456789012:application/app1",
"arn:aws:elasticbeanstalk:us-east-2:123456789012:application/app2"
]
},
{
"Sid":"AllReadCallsOnSolutionStacks",
"Action":[
"elasticbeanstalk:ListAvailableSolutionStacks",
"elasticbeanstalk:DescribeConfigurationOptions",
"elasticbeanstalk:ValidateConfigurationSettings"
],
"Effect":"Allow",
"Resource":[
"arn:aws:elasticbeanstalk:us-east-2::solutionstack/*"
]
}
]
}
A terceira política especifica as ações do Elastic Beanstalk para as quais a segunda política precisa de permissões para concluir essas ações do Elastic Beanstalk. A instrução AllNonResourceCalls
permite a ação elasticbeanstalk:CheckDNSAvailability
, que é necessária para chamar ações de visualização.
{
"Version": "2012-10-17",
"Statement":[
{
"Sid":"AllNonResourceCalls",
"Action":[
"elasticbeanstalk:CheckDNSAvailability"
],
"Effect":"Allow",
"Resource":[
"*"
]
}
]
}
Exemplo 3: Jack: desenvolvedor do app1
Dividimos a política de Jack em três separadas para facilitar a leitura e o gerenciamento. Juntas, elas oferecem a Jack as permissões de que precisa para executar as ações de teste, monitoramento e implantação no recurso do app1.
A primeira política especifica as ações em Auto Scaling, Amazon S3, Amazon EC2, CloudWatch, Amazon SNS, Elastic Load Balancing, Amazon RDS e AWS CloudFormation (para tipos de contêiner não herdados) para que as ações do Elastic Beanstalk possam visualizar e trabalhar com os recursos subjacentes da app1. Para obter uma lista de tipos de contêiner não legados compatíveis, consulte Por que algumas versões de plataforma são marcadas como legadas?.
Observe que esta política é um exemplo. Ela fornece um amplo conjunto de permissões para produtos da AWS que o Elastic Beanstalk usa para gerenciar aplicações e ambientes. Por exemplo, ec2:*
permite que um usuário do IAM realize qualquer ação em qualquer recurso do Amazon EC2 na conta da AWS. Essas permissões não estão limitadas aos recursos utilizados com o Elastic Beanstalk. Como uma das melhores práticas, você deve conceder a indivíduos apenas as permissões de que precisam para executar suas tarefas.
{
"Version": "2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Action":[
"ec2:*",
"elasticloadbalancing:*",
"autoscaling:*",
"cloudwatch:*",
"s3:*",
"sns:*",
"rds:*",
"cloudformation:*"
],
"Resource":"*"
}
]
}
A segunda política especifica as ações do Elastic Beanstalk que Jack tem permissão para executar no recurso do app1.
{
"Version": "2012-10-17",
"Statement":[
{
"Sid":"AllReadCallsAndAllVersionCallsInApplications",
"Action":[
"elasticbeanstalk:Describe*",
"elasticbeanstalk:RequestEnvironmentInfo",
"elasticbeanstalk:RetrieveEnvironmentInfo",
"elasticbeanstalk:CreateApplicationVersion",
"elasticbeanstalk:DeleteApplicationVersion",
"elasticbeanstalk:UpdateApplicationVersion"
],
"Effect":"Allow",
"Resource":[
"*"
],
"Condition":{
"StringEquals":{
"elasticbeanstalk:InApplication":[
"arn:aws:elasticbeanstalk:us-east-2:123456789012:application/app1"
]
}
}
},
{
"Sid":"AllReadCallsOnApplications",
"Action":[
"elasticbeanstalk:DescribeApplications",
"elasticbeanstalk:DescribeEvents"
],
"Effect":"Allow",
"Resource":[
"arn:aws:elasticbeanstalk:us-east-2:123456789012:application/app1"
]
},
{
"Sid":"UpdateEnvironmentInApplications",
"Action":[
"elasticbeanstalk:UpdateEnvironment"
],
"Effect":"Allow",
"Resource":[
"arn:aws:elasticbeanstalk:us-east-2:123456789012:environment/app1/app1-staging*"
],
"Condition":{
"StringEquals":{
"elasticbeanstalk:InApplication":[
"arn:aws:elasticbeanstalk:us-east-2:123456789012:application/app1"
]
},
"StringLike":{
"elasticbeanstalk:FromApplicationVersion":[
"arn:aws:elasticbeanstalk:us-east-2:123456789012:applicationversion/app1/*"
]
}
}
},
{
"Sid":"AllReadCallsOnSolutionStacks",
"Action":[
"elasticbeanstalk:ListAvailableSolutionStacks",
"elasticbeanstalk:DescribeConfigurationOptions",
"elasticbeanstalk:ValidateConfigurationSettings"
],
"Effect":"Allow",
"Resource":[
"arn:aws:elasticbeanstalk:us-east-2::solutionstack/*"
]
}
]
}
A terceira política especifica as ações do Elastic Beanstalk para as quais a segunda política precisa de permissões para concluir essas ações do Elastic Beanstalk. A instrução AllNonResourceCalls
permite a ação elasticbeanstalk:CheckDNSAvailability
, que é necessária para chamar elasticbeanstalk:CreateEnvironment
e outras ações. Ela também permite a ação elasticbeanstalk:CreateStorageLocation
, que é necessária para elasticbeanstalk:CreateEnvironment
e outras ações.
{
"Version": "2012-10-17",
"Statement":[
{
"Sid":"AllNonResourceCalls",
"Action":[
"elasticbeanstalk:CheckDNSAvailability",
"elasticbeanstalk:CreateStorageLocation"
],
"Effect":"Allow",
"Resource":[
"*"
]
}
]
}