Salta al contenuto

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?

5 minuti di lettura
0

Desidero concedere ai miei utenti AWS Identity and Access Management (IAM) le autorizzazioni minime necessarie per gestire istanze database Amazon Relational Database Service (Amazon RDS).

Risoluzione

Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori relativi ad AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.

Per configurare l'accesso di un utente IAM a un'istanza database RDS, completa i seguenti passaggi:

  1. Apri la console IAM.
  2. Nel pannello di navigazione, scegliUtenti.
  3. Scegli Aggiungi utente, quindi inserisci un Nome utente.
  4. 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 ad AWS CLI, scegli Accesso programmatico.
    Importante: per Accesso programmatico, scegli Download.csv per scaricare l'ID della chiave di accesso e la chiave di accesso segreta. Le chiavi ti serviranno a creare i token di sicurezza in un secondo momento.
  5. Controlla le autorizzazioni e i tag, quindi scegli Crea utente.
    Nota: in questo modo crei un utente IAM con la policy IAMUserChangePassword.
  6. Crea policy IAM per le azioni desiderate da eseguire in Amazon RDS.
  7. Aggiungi le policy IAM all'utente.

Esempio di policy IAM

Nel seguente esempio, le policy forniscono i privilegi minimi richiesti per eseguire le azioni specificate. Potresti riscontrare errori nella console Amazon RDS perché l'autorizzazione richiesta non è presente nella policy. Ad esempio, potresti visualizzare il messaggio di errore IAMUser is not authorized to perform: rds:Action.

Potrebbero verificarsi errori per le azioni Describe, ma l'errore non influisce sulla capacità di eseguire tali azioni. Per evitare un errore, modifica il seguente esempio di policy IAM o utilizza AWS CLI per eseguire le azioni.

Creare ed eliminare istanze database RDS

Per consentire agli utenti di creare istanze database RDS senza crittografia attivata, utilizza la seguente policy:

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

Per consentire agli utenti di creare istanze database RDS con crittografia attivata, utilizza la seguente policy:

{  
  "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, devi autorizzare l'utilizzo di una chiave gestita dal cliente.

Per consentire agli utenti di eliminare istanze database RDS, utilizza la seguente policy:

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

Per consentire agli utenti di creare ed eliminare istanze database RDS, utilizza la seguente policy:

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

Arrestare e avviare istanze database RDS

Per consentire agli utenti di avviare e arrestare istanze database RDS, utilizza la seguente policy:

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

Eseguire backup e ripristino

Per consentire agli utenti di creare snapshot di database, utilizza la seguente policy:

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

Per consentire agli utenti di ripristinare istanze database RDS che utilizzano snapshot di database, utilizza la seguente policy:

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

Per consentire agli utenti di eseguire il ripristino point-in-time, utilizza la seguente policy:

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

Modificare istanze database RDS

Per consentire agli utenti di modificare il tipo di classe di un'istanza database, lo spazio di archiviazione allocato, il tipo di archiviazione e la versione dell'istanza, utilizza la seguente policy:

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

Attivare Monitoraggio avanzato e Approfondimenti sulle prestazioni

Quando utilizzi un iam:PassRole, un carattere jolly (*) è eccessivamente permissivo perché concede autorizzazioni IAM:PassRole su tutte le risorse. È consigliabile specificare gli ARN.

Per consentire agli utenti di attivare Monitoraggio avanzato, utilizza la seguente policy:

{  
  "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: assicurati di sostituire AccountID con ogni utente che riceve il ruolo Monitoraggio avanzato.

Per consentire agli utenti di attivare Approfondimenti sulle prestazioni, utilizza la seguente policy:

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

Creare, modificare ed eliminare gruppi di parametri database e gruppi di opzioni database

Per consentire agli utenti di creare, modificare o eliminare gruppi di parametri database e gruppi di opzioni database, utilizza la seguente policy:

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

Visualizzare le metriche di Amazon CloudWatch dalla console Amazon RDS

Per consentire agli utenti di visualizzare le metriche di CloudWatch dalla console Amazon RDS, utilizza la seguente policy:

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

Informazioni correlate

Gestione delle identità e degli accessi per Amazon RDS

Come faccio a consentire agli utenti di autenticarsi in un'istanza database Amazon RDS per MySQL utilizzando le proprie credenziali IAM?