Criar políticas de aprovação para acesso a nós just-in-time com o Amazon Q - AWS Systems Manager

Criar políticas de aprovação para acesso a nós just-in-time com o Amazon Q

O uso do Amazon Q Developer para a linha de comando fornece orientação e suporte em vários aspectos do desenvolvimento de software. Para acesso a nós just-in-time, o Amazon Q ajuda você a criar políticas de aprovação gerando e atualizando o código das políticas, analisando declarações de políticas e muito mais. As informações a seguir descrevem como criar políticas de aprovação usando o Amazon Q para a linha de comando.

Identifique seu caso de uso

A primeira etapa na criação de políticas de aprovação é definir claramente o caso de uso. Por exemplo, na sua organização, talvez você queira aprovar automaticamente as solicitações de acesso a nós com uma tag Environment:Testing. Talvez você também queira negar explicitamente as aprovações automáticas aos nós com uma tag Environment:Production se o ID do funcionário começar com TEMP. Para nós com uma tag Tier:Database, talvez você queira exigir dois níveis de aprovações manuais.

Em qualquer cenário específico, você pode preferir uma política ou condição em vez de outra. Portanto, recomendamos que você defina claramente os comportamentos da política que deseja para determinar quais instruções melhor se adaptam ao seu caso de uso e preferências.

Configuração do ambiente de desenvolvimento

Instale o Amazon Q para a linha de comando em que você deseja desenvolver suas políticas de aprovação. Para obter informações sobre a instalação do Amazon Q para a linha de comando, consulte Installing Amazon Q for command line no Guia do usuário do Amazon Q Developer.

Também recomendamos instalar o servidor MCP da documentação da AWS. Esse servidor MCP conecta o Amazon Q da linha de comando aos recursos de documentação mais atuais. Para obter informações sobre o uso do MCP com o Amazon Q para a linha de comando, consulte Using MCP with Amazon Q Developer no Guia do usuário do Amazon Q Developer.

Para obter mais informações sobre o servidor MCP da documentação da AWS, consulte AWS Documentation MCP Server.

Instale e configure a AWS CLI, caso ainda não tenha feito isso. Para obter informações, consulte Instalar ou atualizar a versão mais recente da AWS CLI.

Desenvolver o conteúdo da política de aprovação

Com o caso de uso identificado e o ambiente configurado, você está pronto para desenvolver o conteúdo das políticas. Seu caso de uso e suas preferências ditarão em grande parte os tipos de políticas e declarações de aprovação que você usa.

Caso não tenha certeza de como usar uma política específica ou precise de mais informações sobre o esquema de uma política, consulte Criar políticas de aprovação para os nós e os tópicos subsequentes. Esses tópicos explicam em detalhes como as políticas são avaliadas e fornecem exemplos práticos de instruções.

O procedimento a seguir descreve como criar políticas de aprovação com o Amazon Q da linha de comando.

nota

O Amazon Q Developer usa IA generativa. Talvez seja necessário verificar as respostas. Consulte a Política de uso responsável de IA da AWS.

Para criar políticas de aprovação usando o Amazon Q da linha de comando
  1. Abra seu terminal e inicie uma sessão com o Amazon Q.

    $ q chat
  2. Insira um prompt e descreva o tipo de instrução de política que você deseja criar. Por exemplo, usando o cenário anterior para uma política de aprovação, você pode inserir o seguinte prompt:

    Create a Cedar policy statement that allows a principal to use the “getTokenForInstanceAccess" action for a resource 
    that has a tag key “Environment” and tag value of “Testing”. Use the following example statement for reference to verify the syntax.
    
    permit (
        principal in AWS::IdentityStore::Group::"e8c17310-e011-7089-d989-10da1EXAMPLE",
        action == AWS::SSM::Action::"getTokenForInstanceAccess",
        resource
    )
    when {
        principal has organization && resource.hasTag("Engineering") && resource.hasTag("Production") && principal.organization == "Platform"
    };
    
    The Cedar policy statement you create must be valid. Validate the Cedar statement using the AWS documentation provided for just-in-time node access policy statement structure and make sure you abide by the schema.
  3. A inserção desse prompt de exemplo resultou na seguinte saída:

    Based on the AWS documentation for Cedar policy statements and the examples provided, I'll create a valid Cedar policy 
    statement that allows a principal to use the "getTokenForInstanceAccess" action for resources with the tag key "Environment" and tag value "Testing".
                                
    Here's the Cedar policy statement:
    
    permit (
        principal,
        action == AWS::SSM::Action::"getTokenForInstanceAccess",
        resource
    )
    when {
        resource.hasTag("Environment") &&
        resource.getTag("Environment") == "Testing"
    };
    
    
    This policy statement:
    1. Uses the permit effect to allow access
    2. Applies to any principal (since no specific principal is defined)
    3. Specifically targets the "getTokenForInstanceAccess" action
    4. Applies to resources that have a tag with key "Environment" and value "Testing"
    5. Uses the proper syntax for the condition clause with the hasTag() and getTag() operators
    
    The statement follows the Cedar policy language structure as documented in the AWS Systems Manager documentation for just-in-time node access policies.
  4. Cole a instrução de política em um novo arquivo Cedar para validar a sintaxe. Você também pode validar a instrução usando o playground Cedar.

  5. Depois de validar a instrução, salve o arquivo Cedar.

  6. No seu terminal, execute o comando da AWS CLI a seguir para criar um documento do SSM usando o conteúdo da sua política. Antes de usar políticas de aprovação em um ambiente de produção, teste suas políticas de aprovação com um subconjunto de identidades e nós em uma Conta da AWS e Região da AWS.

    nota

    Para uma política de aprovação automática, o nome do documento deve ser SSM-JustInTimeAccessAutoApprovalPolicy. Só pode haver uma política de aprovação automática por Conta da AWS e Região da AWS. Para uma política de negação de acesso, o nome do documento deve ser SSM-JustInTimeAccessDenyAccessOrgPolicy. Só pode haver uma política de negação de acesso por organização do AWS Organizations, e a política deve ser criada na conta de administrador delegado do Systems Manager. As restrições de nomenclatura das políticas de aprovação manual são as mesmas de outros documentos do SSM. Para obter mais informações, consulte CreateDocument.

    Linux & macOS
    aws ssm create-document \ --content file://path/to/file/policyContent.cedar \ --name "SSM-JustInTimeAccessAutoApprovalPolicy" \ --document-type "AutoApproval"
    Windows
    aws ssm create-document ^ --content file://C:\path\to\file\policyContent.cedar ^ --name "SSM-JustInTimeAccessAutoApprovalPolicy" ^ --document-type "AutoApproval"
    PowerShell
    $cedar = Get-Content -Path "C:\path\to\file\policyContent.cedar" | Out-String New-SSMDocument ` -Content $cedar ` -Name "SSM-JustInTimeAccessAutoApprovalPolicy" ` -DocumentType "AutoApproval"