Quali sono i privilegi minimi richiesti a un utente per eseguire azioni di creazione, eliminazione, modifica, backup e ripristino per un'istanza database Amazon RDS?

6 minuti di lettura
0

Voglio limitare l'accesso che concedo ai miei utenti di AWS Identity and Access Management (IAM) a un'istanza database di Amazon Relational Database Service (Amazon RDS). Come posso concedere agli utenti IAM i privilegi minimi necessari per eseguire un'azione specifica per un'istanza database Amazon RDS?

Soluzione

Nota: Se ricevi errori durante l'esecuzione dei comandi dell’Interfaccia della linea di comando AWS (AWS CLI), assicurati di utilizzare la versione più recente di AWS CLI.

1.    Apri la console IAM, quindi scegli Utenti dal pannello di navigazione.

2.    Scegli Aggiungi utente, quindi inserisci un nome utente.

3.    Per Tipo di accesso, scegli l'accesso Console di gestione AWS, quindi crea una password per utilizzare la console Amazon RDS. Per fornire l'accesso all'Interfaccia della linea di comando AWS (AWS CLI), scegli Accesso programmatico.

Importante: Per l'Accesso programmatico, assicurati di scaricare l'ID della chiave di accesso e la chiave di accesso segreta scegliendo Download.csv. Le chiavi ti serviranno a creare i token di sicurezza in un secondo momento.

4.    Controlla le autorizzazioni e i tag, quindi scegli Crea utente. Questa azione crea un utente IAM con la policy IAMUserChangePassword.

5.    Crea policy IAM per le azioni che vuoi eseguire in Amazon RDS.

6.    Torna alla console IAM, quindi scegli Utenti dal pannello di navigazione.

7.    Scegli l'utente IAM che hai creato.

8.    Nella scheda Autorizzazioni, scegli Aggiungi policy inline.

9.    Seleziona la scheda JSON, quindi inserisci una o più delle seguenti policy in base al tuo caso d'uso.

Nota: Le seguenti policy forniscono i privilegi minimi richiesti per eseguire le azioni specificate. Potresti visualizzare degli errori (ad esempio IAMUser is not authorized to perform: rds:Action) nella console Amazon RDS perché questo privilegio non è presente nella policy. Molto spesso, questo errore si verifica per le azioni Descrivi. L'errore è previsto e non influisce sulla tua capacità di eseguire tali azioni. Per evitare questo errore, puoi modificare i seguenti esempi di policy IAM oppure eseguire azioni utilizzando AWS CLI.

Creazione ed eliminazione di istanze database RDS

La seguente policy consente agli utenti di creare istanze database RDS senza crittografia attivata:

{
  "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": "*"
    }
  ]
}

La seguente policy consente agli utenti di creare istanze database RDS con crittografia attivata:

{
  "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": "*"
    }
  ]
}

Nota: Per utilizzare una chiave gestita dal cliente per la crittografia anziché la chiave gestita da AWS predefinita, devi autorizzare l'uso di una chiave gestita dal cliente.

La seguente policy consente agli utenti di eliminare le istanze database RDS:

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

La seguente policy consente agli utenti di creare ed eliminare istanze database 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": "*"
    }
  ]
}

Arresto e avvio delle istanze database RDS

La seguente policy consente agli utenti di arrestare e avviare le istanze database RDS:

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

Esecuzione di backup e ripristino (creazione di istantanee del database, ripristino di istanze database da istantanee del database e ripristino point-in-time)

La seguente policy consente agli utenti di creare istantanee del database:

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

La seguente policy consente agli utenti di ripristinare le istanze database RDS utilizzando le istantanee del database:

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

La seguente policy consente agli utenti di eseguire il ripristino point-in-time:

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

Modifica delle istanze database RDS

La seguente policy consente agli utenti di modificare il tipo di classe di istanza database, lo spazio di archiviazione allocato, il tipo di archiviazione e la versione dell'istanza:

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

Attivazione di Enhanced Monitoring e Performance Insights

La seguente policy consente agli utenti di attivare Enhanced Monitoring. Assicurati di sostituire AccountID con ogni account che riceve il ruolo di monitoraggio avanzato:

{
  "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"
    }
  ]
}

Nota: Se utilizzato con iam:PassRole, un carattere jolly (*) è eccessivamente permissivo perché consente le autorizzazioni iam:PassRole su tutte le risorse. Pertanto, è consigliabile specificare i nomi della risorsa Amazon (ARN), come mostrato nell'esempio precedente.

La seguente policy consente agli utenti di attivare Performance Insights:

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

Creazione, modifica ed eliminazione di gruppi di parametri e gruppi di opzioni di database

La seguente policy consente agli utenti di creare, modificare o eliminare gruppi di parametri e gruppi di opzioni del database:

{
  "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": "*"
    }
  ]
}

Visualizzazione delle metriche di Amazon CloudWatch dalla console Amazon RDS

La seguente policy consente agli utenti di visualizzare le metriche di CloudWatch dalla console Amazon RDS:

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

10.    Scegli Rivedi policy.

11.    Inserisci un nome per la tua policy, quindi scegli Crea policy.


Informazioni correlate

Identity and access management for Amazon RDS

How do I allow users to authenticate to an Amazon RDS MySQL DB instance using their IAM credentials?