Especificando permissões para aplicativos em execução em instâncias do EC2 - AWS OpsWorks

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 ou por meio do Premium AWS Support.

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.

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:

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 IAM ou a API para associar uma política apropriada à função do perfil. Por exemplo, a política a seguir concede acesso total a todos os objetos no bucket do Amazon S3 chamado DOC-EXAMPLE-BUCKET. Substitua region 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 .