Especificação de permissões para aplicativos executados em instâncias 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á.

Especificação de permissões para aplicativos executados em instâncias 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 EC2 instâncias da Amazon da sua pilha precisarem acessar outros AWS recursos, como buckets do Amazon S3, eles deverão 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 IAM função. Os aplicativos em execução na instância podem assumir essa função para acessar AWS recursos, sujeitos às permissões concedidas pela política da função. Para obter mais informações sobre como um aplicativo assume uma função, consulte Assumindo a função usando uma API chamada.

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 AWS recursos.

{ "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 no IAMconsole, especifique o tipo de EC2 função da Amazon em AWSService Roles 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, você deve usar o IAMconsole ou API anexar 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 amzn-s3-demo-bucket. Substituir region e amzn-s3-demo-bucket com valores apropriados à sua configuração.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:*", "Resource": "arn:aws:s3:region::amzn-s3-demo-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 as AWS OpsWorks pilhas API de uma EC2 instância, a política deve permitir a iam:PassRole ação, além das ações apropriadas para AWS OpsWorks pilhas e outros AWS serviços. 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 as AWS OpsWorks pilhasAPI, consulte AWS OpsWorks APIReferência.

Veja a seguir um exemplo de uma IAM política que permite que você chame qualquer ação do AWS OpsWorks Stacks de uma EC2 instância, bem como qualquer ação da 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 o uso de funções em uma EC2 instância para obter permissões, consulte Conceder acesso a AWS recursos para aplicativos executados em EC2 instâncias da Amazon no Guia do AWS Identity and Access Management usuário.