View a markdown version of this page

Trabalhando com ações direcionadas - AWS DevOps Agente

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

Trabalhando com ações direcionadas

AWS DevOps O agente pode agir em seus serviços e AWS contas conectados quando um operador solicitar explicitamente. Por exemplo, um operador que está investigando um incidente pode pedir ao agente que descreva o estado de um recurso. Com as permissões e aprovações apropriadas, o operador também pode solicitar que o agente corrija um problema diretamente.

O agente distingue dois tipos de operações:

  • Read-only ações: operações que só leem informações de seus serviços e AWS contas conectados. Eles estão disponíveis por padrão.

  • Ações direcionadas: operações que criam, modificam ou alteram recursos. As ações direcionadas são elevadas: elas são desativadas por padrão e exigem aceitação explícita em camadas, além da aprovação do operador por ação.

O modelo de segurança para ações direcionadas é a defesa em profundidade. O recurso está desativado por padrão. Você opta por meio de camadas independentes: habilitando ações direcionadas no espaço do agente, registrando uma função do IAM por conta e categorizando cada ferramenta. Cada ação direcionada exige a aprovação do operador no momento da execução. Cada aprovação e ação resultante são atribuíveis ao operador aprovador em. AWS CloudTrail

Para ações contra AWS recursos, o agente impõe suas próprias barreiras às operações do AWS SDK que ele invoca, independentemente das permissões que você concede. Para obter mais informações sobre essas barreiras, consulte Operações que o agente não executará.

Exemplo: execução de um plano de mitigação a partir de uma investigação

Este exemplo mostra a experiência completa de um cenário comum. Um operador analisa o plano de mitigação de uma investigação ou uma recomendação de melhoria. A operadora pede que o agente faça isso sem sair da conversa.

Um engenheiro de confiabilidade do site (SRE) solicita que o agente no chat procure qualquer conta que permita o acesso por SSH. 0.0.0.0/0 O agente encontra um grupo de segurança com uma regra de entrada aberta. Ele recomenda uma mitigação: restrinja a regra ao alcance da rede interna. O operador diz ao agente que o aplique.

  1. O agente propõe a mudança. O agente inspeciona o grupo de segurança (uma ação somente para leitura). Ele propõe remover a 0.0.0.0/0 regra e adicionar uma regra com escopo ao alcance da rede interna. A proposta identifica a operação exata da API, o grupo de segurança alvo, uma avaliação de risco, o raio de explosão esperado e as etapas de reversão.

  2. O operador revisa e aprova. A operação modifica um recurso, portanto, é uma ação direcionada. A solicitação de aprovação mostra a operação e seus parâmetros. O operador pode ajustar os parâmetros, por exemplo10.1.0.0/16, restringir 10.0.0.0/8 ou rejeitar a solicitação. Nada é executado sem aprovação explícita.

  3. O agente é executado de acordo com credenciais com escopo definido. O agente usa credenciais da função elevada registrada. As credenciais têm como escopo a operação e o recurso aprovados e são válidas para uma janela limitada. A aprovação não pode ser reutilizada para uma operação ou recurso diferente.

  4. A ação é totalmente auditável. A chamada aparece AWS CloudTrail com uma identidade de origem que a atribui ao operador aprovador. CloudTrail registra os parâmetros aprovados e executados.

O mesmo fluxo se aplica quando você inspeciona qualquer investigação, plano de mitigação ou recomendação de melhoria e solicita que o agente execute uma etapa. O agente transforma a etapa em uma operação proposta específica e solicita aprovação antes de agir.

O mesmo fluxo se aplica às ferramentas de terceiros. Um operador que faz a triagem do ruído de alerta solicita que o agente aumente o limite de uma regra de alerta do Grafana. AWS DevOps O agente classifica essa ferramenta como mutante e a equipe a habilitou para acesso elevado à integração. O agente apresenta uma solicitação de aprovação mostrando a ferramenta e os parâmetros. Após a aprovação, o agente invoca a ferramenta por meio da integração. AWS DevOps O agente atribui a ação ao operador aprovador.

Antes que as ações direcionadas sejam ativadas, ou sem uma função elevada registrada, o agente ainda investiga com ações somente para leitura. Ele fornece etapas de remediação manual em vez de uma alteração executável.

Pré-requisitos

Antes de usar ações direcionadas, você precisa do seguinte:

  • Um espaço de AWS DevOps agente no Agente com pelo menos uma associação a uma AWS conta ou integração suportada por terceiros.

  • Permissões para atualizar o espaço do agente e suas associações, por exemplo, por meio do console ou da API do AWS DevOps agente.

  • Permissões na conta de destino para criar uma função do IAM e definir suas políticas de confiança e permissão, para ações direcionadas contra AWS contas.

  • iam:PassRolepermissão ativada arn:aws:iam::<account-id>:role/* em sua própria conta, com a chave de condição iam:PassedToService definida comoaidevops.amazonaws.com, para registrar a função na associação. Um iam:PassRole subsídio mais amplo também satisfaz esse requisito.

  • Acesso ao espaço do agente para os operadores que aprovarão as ações direcionadas.

Habilitando ações direcionadas em um espaço de agentes

As ações direcionadas devem ser habilitadas no espaço do agente antes que qualquer outra configuração elevada entre em vigor. Esse é o controle primário para ações direcionadas. Se estiver desativado, registros elevados de funções e opt-ins elevados de ferramentas não surtirão efeito. As tentativas de registrar uma configuração elevada podem ser rejeitadas.

Habilitar o no console

  1. Abra o console do AWS DevOps Agente.

  2. Escolha seu espaço de agente.

  3. Navegue até as configurações do espaço do agente e ative as ações direcionadas.

  4. Confirme a alteração.

Habilitando por meio da API

Você habilita ações direcionadas por meio do espaço do agentepreferences. Esse campo é um mapa digitado de chaves de preferência para valores booleanos. Você o configura CreateAgentSpace UpdateAgentSpace e.

O exemplo a seguir permite ações direcionadas com a AWS CLI.

aws devops-agent update-agent-space \ --agent-space-id <your-agent-space-id> \ --preferences elevatedActionsEnabled=true

O preferences campo tem os seguintes comportamentos:

  • O fornecimento de preferences ativado UpdateAgentSpace substitui o conjunto completo, portanto, as preferências omitidas são revertidas para seus padrões.

  • A omissão do preferences campo deixa os valores atuais inalterados.

  • elevatedActionsEnabledA configuração é opcional, pois a preferência é padrão. false

  • O fornecimento de uma chave de preferência desconhecida falha comValidationException.

  • A alteração de uma preferência entra em vigor imediatamente e é equivalente à alternância do console.

  • A chamada GetAgentSpace retorna o preferences mapa atual, o que confirma a configuração.

Registrando uma função elevada para um AWS account

Para cada AWS conta associada, você pode, opcionalmente, registrar uma função elevada. A conta do monitor e todas as contas de origem oferecem suporte a um registro de função elevado. Uma função elevada é uma função do IAM em sua conta que o AWS DevOps agente supõe para realizar ações direcionadas em seu nome. Você registra a função agentElevatedRoleArn definindo a AWS configuração da associação.

Ao registrar uma função elevada, tenha em mente o seguinte:

  • O registro é opcional por conta. Se você não registrar uma função elevada para uma conta, somente ações de leitura estarão disponíveis para essa conta.

  • Recomendamos uma convenção de nomenclatura reconhecível, DevOpsAgent-ElevatedAction-* para que funções elevadas sejam fáceis de auditar. O serviço não exige um nome específico.

  • A política de permissão da função é gerenciada pelo cliente. Escale-a para as ações que você deseja que o agente possa realizar. A função define o limite máximo do que o agente pode fazer em sua conta. Não é um subsídio permanente. Além disso, cada ação direcionada exige a aprovação do operador no momento da execução, e a sessão do agente tem como escopo adicional a operação específica aprovada.

Escrevendo a política de confiança

A função elevada deve confiar no diretor de serviço do AWS DevOps agente. A validação exercita o caminho de assumir uma função. AWS DevOps O agente usa três ações STS quando assume a função. A política de confiança deve permitir todos os três: sts:AssumeRolests:SetSourceIdentity, sts:TagSession e. Se você omitir sts:SetSourceIdentity ousts:TagSession, as ações direcionadas falharão no momento da credencial, mesmo quando o status de validação for. valid

O exemplo a seguir mostra uma política de confiança para uma função elevada. 111122223333Substitua pelo ID AWS da sua conta e us-east-1 pela AWS região do seu espaço de agente.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "aidevops.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:SetSourceIdentity", "sts:TagSession" ], "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:aidevops:us-east-1:111122223333:agentspace/*" } } } ] }

As aws:SourceArn condições aws:SourceAccount e protegem contra o confuso problema do deputado. Eles garantem que a função só possa ser assumida em nome de seus próprios espaços de agentes. A região na aws:SourceArn condição deve corresponder à região do seu espaço de agente. Se você opera espaços de agentes em várias regiões, use um curinga de região (arn:aws:aidevops:*:111122223333:agentspace/*) ou o ARN específico do espaço do agente.

Concessão de permissões para a função elevada

A política de permissão da função elevada define o limite máximo do que o AWS DevOps agente pode fazer em sua conta por meio de ações direcionadas. O agente nunca opera nesse teto. Cada ação direcionada exige a aprovação do operador. As credenciais emitidas para uma ação aprovada têm uma política de sessão. A política da sessão os limita à operação e aos recursos específicos aprovados pelo operador. O agente compõe a política da sessão somente a partir de uma lista selecionada de ações de AWS IAM suportadas que o AWS DevOps agente mantém. Uma ação fora dessa lista nunca pode fazer parte de uma política de sessão. Para navegar pela lista, abra a página Configuração no console do AWS DevOps Agente. Escolha Exibir ações suportadas na seção Ações do agente. Você tem duas opções para a política de permissão.

Opção 1: anexar a política AWS gerenciada. AWS DevOps O agente fornece a política AIDevOpsAgentActionsPolicy gerenciada. Seu ARN é arn:aws:iam::aws:policy/AIDevOpsAgentActionsPolicy. Para ver o documento de política em formato de código, consulte o Guia de referência de políticas AWS gerenciadas.

A política gerenciada tem as seguintes características:

  • Ele concede permissões amplas: todas as ações, em todos os recursos. Ele exclui serviços de gerenciamento de identidade, credenciais e organizações. Os serviços excluídos são account:* cognito-identity:* iam:*identitystore:*,organizations:*,ram:*, rolesanywhere:*sso:*,, sts:* e. Como resultado, a função não pode gerenciar identidades nem obter mais acesso.

  • Ele permite um pequeno conjunto de ações somente para leitura a partir desses serviços: account:GetAccountInformationaccount:GetGovCloudAccountInformation,account:GetPrimaryEmail,account:ListRegions,iam:ListRoles, organizations:DescribeEffectivePolicyorganizations:DescribeOrganization, e. sts:DecodeAuthorizationMessage

  • Ele inclui ações de exclusão de classe no teto. O próprio agente recusa as operações da classe de exclusão, independentemente das permissões da função. Para obter mais informações sobre as operações que o agente recusa, consulte Operações que o agente não executará.

  • A política define apenas o teto. As permissões efetivas para qualquer ação individual são reduzidas no momento da execução à operação aprovada.

Opção 2: redigir uma política gerenciada pelo cliente. Se você quiser um teto mais rígido do que o fornecido pela política gerenciada, escreva sua própria política. Defina exatamente as ações e os recursos que você deseja que o agente toque e associe-os à função. Siga o princípio do menor privilégio: comece com as operações que você espera que os operadores aprovem e expanda somente conforme necessário. As ações direcionadas que a função não permite falham no momento da execução, mesmo quando aprovadas.

Com qualquer uma das opções, você pode restringir ainda mais o que o agente pode fazer usando políticas de controle de serviços (SCPs) e limites de permissões. Esses controles se aplicam à função elevada como qualquer outra função em sua conta. Para obter mais informações sobre como definir o escopo do acesso do agente, consulteLimitando o acesso do agente em um AWS Conta.

Ciclo de vida de validação

A forma como a validação da política de confiança é executada depende do tipo de conta.

  • Monitore a conta (primária). A validação é síncrona. AWS DevOps O agente valida a função quando você a salva. O resultado estará disponível quando a página for recarregada ou a chamada de API for retornada. agentElevatedRoleArnStatusreflete valid ou invalid imediatamente.

  • Contas de origem (secundárias). A validação é assíncrona. Depois de registrar uma função elevada, acontece o seguinte:

    1. A associação aceita imediatamente o registro e relata agentElevatedRoleArnStatus comopending-confirmation.

    2. AWS DevOps O agente valida a função exercendo o caminho de assumir função.

    3. O status muda para valid se a validação for bem-sucedida ou invalid se falhar.

A função é usada para ações direcionadas somente após seu status servalid.

Para contas de origem, pesquise a associação com GetAssociation ou ListAssociations e marque o agentElevatedRoleArnStatus campo. A validação normalmente é concluída em alguns minutos.

Operações que o agente não executará

Independentemente das permissões que você concede, o agente impõe suas próprias barreiras às operações do AWS SDK que ele invoca como ações direcionadas. Essas barreiras se aplicam somente a ações contra AWS recursos. Em vez disso, a classificação de ferramentas rege as ferramentas de terceiros. Para obter mais informações sobre classificação de ferramentas, consulte Ferramentas de categorização para integrações de terceiros. Essas barreiras se aplicam mesmo quando a política da função elevada permite a operação. A aprovação do operador não os substitui.

  • Exclua recursos. O agente recusa operações de exclusão de classe, por exemplo, excluir uma instância, bucket, tabela, função ou pilha. O próprio operador exclui os recursos com suas próprias credenciais.

  • Altere os limites das permissões. O agente recusa operações que definem ou removem limites de permissões do IAM: iam:PutRolePermissionsBoundaryiam:DeleteRolePermissionsBoundary,iam:PutUserPermissionsBoundary, e. iam:DeleteUserPermissionsBoundary Os limites são um controle que sua organização usa para restringir o agente, para que ele não possa alterá-los.

  • Exigiriam:PassRole. Por padrão, o agente não oferece suporte a operações que transmitem uma função do IAM para um AWS serviço. Os exemplos incluem iniciar uma instância com um perfil de instância ou criar uma função Lambda com uma função de execução. Iniciar uma tarefa com uma função de tarefa é outro exemplo. A aprovação de uma função pode ampliar indiretamente o que um serviço faz em seu nome.

Quando orientado a realizar uma dessas operações, o agente recusa e explica o porquê. Sempre que possível, ele descreve as etapas manuais em vez disso.

Essas barreiras complementam os controles que você possui: a política de permissão da função elevada, os SCPs e os limites de permissões da função elevada.

Ferramentas de categorização para integrações de terceiros

Third-party e as integrações MCP expõem ferramentas em três categorias que determinam se o agente pode invocar a ferramenta e qual aprovação é necessária. AWS DevOps O agente atribui classificações fixas para integrações nativas. Você os atribui aos servidores MCP configurados pelo cliente.

Classificação Significado Comportamento
READ_ONLY A ferramenta só lê informações. Disponível como uma ação somente para leitura.
MUTATIVE A ferramenta pode criar ou modificar recursos. Requer que as ações direcionadas sejam ativadas e a aprovação do operador por ação no chat.
DESTRUCTIVE A ferramenta pode excluir ou alterar recursos de forma irreversível. O agente nunca invoca ferramentas nessa classificação.

Customer-configured Servidores MCP

Para associações de servidores MCP (incluindo a variante SigV4), você mesmo classifica as ferramentas por meio de uma lista de toolDetails entradas por ferramenta. Cada entrada tem um name e toolClassification a.

  • Cada um name deve corresponder exatamente a uma entrada na lista de ferramentas habilitadas da associação. Uma incompatibilidade é rejeitada no momento do registro.

  • Ferramentas sem uma classificação armazenada assumem como padrãoREAD_ONLY. Se você registrar ou atualizar uma associação de servidor MCP programaticamente, por meio de um AWS SDK, da AWS CLI ou de uma chamada direta à API, e não fornecertoolDetails, o AWS DevOps Agente tratará todas as ferramentas dessa associação como. READ_ONLY O agente executa ferramentas somente para leitura sem solicitar aprovação. Para exigir a aprovação do operador antes que uma ferramenta que cria ou modifica recursos seja executada, classifique essa ferramenta explicitamente como. MUTATIVE O console solicita que você classifique cada ferramenta descoberta. Os chamadores programáticos devem se configurar toolDetails sozinhos.

  • Os nomes das ferramentas têm de 1 a 128 caracteres. Você pode classificar até 500 ferramentas por associação.

Para obter mais informações sobre como conectar e listar ferramentas MCP na lista de permissões, consulte. Conectando servidores MCP

Integrações nativas (Datadog, Grafana)

Para integrações nativas, como Datadog e Grafana, as classificações são fixadas pelo Agente. AWS DevOps Você não fornece classificações. Você não pode substituir essas classificações. Em vez disso, você escolhe ferramentas de mutação específicas por meio enabledElevatedTools de uma lista de entradas de ferramentas.

  • Somente as ferramentas classificadas pelo AWS DevOps Agente MUTATIVE podem ser habilitadas.

  • Ferramentas classificadas como DESTRUCTIVE (por exemplo,grafana_delete_alert_rule) nunca podem ser habilitadas.

Aprovação de ações direcionadas

As ações direcionadas são humanas. Quando o agente determina que uma operação para a qual foi direcionado modifica um recurso, ele não executa a operação diretamente. Em vez disso, acontece o seguinte:

  1. O agente solicita aprovação, apresentando a ferramenta, a operação e o recurso de destino específicos ao operador.

  2. O operador analisa a solicitação e a aprova ou rejeita.

  3. Se aprovado, o agente executa a operação. Cada aprovação abrange somente a ferramenta, a operação e o recurso específicos solicitados. Ele permanece válido por uma janela de tempo limitada e não pode ser reutilizado para uma operação ou recurso diferente.

AWS DevOps O agente exibe solicitações de aprovação do operador somente no chat. Se o agente invocar uma ferramenta de mutação fora do chat, por exemplo, durante uma investigação autônoma, a chamada falhará em vez de apresentar uma solicitação de aprovação. AWS DevOps O agente nunca executa uma ferramenta de mutação sem aprovação.

As aprovações e as ações resultantes são atribuíveis ao operador aprovador em. AWS CloudTrail

O fluxo de aprovação na API

  • SendMessagetransmite uma solicitação de aprovação. A solicitação identifica a ferramenta, a operação e o recurso de destino, com identificadores de interrupção para retomada. Como exemplo prático, suponha que um operador trabalhe em um assistente de IA, como Claude. O operador solicita que ele limpe a fila de cartas mortas. arn:aws:sqs:us-east-1:111122223333:my-app-dlq Claude chama SendMessage o AWS DevOps Agente e o fluxo de resposta carrega uma solicitação de aprovação identificando a ferramentause_aws, a operação sqs:PurgeQueue e o ARN da fila, junto com toolUseIdinterruptId, e identificadores. approvalId

  • O operador registra a decisão comUpdateApprovalAction. O operador aprova com um escopo finalizado ou rejeita com um motivo opcional. Aqui, Claude apresenta a solicitação ao operador e, em seguida, chama UpdateApprovalAction com finalPattern a ferramenta action: APPROVED sqs:PurgeQueue e operation ause_aws, argumentPins fixando-a na fila resource_arn ARN.

  • O escopo finalizado pode restringir a solicitação, mas nunca pode ampliá-la.

  • O operador marca uma aprovação de uso único ou define uma janela de reutilização de até 4 horas. Uma limpeza de fila é uma operação única, portanto, o operador marca essa aprovação como uso único (singleUse: true, não). ttlSeconds

  • O cliente retoma a conversa pausada ligando SendMessage novamente com a decisão anexada. Neste exemplo, userActionResponse Claude define APPROVAL_ACTION e approvalAction fornece otoolUseId, interruptIdapprovalId, e a APPROVED decisão. AWS DevOps O agente então limpa a fila.

  • O ciclo de vida da aprovação éPENDING, então, APPROVED (resgatável) ou REJECTED (terminal). Uma APPROVED aprovação ocorre REDEEMED após o consumo e pode ser REVOKED antes do uso. Aqui, a solicitação ocorre PENDING enquanto o operador decide, APPROVED após a decisão e REDEEMED depois que o agente limpa a fila.

Qualquer agente consumidor pode conduzir esse fluxo da mesma forma, seja um assistente de IA, como Claude, um bot do Slack ou um cliente de operações personalizadas: ligueSendMessage, envie a solicitação de aprovação a um operador, registre a decisão e retome a conversa comUpdateApprovalAction. SendMessage

Monitorar e auditar

  • Status de validação da função — Monitore agentElevatedRoleArnStatus suas AWS associações (por meio de GetAssociation ouListAssociations) para confirmar se as funções elevadas permanecem no valid estado.

  • AWS CloudTrail— As ações direcionadas realizadas em suas AWS contas aparecem em CloudTrail. A sessão de função assumida carrega uma identidade de origem que atribui a ação ao operador de aprovação. Você pode rastrear cada ação direcionada até o humano que a aprovou.

Solução de problemas

Uma função registrada permanece ativapending-confirmation. Isso se aplica às contas de origem (secundárias), nas quais a validação é assíncrona. A validação normalmente é concluída em alguns minutos. Se o status não mudar, verifique se a função existe e registre novamente o ARN da função para acionar a validação novamente.

O status da função éinvalid. A validação da política de confiança falhou. Verifique se:

  • A política de confiança nomeia o AWS DevOps agente principal do serviço.

  • A política de confiança permite todas as ações STS necessárias (sts:AssumeRolests:SetSourceIdentity,, ests:TagSession), não apenassts:AssumeRole.

  • A aws:SourceAccount condição corresponde à conta proprietária do espaço do agente.

  • A região na aws:SourceArn condição corresponde à região do espaço do agente (ou usa um curinga de região).

Corrija a política de confiança e registre novamente a função.

As ações direcionadas falham mesmo que o status da função sejavalid. O valid status reflete a verificação de validação no momento do registro. Se a política de confiança foi alterada após a validação ou se sua aws:SourceArn condição estiver fixada em uma região diferente do espaço do agente, a chamada ao vivo para assumir a função ainda poderá falhar. Analise a política de confiança em relação à lista de verificação acima.

ValidationExceptionao registrar uma função elevada. As ações direcionadas devem ser habilitadas no espaço do agente antes que você possa registrar a configuração elevada. Ative as ações direcionadas no espaço do agente primeiro e depois registre a função.

Erros de incompatibilidade do nome da ferramenta durante o fornecimentotoolDetails. Cada nome toolDetails deve corresponder exatamente ao nome de uma ferramenta na lista de ferramentas habilitadas da associação, incluindo maiúsculas e minúsculas. Compare as duas listas, corrija as incompatibilidades e tente novamente.