Usando uma função do IAM para conceder permissões a aplicativos e scripts executados em instâncias de streaming AppStream 2.0 - Amazon AppStream 2.0

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

Usando uma função do IAM para conceder permissões a aplicativos e scripts executados em instâncias de streaming AppStream 2.0

Aplicativos e scripts executados em instâncias de streaming AppStream 2.0 devem incluir AWS credenciais em suas solicitações de AWS API. Você pode criar um perfil do IAM para gerenciar essas credenciais. Uma função do IAM especifica um conjunto de permissões que você pode usar para acessar AWS recursos. No entanto, essa função não está associada exclusivamente a uma pessoa. Em vez disso, ela pode ser assumida por qualquer pessoa que precise dela.

Você pode aplicar uma função do IAM a uma instância de streaming AppStream 2.0. Quando a instância de streaming alterna para (assume) a função, a função fornece credenciais de segurança temporárias. Seu aplicativo ou scripts usam essas credenciais para realizar ações de API e tarefas de gerenciamento na instância de streaming. AppStream 2.0 gerencia a troca temporária de credenciais para você.

Melhores práticas para usar funções do IAM com instâncias de streaming AppStream 2.0

Ao usar funções do IAM com instâncias de streaming AppStream 2.0, recomendamos que você siga estas práticas:

  • Limite as permissões que você concede às ações e recursos AWS da API.

    Siga os princípios de menor privilégio ao criar e anexar políticas do IAM às funções do IAM associadas às instâncias de streaming AppStream 2.0. Ao usar um aplicativo ou script que exija acesso às ações ou recursos da AWS API, determine as ações e os recursos específicos necessários. Crie políticas que permitam que o aplicativo ou o script execute somente essas ações. Para obter mais informações, consulte Conceder privilégio mínimo no Guia do usuário do IAM.

  • Crie uma função do IAM para cada recurso AppStream 2.0.

    Criar uma função exclusiva do IAM para cada recurso AppStream 2.0 é uma prática que segue os princípios de privilégios mínimos. Isso também permite que você modifique as permissões para um recurso sem afetar outros recursos.

  • Limite onde as credenciais podem ser usadas.

    As políticas do IAM permitem que você defina as condições sob as quais seu perfil do IAM pode ser usado para acessar um recurso. Por exemplo, é possível incluir condições para especificar um intervalo de endereços IP dos quais as solicitações podem vir. Isso impede que as credenciais sejam usadas fora do seu ambiente. Para obter mais informações, consulte Usar condições nas políticas para mais segurança no Guia do usuário do IAM.

Configurando uma função do IAM existente para usar com instâncias de streaming AppStream 2.0

Este tópico descreve como configurar um perfil do IAM existente para que você possa usá-lo com construtores de imagens e instâncias de streaming de frota.

Pré-requisitos

A função do IAM que você deseja usar com um construtor de imagens AppStream 2.0 ou uma instância de streaming de frota deve atender aos seguintes pré-requisitos:

  • A função do IAM deve estar na mesma conta da Amazon Web Services que a instância de streaming AppStream 2.0.

  • O perfil do IAM não pode ser um perfil de serviço.

  • A política de relacionamento de confiança anexada à função do IAM deve incluir o serviço AppStream 2.0 como principal. Um diretor é uma entidade AWS que pode realizar ações e acessar recursos. A política também deve incluir a ação sts:AssumeRole. Essa configuração de política define AppStream 2.0 como uma entidade confiável.

  • Se você estiver aplicando a função do IAM a um criador de imagens, o criador de imagens deverá executar uma versão do agente AppStream 2.0 lançada em ou após 3 de setembro de 2019. Se você estiver aplicando a função do IAM a uma frota, a frota deverá usar uma imagem que use uma versão do agente lançada na mesma data ou após ela. Para ter mais informações, consulte AppStream Notas de lançamento do Agent 2.0.

Para permitir que o principal de serviço AppStream 2.0 assuma uma função existente do IAM

Para executar as etapas a seguir, você deverá fazer login na conta como um usuário do IAM que tenha as permissões necessárias para listar e atualizar perfis do IAM. Se você não tiver as permissões necessárias, peça ao administrador da sua conta da Amazon Web Services para executar essas etapas na sua conta ou conceder as permissões necessárias.

  1. Abra o console do IAM em https://console.aws.amazon.com/iam/.

  2. No painel de navegação, escolha Perfis.

  3. Na lista de funções em sua conta, escolha o nome da função que deseja modificar.

  4. Escolha a guia Relacionamentos de confiança e, em seguida, selecione Editar relacionamento de confiança.

  5. Em Policy Document (Documento da política), verifique se a política de relacionamento de confiança inclui a ação sts:AssumeRole para o principal do serviço appstream.amazonaws.com:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "appstream.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
  6. Ao concluir a edição da política de confiança, escolha Atualizar política de confiança para salvar as alterações.

  7. A função do IAM que você selecionou será exibida no console AppStream 2.0. Essa função concede permissões a aplicativos e scripts para executar ações de API e tarefas de gerenciamento nas instâncias de streaming.

Como criar uma função do IAM para usar com instâncias de streaming AppStream 2.0

Este tópico descreve como criar um perfil do IAM para que você possa usá-lo com construtores de imagens e instâncias de streaming de frota.

  1. Abra o console do IAM em https://console.aws.amazon.com/iam/.

  2. No painel de navegação, escolha Funções e Criar função.

  3. Em Selecionar tipo de entidade confiável, selecione AWS serviço .

  4. Na lista de AWS serviços, escolha AppStream 2.0.

  5. Em Selecione seu caso de uso, AppStream 2.0 — Permite que instâncias AppStream 2.0 chamem AWS serviços em seu nome já está selecionado. Selecione Next: Permissions (Próximo: permissões).

  6. Se possível, selecione a política a ser usada para a política de permissões ou escolha Create policy (Criar política) para abrir uma nova guia no navegador e criar uma nova política a partir do zero. Para obter mais informações, consulte a etapa 4 no procedimento Criar políticas do IAM (console) no Guia do usuário do IAM.

    Depois de criar a política, feche essa guia e retorne à guia original. Marque a caixa de seleção ao lado das políticas de permissões que você deseja que o AppStream 2.0 tenha.

  7. (Opcional) Defina um limite de permissões. Esse é um atributo avançado que está disponível para perfis de serviço, mas não para perfis vinculados ao serviço. Para obter mais informações, consulte Limites de permissões para entidades do IAM no Guia do usuário do IAM.

  8. Escolha Próximo: etiquetas. Opcionalmente, você pode anexar tags como pares de chave/valor. Para obter mais informações, consulte Recursos de etiquetas do IAM no Guia do usuário do IAM.

  9. Selecione Next: Review (Próximo: revisar).

  10. Em Nome do perfil, digite um nome de perfil exclusivo em sua conta da Amazon Web Services. Como outros AWS recursos podem fazer referência à função, você não pode editar o nome da função após sua criação.

  11. Em Role description (Descrição da função), mantenha a descrição da função padrão ou digite uma nova.

  12. Reveja a função e escolha Criar função.

Como usar a função do IAM com instâncias de streaming AppStream 2.0

Depois de criar um perfil do IAM, você poderá aplicá-lo a um construtor de imagens ou a uma instância de streaming de frota ao iniciar o construtor de imagens ou ao criar uma frota. Também é possível aplicar um perfil do IAM a frotas existentes. Para obter informações sobre como aplicar o perfil do IAM ao iniciar um construtor de imagens, consulte Inicie um criador de imagens para instalar e configurar aplicativos de streaming. Para obter informações sobre como aplicar um perfil do IAM ao criar uma frota, consulte Criar uma frota.

Quando você aplica uma função do IAM ao seu criador de imagens ou instância de streaming de frota, o AppStream 2.0 recupera credenciais temporárias e cria o perfil de credencial appstream_machine_role na instância. As credenciais temporárias são válidas por 1 hora, e novas credenciais são recuperadas a cada hora. As credenciais anteriores não expiram, portanto, você poderá usá-las pelo tempo que forem válidas. Você pode usar o perfil de credencial para chamar AWS serviços de forma programática usando a Interface de Linha de AWS Comando (AWS CLI), o AWS Tools for PowerShell ou o AWS SDK com o idioma de sua escolha.

Ao fazer chamadas de API, especifique appstream_machine_role como o perfil de credencial. Caso contrário, haverá falha na operação devido a permissões insuficientes.

AppStream 2.0 assume a função especificada enquanto a instância de streaming é provisionada. Como a AppStream versão 2.0 usa a interface de rede elástica que está conectada à sua VPC para chamadas de AWS API, seu aplicativo ou script deve aguardar a disponibilidade da interface de rede elástica antes de fazer chamadas de AWS API. Se as chamadas de API forem feitas antes que a interface de rede elástica esteja disponível, haverá falha nas chamadas.

Os exemplos a seguir mostram como é possível usar o perfil de credencial appstream_machine_role para descrever as instâncias de streaming (instâncias do EC2) e criar o cliente Boto. Boto é o Amazon Web Services (AWS) SDK para Python.

Descreva as instâncias de streaming (instâncias do EC2) usando a CLI AWS

aws ec2 describe-instances --region us-east-1 --profile appstream_machine_role

Descreva as instâncias de streaming (instâncias do EC2) usando AWS ferramentas para PowerShell

Você deve usar o AWS Tools para a PowerShell versão 3.3.563.1 ou posterior, com o SDK da Amazon Web Services para .NET versão 3.3.103.22 ou posterior. Você pode baixar o instalador do AWS Tools for Windows, que inclui o AWS Tools for PowerShell e o Amazon Web Services SDK for .NET, AWS no site Tools PowerShell for.

Get-EC2Instance -Region us-east-1 -ProfileName appstream_machine_role

Criando o cliente Boto usando o AWS SDK para Python

session = boto3.Session(profile_name='appstream_machine_role')