Quais são os privilégios mínimos necessários para que um usuário realize criações, exclusões, modificações, backup e recuperação em uma instância de banco de dados do Amazon RDS?

6 minuto de leitura
0

Quero limitar o acesso que concedo aos meus usuários do AWS Identity and Access Management (IAM) a uma instância de banco de dados do Amazon Relational Database Service (Amazon RDS). Como posso conceder aos usuários do IAM os privilégios mínimos necessários para realizar uma ação específica em uma instância de banco de dados do Amazon RDS?

Resolução

Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), certifique-se de estar usando a versão mais recente da AWS CLI.

1.    Abra o console do IAM e, em seguida, selecione Usuários no painel de navegação.

2.    Selecione Adicionar usuário e, em seguida, insira um Nome de usuário.

3.    Em Tipo de acesso, selecione acesso ao Console de Gerenciamento da AWS e, em seguida, crie uma senha para usar o console do Amazon RDS. Para fornecer acesso à AWS Command Line Interface (AWS CLI), selecione Acesso programático.

Importante: para Acesso programático, certifique-se de baixar o ID da chave de acesso e a chave de acesso secreta selecionando Download.csv. Você precisa das chaves para criar os tokens de segurança posteriormente.

4.    Analise as permissões e as tags e selecione Criar usuário. Isso cria um usuário do IAM com a política IAMUserChangePassword.

5.    Crie políticas do IAM para as ações que você deseja realizar no Amazon RDS.

6.    Retorne ao console do IAM e selecione Usuários no painel de navegação.

7.    Selecione o usuário do IAM que você criou.

8.    Na guia Permissões, selecione Adicionar política em linha.

9.    Escolha a guia JSON e, em seguida, insira uma ou mais das políticas a seguir com base no seu caso de uso.

Observação: as políticas a seguir fornecem os privilégios mínimos necessários para realizar as ações especificadas. Você pode receber erros (como IAMUser não tem autorização para executar: rds:Action) no console do Amazon RDS porque esse privilégio não está presente na política. Na maioria das vezes, esse erro ocorre com as ações Descrever. O erro é esperado e não afeta sua capacidade de realizar essas ações. Para evitar esse erro, você pode modificar o exemplo de políticas do IAM a seguir ou executar ações usando a AWS CLI.

Criação e exclusão de instâncias de banco de dados do RDS

A política a seguir permite que os usuários criem instâncias de banco de dados do RDS sem a criptografia ativada:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeVpcAttribute",
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeInternetGateways",
        "ec2:DescribeAvailabilityZones",
        "ec2:DescribeVpcs",
        "ec2:DescribeAccountAttributes",
        "ec2:DescribeSubnets",
        "rds:Describe*",
        "rds:ListTagsForResource",
        "rds:CreateDBInstance",
        "rds:CreateDBSubnetGroup"
      ],
      "Resource": "*"
    }
  ]
}

A política a seguir permite que os usuários criem instâncias de banco de dados do RDS com a criptografia ativada:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeVpcAttribute",
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeInternetGateways",
        "ec2:DescribeAvailabilityZones",
        "ec2:DescribeVpcs",
        "ec2:DescribeAccountAttributes",
        "ec2:DescribeSubnets",
        "rds:Describe*",
        "rds:ListTagsForResource",
        "rds:CreateDBInstance",
        "rds:CreateDBSubnetGroup",
        "kms:ListAliases"
      ],
      "Resource": "*"
    }
  ]
}

Observação: para usar uma chave gerenciada pelo cliente para criptografia em vez da chave gerenciada pela AWS padrão, você deve autorizar o uso de uma chave gerenciada pelo cliente.

A política a seguir permite que os usuários excluam instâncias de banco de dados do RDS:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "rds:DeleteDBInstance",
        "rds:DescribeDBInstances"
      ],
      "Resource": "*"
    }
  ]
}

A política a seguir permite que os usuários criem e excluam instâncias de banco de dados do RDS:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeVpcAttribute",
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeInternetGateways",
        "ec2:DescribeAvailabilityZones",
        "ec2:DescribeVpcs",
        "ec2:DescribeAccountAttributes",
        "ec2:DescribeSubnets",
        "rds:Describe*",
        "rds:ListTagsForResource",
        "rds:CreateDBInstance",
        "rds:CreateDBSubnetGroup",
        "rds:DeleteDBInstance"
      ],
      "Resource": "*"
    }
  ]
}

Interrupção e inicialização de instâncias de banco de dados do RDS

A política a seguir permite que os usuários interrompam e inicializem instâncias de banco de dados do RDS:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "rds:StopDBInstance",
        "rds:StartDBInstance",
        "rds:Describe*"
      ],
      "Resource": "*"
    }
  ]
}

Execução de backup e recuperação (criação de snapshots de banco de dados, restauração de instâncias de banco de dados a partir de snapshots de banco de dados e restauração para um ponto anterior no tempo)

A política a seguir permite que os usuários criem snapshots de banco de dados:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "rds:Describe*",
        "rds:CreateDBSnapshot"
      ],
      "Resource": "*"
    }
  ]
}

A política a seguir permite que os usuários restaurem instâncias de banco de dados do RDS usando snapshots de banco de dados:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:Describe*",
        "rds:Describe*",
        "rds:RestoreDBInstanceFromDBSnapshot"
      ],
      "Resource": "*"
    }
  ]
}

A política a seguir permite que os usuários realizem a recuperação para um ponto anterior no tempo:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:Describe*",
        "rds:Describe*",
        "rds:RestoreDBInstanceToPointInTime"
      ],
      "Resource": "*"
    }
  ]
}

Alteração de instâncias de banco de dados do RDS

A política a seguir permite que os usuários alterem o tipo de classe da instância de banco de dados, o armazenamento alocado, o tipo de armazenamento e a versão da instância:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:Describe*",
        "rds:Describe*",
        "rds:ModifyDBInstance"
      ],
      "Resource": "*"
    }
  ]
}

Ativação do monitoramento avançado e do Performance Insights

A política a seguir permite que os usuários ativem o monitoramento avançado. Certifique-se de substituir AccountID por cada conta que está recebendo o perfil de monitoramento avançado:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iam:GetRole",
        "iam:ListRoles",
        "rds:ModifyDBInstance",
        "rds:Describe*",
        "ec2:Describe*"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "iam:PassRole"
      ],
      "Resource": "arn:aws:iam::AccountID:role/rds-monitoring-role"
    }
  ]
}

Observação: quando usado com um iam:PassRole, um curinga (*) é excessivamente permissivo porque ele autoriza permissões iam:PassRole em todos os recursos. Portanto, é uma prática recomendada especificar os nomes dos recursos da Amazon (ARNs), conforme mostrado no exemplo anterior.

A política a seguir permite que os usuários ativem o Performance Insights:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "rds:ModifyDBInstance",
        "ec2:Describe*",
        "rds:Describe*",
        "pi:*"
      ],
      "Resource": "*"
    }
  ]
}

Criação, modificação e exclusão de grupos de parâmetros de banco de dados e grupos de opções de banco de dados

A política a seguir permite que os usuários criem, modifiquem ou excluam grupos de opções e grupos de parâmetros de banco de dados:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:Describe*",
        "rds:Describe*",
        "rds:CreateDBParameterGroup",
        "rds:ModifyDBParameterGroup",
        "rds:DeleteDBParameterGroup",
        "rds:CreateOptionGroup",
        "rds:ModifyOptionGroup",
        "rds:DeleteOptionGroup"
      ],
      "Resource": "*"
    }
  ]
}

Visualização das métricas do Amazon CloudWatch no console do Amazon RDS

A política a seguir permite que os usuários visualizem as métricas do CloudWatch no console do Amazon RDS:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "rds:Describe*",
        "cloudwatch:GetMetricData",
        "cloudwatch:GetMetricStatistics"
      ],
      "Resource": "*"
    }
  ]
}

10.    Selecione Política de revisão.

11.    Insira um Nome para a política e selecione Criar política.


Informações relacionadas

Gerenciamento de identidade e acesso no Amazon RDS

Como permitir que os usuários se autentiquem em uma instância de banco de dados MySQL do Amazon RDS usando suas credenciais do IAM?