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 CloudFormation Sie den Zugriff mit AWS Identity and Access Management
Mit AWS Identity and Access Management (IAM) können Sie IAM Benutzer erstellen, um zu kontrollieren, wer Zugriff auf welche Ressourcen in Ihren hat AWS-Konto. IAMMit AWS CloudFormation with können Sie steuern, was Benutzer verwenden können CloudFormation, z. B. ob sie Stack-Vorlagen ansehen, Stapel erstellen oder Stapel löschen können.
Zusätzlich zu den CloudFormation Aktionen können Sie verwalten, welche AWS Dienste und Ressourcen jedem Benutzer zur Verfügung stehen. Auf diese Weise können Sie steuern, auf welche Ressourcen Benutzer zugreifen können, wenn sie sie verwenden CloudFormation. Sie können beispielsweise angeben, welche Benutzer EC2 Amazon-Instances erstellen, Datenbank-Instances beenden oder Updates durchführen könnenVPCs. Dieselben Berechtigungen werden immer dann angewendet CloudFormation , wenn sie diese Aktionen ausführen.
Weitere Informationen zu allen Diensten, auf die Sie den Zugriff steuern können, finden Sie IAM im IAMBenutzerhandbuch unter AWS Dienste, die Unterstützung bieten.
Themen
- CloudFormation Aktionen
- CloudFormation Ressourcen
- CloudFormation Bedingungen
- Bestätigen von IAM-Ressourcen in CloudFormation-Vorlagen
- Anmeldeinformationen für Anwendungen verwalten, die auf EC2 Amazon-Instances ausgeführt werden
- Gewähren von temporärem Zugriff (Zugriff für Verbundbenutzer)
- AWS CloudFormation Servicerolle
- Serviceübergreifende Confused-Deputy-Prävention
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 festlegt, die Sie gewähren möchten. Nehmen wir beispielsweise an, Sie haben eine Gruppe von Entwicklern mit wenig Erfahrung. Sie können eine Gruppe für Junior-Anwendungsentwickler erstellen, der alle Einsteiger angehören. Anschließend ordnen Sie dieser Gruppe eine Richtlinie zu, die es Benutzern ermöglicht, nur Stacks anzuzeigen CloudFormation . 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 im Action
Element aufgeführten DescribeStack
API Aktionen.
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 den CloudFormation Aktionen benötigen Benutzer, die Stacks erstellen oder löschen, zusätzliche Berechtigungen, die von den Stack-Vorlagen abhängen. Wenn Sie beispielsweise über eine Vorlage verfügen, die eine SQS Amazon-Warteschlange beschreibt, muss der Benutzer über die entsprechenden Berechtigungen für SQS Amazon-Aktionen verfügen, um den Stack erfolgreich zu erstellen, wie in der folgenden Beispielrichtlinie dargestellt:
Beispiel Eine Beispielrichtlinie, die Aktionen zum Erstellen und Anzeigen von Stacks und alle SQS Amazon-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 CloudFormation Aktionen, die Sie zulassen oder ablehnen können, finden Sie in der AWS CloudFormation APIReferenz.
CloudFormation konsolenspezifische Aktionen
Benutzer, die die CloudFormation Konsole verwenden, benötigen zusätzliche Berechtigungen, die für die Verwendung von oder nicht erforderlich sind. AWS Command Line Interface CloudFormation APIs Im Vergleich zu AWS CLI und bietet die Konsole zusätzliche FunktionenAPI, für die zusätzliche Berechtigungen erforderlich sind, z. B. das Hochladen von Vorlagen in Amazon S3 S3-Buckets und Drop-down-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 CloudFormation Konsole verwendet und ist in der Referenz nicht dokumentiert. API 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, um die entsprechenden API Describe-Aufrufe ausführen zu können. Wenn eine Vorlage beispielsweise den AWS::EC2::KeyPair::KeyName
Parametertyp enthält, benötigen Benutzer die Erlaubnis, die EC2 DescribeKeyPairs
Aktion aufzurufen (so ruft die Konsole Werte für die Parameter-Dropdownliste ab). 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)
CloudFormation Ressourcen
CloudFormation unterstützt Berechtigungen auf Ressourcenebene, sodass Sie Aktionen für einen bestimmten Stack angeben können, wie in der folgenden Richtlinie dargestellt:
Beispiel Eine Beispielrichtlinie, die die Aktionen zum Löschen und Aktualisieren des Stacks verweigert für 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 eine IAM Beispielrichtlinie, die einer Prinzipalentität (Benutzer, Rolle oder Gruppe) vom Service verwaltete Stackset-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 beim Organisationsverwaltungskonto angemeldet ist123456789012
, kann er auch nur Operationen mit Stack-Sets ausführen, die auf die Organisationseinheit mit der ID abzielen ou-1fsfsrsdsfrewr
, und kann nur Operationen auf dem Stack-Set mit der ID ausführen, das auf stack-set-id
die AWS-Konto mit der ID abzielt 987654321012
.
Stack-Set-Operationen schlagen fehl, wenn die Stackset-Vorlage andere Ressourcentypen als die in der Richtlinie angegebenen enthält, oder wenn es sich bei den Bereitstellungszielen um OU oder Konten IDs handelt, die nicht in der Richtlinie für die entsprechenden Verwaltungskonten und Stacksets angegeben sind.
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
" ] } } } ] }
CloudFormation Bedingungen
In einer IAM Richtlinie können Sie optional Bedingungen angeben, die steuern, wann eine Richtlinie in Kraft ist. Sie können beispielsweise eine Richtlinie definieren, die es Benutzern ermöglicht, einen Stack nur zu erstellen, wenn sie eine bestimmte Vorlage angebenURL. Sie können CloudFormation spezifische Bedingungen und AWS allgemeine Bedingungen definieren, z. B. festlegenDateLessThan
, wann eine Richtlinie nicht mehr wirksam wird. Weitere Informationen und eine Liste der AWS allgemeinen Bedingungen finden Sie unter Bedingung in der Referenz zu den IAM Richtlinienelementen im IAM Benutzerhandbuch.
Anmerkung
Verwenden Sie nicht die Bedingung aws:SourceIp
AWS-wide. CloudFormation stellt Ressourcen mithilfe der eigenen IP-Adresse bereit, nicht der IP-Adresse der ursprünglichen Anfrage. Wenn Sie beispielsweise einen Stack erstellen, CloudFormation stellt er Anfragen von seiner IP-Adresse aus, um eine EC2 Amazon-Instance zu starten oder einen Amazon S3-Bucket zu erstellen, und nicht von der IP-Adresse aus dem CreateStack
Aufruf oder dem create-stack Befehl.
In der folgenden Liste werden die CloudFormation -spezifischen Bedingungen beschrieben. Diese Bedingungen werden nur angewendet, wenn Benutzer Stacks erstellen oder aktualisieren:
cloudformation:ChangeSetName
-
Ein Name des CloudFormation Änderungssatzes, 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 geprüft, die Benutzer imResourcesToImport
Parameter deklarieren. Dieser Parameter wird derzeit nur für API Anfragen AWS CLI und Anfragen unterstützt. Wenn Sie diesen Parameter verwenden, müssen Sie alle Ressourcentypen angeben, die Benutzer während des Importvorgangs steuern sollen. Weitere Informationen zu demResourcesToImport
Parameter finden Sie im CreateChangeSetAktion in der AWS CloudFormation APIReferenz.Eine Liste der möglichen
ResourcesToImport
Optionen finden Sie unterUnterstützung für Ressourcentypen.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 Dienst an.
AWS::
service_name
::resource_type
-
Geben Sie einen bestimmten AWS Ressourcentyp an, z. B.
AWS::EC2::Instance
(alle EC2 Instanzen).
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 geprüft, die Benutzer imResourceTypes
Parameter deklarieren, der derzeit nur für AWS CLI und API -Anfragen unterstützt wird. Bei Verwendung dieses Parameters müssen Benutzer alle Ressourcentypen angeben, die sich in ihrer Vorlage befinden. Weitere Informationen zu demResourceTypes
Parameter finden Sie im CreateStackAktion in der AWS CloudFormation APIReferenz.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 Dienst an.
AWS::
service_name
::resource_type
-
Geben Sie einen bestimmten AWS Ressourcentyp an, z. B.
AWS::EC2::Instance
(alle EC2 Instanzen). Alexa::ASK::*
-
Geben Sie alle Ressourcentypen im Alexa Skill Kit an.
Alexa::ASK::Skill
-
Geben Sie den individuellen Alexa:ASK: :Skill-Ressourcentyp an.
Custom::*
-
Geben Sie alle benutzerdefinierten Ressourcen an.
Weitere Informationen finden Sie unter Erstellen Sie eine benutzerdefinierte Bereitstellungslogik mit benutzerdefinierten Ressourcen.
Custom::
resource_type
-
Geben Sie einen bestimmten benutzerdefinierten Ressourcentyp an.
Weitere Informationen finden Sie unter Erstellen Sie eine benutzerdefinierte Bereitstellungslogik mit benutzerdefinierten 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 S3-Stack-RichtlinieURL, 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 nur Stacks mit den von Ihnen hochgeladenen Stack-Richtlinien erstellen oder aktualisieren können, stellen Sie den S3-Bucket so ein, dass er nur für diese Benutzer lesbar ist.
cloudformation:TemplateUrl
-
Eine Amazon S3 S3-VorlageURL, 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 nur Stacks mit den von Ihnen hochgeladenen Vorlagen erstellen oder aktualisieren können, stellen Sie den S3-Bucket so ein, dass er nur für diese Benutzer lesbar ist.
Anmerkung
Die folgenden CloudFormation spezifischen Bedingungen gelten für die gleichnamigen API Parameter:
-
cloudformation:ChangeSetName
-
cloudformation:RoleARN
-
cloudformation:StackPolicyUrl
-
cloudformation:TemplateUrl
Gilt beispielsweise
cloudformation:TemplateUrl
nur für denTemplateUrl
Parameter fürCreateStack
UpdateStack
, undCreateChangeSet
APIs. -
Beispiele
Die folgende Beispielrichtlinie ermöglicht es Benutzern, nur die
Vorlage zu verwendenURL, um einen Stack zu erstellen oder zu aktualisieren.https://s3.amazonaws.com/amzn-s3-demo-bucket/test.template
Beispiel URLZustand der Vorlage
{ "Version":"2012-10-17", "Statement":[ { "Effect" : "Allow", "Action" : [ "cloudformation:CreateStack", "cloudformation:UpdateStack" ], "Resource" : "*", "Condition" : { "StringEquals" : { "cloudformation:TemplateUrl" : [ "
https://s3.amazonaws.com/amzn-s3-demo-bucket/test.template"
] } } } ] }
Mit der folgenden Beispielrichtlinie können Benutzer alle CloudFormation Vorgänge mit Ausnahme von Importvorgängen abschließ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 ermöglicht es Benutzern, Stacks zu erstellen, lehnt jedoch Anfragen ab, wenn die Vorlage des Stacks Ressourcen aus dem IAM Dienst enthält. Die Richtlinie verlangt außerdem, dass Benutzer den ResourceTypes
Parameter angeben, der nur für AWS CLI N-Anfragen verfügbar ist. API 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 ermöglicht es Benutzern, einen Stack zu erstellen, sofern die Vorlage des Stacks keine Ressource aus dem IAM Dienst enthält. Außerdem müssen Benutzer den ResourceTypes
Parameter angeben, der nur für AWS CLI API N-Anfragen 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ätigen von IAM-Ressourcen in CloudFormation-Vorlagen
Bevor Sie einen Stack erstellen können, wird Ihre Vorlage CloudFormation validiert. CloudFormation Überprüft Ihre Vorlage während der Validierung auf IAM Ressourcen, die sie möglicherweise erstellt. IAMRessourcen, z. B. ein Benutzer mit Vollzugriff, können auf jede Ressource in Ihrem zugreifen und diese ändern AWS-Konto. Wir empfehlen Ihnen daher, die mit jeder IAM Ressource verknüpften Berechtigungen zu überprüfen, bevor Sie fortfahren, damit Sie nicht ungewollt Ressourcen mit erweiterten Berechtigungen erstellen. Um sicherzustellen, dass Sie dies getan haben, müssen Sie bestätigen, dass die Vorlage diese Ressourcen enthält und die angegebenen Funktionen bereitstellt, bevor CloudFormation der Stapel erstellt wird.
Sie können die Funktionen von CloudFormation Vorlagen überprüfen, indem Sie die CloudFormation Konsole verwenden, AWS Command Line Interface (AWS CLI) oderAPI:
-
Wählen Sie in der CloudFormation Konsole auf der Seite „Stack-Optionen konfigurieren“ der Assistenten „Stack erstellen“ oder „Stack aktualisieren“ die Option Ich bestätige, dass diese Vorlage IAM Ressourcen erstellen kann.
-
In der AWS CLI, wenn Sie den create-stack und update-stackBefehle, geben Sie den
CAPABILITY_NAMED_IAM
WertCAPABILITY_IAM
oder für die--capabilities
Option an. Wenn Ihre Vorlage IAM Ressourcen enthält, können Sie eine der beiden Funktionen angeben. Wenn Ihre Vorlage benutzerdefinierte Namen für IAM Ressourcen enthält, müssen Sie Folgendes angebenCAPABILITY_NAMED_IAM
. -
In derAPI, wenn Sie die verwenden CreateStack und UpdateStackAktionen, spezifizieren Sie
Capabilities.member.1=CAPABILITY_IAM
oderCapabilities.member.1=CAPABILITY_NAMED_IAM
. Wenn Ihre Vorlage IAM Ressourcen enthält, können Sie eine der beiden Funktionen angeben. Wenn Ihre Vorlage benutzerdefinierte Namen für IAM Ressourcen enthält, müssen Sie Folgendes angebenCAPABILITY_NAMED_IAM
.
Wichtig
Wenn Ihre Vorlage IAM Ressourcen mit benutzerdefinierten Namen enthält, erstellen Sie nicht mehrere Stapel, indem Sie dieselbe Vorlage wiederverwenden. IAMRessourcen müssen innerhalb Ihres Kontos weltweit einzigartig 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 über eine eindeutige Ressource verfügt. Die gemeinsame Verwendung von Ressourcen durch Stacks kann unbeabsichtigte Folgen haben, die nicht rückgängig gemacht werden können. Wenn Sie beispielsweise gemeinsam genutzte IAM Ressourcen in einem Stapel löschen oder aktualisieren, ändern Sie unbeabsichtigt die Ressourcen anderer Stacks.
Anmeldeinformationen für Anwendungen verwalten, die auf EC2 Amazon-Instances ausgeführt werden
Wenn Sie eine Anwendung haben, die auf einer EC2 Amazon-Instance läuft und Anfragen an AWS Ressourcen wie Amazon S3-Buckets oder eine DynamoDB-Tabelle stellen muss, benötigt AWS die Anwendung Sicherheitsanmeldedaten. Allerdings stellt die Verteilung und Einbettung langfristiger Sicherheitsanmeldeinformationen in jede Instance, die Sie starten, eine Herausforderung und ein potenzielles Sicherheitsrisiko dar. Anstatt langfristige Anmeldeinformationen wie IAM Benutzeranmeldedaten zu verwenden, empfehlen wir, dass Sie eine IAM Rolle erstellen, die einer EC2 Amazon-Instance zugeordnet ist, wenn die Instance gestartet wird. Eine Anwendung kann dann temporäre Sicherheitsanmeldedaten von der EC2 Amazon-Instance abrufen. Sie müssen auf der Instance keine langfristigen Anmeldeinformationen einbetten. Um die Verwaltung von Anmeldeinformationen zu vereinfachen, können Sie außerdem nur eine einzige Rolle für mehrere EC2 Amazon-Instances 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 IAMBeispiele für Rollenvorlagen.
Anmerkung
Anwendungen auf Instances, die temporäre Sicherheitsanmeldedaten verwenden, können beliebige CloudFormation Aktionen aufrufen. Da es jedoch mit vielen anderen AWS Diensten CloudFormation interagiert, müssen Sie sicherstellen, dass alle Dienste, die Sie verwenden möchten, temporäre Sicherheitsanmeldedaten unterstützen. Eine Liste der Dienste, die temporäre Sicherheitsanmeldedaten akzeptieren, finden Sie IAM im IAMBenutzerhandbuch unter AWS Dienste, mit denen gearbeitet werden kann.
Gewähren von temporärem Zugriff (Zugriff für Verbundbenutzer)
In einigen Fällen möchten Sie Benutzern ohne AWS Anmeldeinformationen möglicherweise temporären Zugriff auf Ihre gewähren AWS-Konto. Verwenden Sie AWS Security Token Service (AWS STS), anstatt langfristige Anmeldeinformationen zu erstellen und zu löschen, wann immer Sie temporären Zugriff gewähren möchten. Sie können beispielsweise IAM Rollen verwenden. Von einer IAM Rolle aus können Sie programmgesteuert viele temporäre Sicherheitsanmeldeinformationen (zu denen ein Zugriffsschlüssel, ein geheimer Zugriffsschlüssel und ein Sicherheitstoken gehören) erstellen und dann verteilen. Diese Anmeldeinformationen haben eine begrenzte Lebensdauer, sodass sie AWS-Konto nach Ablauf nicht mehr für den Zugriff auf Ihre Anmeldeinformationen verwendet werden können. Sie können auch mehrere IAM Rollen erstellen, um einzelnen Benutzern unterschiedliche Berechtigungsstufen zu gewähren. IAMRollen sind nützlich für Szenarien wie föderierte Identitäten und Single Sign-On.
Ein Identitätsverbund ist eine unabhängige Identität, die Sie für mehrere Systeme verwenden können. Für Unternehmensbenutzer mit einem etablierten lokalen Identitätssystem (wie LDAP Active Directory) können Sie die gesamte Authentifizierung mit Ihrem lokalen Identitätssystem abwickeln. Nachdem ein Benutzer authentifiziert wurde, geben Sie temporäre Sicherheitsanmeldeinformationen des entsprechenden IAM Benutzers oder der entsprechenden Rolle ein. Sie können beispielsweise eine Administratorrolle und eine Entwicklerrolle erstellen, in denen Administratoren vollen Zugriff auf das AWS Konto haben und Entwickler nur berechtigt sind, mit CloudFormation Stacks zu arbeiten. Nachdem ein Administrator authentifiziert wurde, ist der Administrator berechtigt, temporäre Sicherheitsanmeldeinformationen von der Administratorrolle abzurufen. Entwickler können temporäre Sicherheitsanmeldedaten jedoch nur von der Entwicklerrolle beziehen.
Sie können Verbundbenutzern auch Zugriff auf die AWS Management Console gewähren. Nachdem sich Benutzer mit Ihrem lokalen Identitätssystem authentifiziert haben, können Sie programmgesteuert ein temporäres System erstellen, das direkten Zugriff auf URL das ermöglicht. AWS Management Console Wenn Benutzer das temporäre System verwendenURL, müssen sie sich nicht anmelden, AWS da sie bereits authentifiziert wurden (Single Sign-On). Da der aus den temporären Sicherheitsanmeldeinformationen der Benutzer erstellt URL wird, bestimmen die mit diesen Anmeldeinformationen verfügbaren Berechtigungen außerdem, welche Rechte Benutzer in der haben. AWS Management Console
Sie können verschiedene verwenden, AWS STS APIs um temporäre Sicherheitsanmeldeinformationen zu generieren. Weitere Informationen darüber, welche API Sie verwenden sollten, finden Sie im IAMBenutzerhandbuch unter AWS STS Anmeldeinformationen vergleichen.
Wichtig
Sie können nicht damit arbeitenIAM, wenn Sie temporäre Sicherheitsanmeldeinformationen verwenden, die aus dem generiert wurden GetFederationToken
API. Wenn Sie mit arbeiten müssenIAM, verwenden Sie stattdessen temporäre Sicherheitsanmeldeinformationen aus einer Rolle.
CloudFormation interagiert mit vielen anderen AWS Diensten. Wenn Sie temporäre Sicherheitsanmeldedaten mit verwenden CloudFormation, stellen Sie sicher, dass alle Dienste, die Sie verwenden möchten, temporäre Sicherheitsanmeldedaten unterstützen. Eine Liste der Dienste, die temporäre Sicherheitsanmeldedaten akzeptieren, finden Sie IAM im IAMBenutzerhandbuch unter AWS Dienste, mit denen gearbeitet werden kann.
Weitere Informationen finden Sie in den folgenden verwandten Ressourcen im IAMBenutzerhandbuch: