Funções do IAM para experimentos do AWS FIS - AWS Serviço de injeção de falhas

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

Funções do IAM para experimentos do AWS FIS

O AWS Identity and Access Management (IAM) é um serviço da AWS que ajuda a controlar o acesso aos atributos da AWS de forma segura. Para usar o AWS FIS, você deve criar uma função do IAM que conceda ao AWS FIS as permissões necessárias para que o AWS FIS possa realizar experimentos em seu nome. Você especifica essa função do experimento ao criar um modelo de experimento. Para um experimento de conta única, a política do IAM para o perfil do experimento deve conceder permissão para modificar os recursos que você especifica como destinos no modelo de experimento. Para um experimento com várias contas, o perfil do experimento deve conceder permissão ao perfil de orquestrador para assumir o perfil do IAM em cada conta de destino. Para ter mais informações, consulte Permissões para experimentos com várias contas.

Recomendamos seguir a prática de segurança padrão de conceder privilégio mínimo. Você pode fazer isso especificando ARNs ou tags de recursos específicos em suas políticas.

Para ajudar você a começar a usar o AWS FIS rapidamente, fornecemos políticas gerenciada pela AWS que você pode especificar ao criar uma função experimental. Como alternativa, você também pode usar essas políticas como modelo ao criar seus próprios documentos de política em linha.

Pré-requisitos

Antes de começar, instale a AWS CLI e crie a política de confiança necessária.

Instalar a AWS CLI

Antes de começar, instale e configure a AWS CLI. Ao configurar a AWS CLI, você recebe uma solicitação por credenciais da AWS. Os exemplos neste procedimento pressupõem que você também tenha configurado uma região padrão. Caso contrário, adicione a opção --region para cada comando. Para obter informações, consulte Instalação e configuração da AWS CLI e Configuração da AWS CLI.

Criar uma política de relacionamento de confiança

Uma função experimental deve ter um relacionamento de confiança que permita que o serviço AWS FIS assuma a função. Crie um arquivo de texto chamado fis-role-trust-policy.json e adicione a política de relacionamento de confiança a seguir.

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

Recomendamos o uso das chaves de condição aws:SourceAccount e aws:SourceArn para se proteger contra o problema confused deputy. A conta de origem é o proprietário do experimento e o ARN de origem é o ARN do experimento. Por exemplo, você deveria adicionar o bloco de condições a seguir à política de confiança.

"Condition": { "StringEquals": { "aws:SourceAccount": "account_id" }, "ArnLike": { "aws:SourceArn": "arn:aws:fis:region:account_id:experiment/*" } }
Adicione permissões para assumir os perfil da conta-alvo (somente experimentos com várias contas)

Para experimentos com várias contas, você precisa de permissões para que a conta do orquestrador assuma os perfis da conta de destino. É possível modificar o exemplo a seguir e adicioná-lo como um documento de política em linha para assumir os perfis da conta de destino:

{ "Effect": "Allow", "Action": "sts:AssumeRole", "Resource":[ "arn:aws:iam::target_account_id:role/role_name" ] }

Opção 1: criar uma função experimental e anexar uma política gerenciada pela AWS

Use uma das políticas gerenciada pela AWS do AWS FIS para começar rapidamente.

Para criar uma função experimental e anexar uma política gerenciada pela AWS
  1. Verifique se há uma política gerenciada para as ações do AWS FIS em seu experimento. Caso contrário, você precisará criar seu próprio documento de política em linha. Para ter mais informações, consulte AWS políticas gerenciadas para o AWS Fault Injection Service.

  2. Use o comando create-role a seguir para criar uma função e adicionar a política de confiança que você criou nos pré-requisitos.

    aws iam create-role --role-name my-fis-role --assume-role-policy-document file://fis-role-trust-policy.json
  3. Use o attach-role-policycomando a seguir para anexar a política AWS gerenciada.

    aws iam attach-role-policy --role-name my-fis-role --policy-arn fis-policy-arn

    Onde fis-policy-arnestá uma das seguintes opções:

    • arn:aws:iam::aws:policy/service-role/AWSFaultInjectionSimulatorEC2Access

    • arn:aws:iam::aws:policy/service-role/AWSFaultInjectionSimulatorECSAccess

    • arn:aws:iam::aws:policy/service-role/AWSFaultInjectionSimulatorEKSAccess

    • arn:aws:iam::aws:policy/service-role/AWSFaultInjectionSimulatorNetworkAccess

    • arn:aws:iam::aws:policy/service-role/AWSFaultInjectionSimulatorRDSAccess

    • arn:aws:iam::aws:policy/service-role/AWSFaultInjectionSimulatorSSMAccess

Opção 2: criar uma função experimental e adicionar um documento de política em linha

Use essa opção para ações que não tenham uma política gerenciada ou para incluir somente as permissões necessárias para seu experimento específico.

Para criar um experimento e adicionar um documento de política em linha
  1. Use o comando create-role a seguir para criar uma função e adicionar a política de confiança que você criou nos pré-requisitos.

    aws iam create-role --role-name my-fis-role --assume-role-policy-document file://fis-role-trust-policy.json
  2. Crie um arquivo de texto chamado fis-role-permissions-policy.json e adicione uma política de permissões. Para obter um exemplo que você pode usar como ponto de partida, consulte o seguinte.

    • Ações de injeção de falhas – Comece com a seguinte política.

      { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowFISExperimentRoleFaultInjectionActions", "Effect": "Allow", "Action": [ "fis:InjectApiInternalError", "fis:InjectApiThrottleError", "fis:InjectApiUnavailableError" ], "Resource": "arn:*:fis:*:*:experiment/*" } ] }
    • Ações do Amazon EBS – Comece com a seguinte política.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeVolumes" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:PauseVolumeIO" ], "Resource": "arn:aws:ec2:*:*:volume/*" } ] }
    • Ações do Amazon EC2 — Comece com a AWSFaultInjectionSimulatorEC2Accesspolítica.

    • Ações do Amazon ECS — Comece com a AWSFaultInjectionSimulatorECSAccesspolítica.

    • Ações do Amazon EKS — Comece com a AWSFaultInjectionSimulatorEKSAccesspolítica.

    • Ações de rede — Comece com a AWSFaultInjectionSimulatorNetworkAccesspolítica.

    • Ações do Amazon RDS — Comece com a AWSFaultInjectionSimulatorRDSAccesspolítica.

    • Ações do Systems Manager — Comece com a AWSFaultInjectionSimulatorSSMAccesspolítica.

  3. Use o put-role-policycomando a seguir para adicionar a política de permissões que você criou na etapa anterior.

    aws iam put-role-policy --role-name my-fis-role --policy-name my-fis-policy --policy-document file://fis-role-permissions-policy.json