Control access to maintenance windows using the console - AWS Systems Manager

Control access to maintenance windows using the console

Os procedimentos a seguir descrevem como usar o console do AWS Systems Manager para criar as permissões e perfis necessários para janelas de manutenção.

Tarefa 1: crie uma política personalizada para seu perfil de serviço de janela de manutenção usando o console

As tarefas de janela de manutenção exigem um perfil do IAM para fornecer as permissões necessárias para serem executadas nos recursos de destino. As permissões são fornecidas por meio de uma política do IAM anexada ao perfil. Os tipos de tarefas executadas e seus outros requisitos operacionais determinam o conteúdo dessa política. Fornecemos uma política básica que você pode adaptar às suas necessidades. Dependendo das tarefas e dos tipos de tarefas que as janelas de manutenção executam, talvez você não precise de todas as permissões nesta política, e talvez seja necessário incluir permissões adicionais. Você anexará essa política ao perfil que criar posteriormente na Tarefa 2: crie um perfil de serviço personalizado para janelas de manutenção usando o console.

Para criar uma política personalizada usando o console
  1. Abra o console do IAM em https://console.aws.amazon.com/iam/.

  2. No painel de navegação, escolha Políticas e, em seguida, Criar política.

  3. Na área Editor de políticas, escolha JSON.

  4. Substitua o conteúdo padrão pelo seguinte:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:SendCommand", "ssm:CancelCommand", "ssm:ListCommands", "ssm:ListCommandInvocations", "ssm:GetCommandInvocation", "ssm:GetAutomationExecution", "ssm:StartAutomationExecution", "ssm:ListTagsForResource", "ssm:GetParameters" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "states:DescribeExecution", "states:StartExecution" ], "Resource": [ "arn:aws:states:*:*:execution:*:*", "arn:aws:states:*:*:stateMachine:*" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:*:*:function:*" ] }, { "Effect": "Allow", "Action": [ "resource-groups:ListGroups", "resource-groups:ListGroupResources" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "tag:GetResources" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": [ "ssm.amazonaws.com" ] } } } ] }
  5. Modifique o conteúdo JSON conforme necessário para as tarefas de manutenção executadas na sua conta. As alterações feitas são específicas para suas operações planejadas.

    Por exemplo:

    • Você pode fornecer nomes do recurso da Amazon (ARNs) para funções específicas e máquinas de estado em vez de usar qualificadores-curinga (*).

    • Se você não planeja executar tarefas do AWS Step Functions, é possível remover as permissões states e os ARNs.

    • Se você não planeja executar tarefas do AWS Lambda, é possível remover as permissões lambda e os ARNs.

    • Se você não planeja executar tarefas do Automation, é possível remover as permissões ssm:GetAutomationExecution e ssm:StartAutomationExecution.

    • Adicione mais permissões que podem ser necessárias para que as tarefas sejam executadas. Por exemplo, algumas ações da Automação trabalham com pilhas do AWS CloudFormation. Portanto, as permissões cloudformation:CreateStack, cloudformation:DescribeStacks, e cloudformation:DeleteStack são necessárias.

      Outro exemplo: o runbook AWS-CopySnapshot do Automation requer permissão para criar um snapshot do Amazon Elastic Block Store (Amazon EBS). Portanto, o perfil de serviço precisa da permissão ec2:CreateSnapshot.

      Para obter informações sobre as permissões de perfil necessárias para os runbooks do Automation, consulte as descrições de runbooks em Referência de runbooks do AWS Systems Manager Automation.

  6. Depois de concluir as revisões da política, escolha Próximo.

  7. Em Nome da política, insira um nome que identifique isso como a política anexada pelo perfil de serviço que você cria. Por exemplo: my-maintenance-window-role-policy.

  8. (Opcional) Na área Adicionar tags, adicione um ou mais pares de chave-valor de etiqueta para organizar, monitorar ou controlar acesso para essa política.

  9. Escolha Criar política.

    Anote o nome que você especificou para a política. Você fará referência a ele no próximo procedimento, Tarefa 2: crie um perfil de serviço personalizado para janelas de manutenção usando o console.

Tarefa 2: crie um perfil de serviço personalizado para janelas de manutenção usando o console

A política que você criou na tarefa anterior está anexada ao perfil de serviço da janela de manutenção criado na mesma. Quando os usuários registram uma tarefa de janela de manutenção, eles especificam esse perfil do IAM como parte da configuração da tarefa. As permissões nesse perfil permitem que o Systems Manager execute tarefas em janelas de manutenção em seu nome.

Importante

Anteriormente, o console do Systems Manager permitia a você escolher o perfil AWSServiceRoleForAmazonSSM vinculado ao serviço do IAM gerenciado pela AWS para usar como perfil de manutenção para suas tarefas. O uso desse perfil e sua política associada, AmazonSSMServiceRolePolicy, para tarefas de janela de manutenção não é mais recomendado. Se estiver usando esse perfil para tarefas de janela de manutenção agora, recomendamos parar de usá-lo. Em vez disso, crie seu próprio perfil do IAM para permitir a comunicação entre o Systems Manager e outros Serviços da AWS quando as tarefas da janela de manutenção são executadas.

Use o procedimento a seguir para criar um perfil de serviço personalizado para as Maintenance Windows, para que o Systems Manager possa executar tarefas de Maintenance Windows em seu nome. Basta anexar a política criada na tarefa anterior ao perfil de serviço personalizado criado.

Para criar um perfil de serviço personalizado para janelas de manutenção usando o console
  1. Abra o console do IAM em https://console.aws.amazon.com/iam/.

  2. No painel de navegação, escolha Roles e Create role.

  3. Em Select trusted entity (Selecionar entidade confiável), faça as seguintes escolhas:

    1. Em Tipo de entidade confiável, escolha Serviços da AWS.

    2. Em Caso de uso, escolha Systems Manager

    3. Escolha Systems Manager.

      A imagem a seguir destaca a localização da opção Systems Manager.

      O Systems Manager é uma das opções para o Caso de uso.
  4. Escolha Próximo.

  5. Na área Políticas de permissões, na caixa de pesquisa, insira o nome da política que você criou na Tarefa 1: crie uma política personalizada para seu perfil de serviço de janela de manutenção usando o console, marque a caixa ao lado do nome e escolha Próximo.

  6. Em Role name (Nome da regra), insira um nome que identifique essa função como uma função da Maintenance Windows. Por exemplo: my-maintenance-window-role.

  7. (Opcional) Altere a descrição da função padrão para refletir a finalidade dessa função. Por exemplo: Performs maintenance window tasks on your behalf.

  8. Na Etapa 1: Selecionar entidades confiáveis, verifique se a política a seguir é exibida na caixa Política confiável.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  9. Na Etapa 2: Adicionar permissões, verifique se a política que você criou Tarefa 1: crie uma política personalizada para seu perfil de serviço de janela de manutenção usando o console está presente.

  10. (Opcional) Em Etapa 3: Adicionar tags, adicione um ou mais pares de valor tag-chave para organizar, monitorar ou controlar acesso para esse perfil.

  11. Selecione Create role (Criar função). O sistema faz com que você retorne para a página Roles.

  12. Escolha o nome do perfil do IAM que você acabou de criar.

  13. Copie ou anote o nome do perfil e o valor do ARN na área Summary (Resumo). Os usuários em sua conta especificam essas informações ao criarem janelas de manutenção.

Tarefa 3: conceda permissões a usuários especificados para que registrem tarefas da janela de manutenção usando o console

Fornecer aos usuários permissões para acessar o perfil de serviço da janela de manutenção personalizado permite que eles a usem com suas tarefas de janelas de manutenção. Isso é além das permissões que você concedeu a eles para trabalhar com os comandos da API do Systems Manager para a capacidade do Maintenance Windows. Esse perfil do IAM transmite as permissões necessárias para executar uma tarefa de janela de manutenção. Como resultado, um usuário não poderá registrar tarefas a uma janela de manutenção usando seu perfil de serviço personalizado sem a capacidade de passar essas permissões do IAM.

Ao registrar uma tarefa em uma janela de manutenção, você especifica um perfil de serviço para executar as operações de tarefas reais. Esta é a função que o serviço assumirá quando executar tarefas em seu nome. Antes disso, para registrar a própria tarefa, é necessário atribuir a política do IAM PassRole a uma entidade do IAM (como um usuário ou grupo). Isso permite que a entidade do IAM especifique, como parte do registro dessas tarefas na janela de manutenção, o perfil que deve ser usado ao executar as tarefas. Para obter informações, consulte Conceda permissões a um usuário para passar um perfil para um AWS service (Serviço da AWS), no Guia do usuário do IAM.

Para configurar permissões para permitir que usuários registrem tarefas da janela de manutenção

Se uma entidade do IAM (usuário, perfil ou grupo) for configurada com permissões de administrador, o usuário ou o perfil do IAM terá acesso às janelas de manutenção. Para entidades do IAM que não têm permissões de administrador, um administrador deve conceder as permissões a seguir à entidade do IAM. Estas são as permissões mínimas requeridas para o registro de tarefas em uma janela de manutenção:

  • A política gerenciada AmazonSSMFullAccess ou uma política que forneça permissões comparáveis.

  • O seguinte iam:PassRole e as permissões iam:ListRoles.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::account-id:role/my-maintenance-window-role" }, { "Effect": "Allow", "Action": "iam:ListRoles", "Resource": "arn:aws:iam::account-id:role/" }, { "Effect": "Allow", "Action": "iam:ListRoles", "Resource": "arn:aws:iam::account-id:role/aws-service-role/ssm.amazonaws.com/" } ] }

    my-maintenance-window-role representa o nome do perfil de serviço da janela de manutenção personalizada criada anteriormente.

    account-id representa o ID da Conta da AWS. Adicionar essa permissão para o recurso arn:aws:iam::account-id:role/ permite que um usuário visualize e escolha entre funções de cliente no console ao criar uma tarefa da janela de manutenção. A adição dessa permissão para arn:aws:iam::account-id:role/aws-service-role/ssm.amazonaws.com/ permite que um usuário escolha a função vinculada ao serviço do Systems Manager no console ao criar uma tarefa da janela de manutenção.

    Para conceder acesso, adicione as permissões aos seus usuários, grupos ou perfis:

Para configurar permissões para grupos que tiverem permissão para registrar tarefas da janela de manutenção usando o console
  1. Abra o console do IAM em https://console.aws.amazon.com/iam/.

  2. No painel de navegação, selecione User groups (Grupos de usuários).

  3. Na lista de grupos, selecione o nome do grupo do qual você deseja atribuir a permissão iam:PassRole, ou crie primeiro um novo grupo, se necessário.

  4. Na guia Permissions (Permissões), escolha Add permissions, Create inline policy (Adicionar permissões, Criar política em linha).

  5. Na área Editor de políticas, escolha JSON, e substitua o conteúdo padrão da caixa, pelo seguinte:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::account-id:role/my-maintenance-window-role" }, { "Effect": "Allow", "Action": "iam:ListRoles", "Resource": "arn:aws:iam::account-id:role/" }, { "Effect": "Allow", "Action": "iam:ListRoles", "Resource": "arn:aws:iam::account-id:role/aws-service-role/ssm.amazonaws.com/" } ] }

    my-maintenance-window-role representa o nome da função da janela de manutenção personalizada criada anteriormente.

    account-id representa o ID da Conta da AWS. Adicionar essa permissão para o recurso arn:aws:iam::account-id:role/ permite que um usuário visualize e escolha entre funções de cliente no console ao criar uma tarefa da janela de manutenção. A adição dessa permissão para arn:aws:iam::account-id:role/aws-service-role/ssm.amazonaws.com/ permite que um usuário escolha a função vinculada ao serviço do Systems Manager no console ao criar uma tarefa da janela de manutenção.

  6. Escolha Próximo.

  7. Na página Analisar e criar, insira um nome na caixa Nome da política para identificar essa política de PassRole, como my-group-iam-passrole-policy, e selecione Criar política.

Tarefa 4: evite que usuários especificados registrem tarefas da janela de manutenção usando o console

É possível negar a permissão ssm:RegisterTaskWithMaintenanceWindow aos usuários da sua Conta da AWS para os quais você não quer registrar tarefas com janelas de manutenção. Isso fornece uma camada extra de prevenção para usuários que não devem registrar tarefas da janela de manutenção.

Para configurar permissões para grupos sem permissão para registrar tarefas da janela de manutenção usando o console
  1. Abra o console do IAM em https://console.aws.amazon.com/iam/.

  2. No painel de navegação, selecione User groups (Grupos de usuários).

  3. Na lista de grupos, selecione o nome do grupo do qual você deseja recusar a permissão ssm:RegisterTaskWithMaintenanceWindow, ou crie primeiro um novo grupo, se necessário.

  4. Na guia Permissions (Permissões), escolha Add permissions, Create inline policy (Adicionar permissões, Criar política em linha).

  5. Na área Editor de políticas, escolha JSON, em seguida substitua o conteúdo padrão da caixa, pelo seguinte:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "ssm:RegisterTaskWithMaintenanceWindow", "Resource": "*" } ] }
  6. Escolha Próximo.

  7. Na página Analisar e criar, em Nome da política, insira um nome para identificar a política, como my-groups-deny-mw-tasks-policy, e selecione Criar política.