Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Utilisation d'autorisations gérées paramétrées dans AWS RAM
Une autorisation gérée paramétrée est une autorisation gérée dont les conditions de politique comportent des espaces réservés que vous remplissez avec vos propres valeurs. Ces espaces réservés sont des paramètres de modèle. Ils ne créent pas de nouveau type d'autorisation gérée. Ils ajoutent de la variabilité au modèle de politique d'un modèle existant.
Au lieu de créer une autorisation gérée par le client distincte pour chaque valeur de condition unique, vous créez une autorisation gérée par le client avec des paramètres. Lorsque vous l'associez à un partage de ressources, vous fournissez une valeur pour chaque paramètre. AWS RAM substitue vos valeurs dans le modèle de politique et associe la stratégie basée sur les ressources qui en résulte aux ressources partagées.
Par exemple, une équipe de plateforme centrale crée une autorisation gérée par le client pour AWS Systems Manager Paramètre : stocker les paramètres (type de ressource) ssm:Parameter). Il n'accorde l'accès en lecture qu'aux principaux titulaires d'un team étiquette. L'équipe de la plateforme partage cette autorisation gérée par le client avec les comptes de son organisation. Chaque compte l'utilise ensuite dans ses propres partages de ressources, qui peuvent contenir un ou plusieurs paramètres de magasin de paramètres. Dans chaque partage de ressources, le compte fournit les team valeurs de balises des principaux qui peuvent lire les paramètres partagés du magasin de paramètres.
Rubriques
Types de paramètres de modèle
AWS RAM prend en charge deux types de paramètres. Le type détermine comment AWS RAM substitue la valeur dans la politique rendue. Dans le AWS RAM L'API et le AWS CLI, les types sont STRING et STRING_LIST. Le AWS RAM la console les affiche comme Corde et StringList.
STRING-
Accepte exactement une valeur de chaîne.
-
Vous pouvez utiliser un
STRINGparamètre dans une clé de condition ou dans une valeur de condition. -
Vous pouvez intégrer un
STRINGparamètre dans un autre texte. Par exemple :"arn:aws:iam::@{accountId}:role/Auditor". -
La valeur rendue est toujours une chaîne. Étant donné que les opérateurs de condition IAM convertissent les chaînes dans le type qu'elles comparent, un
STRINGLe paramètre peut fournir des valeurs numériques, booléennes, de date, d'adresse IP ou d'ARN.
-
STRING_LIST-
Accepte de 1 à 100 valeurs de chaîne.
-
Vous pouvez utiliser un
STRING_LISTparamètre uniquement dans une valeur de condition, pas dans une clé de condition. -
Si la valeur de la condition est une chaîne unique contenant uniquement le paramètre, par exemple
"@{teams}", AWS RAM affiche un tableau des valeurs que vous fournissez. Si vous ne fournissez qu'une seule valeur, AWS RAM rend une seule chaîne. -
Si la valeur de la condition contient du texte avant ou après le paramètre, par exemple
"arn:aws:iam::@{accountIds}:role/ParameterReader", AWS RAM combine chaque valeur avec ce texte. -
Pour combiner chaque valeur avec plusieurs chaînes, listez les chaînes dans un tableau de valeurs de condition. AWS RAM affiche chaque entrée du tableau pour chaque valeur et supprime les résultats dupliqués. Le résultat est toujours un tableau.
-
AWS RAM et IAM ne divise pas une chaîne par des virgules. Une chaîne séparée par des virgules est comparée comme une seule valeur.
Pour obtenir des exemples, consultez LISTE_CHAÎNES exemples de paramètres.
-
Règles de syntaxe des modèles de politiques
Lorsque vous ajoutez des paramètres au modèle de politique d'une autorisation gérée, les règles suivantes s'appliquent. Si une demande enfreint l'une de ces règles, AWS RAM le rejette avec un InvalidParameterException ou InvalidPolicyException erreur.
-
Un espace réservé pour les paramètres utilise la syntaxe
@{parameterName}. -
Les noms des paramètres peuvent contenir des lettres (a-z, A-Z), des chiffres (0-9), des deux-points (:), des tirets (-) et des traits de soulignement (_). Les noms doivent être uniques dans une version à autorisation gérée, et la comparaison ignore les majuscules et minuscules.
-
Vous devez déclarer chaque paramètre lorsque vous créez l'autorisation ou la version de l'autorisation. Chaque déclaration nécessite un nom, un type et une description. La description peut comporter jusqu'à 255 caractères.
-
Chaque paramètre déclaré doit apparaître dans le modèle de politique.
-
Les espaces réservés correspondent exactement aux noms déclarés, majuscules et minuscules comprises. Texte dans le
@{...}le format qui ne correspond pas exactement à un nom déclaré reste dans la politique sous forme de texte littéral. Par exemple, si vous déclarezteamsmais écris@{Teams}, AWS RAM friandises@{Teams}sous forme de texte et rejette la demande carteamsn'est pas utilisé. -
Les paramètres ne peuvent apparaître que dans
Conditionélément, en tant que clé de condition ou en tant que valeur de condition. AWS RAM rejette les paramètres dansEffect,Action, ou tout autre élément. -
Une clé de condition peut contenir au plus un paramètre, et il doit s'agir d'un
STRINGparamètre. Une valeur de condition peut contenir plusieurs paramètres, par exemple"@{project}-@{stage}". Lorsqu'une valeur de condition est combinéeSTRING_LISTparamètres, AWS RAM affiche chaque combinaison de leurs valeurs, jusqu'à 100 chaînes pour chaque valeur de condition. -
Vous pouvez déclarer jusqu'à 100 paramètres pour chaque version d'autorisation gérée.
-
Les paramètres n'ont aucune valeur par défaut. Lorsque vous associez l'autorisation à un partage de ressources, vous devez fournir une valeur non vide pour chaque paramètre déclaré, et vous ne pouvez pas fournir un nom qui n'est pas déclaré ou fournir le même nom deux fois.
Création d'une autorisation gérée paramétrée
Vous créez une autorisation gérée paramétrée de la même manière que toute autre autorisation gérée par le client. La différence est que vous déclarez des paramètres et que vous utilisez @{parameterName} espaces réservés dans les conditions du modèle de politique.
Versionner une autorisation gérée paramétrée
Les autorisations gérées paramétrées sont versionnées de la même manière que toute autre autorisation gérée par le client. Chaque version déclare ses paramètres indépendamment, de sorte qu'une nouvelle version peut déclarer un ensemble de paramètres différent de celui de la version précédente.
Pour créer une nouvelle version, exécutez version avec autorisation de création commande avec --policy-template et --permission-template-parameters paramètres. L'exemple suivant ajoute une deuxième condition avec un STRING paramètre nommé 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}"}}}'
Une nouvelle version devient la version par défaut dès que vous la créez. Les partages de ressources existants conservent la version qu'ils utilisent. Lorsque le propriétaire d'un partage de ressources le met à jour vers la nouvelle version, il doit fournir des valeurs pour les paramètres déclarés par la nouvelle version. Pour plus d’informations, consultez Mise à jour AWS autorisations gérées vers une version plus récente.
Pour plus d'informations sur le fonctionnement des versions d'autorisations gérées par le client et des versions par défaut, voir Création et utilisation des autorisations gérées par le client dans AWS RAM.
Afficher un aperçu d'un modèle de politique rendu
Avant d'associer une autorisation gérée paramétrée à un partage de ressources, vous pouvez prévisualiser la politique qui AWS RAM effectue des rendus à partir de valeurs de paramètres spécifiques.
Dans le AWS RAM console, lorsque vous créez ou mettez à jour un partage de ressources, entrez les valeurs sous Valeurs des paramètres du modèle et choisissez Aperçu de la politique rendue.
Dans le AWS CLI, exécutez le obtenir une autorisation commande avec --permission-template-parameters paramètre. Le permission Le champ de la réponse contient la politique avec vos valeurs à la place des espaces réservés.
$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" } ] } }
Sans --permission-template-parameters paramètre, le get-permission la commande renvoie le modèle de politique avec @{parameterName} espaces réservés. Le permissionTemplateParameters Ce champ répertorie le nom, le type et la description de chaque paramètre déclaré.
Associer une autorisation gérée paramétrée à un partage de ressources
Lorsque vous associez une autorisation gérée paramétrée à un partage de ressources, vous devez fournir des valeurs pour tous les paramètres déclarés par la version. AWS RAM affiche le modèle de politique avec vos valeurs et associe la stratégie basée sur les ressources qui en résulte aux ressources partagées de ce type.
Pour déplacer de nombreux partages de ressources d'une version ou d'une autorisation à une autre, exécutez associations d'autorisation de remplacement. Si la version cible déclare des paramètres, incluez --permission-template-parameters. AWS RAM applique les mêmes valeurs à chaque partage de ressources mis à jour par la commande.
Afficher les paramètres et les valeurs du modèle
Vous pouvez consulter les paramètres déclarés par une autorisation gérée et les valeurs fournies par vos ressources partagées.
- Afficher les paramètres déclarés par une autorisation gérée
-
Exécutez le obtenir une autorisation commande. Le
permissionTemplateParametersCe champ répertorie le nom, le type et la description de chaque paramètre. Dans la console, la page des détails des autorisations affiche les mêmes informations. - Afficher les valeurs fournies par un partage de ressources
-
Exécutez le lister les autorisations de partage de ressources commande. Pour chaque autorisation gérée paramétrée associée, le
permissionTemplateParametersLe champ inclut les valeurs fournies par le partage de ressources.$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"] } ] } ] }Le lister les associations avec autorisation La commande renvoie également les valeurs des partages de ressources que vous possédez. Lorsque vous répertoriez les partages de ressources dans d'autres Comptes AWS qui utilisent une autorisation gérée par le client que vous avez partagée, la réponse n'inclut pas leurs valeurs.
Partage d'autorisations gérées paramétrées entre les comptes
Vous pouvez partager une autorisation gérée paramétrée avec d'autres Comptes AWS comme toute autre autorisation gérée par le client. Les comptes récepteurs peuvent voir le nom, le type et la description de chaque paramètre. Rédigez donc des descriptions leur indiquant la valeur à fournir. Chaque compte récepteur fournit ses propres valeurs lorsqu'il associe l'autorisation gérée partagée à ses propres partages de ressources.
Pour obtenir des instructions sur le partage des autorisations gérées par les clients, voir Partage et utilisation des autorisations gérées par les clients entre les comptes dans AWS RAM.
Contrôlez les valeurs des paramètres du modèle à l'aide de politiques IAM
Vous pouvez utiliser ram:PermissionTemplateParameter/ clé de condition dans une politique IAM pour contrôler les valeurs qu'un principal peut fournir pour un paramètre. La clé est multivaluée et contient les valeurs de la demande pour le paramètre nommé. Il est disponible sur la ressource d'autorisation pour parameter-nameram:CreateResourceShare, ram:AssociateResourceSharePermission, et ram:ReplacePermissionAssociations actions.
Dans l'exemple de politique suivant, la première instruction accorde les actions sur ParameterReadByTeam autorisation gérée par le client. La deuxième instruction les refuse si une valeur est fournie pour teams est autre chose que payments ou analytics. Comme la clé est multivaluée, la politique utilise le ForAnyValue réglez l'opérateur. AWS RAM nécessite une valeur pour chaque paramètre déclaré, de sorte qu'une demande utilisant cette autorisation gérée par le client inclut toujours la clé.
{ "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" ] } } } ] }
Ces instructions contrôlent uniquement la ressource d'autorisation. Le principal a également besoin d'une autorisation pour les autres ressources de la demande, telles que le partage de ressources et les ressources qu'il partage. Pour obtenir plus d’exemples, consultez Exemples de politiques IAM pour AWS RAM.
LISTE_CHAÎNES exemples de paramètres
Les exemples suivants montrent comment AWS RAM rendus STRING_LIST paramètres.
Exemple UNE LISTE_CHAÎNES paramètre seul dans une valeur de condition
Modèle :
"Condition": { "StringEquals": { "aws:PrincipalTag/team": "@{teams}" } }
Valeurs: ["payments", "analytics"]
Politique rendue :
"Condition": { "StringEquals": { "aws:PrincipalTag/team": ["payments", "analytics"] } }
Avec une valeur unique ["payments"], la valeur rendue est la chaîne "payments".
Exemple UNE LISTE_CHAÎNES paramètre entouré de texte
AWS RAM combine chaque valeur avec le texte situé avant et après le paramètre.
Modèle :
"Condition": { "ArnLike": { "aws:PrincipalArn": "arn:aws:iam::@{accountIds}:role/ParameterReader" } }
Valeurs: ["111122223333", "444455556666"]
Politique rendue :
"Condition": { "ArnLike": { "aws:PrincipalArn": [ "arn:aws:iam::111122223333:role/ParameterReader", "arn:aws:iam::444455556666:role/ParameterReader" ] } }
Exemple UNE LISTE_CHAÎNES paramètre dans un tableau de valeurs de condition
AWS RAM affiche chaque entrée du tableau pour chaque valeur et supprime les résultats dupliqués.
Modèle :
"Condition": { "ArnLike": { "aws:PrincipalArn": [ "arn:aws:iam::@{accountIds}:role/Auditor", "arn:aws:iam::@{accountIds}:role/Reader" ] } }
Valeurs: ["111122223333", "444455556666"]
Politique rendue :
"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" ] } }