Search
Close this search box.
View Categories

Utilizando o Cloud8 com uma credencial AWS customizada de segurança

O Cloud8 suporta o uso de IAM para o AWS com uma credencial customizada de segurança. Veja um exemplo das permissões mínimas que são necessárias para o acesso e funcionamento efetivo. As ações default são todas read-only e depois há uma sessão para permissões customizadas dependendo da tag atribuida a um servidor.


{
  "Version": "2012-10-17",
  "Statement": [
  {
    "Effect": "Allow",
    "Action": [
       "ec2:Describe*",
       "ec2:CreateImage",
       "ec2:CreateSnapshot",
       "ec2:ModifyInstanceAttribute",
       "ec2:AssociateAddress",
       "ec2:RebootInstances",
       "ec2:StartInstances",
       "ec2:StopInstances",
       "ec2:CreateTags",
       "ec2:DeleteTags",
       "rds:Describe*",
       "rds:StartDBInstance",
       "rds:StopDBInstance",
       "rds:StartDBCluster",
       "rds:StopDBCluster",
       "rds:Download*",
       "rds:ListTagsForResource",
       "rds:ModifyDBInstance*",
       "rds:CreateDBSnapshot*",
       "ssm:Describe*",
       "savingsplans:Describe*",
       "elasticache:Describe*",
       "elasticloadbalancing:Describe*",
       "elasticbeanstalk:Describe*",
       "autoscaling:Describe*",
       "ecs:Describe*",
       "ecs:List*",
       "eks:Describe*",
       "eks:List*",
       "cloudtrail:DescribeTrails",
       "cloudtrail:GetTrailStatus",
       "cloudtrail:Look*",
       "cloudfront:Describe*",
       "cloudfront:Get*",
       "cloudfront:List*",
       "storagegateway:Describe*",
       "storagegateway:List*",
       "es:Describe*",
       "es:List*",
       "elasticache:Describe*",
       "elasticache:List*",
       "redshift:Describe*",
       "workspaces:Describe*",
       "lightsail:Get*",
       "lambda:Get*",
       "lambda:List*",
       "tag:get*",
       "trustedadvisor:Describe*",
       "support:Describe*",
       "iam:Get*",
       "iam:List*",
       "iam:Generate*",
       "organizations:Describe*",
       "organizations:List*",
       "route53:Get*",
       "route53:List*",
       "cloudwatch:Get*",
       "cloudwatch:List*",
       "kms:List*",
       "kms:Describe*",
       "sns:ListSubscriptions*",
       "sns:CreateTopic",
       "sns:Subscribe",
       "sns:ConfirmSubscription",
       "rds:CreateEventSubscription"
    ],
       "Resource": "*"
  },
  {
    "Action": [
       "s3:ListAllMyBuckets"
    ],
    "Effect": "Allow",
    "Resource": "arn:aws:s3:::*"
  },
  {
    "Action": [
       "s3:ListBucket",
       "s3:GetBucketLocation"
    ],
    "Effect": "Allow",
    "Resource": "arn:aws:s3:::___nome_do_meu_bucket___"
  },
  {
    "Action": [
       "s3:GetObject"
    ],
    "Effect": "Allow",
    "Resource": "arn:aws:s3:::___nome_do_meu_bucket___/*"
  }
  ]
}

Pendência para o cliente: Definir qual o bucket onde são publicados os dados de cobrança (se não souber, o Cloud8 pode te informar). Nota: na policy acima todos os servidores que possuírem a tag exemplo “Cloud8” com valor “Enable”, o Cloud8 poderá executar ações fora das padrões definidas. Neste caso iniciar, parar, rebootar e associar um IP elástico. 

Outras permissões 

Restringir stop/start a um conjunto de servidores com tags 

{
   "Effect": "Allow",
   "Action": [
       "ec2:RebootInstances",
       "ec2:StartInstances",
       "ec2:StopInstances"
   ],
   "Resource": "arn:aws:ec2:*:*:instance/*",
   "Condition": {
       "StringEquals": {
             "ec2:ResourceTag/Cloud8": "Enable"
       }
   }
},

(no caso servidores que possuam a Tag “Cloud8” com valor “Enable”) 

Limpeza de backup/Política de Retenção que apaga AMI/Snapshots segundos regras


...
ec2:DeregisterImage
ec2:DeleteSnapshot
rds:DeleteDBSnapshot
rds:DeleteDBClusterSnapshot
lightsail:DeleteInstanceSnapshot
...

(insira no primeiro bloco com as permissões gerais) 

Cópia para outra região


...
ec2:CopyImage
rds:CopyDBSnapshot
rds:CopyDBClusterSnapshot
...

(insira no primeiro bloco com as permissões gerais) Economia e backup de RDS


...
rds:ModifyDBInstance*
rds:CreateDBSnapshot*
rds:CreateDBClusterSnapshot*
...

(insira no primeiro bloco com as permissões gerais) 

Monitoração de eventos de RDS


...
sns:Describe*
sns:ListSubscriptions*
sns:CreateTopic
sns:Subscribe
sns:ConfirmSubscription
rds:CreateEventSubscription
...

(insira no primeiro bloco com as permissões gerais) 

Execução de scripts via EC2 Command

...
ssm:List*
ssm:Get*
ssm:SendCommand
...

Cópia de segurança (cofre) para outra conta Conta origem:

...
ec2:ModifyImageAttribute
ec2:ModifySnapshotAttribute
rds:ModifyDBSnapshotAttribute
rds:ModifyDBClusterSnapshotAttribute
...

Conta destino:

...
ec2:CopyImage
ec2:CopySnapshot
rds:CopyDBSnapshot
rds:CopyDBClusterSnapshot
...

Redução de custos em Auto Scaling e Beanstalk

...
elasticbeanstalk:Update*
autoscaling:Update*
...

Redução de custos em ECS e Fargate

...
ecs:Describe*
ecs:Update*
...

Redução de custos em OpenSearch/ElasticSearch

...
ess:Update*
...

Load Balancer

...
elasticloadbalancing:RegisterInstancesWithLoadBalancer
elasticloadbalancing:DeregisterInstancesFromLoadBalancer
elasticloadbalancing:RegisterTargets
elasticloadbalancing:DeregisterTargets
...

 Edição de Tags  – permissões individuais dos componentes (não há um modo geral)

...
tag:*
ec2:CreateTags
ec2:DeleteTags
rds:AddTagsToResource
rds:RemoveTagsFromResource
elasticloadbalancing:RemoveTags
elasticloadbalancing:AddTags
route53:ChangeTags*
dynamodb:Tag*
dynamodb:Untag*
logs:Tag*
logs:Untag*
eks:Tag*
eks:Untag* 
elasticache:RemoveTagsFromResource
elasticache:AddTagsToResource
s3:DeleteObjectTagging
s3:DeleteJobTagging
s3:PutBucketTagging
s3:DeleteStorageLensConfigurationTagging
s3:ReplicateTags
s3:PutStorageLensConfigurationTagging
s3:PutObjectVersionTagging
s3:PutObjectTagging
s3:PutJobTagging
s3:DeleteObjectVersionTagging
dms:RemoveTagsFromResource
dms:AddTagsToResource
...

Mudança de tipo de disco 

...
ec2:ModifyVolume*
...

 Redução de custos com Redshift 

...
redshift:Pause*
redshift:Resume*
...

 Redução de custos com Workspaces 

...
workspaces:Stop*
workspaces:Start*
...

 Suporte a LightSail 

...
lightsail:Describe*
lightsail:Get*
lightsail:Stop*
lightsail:Start*
lightsail:Reboot*
lightsail:Create*
lightsail:Copy*
...

Fique à vontade para criar a sua própria policy customizada!