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á.
Especificando permissões para aplicativos em execução em instâncias do EC2
Importante
O AWS OpsWorks Stacks serviço chegou ao fim da vida útil em 26 de maio de 2024 e foi desativado para clientes novos e existentes. É altamente recomendável que os clientes migrem suas cargas de trabalho para outras soluções o mais rápido possível. Se você tiver dúvidas sobre migração, entre em contato com a AWS Support equipe no AWS re:POST
Se os aplicativos em execução nas instâncias do Amazon EC2 de sua pilha precisarem acessar outros recursos da AWS, como buckets do Amazon S3, eles devem ter as permissões apropriadas. Para outorgar essas permissões, deve-se utilizar um perfil de instância. Você pode especificar um perfil de instância para cada instância ao criar uma pilha de AWS OpsWorks pilhas.
![Opção Advanced na página Add Stack.](images/add-stack-instanceproflie.png)
Para especificar um perfil para instâncias de camada, edite as configurações de camada.
O perfil da instância especifica uma função da IAM. Os aplicativos em execução na instância podem assumir essa função para acessar os recursos da AWS, sujeitos a permissões concedidas pela política de atribuição. Para obter mais informações sobre como um aplicativo assume uma função, consulte Assumir a função usando uma chamada de API.
Um perfil de instância pode ser criado em qualquer uma das seguintes formas:
-
Use o console de IAM ou a API para criar um perfil.
Para obter mais informações, consulte Funções (delegação and federação).
-
Use um AWS CloudFormation modelo para criar um perfil.
Para alguns exemplos de como incluir recursos de IAM em um modelo, consulte Snippets de modelos do Identity and Access Management (IAM).
Um perfil de instância deve ter uma relação de confiança e uma política anexada que conceda permissões para acessar os recursos da AWS.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
O perfil da instância deve ter essa relação de confiança para que o AWS OpsWorks Stacks atue em seu nome. Se você usar a função de serviço padrão, não modifique a relação de confiança. Se você estiver criando uma função de serviço personalizado, especifique a relação de confiança como a seguir:
-
Se você estiver usando o assistente Create Role (Criar função) no console do IAM
, especifique o tipo de função Amazon EC2 em AWS Service Roles (Funções de serviço da AWS) na segunda página do assistente. -
Se você estiver usando um AWS CloudFormation modelo, poderá adicionar algo como o seguinte à seção Recursos do seu modelo.
"Resources": { "OpsWorksEC2Role": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ec2.amazonaws.com" ] }, "Action": [ "sts:AssumeRole" ] } ] }, "Path": "/" } }, "RootInstanceProfile": { "Type": "AWS::IAM::InstanceProfile", "Properties": { "Path": "/", "Roles": [ { "Ref": "OpsWorksEC2Role" } ] } } }
Quando você criar seu perfil de instância, pode-se anexar uma política apropriada para a função do perfil nesse mesmo momento. Depois de criar a pilha, use o console do IAMregion
e DOC-EXAMPLE-BUCKET por valores apropriados à sua configuração.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:*", "Resource": "arn:aws:s3:
region
::DOC-EXAMPLE-BUCKET/*" } ] }
Para obter um exemplo de como criar e usar um perfil de instância, consulte Usar um bucket do Amazon S3.
Se seu aplicativo usa um perfil de instância para chamar a API AWS OpsWorks Stacks de uma instância do EC2, a política deve permitir a iam:PassRole
ação além das ações apropriadas para AWS OpsWorks Stacks e outros serviços da AWS. A permissão iam:PassRole
autoriza o AWS OpsWorks Stacks; a assumir a função do serviço em seu nome. Para obter mais informações sobre a API AWS OpsWorks Stacks, consulte AWS OpsWorks API Reference.
Veja a seguir um exemplo de uma política do IAM que permite que você chame qualquer ação AWS OpsWorks Stacks de uma instância do EC2, bem como qualquer ação do Amazon EC2 ou do Amazon S3.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:*", "s3:*", "opsworks:*", "iam:PassRole" ], "Resource": "arn:aws:ec2:
region
:account_id:
instance/*", "Condition": { "StringEquals": { "iam:PassedToService": "opsworks.amazonaws.com" } } } ] }
nota
Se você não permitiriam:PassRole
, qualquer tentativa de chamar uma ação do AWS OpsWorks Stacks falhará com um erro como o seguinte:
User: arn:aws:sts::123456789012:federated-user/Bob is not authorized to perform: iam:PassRole on resource: arn:aws:sts::123456789012:role/OpsWorksStackIamRole
Para obter mais informações sobre como usar funções em uma instância do EC2 para permissões, consulte Conceder acesso aos recursos da AWS a aplicativos executados em instâncias do Amazon EC2 no Guia do usuário do AWS Identity and Access Management .