Verwenden von identitätsbasierten Richtlinien (IAM-Richtlinien) für CloudFront. - Amazon CloudFront

Verwenden von identitätsbasierten Richtlinien (IAM-Richtlinien) für CloudFront.

Dieses Thema enthält Beispiele zu identitätsbasierten Richtlinien, die verdeutlichen, wie ein Kontoadministrator IAM-Identitäten (d. h. Benutzern, Gruppen und Rollen) Berechtigungsrichtlinien zuweisen und somit Berechtigungen zur Durchführung von Operationen an CloudFront-Ressourcen erteilen kann.

Wichtig

Wir empfehlen Ihnen, zunächst die einführenden Themen zu lesen, in denen die Grundkonzepte und verfügbaren Optionen zum Verwalten des Zugriffs auf Ihre CloudFront-Ressourcen erläutert werden. Weitere Informationen finden Sie unter Übersicht über die Verwaltung von Zugriffsberechtigungen für Ihre CloudFront-Ressourcen.

Das folgende Beispiel zeigt eine Berechtigungsrichtlinie. Der Abschnitt Sid (die Anweisungs-ID) ist optional.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAllCloudFrontPermissions", "Effect": "Allow", "Action": ["cloudfront:*"], "Resource": "*" } ] }

Die Richtlinie erlaubt die Ausführung aller CloudFront-Operationen, was ausreichende Berechtigungen für den programmgesteuerten Zugriff auf CloudFront sind. Wenn Sie die Konsole für den Zugriff auf CloudFront verwenden, finden Sie weitere Informationen unter Erforderliche Berechtigungen für die Verwendung der CloudFront-Konsole.

Eine Liste der Aktionen mit den anzugebenden ARNs, mit denen ihnen Berechtigungen erteilt oder entzogen werden, finden Sie unter CloudFront-API-Berechtigungen: Referenztabelle für Aktionen, Ressourcen und Bedingungen.

Erforderliche Berechtigungen für die Verwendung der CloudFront-Konsole

Um Vollzugriff auf die CloudFront-Konsole zu gewähren, erteilen Sie die Berechtigungen in der folgenden Berechtigungsrichtlinie:

{ "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "acm:ListCertificates", "cloudfront:*", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:GetMetricStatistics", "elasticloadbalancing:DescribeLoadBalancers", "iam:ListServerCertificates", "sns:ListSubscriptionsByTopic", "sns:ListTopics", "waf:GetWebACL", "waf:ListWebACLs" ], "Resource":"*" }, { "Effect":"Allow", "Action":[ "s3:ListAllMyBuckets", "s3:PutBucketPolicy" ], "Resource":"arn:aws:s3:::*" } ] }

Gründe, warum die Berechtigungen erforderlich sind

acm:ListCertificates

Wenn Sie das Erstellen und Aktualisieren von Verteilungen über die CloudFront-Konsole durchführen und CloudFront so konfigurieren möchten, dass zwischen dem Viewer und CloudFront oder zwischen CloudFront und dem Ursprung eine HTTPS-Verbindung erforderlich ist, wird eine Liste der ACM-Zertifikate angezeigt.

Diese Berechtigung ist nur erforderlich, wenn Sie die CloudFront-Konsole verwenden.

cloudfront:*

Ermöglicht das Ausführen aller CloudFront-Aktionen.

cloudwatch:DescribeAlarms und cloudwatch:PutMetricAlarm

Sie können CloudWatch-Alarme in der CloudFront-Konsole erstellen und anzeigen. Weitere Informationen finden Sie auch unter sns:ListSubscriptionsByTopic und sns:ListTopics.

Diese Berechtigungen sind nur erforderlich, wenn Sie die CloudFront-Konsole verwenden.

cloudwatch:GetMetricStatistics

Ermöglicht CloudFront das Rendering von CloudWatch-Metriken in der CloudFront-Konsole.

Diese Berechtigung ist nur erforderlich, wenn Sie die CloudFront-Konsole verwenden.

elasticloadbalancing:DescribeLoadBalancers

Zeigt beim Erstellen und Aktualisieren von Verteilungen eine Liste der Elastic-Load-Balancing-Load-Balancer in der Liste der verfügbaren Ursprünge an.

Diese Berechtigung ist nur erforderlich, wenn Sie die CloudFront-Konsole verwenden.

iam:ListServerCertificates

Wenn Sie das Erstellen und Aktualisieren von Verteilungen über die CloudFront-Konsole durchführen und CloudFront so konfigurieren möchten, dass zwischen dem Viewer und CloudFront oder zwischen CloudFront und dem Ursprung eine HTTPS-Verbindung erforderlich ist, wird im IAM-Zertifikatspeicher eine Liste der Zertifikate angezeigt.

Diese Berechtigung ist nur erforderlich, wenn Sie die CloudFront-Konsole verwenden.

s3:ListAllMyBuckets

ermöglicht beim Erstellen und Aktualisieren von Verteilungen die Durchführung der folgenden Operationen:

  • Anzeigen einer Liste von S3-Buckets in der Liste der verfügbaren Ursprünge

  • Anzeigen einer Liste von S3-Buckets, in denen Sie die Zugriffsprotokolle speichern können

Diese Berechtigung ist nur erforderlich, wenn Sie die CloudFront-Konsole verwenden.

S3:PutBucketPolicy

Wenn Sie Verteilungen erstellen oder aktualisieren, die den Zugriff auf S3-Buckets beschränken, kann der Benutzer die Bucket-Richtlinie so aktualisieren, mit Zugriff auf die CloudFront-Ursprungszugriffsidentität gewährt wird. Weitere Informationen finden Sie unter Verwenden einer Ursprungszugriffsidentität (Legacy, nicht empfohlen).

Diese Berechtigung ist nur erforderlich, wenn Sie die CloudFront-Konsole verwenden.

sns:ListSubscriptionsByTopic und sns:ListTopics

Beim Erstellen von CloudWatch-Alarmen in der CloudFront-Konsole können Sie ein SNS-Thema für Benachrichtigungen auswählen.

Diese Berechtigungen sind nur erforderlich, wenn Sie die CloudFront-Konsole verwenden.

waf:GetWebACL und waf:ListWebACLs

Zeigt eine Liste der AWS WAF-Web-ACLs in der CloudFront-Konsole an.

Diese Berechtigungen sind nur erforderlich, wenn Sie die CloudFront-Konsole verwenden.

AWS-verwaltete (vordefinierte) Richtlinien für CloudFront

AWS Durch die Bereitstellung von eigenständigen IAM-Richtlinien, die von erstellt und verwaltet werden, deckt viele häufige Anwendungsfälle ab AWS. Diese von AWS verwalteten Richtlinien erteilen die erforderlichen Berechtigungen für viele häufige Anwendungsfälle, sodass Sie nicht mühsam ermitteln müssen, welche Berechtigungen erforderlich sind. Weitere Informationen finden Sie unter AWS-verwaltete Richtlinien im IAM-Benutzerhandbuch. Für CloudFront stellt IAM zwei verwaltete Richtlinien bereit:

Anmerkung

Sie können diese Berechtigungsrichtlinien prüfen, indem Sie sich bei der IAM-Konsole anmelden und dort nach bestimmten Richtlinien suchen. Sie können auch Ihre eigenen benutzerdefinierten IAM-Richtlinien erstellen, um Berechtigungen für CloudFront API-Operationen zu gewähren. Die benutzerdefinierten Richtlinien können Sie dann den IAM-Benutzern oder -Gruppen zuweisen, die diese Berechtigungen benötigen.

Beispiele für vom Kunden verwaltete Richtlinien

Sie können auch Ihre eigenen benutzerdefinierten IAM-Richtlinien erstellen, um Berechtigungen für CloudFront API-Aktionen zu gewähren. Die benutzerdefinierten Richtlinien können Sie dann den IAM-Benutzern oder -Gruppen zuweisen, die die angegebenen Berechtigungen benötigen. Diese Richtlinien sind nur wirksam, wenn Sie die CloudFront-API, die AWS-SDKs oder die AWS CLI verwenden. Die folgenden Beispiele zeigen Berechtigungen für einige häufige Anwendungsfälle. Weitere Informationen zu der Richtlinie, die Benutzern Vollzugriff auf CloudFront gewährt, finden Sie unter Erforderliche Berechtigungen für die Verwendung der CloudFront-Konsole.

Beispiel 1: Lesezugriff auf alle Verteilungen gewähren

Die folgende Berechtigungsrichtlinie räumt dem Benutzer Berechtigungen zum Anzeigen aller Verteilungen in der CloudFront-Konsole ein:

{ "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "acm:ListCertificates", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListDistributions", "cloudfront:ListCloudFrontOriginAccessIdentities", "elasticloadbalancing:DescribeLoadBalancers", "iam:ListServerCertificates", "sns:ListSubscriptionsByTopic", "sns:ListTopics", "waf:GetWebACL", "waf:ListWebACLs" ], "Resource":"*" }, { "Effect":"Allow", "Action":[ "s3:ListAllMyBuckets" ], "Resource":"arn:aws:s3:::*" } ] }

Beispiel 2: Erstellen, Aktualisieren und Löschen von Verteilungen erlauben

Die folgende Berechtigungsrichtlinie erlaubt den Benutzern das Erstellen, Aktualisieren und Löschen von Verteilungen mithilfe der CloudFront-Konsole:

{ "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "acm:ListCertificates", "cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListDistributions", "cloudfront:UpdateDistribution", "cloudfront:ListCloudFrontOriginAccessIdentities", "elasticloadbalancing:DescribeLoadBalancers", "iam:ListServerCertificates", "sns:ListSubscriptionsByTopic", "sns:ListTopics", "waf:GetWebACL", "waf:ListWebACLs" ], "Resource":"*" }, { "Effect":"Allow", "Action":[ "s3:ListAllMyBuckets", "s3:PutBucketPolicy" ], "Resource":"arn:aws:s3:::*" } ] }

Die cloudfront:ListCloudFrontOriginAccessIdentities-Berechtigung erlaubt es Benutzern, automatisch einer vorhandenen Ursprungszugriffsidentität die Berechtigung für den Zugriff auf Objekte in einem Amazon S3-Bucket zu erteilen. Wenn Sie außerdem möchten, dass Benutzer Ursprungszugriffsidentitäten erstellen können, müssen Sie auch die cloudfront:CreateCloudFrontOriginAccessIdentity-Berechtigung erteilen.

Beispiel 3: Erstellen und Auflisten von Invalidierungen erlauben

Die folgende Berechtigungsrichtlinie erlaubt Benutzern, Invalidierungen zu erstellen und aufzulisten. Sie umfasst Lesezugriff auf CloudFront-Verteilungen, da Sie zum Erstellen und Anzeigen von Invalidierungen zunächst die Einstellungen für eine Verteilung anzeigen müssen:

{ "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "acm:ListCertificates", "cloudfront:GetDistribution", "cloudfront:GetStreamingDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListDistributions", "cloudfront:ListCloudFrontOriginAccessIdentities", "cloudfront:CreateInvalidation", "cloudfront:GetInvalidation", "cloudfront:ListInvalidations", "elasticloadbalancing:DescribeLoadBalancers", "iam:ListServerCertificates", "sns:ListSubscriptionsByTopic", "sns:ListTopics", "waf:GetWebACL", "waf:ListWebACLs" ], "Resource":"*" }, { "Effect":"Allow", "Action":[ "s3:ListAllMyBuckets" ], "Resource":"arn:aws:s3:::*" } ] }