IAM-Richtlinien für granularen Zugriff auf AWS Route 53
June 27, 2021
Diese Anleitung bietet Beispiele für IAM (Identity and Access Management)-Richtlinien, um den Zugriff auf AWS Route 53 feingranular zu steuern. Das Ziel ist es, einem IAM-Benutzer die Berechtigung zu erteilen, DNS-Einträge nur für spezifische, ausgewählte Domains (Hosted Zones) zu bearbeiten, während der Zugriff auf andere Zonen eingeschränkt wird.
Szenario 1: Minimaler Zugriff auf eine einzelne Hosted Zone
Diese Richtlinie gewährt einem Benutzer die Berechtigung, die Einträge einer einzigen Hosted Zone zu verwalten. Der Benutzer kann die Liste aller Hosted Zones in der Konsole jedoch nicht sehen.
Anwendungsfall: Ein Entwickler soll die DNS-Einträge für ein bestimmtes Projekt verwalten, ohne andere Domains zu sehen oder zu beeinflussen.
IAM Policy:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"route53:GetHostedZone",
"route53:ListResourceRecordSets",
"route53:ChangeResourceRecordSets"
],
"Resource": "arn:aws:route53:::hostedzone/IHRE_ZONE_ID"
}
]
}
GetHostedZone,ListResourceRecordSets: Erlaubt das Anzeigen der Zone und ihrer Einträge.ChangeResourceRecordSets: Erlaubt das Erstellen, Ändern und Löschen von DNS-Einträgen.Resource: Beschränkt diese Aktionen auf die angegebeneZONE_ID.
Um auf die Zone zuzugreifen, muss der Benutzer den direkten Link zur AWS-Konsole verwenden:
https://console.aws.amazon.com/route53/v2/hostedzones#ListRecordSets/IHRE_ZONE_ID
Szenario 2: Zonen auflisten, aber nur eine bearbeiten
Diese Richtlinie ist benutzerfreundlicher. Der Benutzer kann die Liste aller Hosted Zones im Konto sehen, aber nur die Einträge der einen, spezifisch erlaubten Zone bearbeiten.
IAM Policy:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowListingOfZones",
"Effect": "Allow",
"Action": [
"route53:ListHostedZones",
"route53:ListHostedZonesByName"
],
"Resource": "*"
},
{
"Sid": "AllowManagementOfSingleZone",
"Effect": "Allow",
"Action": [
"route53:GetHostedZone",
"route53:ListResourceRecordSets",
"route53:ChangeResourceRecordSets"
],
"Resource": "arn:aws:route53:::hostedzone/IHRE_ZONE_ID"
}
]
}
- Das erste
Statementerlaubt das Auflisten aller Zonen (Resource: "*"), da diese Aktionen keine Ressourcen auf Zonenebene unterstützen. - Das zweite
Statementbeschränkt die schreibenden und lesenden Aktionen auf die spezifische Zone.
Szenario 3: Schreibgeschützter Zugriff auf alle Zonen
Diese Richtlinie gewährt einem Benutzer Lesezugriff auf alle Hosted Zones und deren Einträge, ohne die Möglichkeit, Änderungen vorzunehmen.
Anwendungsfall: Ein Auditor oder ein Mitglied eines externen Teams muss die DNS-Konfiguration einsehen können, darf aber keine Änderungen vornehmen.
IAM Policy:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"route53:GetHostedZone",
"route53:ListHostedZones",
"route53:ListHostedZonesByName",
"route53:ListResourceRecordSets"
],
"Resource": "*"
}
]
}
Fazit
Durch die Kombination von ressourcen-spezifischen Berechtigungen (Resource: "arn:...") und allgemeinen Lese-Berechtigungen (Resource: "*") können Sie präzise und sichere IAM-Richtlinien für die Verwaltung von Route 53 erstellen. Dies ist ein wichtiger Baustein des Principle of Least Privilege.