Controlar o acesso às janelas de manutenção (Tools para Windows PowerShell) - AWS Systems Manager

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

Controlar o acesso às janelas de manutenção (Tools para Windows PowerShell)

Os procedimentos a seguir descrevem como usar a Tools para Windows PowerShell para criar as funções e permissões necessárias para a Janelas de manutenção.

Tarefa 1: (Opcional) Criar uma função de serviço personalizada para janelas de manutenção (Tools para Windows PowerShell)

Importante

Uma função de serviço personalizada não será necessária se você optar por usar uma função do Systems Manager vinculada ao serviço para permitir que as janelas de manutenção executem tarefas em seu nome. Se você não tiver uma função do Systems Manager vinculada ao serviço em sua conta, será possível criá-la ao criar ou atualizar uma tarefa de janela de manutenção usando o console do Systems Manager. Para obter mais informações, consulte os tópicos a seguir:

  1. Copie e cole a política de confiança a seguir em um arquivo de texto. Salve o arquivo com o seguinte nome e extensão: mw-role-trust-policy.json.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. Abra o Tools para Windows PowerShell e execute o seguinte comando para criar uma função com um nome que a identifique como uma função de janela de manutenção, por my-maintenance-window-roleexemplo, . A função usa a política que você criou na etapa anterior.

    New-IAMRole ` -RoleName "my-maintenance-window-role" ` -AssumeRolePolicyDocument (Get-Content -raw .\mw-role-trust-policy.json)

    O sistema retorna informações como as seguintes.

    Arn : arn:aws:iam::123456789012:role/mw-task-role
    AssumeRolePolicyDocument : ExampleDoc12345678
    CreateDate : 4/4/2017 11:24:43
    Path : /
    RoleId : AROAIIZKPBKS2LEXAMPLE
    RoleName : my-maintenance-window-role
  3. Execute o seguinte comando para anexar a política gerenciada AmazonSSMMaintenanceWindowRole à função que você criou na etapa anterior.

    Register-IAMRolePolicy ` -RoleName "my-maintenance-window-role" ` -PolicyArn "arn:aws:iam::aws:policy/service-role/AmazonSSMMaintenanceWindowRole"

Tarefa 2: Configurar permissões para usuários que têm permissão para registrar tarefas da janela de manutenção (PowerShell)

Ao registrar uma tarefa com uma janela de manutenção, especifique uma função de serviço personalizada ou uma função do Systems Manager vinculada ao serviço para executar as operações de tarefa reais. Esta é a função que o serviço assumirá quando executar tarefas em seu nome. Antes disso, para registrar a tarefa em si, é necessário atribuir a política PassRole do IAM a uma conta de usuário do IAM ou a um grupo do IAM. Isso permite que o usuário do IAM ou grupo do IAM especifique, como parte do registro dessas tarefas na janela de manutenção, a função que deve ser usada ao executar tarefas. Para obter informações, consulte Conceder permissões ao usuário para passar uma função para um serviço da AWS no Guia do usuário do IAM.

  1. Copie e cole a seguinte política do IAM em um editor de texto e salve-a com o seguinte nome e extensão de arquivo: mw-passrole-policy.json.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "custom-role-arn" }, { "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/" } ] }

    Substituir custom-role-arn com o ARN da função da janela de manutenção personalizada criada anteriormente, como arn:aws:iam::123456789012:role/my-maintenance-window-role.

    Substituir account-id nas duas iam:ListRoles permissões com o ID da sua conta da AWS. Adicionar essa permissão para o recurso arn:aws:iam::account-id:role/ permite que os usuários do grupo visualizem e escolham entre funções de cliente no console ao criar uma tarefa da janela de manutenção. Adicionar essa permissão para arn:aws:iam::account-id:role/aws-service-role/ssm.amazonaws.com/ permite que os usuários do grupo escolham a função vinculada ao serviço do Systems Manager no console ao criar uma tarefa da janela de manutenção.

  2. Aberto Tools para Windows PowerShell.

  3. Se você estiver atribuindo a permissão a um usuário ou grupo do IAM, execute um dos seguintes comandos.

    • Para um usuário do IAM:

      Write-IAMUserPolicy ` -UserName "user-name" ` -PolicyDocument (Get-Content -raw path-to-document) ` -PolicyName "policy-name"

      Para user-name, especifique o IAM usuário do que atribui tarefas a janelas de manutenção. Para policy-name, especifique o nome que você deseja usar para identificar a política, como my-iam-passrole-policy. Para path-to-document, especifique o caminho para o arquivo que você salvou na etapa 1. Por exemplo: C:\temp\passrole-policy.json

      nota

      Se planeja registrar tarefas para janelas de manutenção usando o console do AWS Systems Manager, você também deverá atribuir a políticaAmazonSSMFullAccess à sua conta de usuário. Execute o seguinte comando para atribuir essa política à sua conta.

      Register-IAMUserPolicy ` -UserName "user-name" ` -PolicyArn "arn:aws:iam::aws:policy/AmazonSSMFullAccess"
    • Para um grupo do IAM:

      Write-IAMGroupPolicy ` -GroupName "group-name" ` -PolicyDocument (Get-Content -raw path-to-document) ` -PolicyName "policy-name"

      Para group-name, especifique o IAM grupo do que atribui tarefas às janelas de manutenção. Para policy-name, especifique o nome que você deseja usar para identificar a política, como my-iam-passrole-policy. Para path-to-document, especifique o caminho para o arquivo que você salvou na etapa 1. Por exemplo: C:\temp\passrole-policy.json

    nota

    Se planeja registrar tarefas para janelas de manutenção usando o console do AWS Systems Manager, você também deverá atribuir a políticaAmazonSSMFullAccess à sua conta de usuário. Execute o seguinte comando para atribuir essa política ao seu grupo.

    Register-IAMGroupPolicy ` -GroupName "group-name" ` -PolicyArn "arn:aws:iam::aws:policy/AmazonSSMFullAccess"
  4. Execute o seguinte comando para verificar se a política foi atribuída ao grupo.

    Get-IAMGroupPolicies ` -GroupName "group-name"

Tarefa 3: Configurar permissões para usuários que não têm permissão para registrar tarefas da janela de manutenção (PowerShell)

  1. Copie e cole a seguinte política do IAM em um editor de texto e salve-a com o seguinte nome e extensão de arquivo: deny-mw-tasks-policy.json.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "ssm:RegisterTaskWithMaintenanceWindow", "Resource": "*" } ] }
  2. Aberto Tools para Windows PowerShell.

  3. Se você estiver atribuindo a permissão a um usuário ou grupo do IAM, execute um dos seguintes comandos.

    • Para um usuário do IAM:

      Write-IAMUserPolicy ` -UserName "user-name" ` -PolicyDocument (Get-Content -raw path-to-document) ` -PolicyName "policy-name"

      Para user-name, especifique o IAM usuário para impedir que o atribua tarefas a janelas de manutenção. Para policy-name, especifique o nome que você deseja usar para identificar a política, como my-deny-mw-tasks-policy. Para path-to-document, especifique o caminho para o arquivo que você salvou na etapa 1. Por exemplo: C:\temp\deny-mw-tasks-policy.json

    • Para um grupo do IAM:

      Write-IAMGroupPolicy ` -GroupName "group-name" ` -PolicyDocument (Get-Content -raw path-to-document) ` -PolicyName "policy-name"

      Para group-name, especifique o IAM grupo do para impedir que o atribua tarefas a janelas de manutenção. Para policy-name, especifique o nome que você deseja usar para identificar a política, como my-deny-mw-tasks-policy. Para path-to-document, especifique o caminho para o arquivo que você salvou na etapa 1. Por exemplo: C:\temp\deny-mw-tasks-policy.json

  4. Execute o seguinte comando para verificar se a política foi atribuída ao grupo.

    Get-IAMGroupPolicies ` -GroupName "group-name"