

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

# Crie uma função do IAM para o AWS Security Agent
<a name="create-iam-role"></a>

O AWS Security Agent usa funções do IAM de três maneiras:

1.  **Função do aplicativo:** usada ao criar o aplicativo AWS Security Agent. Para casos de uso do IAM Identity Center e do link de acesso administrativo, o serviço assume essa função de conceder aos WebApp usuários permissões para interagir com as APIs do AWS Security Agent.

1.  **Função do serviço de teste de penetração:** especificada ao criar espaços de agente como uma lista de funções disponíveis. Posteriormente, WebApp os usuários selecionam uma dessas funções ao criar um teste de penetração. O serviço AWS Security Agent assume essa função para acessar seus recursos da AWS durante o teste.

1.  **Papel do ator:** usado para autenticar e autorizar solicitações para seu aplicativo web de destino (por exemplo, APIs do AWS API Gateway). Essas funções são fornecidas durante a criação do espaço do agente. O agente do AWS Security Agent assume funções de ator para interagir com seu aplicativo de destino.

## Função do aplicativo
<a name="_application_role"></a>

A função do aplicativo é usada ao criar seu aplicativo do AWS Security Agent no serviço. Para cenários de autenticação do IAM Identity Center e do link de acesso do administrador, o serviço AWS Security Agent assume essa função para conceder aos WebApp usuários as permissões necessárias para interagir com as APIs do AWS Security Agent.

### Permissões obrigatórias
<a name="_required_permissions"></a>

Essa função precisa de permissões para:
+ Invoque operações de API do AWS Security Agent
+ Leia e grave dados de configuração do aplicativo
+ Acesse as informações da sessão do usuário
+ Gerenciar tokens de autenticação para WebApp usuários

### Política de confiança
<a name="_trust_policy"></a>

A política de confiança deve permitir que o serviço AWS Security Agent assuma essa função:

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

### Política de permissões
<a name="_permissions_policy"></a>

A função deve incluir permissões para:

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "securityagent:GetApplication",
        "securityagent:UpdateApplication",
        "securityagent:ListAgentInstances",
        "securityagent:CreatePentestSession"
      ],
      "Resource": "arn:aws:securityagent:*:*:application/*"
    }
  ]
}
```

**nota**  
Personalize as permissões com base nos requisitos específicos do seu aplicativo e no princípio do menor privilégio.

## Função do serviço de teste de penetração
<a name="_penetration_test_service_role"></a>

A função do serviço de teste de penetração é especificada ao criar espaços de agente como uma lista de funções disponíveis. Quando WebApp os usuários criam um teste de penetração, eles selecionam uma dessas funções. O serviço AWS Security Agent então assume essa função para acessar e testar seus recursos da AWS.

### Permissões obrigatórias
<a name="_required_permissions_2"></a>

Essa função precisa de permissões para acessar e analisar seus recursos da AWS durante o teste de penetração:
+ Leia e descreva as configurações de VPC e a topologia de rede
+ Inspecione instâncias do EC2, grupos de segurança e ACLs de rede
+ Analise as políticas do IAM e as permissões de recursos
+ Leia CloudWatch registros e métricas
+ Acesse as configurações de serviços da AWS relevantes para testes de segurança

### Política de confiança
<a name="_trust_policy_2"></a>

A política de confiança deve permitir que o serviço AWS Security Agent assuma essa função nas operações de teste de penetração:

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "securityagent.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "sts:ExternalId": "your-external-id"
        }
      }
    }
  ]
}
```

**nota**  
Use uma ID externa para maior segurança ao permitir o acesso entre contas ou serviços.

### Política de permissões
<a name="_permissions_policy_2"></a>

A função deve incluir acesso somente de leitura aos seus recursos da AWS. Considere usar estas políticas gerenciadas:
+  `SecurityAudit`- Política gerenciada pela AWS para auditoria de segurança
+  `ViewOnlyAccess`- Read-only acesso à maioria dos serviços da AWS

Ou crie uma política personalizada com permissões específicas:

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:Describe*",
        "vpc:Describe*",
        "iam:Get*",
        "iam:List*",
        "logs:DescribeLogGroups",
        "logs:DescribeLogStreams",
        "cloudwatch:Describe*",
        "cloudwatch:Get*",
        "cloudwatch:List*",
        "s3:GetObject",
        "s3:ListBucket"
      ],
      "Resource": "*"
    }
  ]
}
```

**Importante**  
Conceda somente as permissões mínimas necessárias para o escopo do seu teste de penetração. Revise e ajuste as permissões com base nos serviços da AWS que você deseja incluir nos testes de segurança.

## Papel do ator
<a name="_actor_role"></a>

A função de ator é usada para autenticar e autorizar solicitações para seu aplicativo web de destino durante o teste de penetração. Essas funções são fornecidas durante a criação do espaço do agente, e o agente do AWS Security Agent presume que elas interajam com os endpoints do aplicativo de destino (como APIs do AWS API Gateway, URLs da função Lambda ou outros aplicativos). AWS-hosted 

### Permissões obrigatórias
<a name="_required_permissions_3"></a>

Essa função precisa de permissões para:
+ Invoque os endpoints do API Gateway
+ Execute funções Lambda
+ Acesse recursos da AWS específicos do aplicativo
+ Autentique-se com os mecanismos de autenticação do seu aplicativo de destino
+ Execute operações HTTP nos endpoints do seu aplicativo

### Política de confiança
<a name="_trust_policy_3"></a>

A política de confiança deve permitir que o serviço de agente do AWS Security Agent assuma essa função:

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "securityagent.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "sts:ExternalId": "your-external-id"
        }
      }
    }
  ]
}
```

### Política de permissões
<a name="_permissions_policy_3"></a>

As permissões dependem da arquitetura do aplicativo de destino. Aqui estão alguns exemplos de cenários comuns:

#### Para aplicativos do API Gateway
<a name="_for_api_gateway_applications"></a>

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "execute-api:Invoke"
      ],
      "Resource": "arn:aws:execute-api:us-east-1:*:your-api-id/*"
    }
  ]
}
```

#### Para URLs da função Lambda
<a name="_for_lambda_function_urls"></a>

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "lambda:InvokeFunctionUrl",
        "lambda:InvokeFunction"
      ],
      "Resource": "arn:aws:lambda:us-east-1:*:function:your-function-name"
    }
  ]
}
```

#### Para Application Load Balancer com Autenticação Cognito
<a name="_for_application_load_balancer_with_cognito_authentication"></a>

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "cognito-idp:InitiateAuth",
        "cognito-idp:RespondToAuthChallenge"
      ],
      "Resource": "arn:aws:cognito-idp:us-east-1:*:userpool/your-user-pool-id"
    }
  ]
}
```

**Importante**  
Configure as permissões do Actor Role para corresponder aos requisitos de autenticação e autorização do seu aplicativo de destino. A função deve ter o mesmo nível de acesso dos usuários ou serviços que o Security Agent simulará durante o teste de penetração.