Como o App Runner funciona com o IAM - AWS App Runner

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á.

Como o App Runner funciona com o IAM

Antes de usar o IAM para gerenciar o acesso AWS App Runner, você deve entender quais recursos do IAM estão disponíveis para uso com o App Runner. Para ter uma visão geral de como o App Runner e outros AWS serviços funcionam com o IAM, consulte AWS Serviços que funcionam com o IAM no Guia do usuário do IAM.

Para outros tópicos de segurança do App Runner, consulteSegurança no App Runner.

Políticas baseadas em identidade do App Runner

Com as políticas baseadas em identidade do IAM, é possível especificar ações ou recursos permitidos ou negados, assim como as condições sob as quais as ações são permitidas ou negadas. O App Runner oferece suporte a ações, recursos e chaves de condição específicos. Para conhecer todos os elementos usados em uma política JSON, consulte Referência de elementos de política JSON do IAM no Guia do usuário do IAM.

Ações

Os administradores podem usar políticas AWS JSON para especificar quem tem acesso ao quê. Ou seja, qual entidade principal pode executar ações em quais recursos, e em que condições.

O elemento Action de uma política JSON descreve as ações que você pode usar para permitir ou negar acesso em uma política. As ações de política geralmente têm o mesmo nome da operação de AWS API associada. Existem algumas exceções, como ações somente de permissão, que não têm uma operação de API correspondente. Algumas operações também exigem várias ações em uma política. Essas ações adicionais são chamadas de ações dependentes.

Incluem ações em uma política para conceder permissões para executar a operação associada.

As ações de política no App Runner usam o seguinte prefixo antes da ação:. apprunner: Por exemplo, para conceder permissão a alguém para executar uma instância do Amazon EC2 com a operação da API RunInstances do Amazon EC2, inclua a ação ec2:RunInstances na política da pessoa. As instruções de política devem incluir um elemento Action ou NotAction. O App Runner define seu próprio conjunto de ações que descrevem as tarefas que você pode realizar com esse serviço.

Para especificar várias ações em uma única instrução, separe-as com vírgulas, como segue:

"Action": [ "apprunner:CreateService", "apprunner:CreateConnection" ]

Você também pode especificar várias ações usando caracteres curinga (*). Por exemplo, para especificar todas as ações que começam com a palavra Describe, inclua a seguinte ação:

"Action": "apprunner:Describe*"

Para ver uma lista das ações do App Runner, consulte Ações definidas por AWS App Runner na Referência de Autorização de Serviço.

Recursos

Os administradores podem usar políticas AWS JSON para especificar quem tem acesso ao quê. Ou seja, qual entidade principal pode executar ações em quais recursos, e em que condições.

O elemento de política JSON Resource especifica o objeto ou os objetos aos quais a ação se aplica. As instruções devem incluir um elemento Resource ou NotResource. Como prática recomendada, especifique um recurso usando seu nome do recurso da Amazon (ARN). Isso pode ser feito para ações que oferecem compatibilidade com um tipo de recurso específico, conhecido como permissões em nível de recurso.

Para ações que não oferecem compatibilidade com permissões em nível de recurso, como operações de listagem, use um curinga (*) para indicar que a instrução se aplica a todos os recursos.

"Resource": "*"

Os recursos do App Runner têm a seguinte estrutura de ARN:

arn:aws:apprunner:region:account-id:resource-type/resource-name[/resource-id]

Para obter mais informações sobre o formato dos ARNs, consulte Amazon Resource Names (ARNs) e AWS Service Namespaces no. Referência geral da AWS

Por exemplo, para especificar o my-service serviço em sua declaração, use o seguinte ARN:

"Resource": "arn:aws:apprunner:us-east-1:123456789012:service/my-service"

Para especificar todos os serviços que pertencem a uma conta específica, use o caractere curinga (*):

"Resource": "arn:aws:apprunner:us-east-1:123456789012:service/*"

Algumas ações do App Runner, como aquelas para criar recursos, não podem ser executadas em um recurso específico. Nesses casos, você deve utilizar o caractere curinga (*).

"Resource": "*"

Para ver uma lista dos tipos de recursos do App Runner e seus ARNs, consulte Recursos definidos por AWS App Runner na Referência de Autorização de Serviço. Para saber com quais ações é possível especificar o ARN de cada atributo, consulte Ações definidas pelo AWS App Runner.

Chaves de condição

Os administradores podem usar políticas AWS JSON para especificar quem tem acesso ao quê. Ou seja, qual entidade principal pode executar ações em quais recursos, e em que condições.

O elemento Condition (ou bloco Condition) permite que você especifique condições nas quais uma instrução estiver em vigor. O elemento Condition é opcional. É possível criar expressões condicionais que usem agentes de condição, como “igual a” ou “menor que”, para fazer a condição da política corresponder aos valores na solicitação.

Se você especificar vários elementos Condition em uma instrução ou várias chaves em um único Condition elemento, a AWS os avaliará usando uma operação lógica AND. Se você especificar vários valores para uma única chave de condição, AWS avalia a condição usando uma OR operação lógica. Todas as condições devem ser atendidas antes que as permissões da instrução sejam concedidas.

Você também pode usar variáveis de espaço reservado ao especificar condições. Por exemplo, é possível conceder a um usuário do IAM permissão para acessar um atributo somente se ele estiver marcado com seu nome de usuário do IAM. Para obter mais informações, consulte Elementos da política do IAM: variáveis e tags no Guia do usuário do IAM.

AWS suporta chaves de condição globais e chaves de condição específicas do serviço. Para ver todas as chaves de condição AWS globais, consulte as chaves de contexto de condição AWS global no Guia do usuário do IAM.

O App Runner suporta o uso de algumas chaves de condição globais. Para ver todas as chaves de condição AWS globais, consulte Chaves de contexto de condição AWS global no Guia do usuário do IAM.

O App Runner define um conjunto de chaves de condição específicas do serviço. Além disso, o App Runner oferece suporte ao controle de acesso baseado em tags, que é implementado usando chaves de condição. Para obter detalhes, consulte Autorização com base nas tags do App Runner.

Para ver uma lista das chaves de condição do App Runner, consulte Chaves de condição AWS App Runner na Referência de autorização de serviço. Para saber com quais ações e recursos você pode usar uma chave de condição, consulte Ações definidas por AWS App Runner.

Exemplos

Para ver exemplos de políticas baseadas em identidade do App Runner, consulte. Exemplos de políticas baseadas em identidade do App Runner

Políticas baseadas em recursos do App Runner

O App Runner não oferece suporte a políticas baseadas em recursos.

Autorização com base nas tags do App Runner

Você pode anexar tags aos recursos do App Runner ou passar tags em uma solicitação para o App Runner. Para controlar o acesso baseado em tags, forneça informações sobre as tags no elemento de condição de uma política usando as apprunner:ResourceTag/key-name, aws:RequestTag/key-name ou chaves de condição aws:TagKeys. Para obter mais informações sobre a marcação de recursos do App Runner, consulte. Configurando um serviço App Runner

Para visualizar um exemplo de política baseada em identidade para limitar o acesso a um recurso baseado em tags desse recurso, consulte Controle do acesso aos serviços do App Runner com base em tags.

Permissões de usuário do App Runner

Para usar o App Runner, os usuários do IAM precisam de permissões para as ações do App Runner. Uma forma comum de conceder permissões aos usuários é anexar uma política aos usuários ou grupos do IAM. Para obter mais informações sobre o gerenciamento de permissões de usuário, consulte Alteração de permissões para um usuário do IAM no Guia do usuário do IAM.

O App Runner fornece duas políticas gerenciadas que você pode anexar aos seus usuários.

  • AWSAppRunnerReadOnlyAccess— Concede permissões para listar e visualizar detalhes sobre os recursos do App Runner.

  • AWSAppRunnerFullAccess— Concede permissões para todas as ações do App Runner.

Para um controle mais granular das permissões do usuário, você pode criar uma política personalizada e anexá-la aos seus usuários. Para obter detalhes, consulte Criação de políticas do IAM no Guia do usuário do IAM.

Para obter exemplos de políticas de usuário, consultePolíticas de usuário.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "apprunner:List*", "apprunner:Describe*" ], "Resource": "*" } ] }
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": [ "arn:aws:iam::*:role/aws-service-role/apprunner.amazonaws.com/AWSServiceRoleForAppRunner", "arn:aws:iam::*:role/aws-service-role/networking.apprunner.amazonaws.com/AWSServiceRoleForAppRunnerNetworking" ], "Condition": { "StringLike": { "iam:AWSServiceName": [ "apprunner.amazonaws.com", "networking.apprunner.amazonaws.com" ] } } }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringLike": { "iam:PassedToService": "apprunner.amazonaws.com" } } }, { "Sid": "AppRunnerAdminAccess", "Effect": "Allow", "Action": "apprunner:*", "Resource": "*" } ] }

Funções do App Runner IAM

Uma função do IAM é uma entidade dentro da sua Conta da AWS que tem permissões específicas.

Funções vinculadas a serviço

As funções vinculadas ao serviço permitem que AWS os serviços acessem recursos em outros serviços para concluir uma ação em seu nome. Os perfis vinculados a serviço aparecem em sua conta do IAM e são de propriedade do serviço. Um administrador do IAM pode visualizar, mas não pode editar as permissões para perfis vinculados a serviço.

O App Runner oferece suporte a funções vinculadas a serviços. Para obter informações sobre como criar ou gerenciar funções vinculadas ao serviço App Runner, consulte. Usando funções vinculadas ao serviço para o App Runner

Perfis de serviço

Esse atributo permite que um serviço assuma um perfil de serviço em seu nome. O perfil permite que o serviço acesse recursos em outros serviços para concluir uma ação em seu nome. Os perfis de serviço aparecem em sua conta do IAM e são de propriedade da conta. Isso significa que um usuário do IAM pode alterar as permissões para essa função. Porém, fazer isso pode alterar a funcionalidade do serviço.

O App Runner oferece suporte a algumas funções de serviço.

Função de acesso

A função de acesso é uma função que o App Runner usa para acessar imagens no Amazon Elastic Container Registry (Amazon ECR) em sua conta. É necessário acessar uma imagem no Amazon ECR e não no Amazon ECR Public. Antes de criar um serviço com base em uma imagem no Amazon ECR, use o IAM para criar uma função de serviço e usar a política AWSAppRunnerServicePolicyForECRAccess gerenciada nela. Em seguida, você pode passar essa função para o App Runner ao chamar a CreateServiceAPI no AuthenticationConfigurationmembro do SourceConfigurationparâmetro ou ao usar o console do App Runner para criar um serviço.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:GetDownloadUrlForLayer", "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:DescribeImages", "ecr:GetAuthorizationToken" ], "Resource": "*" } ] }
nota

Se você criar sua própria política personalizada para sua função de acesso, não se esqueça de especificar "Resource": "*" para a ecr:GetAuthorizationToken ação. Os tokens podem ser usados para acessar qualquer registro do Amazon ECR ao qual você tenha acesso.

Ao criar sua função de acesso, não se esqueça de adicionar uma política de confiança que declare o diretor do serviço App Runner build.apprunner.amazonaws.com como uma entidade confiável.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "build.apprunner.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Se você usar o console do App Runner para criar um serviço, o console poderá criar automaticamente uma função de acesso para você e escolhê-la para o novo serviço. O console também lista outras funções em sua conta, e você pode selecionar uma função diferente, se quiser.

Função da instância

O papel da instância é um papel opcional que o App Runner usa para fornecer permissões às ações de AWS serviço que as instâncias de computação do seu serviço precisam. Você precisa fornecer uma função de instância ao App Runner se o código do aplicativo chamar AWS ações (APIs). Incorpore as permissões necessárias na função da instância ou crie sua própria política personalizada e use-a na função da instância. Não temos como prever quais chamadas seu código usa. Portanto, não fornecemos uma política gerenciada para essa finalidade.

Antes de criar um serviço App Runner, use o IAM para criar uma função de serviço com as políticas personalizadas ou incorporadas necessárias. Em seguida, você pode passar essa função para o App Runner como função de instância ao chamar a CreateServiceAPI no InstanceRoleArn membro do InstanceConfigurationparâmetro ou ao usar o console do App Runner para criar um serviço.

Ao criar sua função de instância, não se esqueça de adicionar uma política de confiança que declare o diretor do serviço App Runner tasks.apprunner.amazonaws.com como uma entidade confiável.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "tasks.apprunner.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Se você usar o console do App Runner para criar um serviço, o console listará as funções em sua conta e você poderá selecionar a função que criou para essa finalidade.

Para obter informações sobre a criação de um serviço, consulteCriação de um serviço App Runner.