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.
Verwenden parametrisierter verwalteter Berechtigungen in AWS RAM
Eine parametrisierte verwaltete Berechtigung ist eine verwaltete Berechtigung mit Platzhaltern in den Richtlinienbedingungen, die Sie mit Ihren eigenen Werten ausfüllen. Diese Platzhalter sind Vorlagenparameter. Sie erstellen keine neue Art von verwalteten Berechtigungen. Sie erweitern die Richtlinienvorlage einer vorhandenen Vorlage um Variabilität.
Anstatt für jeden eindeutigen Bedingungswert eine separate, vom Kunden verwaltete Berechtigung zu erstellen, erstellen Sie eine vom Kunden verwaltete Berechtigung mit Parametern. Wenn Sie sie mit einer gemeinsam genutzten Ressource verknüpfen, geben Sie für jeden Parameter einen Wert an. AWS RAM ersetzt Ihre Werte in die Richtlinienvorlage und hängt die resultierende ressourcenbasierte Richtlinie an die gemeinsam genutzten Ressourcen an.
Ein zentrales Plattformteam erstellt beispielsweise eine vom Kunden verwaltete Genehmigung für AWS Systems Manager Parameter: Parameter speichern (Ressourcentyp) ssm:Parameter). Es gewährt nur Prinzipalen Lesezugriff mit einem zugelassenen team Etikett. Das Plattformteam teilt diese vom Kunden verwaltete Erlaubnis mit den Konten in seiner Organisation. Jedes Konto verwendet es dann in seinen eigenen Ressourcenfreigaben, die einen oder mehrere Parameter Store-Parameter enthalten können. In jeder Ressourcenfreigabe liefert das Konto die team Tag-Werte der Principals, die die gemeinsam genutzten Parameter Store-Parameter lesen können.
Themen
Typen von Vorlagenparametern
AWS RAM unterstützt zwei Parametertypen. Der Typ bestimmt, wie AWS RAM ersetzt den Wert in die gerenderte Richtlinie. In der AWS RAM API und die AWS CLI, die Typen sind STRING und STRING_LIST. Das AWS RAM Konsole zeigt sie als Zeichenfolge und StringList.
STRING-
Akzeptiert genau einen Zeichenkettenwert.
-
Sie können eine verwenden
STRINGParameter in einem Bedingungsschlüssel oder in einem Bedingungswert. -
Sie können eine einbetten
STRINGParameter in anderem Text. Beispiel,"arn:aws:iam::@{accountId}:role/Auditor". -
Der gerenderte Wert ist immer eine Zeichenfolge. Da IAM-Bedingungsoperatoren Zeichenketten in den Typ konvertieren, den sie vergleichen, ist
STRINGEin Parameter kann numerische, boolesche, Datums-, IP-Adressen- oder ARN-Werte bereitstellen.
-
STRING_LIST-
Akzeptiert 1 bis 100 Zeichenfolgenwerte.
-
Sie können eine verwenden
STRING_LISTParameter nur in einem Bedingungswert, nicht in einem Bedingungsschlüssel. -
Wenn der Bedingungswert eine einzelne Zeichenfolge ist, die nur den Parameter enthält, zum Beispiel
"@{teams}", AWS RAM rendert ein Array der Werte, die Sie angeben. Wenn Sie einen einzelnen Wert angeben, AWS RAM rendert eine einzelne Zeichenfolge. -
Wenn der Bedingungswert Text vor oder nach dem Parameter enthält, zum Beispiel
"arn:aws:iam::@{accountIds}:role/ParameterReader", AWS RAM kombiniert jeden Wert mit diesem Text. -
Um jeden Wert mit mehr als einer Zeichenfolge zu kombinieren, listen Sie die Zeichenketten in einer Reihe von Bedingungswerten auf. AWS RAM rendert jeden Array-Eintrag für jeden Wert und entfernt doppelte Ergebnisse. Das Ergebnis ist immer ein Array.
-
AWS RAM und IAM teilt eine Zeichenfolge nicht nach Kommas auf. Eine durch Kommas getrennte Zeichenfolge wird als ein Wert verglichen.
Beispiele finden Sie unter ZEICHENKETTENLISTE Beispiele für Parameter.
-
Syntaxregeln für Richtlinienvorlagen
Wenn Sie der Richtlinienvorlage einer verwalteten Berechtigung Parameter hinzufügen, gelten die folgenden Regeln. Wenn eine Anfrage gegen eine dieser Regeln verstößt, AWS RAM lehnt sie ab mit einem InvalidParameterException oder InvalidPolicyException Fehler.
-
Ein Parameter-Platzhalter verwendet die Syntax
@{parameterName}. -
Parameternamen können Buchstaben enthalten (a-z, A-Z), Zahlen (0-9), Doppelpunkte (:), Bindestriche (-) und Unterstriche (_). Namen müssen innerhalb einer Version mit verwalteten Berechtigungen eindeutig sein, und beim Vergleich wird die Groß- und Kleinschreibung ignoriert.
-
Sie müssen jeden Parameter deklarieren, wenn Sie die Berechtigung oder die Berechtigungsversion erstellen. Jede Deklaration erfordert einen Namen, einen Typ und eine Beschreibung. Die Beschreibung kann bis zu 255 Zeichen lang sein.
-
Jeder deklarierte Parameter muss in der Richtlinienvorlage erscheinen.
-
Platzhalter entsprechen exakt den deklarierten Namen, einschließlich Groß- und Kleinschreibung. Text im
@{...}Ein Format, das nicht genau mit einem deklarierten Namen übereinstimmt, bleibt in der Richtlinie als literaler Text erhalten. Zum Beispiel, wenn Sie deklarierenteamsaber schreibe@{Teams}, AWS RAM Leckereien@{Teams}als Text und lehnt die Anfrage ab, weilteamswird nicht verwendet. -
Parameter können nur in der
ConditionElement, als Bedingungsschlüssel oder als Bedingungswert. AWS RAM lehnt Parameter in der abEffect,Action, oder irgendein anderes Element. -
Ein Bedingungsschlüssel kann höchstens einen Parameter enthalten, und es muss ein
STRINGParameter. Ein Bedingungswert kann mehr als einen Parameter enthalten, zum Beispiel"@{project}-@{stage}". Wenn ein Bedingungswert kombiniert wirdSTRING_LISTParameter, AWS RAM rendert jede Kombination ihrer Werte, bis zu 100 Zeichenketten für jeden Bedingungswert. -
Sie können bis zu 100 Parameter für jede Version mit verwalteten Berechtigungen deklarieren.
-
Parameter haben keine Standardwerte. Wenn Sie die Berechtigung einer Ressourcenfreigabe zuordnen, müssen Sie für jeden deklarierten Parameter einen nicht leeren Wert angeben. Sie können keinen Namen angeben, der nicht deklariert ist, oder denselben Namen zweimal angeben.
Erstellen Sie eine parametrisierte verwaltete Berechtigung
Sie erstellen eine parametrisierte verwaltete Berechtigung auf die gleiche Weise wie jede andere vom Kunden verwaltete Berechtigung. Der Unterschied besteht darin, dass Sie Parameter deklarieren und verwenden @{parameterName} Platzhalter in den Bedingungen der Richtlinienvorlage.
Versionierung einer parametrisierten verwalteten Berechtigung
Parametrisierte verwaltete Berechtigungen werden auf dieselbe Weise versioniert wie jede andere vom Kunden verwaltete Berechtigung. Jede Version deklariert ihre Parameter unabhängig voneinander, sodass eine neue Version einen anderen Parametersatz deklarieren kann als die vorherige Version.
Um eine neue Version zu erstellen, führen Sie den Befehl aus create-permission-version Befehl mit dem --policy-template und --permission-template-parameters Parameter. Im folgenden Beispiel wird eine zweite Bedingung mit einer hinzugefügt STRING Parameter benannt environment.
$aws ram create-permission-version \ --permission-arn arn:aws:ram:us-east-1:123456789012:permission/ParameterReadByTeam \ --permission-template-parameters '[{"name":"teams","type":"STRING_LIST","description":"Values of the team principal tag that can read the shared parameters"},{"name":"environment","type":"STRING","description":"Value of the environment principal tag that can read the shared parameters"}]' \ --policy-template '{"Effect":"Allow","Action":["ssm:GetParameter","ssm:GetParameters"],"Condition":{"StringEquals":{"aws:PrincipalTag/team":"@{teams}","aws:PrincipalTag/environment":"@{environment}"}}}'
Eine neue Version wird zur Standardversion, sobald Sie sie erstellen. Bestehende Ressourcenfreigaben behalten die Version, die sie verwenden. Wenn der Besitzer einer Ressourcenfreigabe sie auf die neue Version aktualisiert, muss der Besitzer Werte für die Parameter angeben, die in der neuen Version deklariert werden. Weitere Informationen finden Sie unter Aktualisieren AWS verwaltete Berechtigungen für eine neuere Version.
Weitere Informationen zur Funktionsweise von Versionen und Standardversionen mit vom Kunden verwalteten Berechtigungen finden Sie unter Erstellen und Verwenden von kundenverwalteten Berechtigungen in AWS RAM.
Zeigen Sie eine Vorschau einer gerenderten Richtlinienvorlage an
Bevor Sie einer Ressourcenfreigabe eine parametrisierte verwaltete Berechtigung zuordnen, können Sie eine Vorschau der Richtlinie anzeigen, die AWS RAM wird anhand bestimmter Parameterwerte gerendert.
In der AWS RAM Wenn Sie eine Ressourcenfreigabe erstellen oder aktualisieren, geben Sie in der Konsole die Werte unter ein Werte der Vorlagenparameter und wähle Vorschau der gerenderten Richtlinie anzeigen.
In der AWS CLI, starte den Erlaubnis einholen Befehl mit dem --permission-template-parameters Parameter. Der permission Das Feld der Antwort enthält die Richtlinie mit Ihren Werten anstelle der Platzhalter.
$aws ram get-permission \ --permission-arn arn:aws:ram:us-east-1:123456789012:permission/ParameterReadByTeam \ --permission-template-parameters '[{"name":"teams","values":["payments","analytics"]},{"name":"environment","values":["prod"]}]'{ "permission": { "arn": "arn:aws:ram:us-east-1:123456789012:permission/ParameterReadByTeam", "version": "2", "defaultVersion": true, "name": "ParameterReadByTeam", "resourceType": "ssm:Parameter", "permission": "{\"Effect\":\"Allow\",\"Action\":[\"ssm:GetParameter\",\"ssm:GetParameters\"],\"Condition\":{\"StringEquals\":{\"aws:PrincipalTag/team\":[\"payments\",\"analytics\"],\"aws:PrincipalTag/environment\":\"prod\"}}}", "creationTime": 1763400000.000, "lastUpdatedTime": 1763400000.000, "isResourceTypeDefault": false, "permissionType": "CUSTOMER_MANAGED", "featureSet": "STANDARD", "status": "ATTACHABLE", "permissionTemplateParameters": [ { "name": "teams", "type": "STRING_LIST", "description": "Values of the team principal tag that can read the shared parameters" }, { "name": "environment", "type": "STRING", "description": "Value of the environment principal tag that can read the shared parameters" } ] } }
Ohne die --permission-template-parameters Parameter, der get-permission Der Befehl gibt die Richtlinienvorlage mit dem zurück @{parameterName} Platzhalter. Die permissionTemplateParameters Feld listet den Namen, den Typ und die Beschreibung jedes deklarierten Parameters auf.
Ordnen Sie einer Ressourcenfreigabe eine parametrisierte verwaltete Berechtigung zu
Wenn Sie einer Ressourcenfreigabe eine parametrisierte verwaltete Berechtigung zuordnen, müssen Sie Werte für alle Parameter angeben, die in der Version deklariert werden. AWS RAM rendert die Richtlinienvorlage mit Ihren Werten und hängt die resultierende ressourcenbasierte Richtlinie an die gemeinsam genutzten Ressourcen dieses Typs an.
Um viele Ressourcenfreigaben von einer Version oder Berechtigung auf eine andere zu übertragen, führen Sie den Befehl aus replace-permission-associations. Wenn die Zielversion Parameter deklariert, schließen Sie Folgendes ein --permission-template-parameters. AWS RAM wendet dieselben Werte auf jeden Ressourcenanteil an, den der Befehl aktualisiert.
Vorlagenparameter und -werte anzeigen
Sie können die Parameter anzeigen, die eine verwaltete Berechtigung deklariert, und die Werte, die Ihre Ressourcenfreigaben bereitstellen.
- Sehen Sie sich die Parameter an, die eine verwaltete Berechtigung deklariert
-
Führen Sie das aus Genehmigung einholen Befehl. Der
permissionTemplateParametersDas Feld listet den Namen, den Typ und die Beschreibung der einzelnen Parameter auf. In der Konsole werden auf der Seite mit den Berechtigungsdetails dieselben Informationen angezeigt. - Sehen Sie sich die Werte an, die eine Ressourcenfreigabe liefert
-
Führen Sie das aus list-resource-share-permissions Befehl. Für jede zugeordnete parametrisierte verwaltete Berechtigung ist der
permissionTemplateParametersDas Feld enthält die Werte, die der Ressourcenanteil liefert.$aws ram list-resource-share-permissions \ --resource-share-arn arn:aws:ram:us-east-1:123456789012:resource-share/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111{ "permissions": [ { "arn": "arn:aws:ram:us-east-1:123456789012:permission/ParameterReadByTeam", "version": "2", "defaultVersion": true, "name": "ParameterReadByTeam", "resourceType": "ssm:Parameter", "status": "ATTACHABLE", "creationTime": 1763400000.000, "lastUpdatedTime": 1763400000.000, "isResourceTypeDefault": false, "permissionType": "CUSTOMER_MANAGED", "featureSet": "STANDARD", "permissionTemplateParameters": [ { "name": "teams", "values": ["payments"] }, { "name": "environment", "values": ["prod"] } ] } ] }Das Rechtevereinigungen auflisten Der Befehl gibt auch die Werte für die Ressourcenanteile zurück, die Sie besitzen. Wenn Sie die Ressourcenanteile in anderen auflisten AWS-Konten wenn Sie eine vom Kunden verwaltete Berechtigung verwenden, die Sie geteilt haben, enthält die Antwort nicht deren Werte.
Gemeinsame Nutzung parametrisierter verwalteter Berechtigungen für mehrere Konten
Sie können eine parametrisierte verwaltete Berechtigung mit anderen teilen AWS-Konten wie jede andere vom Kunden verwaltete Berechtigung. Die Empfängerkonten können den Namen, den Typ und die Beschreibung jedes Parameters sehen. Schreiben Sie daher Beschreibungen, aus denen hervorgeht, welcher Wert angegeben werden muss. Jedes Empfängerkonto gibt seine eigenen Werte an, wenn es die gemeinsam verwaltete Berechtigung seinen eigenen Ressourcenfreigaben zuordnet.
Anweisungen zum Teilen von vom Kunden verwalteten Berechtigungen finden Sie unter Teilen und Verwenden von kundenverwalteten Berechtigungen für mehrere Konten in AWS RAM.
Steuern Sie die Vorlagenparameterwerte mit IAM-Richtlinien
Sie können das verwenden ram:PermissionTemplateParameter/ Bedingungsschlüssel in einer IAM-Richtlinie, um zu steuern, welche Werte ein Principal für einen Parameter angeben kann. Der Schlüssel ist mehrwertig und enthält die Werte in der Anforderung für den benannten Parameter. Er ist auf der Berechtigungsressource für den verfügbar parameter-nameram:CreateResourceShare, ram:AssociateResourceSharePermission, und ram:ReplacePermissionAssociations Aktionen.
In der folgenden Beispielrichtlinie gewährt die erste Anweisung die Aktionen für ParameterReadByTeam vom Kunden verwaltete Erlaubnis. In der zweiten Anweisung wird ihnen verweigert, wenn ein Wert angegeben wurde teams ist etwas anderes als payments oder analytics. Da der Schlüssel mehrwertig ist, verwendet die Richtlinie den ForAnyValue Operator festlegen. AWS RAM erfordert einen Wert für jeden deklarierten Parameter, sodass eine Anfrage, die diese vom Kunden verwaltete Berechtigung verwendet, immer den Schlüssel enthält.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ram:CreateResourceShare", "ram:AssociateResourceSharePermission", "ram:ReplacePermissionAssociations" ], "Resource": "arn:aws:ram:us-east-1:123456789012:permission/ParameterReadByTeam" }, { "Effect": "Deny", "Action": [ "ram:CreateResourceShare", "ram:AssociateResourceSharePermission", "ram:ReplacePermissionAssociations" ], "Resource": "arn:aws:ram:us-east-1:123456789012:permission/ParameterReadByTeam", "Condition": { "ForAnyValue:StringNotEquals": { "ram:PermissionTemplateParameter/teams": [ "payments", "analytics" ] } } } ] }
Diese Anweisungen steuern nur die Berechtigungsressource. Der Hauptbenutzer benötigt auch die Genehmigung für die anderen Ressourcen in der Anfrage, z. B. für den Ressourcenanteil und die Ressourcen, die er gemeinsam nutzt. Weitere Beispiele finden Sie unter Beispiel für IAM-Richtlinien für AWS RAM.
ZEICHENKETTENLISTE Beispiele für Parameter
Die folgenden Beispiele zeigen, wie AWS RAM macht STRING_LIST Parameter.
Beispiel EIN ZEICHENKETTENLISTE Parameter allein in einem Bedingungswert
Vorlage:
"Condition": { "StringEquals": { "aws:PrincipalTag/team": "@{teams}" } }
Werte: ["payments", "analytics"]
Gerenderte Richtlinie:
"Condition": { "StringEquals": { "aws:PrincipalTag/team": ["payments", "analytics"] } }
Mit dem einzelnen Wert ["payments"], der gerenderte Wert ist die Zeichenfolge "payments".
Beispiel EIN ZEICHENKETTENLISTE Parameter mit umgebendem Text
AWS RAM kombiniert jeden Wert mit dem Text vor und nach dem Parameter.
Vorlage:
"Condition": { "ArnLike": { "aws:PrincipalArn": "arn:aws:iam::@{accountIds}:role/ParameterReader" } }
Werte: ["111122223333", "444455556666"]
Gerenderte Richtlinie:
"Condition": { "ArnLike": { "aws:PrincipalArn": [ "arn:aws:iam::111122223333:role/ParameterReader", "arn:aws:iam::444455556666:role/ParameterReader" ] } }
Beispiel EIN ZEICHENKETTENLISTE Parameter in einem Array von Bedingungswerten
AWS RAM rendert jeden Eintrag im Array für jeden Wert und entfernt doppelte Ergebnisse.
Vorlage:
"Condition": { "ArnLike": { "aws:PrincipalArn": [ "arn:aws:iam::@{accountIds}:role/Auditor", "arn:aws:iam::@{accountIds}:role/Reader" ] } }
Werte: ["111122223333", "444455556666"]
Gerenderte Richtlinie:
"Condition": { "ArnLike": { "aws:PrincipalArn": [ "arn:aws:iam::111122223333:role/Auditor", "arn:aws:iam::444455556666:role/Auditor", "arn:aws:iam::111122223333:role/Reader", "arn:aws:iam::444455556666:role/Reader" ] } }