Direkt zum Inhalt

Was sind die geringsten Berechtigungen, die ein Benutzer benötigt, um eine Amazon RDS-DB-Instance zu erstellen, zu löschen, zu ändern, zu sichern und wiederherzustellen?

Lesedauer: 5 Minute
0

Ich möchte meinen AWS Identity and Access Management (IAM, Identitäts- und Zugriffsmanagement)-Benutzern die Mindestberechtigungen gewähren, die für die Verwaltung von Amazon Relational Database Service (Amazon RDS)-DB-Instances erforderlich sind.

Behebung

Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.

Gehe wie folgt vor, um den IAM-Benutzerzugriff auf die RDS-DB-Instance zu konfigurieren:

  1. Öffne die IAM-Konsole.
  2. Wähle im Navigationsbereich Benutzer aus.
  3. Wähle Benutzer hinzufügen aus, und gib dann einen Benutzernamen ein.
  4. Wähle als Zugriffstyp die Option Zugriff auf die AWS Managementkonsole aus und erstelle dann ein Passwort, um die Amazon RDS-Konsole zu verwenden. Um Zugriff auf die AWS CLI zu gewähren, wähle Programmgesteuerter Zugriff.
    Wichtig: Wähle für Programmgesteuerter Zugriff Download.csv, um die Zugriffsschlüssel-ID und den geheimen Zugriffsschlüssel herunterzuladen. Du benötigst die Schlüssel, um später die Sicherheitstoken zu erstellen.
  5. Überprüfe die Berechtigungen und Tags und wähle dann Benutzer erstellen aus.
    Hinweis: Dadurch wird ein IAM-Benutzer mit der IAMUserChangePassword-Richtlinie erstellt.
  6. Erstelle IAM-Richtlinien für die gewünschten Aktionen, die in Amazon RDS ausgeführt werden sollen.
  7. Füge deinem Benutzer die IAM-Richtlinien hinzu.

Beispiel für IAM-Richtlinien

Die folgenden Beispielrichtlinien bieten die geringsten Berechtigungen, die zum Ausführen der angegebenen Aktionen erforderlich sind. Möglicherweise werden in der Amazon RDS-Konsole Fehler angezeigt, weil die erforderliche Berechtigung nicht in der Richtlinie enthalten ist. Beispielsweise wird möglicherweise die Fehlermeldung IAMUser is not authorized to perform: rds:Action angezeigt.

Bei Beschreiben-Aktionen können Fehler auftreten, aber der Fehler beeinträchtigt nicht deine Fähigkeit, diese Aktionen auszuführen. Um einen Fehler zu vermeiden, ändere die folgenden Beispiel-IAM-Richtlinien oder verwende die AWS CLI, um Aktionen auszuführen.

RDS-DB-Instances erstellen und löschen

Verwende die folgende Richtlinie, um Benutzern das Erstellen von RDS-DB-Instances ohne aktivierte Verschlüsselung zu ermöglichen:

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

Verwende die folgende Richtlinie, um Benutzern das Erstellen von RDS-DB-Instances mit aktivierter Verschlüsselung zu ermöglichen:

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

Hinweis: Um einen vom Kunden verwalteten Schlüssel für die Verschlüsselung zu verwenden, musst du die Verwendung eines vom Kunden verwalteten Schlüssels autorisieren.

Verwende die folgende Richtlinie, um Benutzern das Löschen von RDS-DB-Instances zu ermöglichen:

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

Verwende die folgende Richtlinie, um Benutzern das Erstellen und Löschen von RDS-DB-Instances zu ermöglichen:

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

Anhalten und Starten von RDS-DB-Instances

Verwende die folgende Richtlinie, um Benutzern das Starten und Anhalten von RDS-DB-Instances zu ermöglichen:

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

Ausführen von Datensicherung und Wiederherstellung

Verwende die folgende Richtlinie, um Benutzern das Erstellen von DB-Snapshots zu ermöglichen:

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

Verwende die folgende Richtlinie, um Benutzern die Wiederherstellung von RDS-DB-Instances zu ermöglichen, die DB-Snapshots verwenden:

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

Verwende die folgende Richtlinie, um Benutzern die Durchführung einer Zeitpunktwiederherstellung zu ermöglichen:

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

RDS-DB-Instances ändern

Verwende die folgende Richtlinie, damit Benutzer den Klassentyp, den zugewiesenen Speicher, den Speichertyp und die Instance-Version der DB-Instance ändern können:

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

Aktivieren von Enhanced Monitoring und Performance Insights

Wenn du eine iam:PassRole verwendest, ist ein Platzhalter (*) zu tolerant, da er iam:PassRole-Berechtigungen für alle Ressourcen gewährt. Es hat sich bewährt, die ARNs anzugeben.

Verwende die folgende Richtlinie, um Benutzern die Aktivierung von Enhanced Monitoring zu ermöglichen:

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

Hinweis: Stelle sicher, dass du AccountID durch jeden Benutzer ersetzt, der die Enhanced Monitoring-Rolle erhält.

Verwende die folgende Richtlinie, um Benutzern die Aktivierung von Performance Insights zu ermöglichen:

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

DB-Parametergruppen und DB-Optionsgruppen erstellen, ändern und löschen

Verwende die folgende Richtlinie, um Benutzern das Erstellen, Ändern oder Löschen von DB-Parametergruppen und -Optionsgruppen zu ermöglichen:

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

Amazon CloudWatch-Metriken von der Amazon RDS-Konsole aus anzeigen

Verwende die folgende Richtlinie, um Benutzern das Anzeigen von CloudWatch-Metriken von der Amazon RDS-Konsole aus zu ermöglichen:

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

Ähnliche Informationen

Identitäts- und Zugriffsmanagement für Amazon RDS

Wie erlaube ich Benutzern, sich mit ihren IAM-Anmeldeinformationen bei einer DB-Instance bei Amazon RDS für MySQL zu authentifizieren?