Steuern des Zugriffs mit AWS Identity and Access Management - AWS CloudFormation

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Steuern des Zugriffs mit AWS Identity and Access Management

Mit AWS Identity and Access Management (IAM) können Sie IAM-Benutzer erstellen, um zu steuern, wer Zugriff auf welche Ressourcen in Ihrem hat AWS-Konto. Sie können IAM mit verwenden, AWS CloudFormation um zu steuern, was Benutzer mit tun können AWS CloudFormation, z. B. ob sie Stack-Vorlagen anzeigen, Stacks erstellen oder Stacks löschen können.

Zusätzlich zu - AWS CloudFormation Aktionen können Sie verwalten, welche AWS Services und Ressourcen jedem Benutzer zur Verfügung stehen. Auf diese Weise können Sie steuern, auf welche Ressourcen Benutzer zugreifen können, wenn sie verwenden AWS CloudFormation. Sie können beispielsweise festlegen, welche Benutzer Amazon EC2-Instances erstellen, Datenbank-Instances beenden oder VPCs aktualisieren. Dieselben Berechtigungen werden immer dann angewendet, wenn sie AWS CloudFormation für diese Aktionen verwenden.

Weitere Informationen zu all den Services, auf die Sie den Zugriff steuern können, finden Sie unter AWS -Services, die IAM unterstützen in IAM-Benutzerhandbuch.

AWS CloudFormation -Aktionen

Wenn Sie eine Gruppe oder einen Benutzer in Ihrem erstellen AWS-Konto, können Sie dieser Gruppe oder diesem Benutzer eine IAM-Richtlinie zuordnen, die die Berechtigungen angibt, die Sie erteilen möchten. Nehmen wir beispielsweise an, Sie haben eine Gruppe von Entwicklern mit wenig Erfahrung. Sie können eine Junior application developers-Gruppe erstellen, die Entwickler mit wenig Erfahrung umfasst. Anschließend ordnen Sie dieser Gruppe eine Richtlinie zu, die es Benutzern ermöglicht, nur AWS CloudFormation Stacks anzuzeigen. In diesem Szenario haben Sie möglicherweise eine Richtlinie wie die folgende:

Beispiel Ein Beispiel für eine Richtlinie, die Anzeigeberechtigungen für Stacks gewährt
{ "Version":"2012-10-17", "Statement":[{ "Effect":"Allow", "Action":[ "cloudformation:DescribeStacks", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResources" ], "Resource":"*" }] }

Die Richtlinie gewährt Berechtigungen für alle DescribeStack-API-Funktionen, die im Action-Element aufgeführt sind.

Wichtig

Wenn Sie in Ihrer Anweisung keinen Stack-Namen oder keine Stack-ID angeben, müssen Sie unter Verwendung des *-Platzhalters für das Resource-Element auch die Berechtigung zur Nutzung aller Ressourcen für die Aktion gewähren.

Zusätzlich zu - AWS CloudFormation Aktionen benötigen Benutzer, die Stacks erstellen oder löschen, zusätzliche Berechtigungen, die von den Stack-Vorlagen abhängen. Wenn Sie zum Beispiel eine Vorlage haben, die eine Amazon SQS-Warteschlange beschreibt, muss der Benutzer über die entsprechenden Berechtigungen für Amazon SQS-Aktionen verfügen, um den Stack erfolgreich zu erstellen, wie in der folgenden Musterrichtlinie dargestellt:

Beispiel Ein Musterrichtlinie, die Aktionen zum Erstellen und Anzeigen von Stacks und alle Amazon SQS-Aktionen gewährt
{ "Version":"2012-10-17", "Statement":[{ "Effect":"Allow", "Action":[ "sqs:*", "cloudformation:CreateStack", "cloudformation:DescribeStacks", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:GetTemplate", "cloudformation:ValidateTemplate" ], "Resource":"*" }] }

Eine Liste aller AWS CloudFormation Aktionen, die Sie zulassen oder verweigern können, finden Sie in der APIAWS CloudFormation -Referenz zu .

AWS CloudFormation -konsolenspezifische Aktionen

Benutzer, die die AWS CloudFormation Konsole verwenden, benötigen zusätzliche Berechtigungen, die für die Verwendung der AWS Command Line Interface oder AWS CloudFormation APIs nicht erforderlich sind. Im Vergleich zur AWS CLI und API bietet die Konsole zusätzliche Funktionen, die zusätzliche Berechtigungen erfordern, z. B. Vorlagen-Uploads in Amazon S3-Buckets und Dropdown-Listen für AWS-spezifische Parametertypen.

Gewähren Sie für alle folgenden Aktionen Berechtigungen für alle Ressourcen; beschränken Sie Aktionen nicht auf bestimmte Stacks oder Buckets.

Die folgende erforderliche Aktion wird nur von der AWS CloudFormation Konsole verwendet und ist nicht in der API-Referenz dokumentiert. Die Aktion erlaubt Benutzern, Vorlagen zu Amazon S3-Buckets hochzuladen.

cloudformation:CreateUploadBucket

Wenn Benutzer Vorlagen hochladen, benötigen sie die folgenden Amazon S3-Berechtigungen:

s3:PutObject s3:ListBucket s3:GetObject s3:CreateBucket

Für Vorlagen mit AWS-spezifischen Parametertypen benötigen Benutzer Berechtigungen zur Durchführung der entsprechenden Describe-API-Aufrufe. Wenn eine Vorlage beispielsweise den AWS::EC2::KeyPair::KeyName-Parametertyp enthält, benötigen Benutzer die Berechtigung zum Aufrufen der EC2-DescribeKeyPairs-Aktion (wenn die Konsole auf diese Weise Werte für die Parameter-Dropdown-Liste abruft). Die folgenden Beispiele sind Aktionen, die Benutzer für andere Parametertypen benötigen:

ec2:DescribeSecurityGroups (for the AWS::EC2::SecurityGroup::Id parameter type) ec2:DescribeSubnets (for the Subnet::Id parameter type) ec2:DescribeVpcs (for the AWS::EC2::VPC::Id parameter type)

AWS CloudFormation -Ressourcen

AWS CloudFormation unterstützt Berechtigungen auf Ressourcenebene, sodass Sie Aktionen für einen bestimmten Stack angeben können, wie in der folgenden Richtlinie gezeigt:

Beispiel Eine Beispielrichtlinie, die das Löschen und Aktualisieren von Stack-Aktionen für die verweigert MyProductionStack
{ "Version":"2012-10-17", "Statement":[{ "Effect":"Deny", "Action":[ "cloudformation:DeleteStack", "cloudformation:UpdateStack" ], "Resource":"arn:aws:cloudformation:us-east-1:123456789012:stack/MyProductionStack/*" }] }

Die Richtlinie oben verwendet einen Platzhalter am Ende des Stack-Namens, sodass Aktionen zum Löschen und Aktualisieren von Stacks für die gesamte Stack-ID (z. B. arn:aws:cloudformation:us-east-1:123456789012:stack/MyProductionStack/abc9dbf0-43c2-11e3-a6e8-50fa526be49c) und für den Stack-Namen (z. B. MyProductionStack) verweigert werden.

Um AWS::Serverless-Transformationen das Erstellen eines Änderungssatzes zu erlauben, muss die Richtlinie die arn:aws:cloudformation:<region>:aws:transform/Serverless-2016-10-31-Berechtigungen auf Ressourcenebene enthalten, wie in der folgenden Richtlinie zu sehen:

Beispiel Eine Beispielrichtlinie, die der Transformation das Erstellen eines Änderungssatzes erlaubt
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "cloudformation:CreateChangeSet" ], "Resource": "arn:aws:cloudformation:us-west-2:aws:transform/Serverless-2016-10-31" }] }

Beispielrichtlinie, die serviceverwaltete Stack-Set-Berechtigungen gewährt

Im Folgenden finden Sie ein Beispiel für eine IAM-Richtlinie, die einer Prinzipalentität (Benutzer, Rolle oder Gruppe) serviceverwaltete Stack-Set-Berechtigungen gewährt. Ein Benutzer mit dieser Richtlinie kann nur Vorgänge an Stack-Sets mit Vorlagen durchführen, die Amazon-S3-Ressourcentypen (AWS::S3::*) oder den AWS::SES::ConfigurationSet-Ressourcentyp enthalten. Wenn der Benutzer mit der ID 123456789012 am Verwaltungskonto der Organisation angemeldet ist, kann er auch nur Vorgänge an Stack-Sets durchführen, die für die OU mit der ID ou-1fsfsrsrsdsfrewr gelten, und kann nur Vorgänge an dem Stack-Set mit der ID stack-set-id durchführen, die für das AWS-Konto mit der ID 987654321012 gelten.

Stack-Set-Vorgänge schlagen fehl, wenn die Stack-Set-Vorlage andere Ressourcentypen als die in der Richtlinie angegebenen enthält oder wenn die Bereitstellungsziele andere OU- oder Konto-IDs sind als die in der Richtlinie für die entsprechenden Verwaltungskonten und Stack-Sets angegebenen.

Diese Richtlinien-Einschränkungen gelten nur, wenn Stack-Set-Vorgänge auf die AWS-Regionenus-east-1, us-west-2 oder eu-west-2 abzielen.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:*" ], "Resource": [ "arn:aws:cloudformation:*:*:stackset/*", "arn:aws:cloudformation:*:*:type/resource/AWS-S3-*", "arn:aws:cloudformation:us-west-2::type/resource/AWS-SES-ConfigurationSet", "arn:aws:cloudformation:*:123456789012:stackset-target/*/ou-1fsfsrsdsfrewr", "arn:aws:cloudformation:*:123456789012:stackset-target/stack-set-id/987654321012" ], "Condition": { "ForAllValues:StringEqualsIgnoreCase": { "cloudformation:TargetRegion": [ "us-east-1", "us-west-2", "eu-west-1" ] } } } ] }

AWS CloudFormation Bedingungen

In einer IAM-Richtlinie können Sie optional Bedingungen angeben, mit denen gesteuert wird, wann eine Richtlinie in Kraft tritt. Sie können beispielsweise eine Richtlinie definieren, die -Benutzern erlaubt, einen Stack nur dann zu erstellen, wenn sie eine bestimmte URL-Vorlage angeben. Sie können AWS CloudFormation-spezifische Bedingungen und AWS-weite Bedingungen definieren, z. B. , die angibtDateLessThan, wann eine Richtlinie nicht mehr wirksam ist. Weitere Informationen und eine Liste der AWS-weiten Bedingungen finden Sie unter Bedingung in der IAM-Richtlinienelementreferenz im IAM-Benutzerhandbuch.

Anmerkung

Verwenden Sie nicht die aws:SourceIp AWS-weite Bedingung. AWS CloudFormation stellt Ressourcen bereit, indem es seine eigene IP-Adresse verwendet, nicht die IP-Adresse der ursprünglichen Anforderung. Wenn Sie beispielsweise einen Stack erstellen, AWS CloudFormation erstellt Anforderungen von seiner IP-Adresse, um eine Amazon EC2-Instance zu starten oder einen Amazon S3-Bucket zu erstellen, nicht von der IP-Adresse des -CreateStackAufrufs oder des -aws cloudformation create-stackBefehls.

In der folgenden Liste werden die AWS CloudFormation-spezifischen Bedingungen beschrieben. Diese Bedingungen werden nur angewendet, wenn Benutzer Stacks erstellen oder aktualisieren:

cloudformation:ChangeSetName

Ein AWS CloudFormation Änderungssatzname, den Sie einer Richtlinie zuordnen möchten. Verwenden Sie diese Bedingung, um zu steuern, welche Änderungssätze -Benutzer ausführen oder löschen können.

cloudformation:ImportResourceTypes

Die Vorlagenressourcentypen, die Sie einer Richtlinie zuordnen möchten, z. B. AWS::EC2::Instance. Verwenden Sie diese Bedingung, um zu steuern, mit welchen Ressourcentypen -Benutzer arbeiten können, wenn sie Ressourcen in einen Stack importieren. Diese Bedingung wird anhand der Ressourcentypen überprüft, die Benutzer im -ResourcesToImportParameter deklarieren, der derzeit nur für - AWS CLI und -API-Anforderungen unterstützt wird. Wenn Sie diesen Parameter verwenden, müssen Sie alle Ressourcentypen angeben, die Benutzer während des Importvorgangs steuern sollen. Weitere Informationen zum -ResourcesToImportParameter finden Sie in der -CreateChangeSetAktion in der APIAWS CloudFormation -Referenz zu .

Eine Liste der möglichen ResourcesToImport finden Sie unter Ressourcen, die Importvorgänge unterstützen.

Verwenden Sie die dreiteilige Ressourcennamenskonvention, um anzugeben, mit welchen Ressourcentypen Benutzer arbeiten können, von allen Ressourcen innerhalb einer Organisation bis hinunter zu einem einzelnen Ressourcentyp.

organization::*

Geben Sie alle Ressourcentypen für eine bestimmte Organisation an.

organization::service_name::*

Geben Sie alle Ressourcentypen für den angegebenen Service innerhalb einer bestimmten Organisation an.

organization::service_name::resource_type

Geben Sie einen bestimmten Ressourcentyp an.

Beispielsweise:

AWS::*

Geben Sie alle unterstützten AWS Ressourcentypen an.

AWS::service_name::*

Geben Sie alle unterstützten Ressourcen für einen bestimmten AWS Service an.

AWS::service_name::resource_type

Geben Sie einen bestimmten AWS Ressourcentyp an, z. B. AWS::EC2::Instance (alle EC2-Instances).

cloudformation:ResourceTypes

Die Vorlagenressourcentypen wie z. B. AWS::EC2::Instance, die Sie einer Richtlinie zuordnen möchten. Verwenden Sie diese Bedingung, um zu steuern, welche Ressourcentypen -Benutzern zur Verfügung stehen, wenn sie einen Stack erstellen oder aktualisieren. Diese Bedingung wird anhand der Ressourcentypen überprüft, die Benutzer im -ResourceTypesParameter deklarieren, der derzeit nur für - AWS CLI und -API-Anforderungen unterstützt wird. Bei Verwendung dieses Parameters müssen Benutzer alle Ressourcentypen angeben, die sich in ihrer Vorlage befinden. Weitere Informationen zum -ResourceTypesParameter finden Sie in der -CreateStackAktion in der APIAWS CloudFormation -Referenz zu .

Eine Liste von Ressourcentypen finden Sie unter AWS Referenz zu Ressourcen- und Eigenschaftstypen.

Verwenden Sie die dreiteilige Ressourcennamenskonvention, um anzugeben, mit welchen Ressourcentypen Benutzer arbeiten können, von allen Ressourcen innerhalb einer Organisation bis hinunter zu einem einzelnen Ressourcentyp.

organization::*

Geben Sie alle Ressourcentypen für eine bestimmte Organisation an.

organization::service_name::*

Geben Sie alle Ressourcentypen für den angegebenen Service innerhalb einer bestimmten Organisation an.

organization::service_name::resource_type

Geben Sie einen bestimmten Ressourcentyp an.

Beispielsweise:

AWS::*

Geben Sie alle unterstützten AWS Ressourcentypen an.

AWS::service_name::*

Geben Sie alle unterstützten Ressourcen für einen bestimmten AWS Service an.

AWS::service_name::resource_type

Geben Sie einen bestimmten AWS Ressourcentyp an, z. B. AWS::EC2::Instance (alle EC2-Instances).

Alexa::ASK::*

Geben Sie alle Ressourcentypen im Alexa Skill Kit an.

Alexa::ASK::Skill

Geben Sie den individuellen Skill-Ressourcentyp an.

Custom::*

Geben Sie alle benutzerdefinierten Ressourcen an.

Weitere Informationen zu benutzerdefinierten Ressourcen finden Sie unter Benutzerdefinierte Ressourcen.

Custom::resource_type

Geben Sie einen bestimmten benutzerdefinierten Ressourcentyp an.

Weitere Informationen zu benutzerdefinierten Ressourcen finden Sie unter Benutzerdefinierte Ressourcen.

cloudformation:RoleARN

Der Amazon-Ressourcenname (ARN) einer IAM-Servicerolle, die Sie einer Richtlinie zuordnen möchten. Verwenden Sie diese Bedingung, um zu steuern, welche Servicerolle -Benutzer verwenden können, wenn sie mit Stacks oder Änderungssätzen arbeiten.

cloudformation:StackPolicyUrl

Eine Amazon S3-Stack-Richtlinien-URL, die Sie einer Richtlinie zuordnen möchten. Verwenden Sie diese Bedingung, um zu steuern, welche Stack-Richtlinien -Benutzer einem Stack während einer Aktion zum Erstellen oder Aktualisieren von Stacks zuordnen können. Weitere Informationen zu Stack-Richtlinien finden Sie unter Verhindern von Aktualisierungen der Stack-Ressourcen.

Anmerkung

Um sicherzustellen, dass Benutzer Stacks nur mit den von Ihnen hochgeladenen Stack-Richtlinien erstellen oder aktualisieren können, legen Sie den S3-Bucket für diese Benutzer auf read only fest.

cloudformation:TemplateUrl

Eine Amazon S3-Vorlagen-URL, die Sie einer Richtlinie zuordnen möchten. Verwenden Sie diese Bedingung, um zu steuern, welche Vorlagen -Benutzer verwenden können, wenn sie Stacks erstellen oder aktualisieren.

Anmerkung

Um sicherzustellen, dass Benutzer Stacks nur mit den von Ihnen hochgeladenen Vorlagen erstellen oder aktualisieren können, legen Sie den S3-Bucket für diese Benutzer auf read only fest.

Anmerkung

Die folgenden AWS CloudFormation-spezifischen Bedingungen gelten für die gleichnamigen API-Parameter:

  • cloudformation:ChangeSetName

  • cloudformation:RoleARN

  • cloudformation:StackPolicyUrl

  • cloudformation:TemplateUrl

Beispielsweise gilt cloudformation:TemplateUrl nur für den TemplateUrl-Parameter für CreateStack, UpdateStack und CreateChangeSet-APIs.

Beispiele

Die folgende Beispielrichtlinie erlaubt Benutzern, zum Erstellen oder Aktualisieren eines Stacks nur die https://s3.amazonaws.com/testbucket/test.template-Vorlagen-URL zu verwenden.

Beispiel Vorlagen-URL-Bedingung
{ "Version":"2012-10-17", "Statement":[ { "Effect" : "Allow", "Action" : [ "cloudformation:CreateStack", "cloudformation:UpdateStack" ], "Resource" : "*", "Condition" : { "StringEquals" : { "cloudformation:TemplateUrl" : [ "https://s3.amazonaws.com/testbucket/test.template" ] } } } ] }

Die folgende Beispielrichtlinie ermöglicht es Benutzern, alle AWS CloudFormation Operationen mit Ausnahme von Importvorgängen abzuschließen.

Beispiel Bedingung für den Import von Ressourcentypen
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAllStackOperations", "Effect": "Allow", "Action": "cloudformation:*", "Resource": "*" }, { "Sid": "DenyImport", "Effect": "Deny", "Action": "cloudformation:*", "Resource": "*", "Condition": { "ForAnyValue:StringLike": { "cloudformation:ImportResourceTypes": [ "*" ] } } } ] }

Die folgende Beispielrichtlinie erlaubt alle Stack-Vorgänge sowie Importvorgänge nur für bestimmte Ressourcen (in diesem Beispiel AWS::S3::Bucket).

Beispiel Bedingung für den Import von Ressourcentypen
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowImport", "Effect": "Allow", "Action": "cloudformation:*", "Resource": "*" "Condition": { "ForAllValues:StringEqualsIgnoreCase": { "cloudformation:ImportResourceTypes": [ "AWS::S3::Bucket" ] } } } ] }

Die folgende Beispielrichtlinie erlaubt Benutzern, Stacks zu erstellen, lehnt Anfragen aber ab, wenn die Vorlage des Stacks eine Ressource aus dem IAM-Service enthält. Die Richtlinie erfordert außerdem, dass Benutzer den ResourceTypes-Parameter angeben, der nur für AWS CLI -API-Anforderungen verfügbar ist. Diese Richtlinie verwendet explizite Zugriffsverweigerungsanweisungen, sodass diese Richtlinie immer wirksam ist, wenn eine andere Richtlinie zusätzliche Berechtigungen gewährt (eine explizite Zugriffsverweigerungsanweisung setzt eine explizite Zugriffserlaubnisanweisung immer außer Kraft).

Beispiel Ressourcentypbedingung
{ "Version":"2012-10-17", "Statement":[ { "Effect" : "Allow", "Action" : [ "cloudformation:CreateStack" ], "Resource" : "*" }, { "Effect" : "Deny", "Action" : [ "cloudformation:CreateStack" ], "Resource" : "*", "Condition" : { "ForAnyValue:StringLikeIfExists" : { "cloudformation:ResourceTypes" : [ "AWS::IAM::*" ] } } }, { "Effect": "Deny", "Action" : [ "cloudformation:CreateStack" ], "Resource": "*", "Condition": { "Null": { "cloudformation:ResourceTypes": "true" } } } ] }

Die folgende Beispielrichtlinie ähnelt dem vorherigen Beispiel. Die Richtlinie erlaubt Benutzern, einen Stack zu erstellen, außer die Vorlage des Stacks enthält eine Ressource aus dem IAM-Service. Außerdem müssen Benutzer den ResourceTypes Parameter angeben, der nur für - AWS CLI und -API-Anforderungen verfügbar ist. Diese Richtlinie ist einfacher, verwendet aber keine expliziten Zugriffsverweigerungsanweisungen. Andere Richtlinien, die zusätzliche Berechtigungen gewähren, könnten diese Richtlinie außer Kraft setzen.

Beispiel Ressourcentypbedingung
{ "Version":"2012-10-17", "Statement":[ { "Effect" : "Allow", "Action" : [ "cloudformation:CreateStack" ], "Resource" : "*", "Condition" : { "ForAllValues:StringNotLikeIfExists" : { "cloudformation:ResourceTypes" : [ "AWS::IAM::*" ] }, "Null":{ "cloudformation:ResourceTypes": "false" } } } ] }

Bestätigung von IAM-Ressourcen in - AWS CloudFormation Vorlagen

Bevor Sie einen Stack erstellen können, AWS CloudFormation validiert Ihre Vorlage. Bei der Validierung prüft AWS CloudFormation Ihre Vorlage auf IAM-Ressourcen, die es möglicherweise erstellt. IAM-Ressourcen, wie z. B. ein Benutzer mit Vollzugriff, können auf jede Ressource in Ihrem AWS-Kontozugreifen und diese ändern. Daher wird empfohlen, die den einzelnen IAM-Ressourcen zugeordneten Berechtigungen zu prüfen, bevor Sie fortfahren, damit Sie nicht versehentlich Ressourcen mit eskalierten Berechtigungen erstellen. Um sicherzustellen, dass Sie dies getan haben, müssen Sie bestätigen, dass die Vorlage diese Ressourcen enthält, und AWS CloudFormation die angegebenen Funktionen bereitstellen, bevor der Stack erstellt wird.

Sie können die Funktionen von AWS CloudFormation Vorlagen mithilfe der AWS CloudFormation Konsole, AWS Command Line Interface (AWS CLI) oder API bestätigen:

  • Wählen Sie in der - AWS CloudFormation Konsole auf der Seite Review der Assistenten Create Stack oder Update Stack die Option Ich bestätige, dass diese Vorlage möglicherweise IAM-Ressourcen erstellt.

  • Geben Sie AWS CLIin der bei Verwendung der aws cloudformation update-stack Befehle aws cloudformation create-stack und den CAPABILITY_NAMED_IAM Wert CAPABILITY_IAM oder für den --capabilities Parameter an. Wenn Ihre Vorlage IAM-Ressourcen enthält, können Sie jede der beiden Fähigkeiten angeben. Wenn Ihre Vorlage benutzerdefinierte Namen für IAM-Ressourcen enthält, müssen Sie CAPABILITY_NAMED_IAM angeben.

  • Geben Sie in der API bei Verwendung der UpdateStack Aktionen CreateStack und Capabilities.member.1=CAPABILITY_IAM oder anCapabilities.member.1=CAPABILITY_NAMED_IAM. Wenn Ihre Vorlage IAM-Ressourcen enthält, können Sie jede der beiden Fähigkeiten angeben. Wenn Ihre Vorlage benutzerdefinierte Namen für IAM-Ressourcen enthält, müssen Sie CAPABILITY_NAMED_IAM angeben.

Wichtig

Wenn Ihre Vorlage benutzerdefinierte benannte IAM-Ressourcen enthält, erstellen Sie unter Wiederverwendung der gleichen Vorlage nicht mehrere Stacks. IAM-Ressourcen müssen innerhalb Ihres Kontos global eindeutig sein. Wenn Sie dieselbe Vorlage verwenden, um mehrere Stacks in verschiedenen Regionen zu erstellen, teilen sich Ihre Stacks möglicherweise dieselben IAM-Ressourcen, anstatt dass jeder eine eindeutige hat. Die gemeinsame Verwendung von Ressourcen durch Stacks kann unbeabsichtigte Folgen haben, die nicht rückgängig gemacht werden können. Wenn Sie beispielsweise gemeinsam verwendete IAM-Ressourcen löschen oder aktualisieren, ändern Sie versehentlich die Ressourcen anderer Stacks.

Verwalten von Anmeldeinformationen für Anwendungen auf Amazon EC2-Instances

Wenn Sie eine Anwendung haben, die auf einer Amazon EC2-Instance ausgeführt wird und Anforderungen an - AWS Ressourcen wie Amazon S3-Buckets oder eine DynamoDB-Tabelle stellen muss, benötigt die Anwendung AWS Sicherheitsanmeldeinformationen. Allerdings stellt die Verteilung und Einbettung langfristiger Sicherheitsanmeldeinformationen in jede Instance, die Sie starten, eine Herausforderung und ein potenzielles Sicherheitsrisiko dar. Anstelle von langfristigen Anmeldeinformationen, wie z. B. IAM-Benutzeranmeldeinformationen, empfehlen wir, eine IAM-Rolle zu erstellen, die einer Amazon EC2-Instance zugeordnet wird, wenn die Instance gestartet wird. Eine Anwendung kann dann von der Amazon EC2-Instance temporäre Sicherheitsanmeldeinformationen abrufen. Sie müssen auf der Instance keine langfristigen Anmeldeinformationen einbetten. Um die Verwaltung von Anmeldeinformationen zu erleichtern, können Sie für mehrere Amazon EC2-Instances auch nur eine Rolle angeben; Sie müssen nicht für jede Instance eindeutige Anmeldeinformationen erstellen.

Einen Vorlagenausschnitt, der zeigt, wie eine Instance mit einer Rolle gestartet wird, finden Sie unter Vorlagenbeispiele für IAM-Rollen.

Anmerkung

Anwendungen auf Instances, die temporäre Sicherheitsanmeldeinformationen verwenden, können jede beliebige AWS CloudFormation -Aktion aufrufen. Da jedoch mit vielen anderen - AWS Services AWS CloudFormation interagiert, müssen Sie überprüfen, ob alle Services, die Sie verwenden möchten, temporäre Sicherheitsanmeldeinformationen unterstützen. Weitere Informationen finden Sie unter -AWS Services, die AWS STS unterstützen.

Gewähren von temporärem Zugriff (Zugriff für Verbundbenutzer)

In einigen Fällen möchten Sie Benutzern möglicherweise keine AWS Anmeldeinformationen für temporären Zugriff auf Ihr gewähren AWS-Konto. Anstatt langfristige Anmeldeinformationen zu erstellen und zu löschen, wenn Sie temporären Zugriff gewähren möchten, verwenden Sie AWS Security Token Service (AWS STS). Sie können beispielsweise IAM-Rollen verwenden. Von einer IAM-Rolle aus können Sie programmgesteuert viele temporäre Sicherheitsanmeldeinformationen (einschließlich eines Zugriffsschlüssels, eines geheimen Zugriffsschlüssels und eines Sicherheits-Tokens) erstellen und dann verteilen. Diese Anmeldeinformationen haben eine begrenzte Lebensdauer und können daher nicht für den Zugriff auf Ihr verwendet werden, AWS-Konto nachdem sie abgelaufen sind. Sie können auch mehrere IAM-Rollen erstellen, um einzelnen Benutzern verschiedene Ebenen von Berechtigungen zu gewähren. IAM-Rollen sind nützlich für Szenarien wie verbundene Identitäten und Single Sign-On.

Ein Identitätsverbund ist eine unabhängige Identität, die Sie für mehrere Systeme verwenden können. Bei Enterprise-Benutzern mit einem festgelegten On-Premises-Identitätssystem (wie LDAP oder Active Directory) kann die gesamte Authentifizierung mit Ihrem lokalen Identitätssystem erfolgen. Nachdem ein Benutzer authentifiziert wurde, stellen Sie aus dem entsprechenden IAM-Benutzer oder der entsprechenden IAM-Rolle temporäre Sicherheitsanmeldeinformationen bereit. Sie können beispielsweise eine -administratorsRolle und eine -developersRolle erstellen, bei der Administratoren vollen Zugriff auf das AWS Konto haben und Entwickler nur Berechtigungen zum Arbeiten mit - AWS CloudFormation Stacks haben. Nachdem ein Administrator authentifiziert wurde, wird der Administrator autorisiert, temporäre Sicherheitsanmeldeinformationen von der administrators-Rolle zu erhalten. Entwickler können temporäre Sicherheitsanmeldeinformationen allerdings von der developers-Rolle erhalten.

Sie können Verbundbenutzern auch Zugriff auf die gewähren AWS Management Console. Nachdem sich Benutzer bei Ihrem On-Premises-Identitätssystem authentifiziert haben, können Sie programmgesteuert eine temporäre URL erstellen, die direkten Zugriff auf die AWS Management Consolebietet. Wenn Benutzer die temporäre URL verwenden, müssen sie sich nicht bei anmelden, AWS da sie bereits authentifiziert wurden (Single Sign-On). Da die URL außerdem aus den temporären Sicherheitsanmeldeinformationen des Benutzers erstellt wurde, bestimmen die mit diesen Anmeldeinformationen verfügbaren Berechtigungen, welche Berechtigungen Benutzer in der AWS Management Consolebesitzen.

Sie können mehrere verschiedene AWS STS APIs verwenden, um temporäre Sicherheitsanmeldeinformationen zu generieren. Weitere Informationen dazu, welche API verwendet werden soll, finden Sie unter Möglichkeiten, temporäre Sicherheitsanmeldeinformationen zu erhalten im Using Temporary Security Credentials.

Wichtig

Sie können IAM nicht verwenden, wenn Sie temporäre Sicherheitsanmeldeinformationen verwenden, die über die GetFederationToken-API generiert wurden. Wenn Sie IAM verwenden müssen, verwenden Sie stattdessen temporäre Sicherheitsanmeldeinformationen aus einer Rolle.

AWS CloudFormation interagiert mit vielen anderen - AWS Services. Wenn Sie temporäre Sicherheitsanmeldeinformationen mit verwenden AWS CloudFormation, stellen Sie sicher, dass alle Services, die Sie verwenden möchten, temporäre Sicherheitsanmeldeinformationen unterstützen. Weitere Informationen finden Sie unter -AWS Services, die AWS STS unterstützen.

Weitere Informationen finden Sie in folgenden verwandten Ressourcen im Using Temporary Security Credentials.