Como criar uma policy da AWS para o agent

Esta policy permite que o agent execute operações específicas necessárias para o provisionamento, controle e administração de instâncias EC2, além de acessar outros serviços como RDS, Elasticache, CloudWatch, e S3.

Passo 1: acessando o Console da AWS

Primeiro, entre no Console da AWS. Navegue até o serviço IAM e selecione “Policies” no menu lateral. Em seguida, clique em “Create policy” para iniciar a criação de uma nova policy.

Passo 2: criando a policy

Na seção de criação da policy, selecione a aba “JSON” e copie o código abaixo para definir as permissões necessárias para o agente da Elven:


{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowRunInstances",
            "Effect": "Allow",
            "Action": "ec2:RunInstances",
            "Resource": [
                "arn:aws:ec2:*::image/*",
                "arn:aws:ec2:*::snapshot/*",
                "arn:aws:ec2:*:*:subnet/*",
                "arn:aws:ec2:*:*:network-interface/*",
                "arn:aws:ec2:*:*:security-group/*",
                "arn:aws:ec2:*:*:key-pair/*"
            ]
        },
        {
            "Sid": "AllowEc2WithRestrictions",
            "Effect": "Allow",
            "Action": [
                "ec2:CreateVolume",
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:*:*:volume/*",
                "arn:aws:ec2:*:*:instance/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/Owner": "1p-agent"
                },
                "ForAllValues:StringEquals": {
                    "aws:TagKeys": [
                        "Owner",
                        "Name",
                        "Environment"
                    ]
                }
            }
        },
        {
            "Sid": "AllowFunctionsWithRestrictions",
            "Effect": "Allow",
            "Action": [
                "ec2:TerminateInstances",
                "ec2:StopInstances",
                "ec2:RebootInstances",
                "ec2:StartInstances",
                "ec2:DeleteSecurityGroup",
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:RevokeSecurityGroupIngress",
                "ec2:RevokeSecurityGroupEgress",
                "ec2:UpdateSecurityGroupRuleDescriptionsIngress",
                "ec2:UpdateSecurityGroupRuleDescriptionsEgress"
            ],
            "Resource": [
                "arn:aws:ec2:*:*:instance/*",
                "arn:aws:ec2:*:*:security-group/*"
            ],
            "Condition": {
                "StringEquals": {
                    "ec2:ResourceTag/Owner": "1p-agent"
                }
            }
        },
        {
            "Sid": "AllowFunctions1p",
            "Effect": "Allow",
            "Action": [
                "ec2:CreateTags",
                "ec2:CreateSecurityGroup",
                "ec2:Describe*",
                "rds:Describe*",
                "elasticache:Describe*",
                "cloudwatch:ListMetrics",
                "cloudwatch:GetMetricStatistics"
            ],
            "Resource": "*"
        },
        {
            "Sid": "Manage1pAccessKeys",
            "Effect": "Allow",
            "Action": [
                "iam:get*"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "SsmAllRegionsToAMis",
            "Effect": "Allow",
            "Action": "ssm:*",
            "Resource": [
                "arn:aws:s3:::*",
                "arn:aws:ssm:*:*:opsmetadata/*",
                "arn:aws:ec2:*:*:instance/*",
                "arn:aws:ssm:*:*:parameter/*"
            ]
        }
    ]
}

Passo 3: criando o usuário 1p-agent

Após criar a policy, navegue até o serviço IAM novamente e crie um novo usuário chamado 1p-agent. Ao criar o usuário, selecione “Attach existing policies directly” e anexe a policy que você acabou de criar ao usuário 1p-agent. Isso permitirá que o agente execute as ações especificadas na policy.

Permissões concedidas pela policy

Esta policy permite ao agente da Elven:

  • Provisionar, controlar e administrar instâncias EC2 com a tag “1P”.
  • Realizar operações de leitura e listagem em RDS, Elasticache, EC2, IAM, CloudWatch e S3.
  • Opcionalmente, conceder acesso completo ao EKS.

Com esta policy, o agente pode realizar todas as operações necessárias para manter a infraestrutura gerenciada de forma eficaz e segura, alinhada às práticas recomendadas pela AWS.

Rolar para cima