Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Utilizzo di autorizzazioni gestite parametrizzate in AWS RAM
Un'autorizzazione gestita con parametri è un'autorizzazione gestita con segnaposto nelle relative condizioni politiche che puoi inserire con i tuoi valori. Questi segnaposto sono parametri del modello. Non creano un nuovo tipo di autorizzazione gestita. Aggiungono variabilità al modello di policy di uno esistente.
Invece di creare un'autorizzazione gestita dal cliente separata per ogni valore di condizione univoco, si crea un'autorizzazione gestita dal cliente con parametri. Quando la si associa a una condivisione di risorse, si fornisce un valore per ogni parametro. AWS RAM sostituisce i valori nel modello di policy e allega la policy basata sulle risorse risultante alle risorse condivise.
Ad esempio, un team della piattaforma centrale crea un'autorizzazione gestita dal cliente per AWS Systems Manager Parametri: memorizza i parametri (tipo di risorsa) ssm:Parameter). Concede l'accesso in lettura solo ai presidi con un certificato approvato team etichetta. Il team della piattaforma condivide l'autorizzazione gestita dal cliente con gli account della propria organizzazione. Ogni account la utilizza quindi nelle proprie condivisioni di risorse, che possono contenere uno o più parametri di Parameter Store. In ogni condivisione di risorse, l'account fornisce team i valori dei tag dei principali in grado di leggere i parametri condivisi di Parameter Store.
Argomenti
tipi di parametri del modello
AWS RAM supporta due tipi di parametri. Il tipo determina in che modo AWS RAM sostituisce il valore nella policy renderizzata. Nel AWS RAM API e AWS CLI, i tipi sono STRING e STRING_LIST. Il AWS RAM la console li mostra come Stringa e StringList.
STRING-
Accetta esattamente un valore di stringa.
-
Puoi usare un
STRINGparametro in una chiave di condizione o in un valore di condizione. -
È possibile incorporare un
STRINGparametro in altro testo. Ad esempio,"arn:aws:iam::@{accountId}:role/Auditor". -
Il valore renderizzato è sempre una stringa. Poiché gli operatori di condizione IAM convertono le stringhe nel tipo che confrontano, a
STRINGil parametro può fornire valori numerici, booleani, di data, indirizzo IP o ARN.
-
STRING_LIST-
Accetta da 1 a 100 valori di stringa.
-
È possibile utilizzare un
STRING_LISTparametro solo in un valore di condizione, non in una chiave di condizione. -
Se il valore della condizione è una singola stringa che contiene solo il parametro, ad esempio
"@{teams}", AWS RAM esegue il rendering di una matrice dei valori forniti. Se fornisci un singolo valore, AWS RAM esegue il rendering di una singola stringa. -
Se il valore della condizione contiene del testo prima o dopo il parametro, ad esempio
"arn:aws:iam::@{accountIds}:role/ParameterReader", AWS RAM combina ogni valore con quel testo. -
Per combinare ogni valore con più di una stringa, elenca le stringhe in una matrice di valori di condizione. AWS RAM esegue il rendering di ogni voce dell'array per ogni valore e rimuove i risultati duplicati. Il risultato è sempre un array.
-
AWS RAM e IAM non divide una stringa con virgole. Una stringa separata da virgole viene confrontata come un valore.
Per alcuni esempi, consulta STRING_LIST esempi di parametri.
-
Regole di sintassi del modello di policy
Quando si aggiungono parametri al modello di policy di un'autorizzazione gestita, si applicano le seguenti regole. Se una richiesta viola una di queste regole, AWS RAM la rifiuta con un InvalidParameterException o InvalidPolicyException errore.
-
Un segnaposto per parametri utilizza la sintassi
@{parameterName}. -
I nomi dei parametri possono contenere lettere (a-z), A-Z), numeri (0-9), due punti (:), trattini (-) e trattini bassi (_). I nomi devono essere univoci all'interno di una versione con autorizzazione gestita e il confronto ignora le maiuscole e minuscole.
-
È necessario dichiarare ogni parametro quando si crea l'autorizzazione o la versione dell'autorizzazione. Ogni dichiarazione richiede un nome, un tipo e una descrizione. La descrizione può contenere fino a 255 caratteri.
-
Ogni parametro dichiarato deve apparire nel modello di policy.
-
I segnaposto corrispondono esattamente ai nomi dichiarati, lettere maiuscole e minuscole incluse. Testo in
@{...}il formato che non corrisponde esattamente a un nome dichiarato rimane nella politica come testo letterale. Ad esempio, se dichiariteamsma scrivi@{Teams}, AWS RAM tratta@{Teams}come testo e rifiuta la richiesta perchéteamsnon è usato. -
I parametri possono essere visualizzati solo in
Conditionelemento, come chiave di condizione o come valore di condizione. AWS RAM rifiuta i parametri inEffect,Action, o qualsiasi altro elemento. -
Una chiave di condizione può contenere al massimo un parametro e deve essere un
STRINGparametro. Il valore di una condizione può contenere più di un parametro, ad esempio"@{project}-@{stage}". Quando il valore di una condizione si combinaSTRING_LISTparametri, AWS RAM esegue il rendering di ogni combinazione dei relativi valori, fino a 100 stringhe per ogni valore di condizione. -
È possibile dichiarare fino a 100 parametri per ogni versione di autorizzazione gestita.
-
I parametri non hanno valori predefiniti. Quando si associa l'autorizzazione a una condivisione di risorse, è necessario fornire un valore non vuoto per ogni parametro dichiarato e non è possibile fornire un nome non dichiarato o fornire lo stesso nome due volte.
Crea un'autorizzazione gestita con parametri
Si crea un'autorizzazione gestita con parametri nello stesso modo in cui si crea qualsiasi altra autorizzazione gestita dal cliente. La differenza è che si dichiarano i parametri e si utilizzano @{parameterName} segnaposti nelle condizioni del modello di policy.
Controllo della versione di un'autorizzazione gestita con parametri
La versione delle autorizzazioni gestite con parametri è identica a quella di qualsiasi altra autorizzazione gestita dal cliente. Ogni versione dichiara i propri parametri in modo indipendente, quindi una nuova versione può dichiarare un set di parametri diverso rispetto alla versione precedente.
Per creare una nuova versione, esegui create-permission-version comando con --policy-template e --permission-template-parameters parametri. L'esempio seguente aggiunge una seconda condizione con STRING parametro denominato 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}"}}}'
Una nuova versione diventa la versione predefinita non appena viene creata. Le condivisioni di risorse esistenti mantengono la versione utilizzata. Quando il proprietario di una condivisione di risorse la aggiorna alla nuova versione, deve fornire i valori per i parametri dichiarati dalla nuova versione. Per ulteriori informazioni, consulta Aggiornamento in corso AWS autorizzazioni gestite per una versione più recente.
Per ulteriori informazioni sul funzionamento delle versioni di autorizzazione gestite dal cliente e delle versioni predefinite, vedere Creazione e utilizzo delle autorizzazioni gestite dal cliente in AWS RAM.
Visualizza l'anteprima di un modello di policy renderizzato
Prima di associare un'autorizzazione gestita con parametri a una condivisione di risorse, è possibile visualizzare in anteprima la politica che AWS RAM esegue il rendering a partire da valori di parametri specifici.
Nel AWS RAM nella console, quando crei o aggiorni una condivisione di risorse, inserisci i valori in Valori dei parametri del modello e scegli Anteprima della politica renderizzata.
Nel AWS CLI, esegui il ottenere il permesso comando con --permission-template-parameters parametro. Il permission il campo della risposta contiene la politica con i tuoi valori al posto dei segnaposto.
$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" } ] } }
Senza --permission-template-parameters parametro, il get-permission il comando restituisce il modello di politica con @{parameterName} segnaposto. Le permissionTemplateParameters il campo elenca il nome, il tipo e la descrizione di ogni parametro dichiarato.
Associa un'autorizzazione gestita con parametri a una condivisione di risorse
Quando si associa un'autorizzazione gestita con parametri a una condivisione di risorse, è necessario fornire valori per tutti i parametri dichiarati dalla versione. AWS RAM esegue il rendering del modello di policy con i valori specificati e allega la policy basata sulle risorse risultanti alle risorse condivise di quel tipo.
Per spostare molte condivisioni di risorse da una versione o autorizzazione a un'altra, esegui replace-permission-association. Se la versione di destinazione dichiara parametri, includi --permission-template-parameters. AWS RAM applica gli stessi valori a ogni condivisione di risorse che il comando aggiorna.
Visualizza i parametri e i valori del modello
È possibile visualizzare i parametri dichiarati da un'autorizzazione gestita e i valori forniti dalle condivisioni di risorse.
- Visualizza i parametri dichiarati da un'autorizzazione gestita
-
Esegui il ottenere il permesso comando. Il
permissionTemplateParametersil campo elenca il nome, il tipo e la descrizione di ogni parametro. Nella console, la pagina dei dettagli delle autorizzazioni mostra le stesse informazioni. - Visualizza i valori forniti da una condivisione di risorse
-
Esegui il list-resource-share-permissions comando. Per ogni autorizzazione gestita parametrizzata associata,
permissionTemplateParametersil campo include i valori forniti dalla condivisione delle risorse.$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"] } ] } ] }Il list-permission-association il comando restituisce anche i valori per le condivisioni di risorse che possiedi. Quando si elencano le condivisioni di risorse in altri Account AWS che utilizzano un'autorizzazione gestita dal cliente che hai condiviso, la risposta non include i relativi valori.
Condivisione delle autorizzazioni gestite con parametri tra gli account
È possibile condividere un'autorizzazione gestita con parametri con altri Account AWS come qualsiasi altra autorizzazione gestita dal cliente. Gli account riceventi possono vedere il nome, il tipo e la descrizione di ogni parametro, quindi scrivi descrizioni che indichino loro quale valore fornire. Ogni account ricevente fornisce i propri valori quando associa l'autorizzazione gestita condivisa alle proprie condivisioni di risorse.
Per istruzioni sulla condivisione delle autorizzazioni gestite dai clienti, consulta Condivisione e utilizzo delle autorizzazioni gestite dal cliente tra gli account in AWS RAM.
Controlla i valori dei parametri del modello con le politiche IAM
Puoi usare ram:PermissionTemplateParameter/ chiave di condizione in una policy IAM per controllare quali valori un principale può fornire per un parametro. La chiave è multivalore e contiene i valori nella richiesta per il parametro indicato. È disponibile nella risorsa di autorizzazione per parameter-nameram:CreateResourceShare, ram:AssociateResourceSharePermission, e ram:ReplacePermissionAssociations azioni.
Nel seguente esempio di politica, la prima dichiarazione concede le azioni sul ParameterReadByTeam autorizzazione gestita dal cliente. La seconda dichiarazione li nega se viene fornito un valore teams è qualcosa di diverso da payments o analytics. Poiché la chiave è multivalore, la policy utilizza ForAnyValue operatore set. AWS RAM richiede un valore per ogni parametro dichiarato, quindi una richiesta che utilizza questa autorizzazione gestita dal cliente include sempre la chiave.
{ "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" ] } } } ] }
Queste dichiarazioni controllano solo la risorsa di autorizzazione. Il committente necessita inoltre dell'autorizzazione per le altre risorse incluse nella richiesta, ad esempio la condivisione delle risorse e le risorse che condivide. Per ulteriori esempi, consulta Esempi di policy IAM per AWS RAM.
STRING_LIST esempi di parametri
Gli esempi seguenti mostrano come AWS RAM rende STRING_LIST parametri.
Esempio A LISTA_STRINGHE parametro da solo in un valore di condizione
Modello:
"Condition": { "StringEquals": { "aws:PrincipalTag/team": "@{teams}" } }
Valori: ["payments", "analytics"]
Politica renderizzata:
"Condition": { "StringEquals": { "aws:PrincipalTag/team": ["payments", "analytics"] } }
Con un unico valore ["payments"], il valore renderizzato è la stringa "payments".
Esempio UN LISTA_STRINGHE parametro con testo circostante
AWS RAM combina ogni valore con il testo prima e dopo il parametro.
Modello:
"Condition": { "ArnLike": { "aws:PrincipalArn": "arn:aws:iam::@{accountIds}:role/ParameterReader" } }
Valori: ["111122223333", "444455556666"]
Politica renderizzata:
"Condition": { "ArnLike": { "aws:PrincipalArn": [ "arn:aws:iam::111122223333:role/ParameterReader", "arn:aws:iam::444455556666:role/ParameterReader" ] } }
Esempio A LISTA_STRINGHE parametro in una matrice di valori di condizione
AWS RAM esegue il rendering di ogni voce nell'array per ogni valore e rimuove i risultati duplicati.
Modello:
"Condition": { "ArnLike": { "aws:PrincipalArn": [ "arn:aws:iam::@{accountIds}:role/Auditor", "arn:aws:iam::@{accountIds}:role/Reader" ] } }
Valori: ["111122223333", "444455556666"]
Politica renderizzata:
"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" ] } }