Utilizzo dei tag per controllare l'accesso alle risorse REST API di Gateway API - Amazon API Gateway

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 dei tag per controllare l'accesso alle risorse REST API di Gateway API

Le condizioni nelle AWS Identity and Access Management policy fanno parte della sintassi utilizzata per specificare le autorizzazioni per le risorse API Gateway. Per ulteriori informazioni su come specificare le policy IAM, consulta Controlla l'accesso a un REST API con IAM autorizzazioni. In API Gateway, le risorse possono avere tag e alcune operazioni possono includere tag. Quando si crea una policy IAM, è possibile utilizzare le chiavi di condizione di tag per controllare:

  • Quali utenti possono eseguire operazioni su una risorsa API Gateway, in base ai tag di cui la risorsa dispone già.

  • Quali tag possono essere passati in una richiesta di operazione.

  • Se delle chiavi di tag specifiche possono essere utilizzate in una richiesta.

L'utilizzo del controllo degli accessi basato sugli attributi permette un controllo migliore rispetto a quello a livello di API, nonché un controllo più dinamico rispetto al controllo degli accessi basato sulle risorse. Possono essere create policy IAM che consentono o negano un'operazione basata sui tag forniti nella richiesta (tag di richiesta) o tag sulla risorsa su cui è eseguita l'operazione (tag delle risorse). In generale, i tag delle risorse sono per risorse già esistenti. I tag di richiesta sono riservati per la creazione di nuove risorse.

Per la sintassi completa e la semantica delle chiavi di condizione di tag, consulta Controllo degli accessi tramite tag nella Guida per l’utente di IAM.

I seguenti esempi mostrano come specificare le condizioni dei tag nelle policy per gli utenti API Gateway.

Limitare le operazioni in base ai tag delle risorse

La seguente policy di esempio concede agli utenti l'autorizzazione a eseguire tutte le operazioni su tutte le risorse, a condizione che tali risorse non dispongano del tag Environment con un valore di prod.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "apigateway:*", "Resource": "*" }, { "Effect": "Deny", "Action": [ "apigateway:*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/Environment": "prod" } } } ] }

Consentire operazioni in base ai tag delle risorse

La seguente policy di esempio consente agli utenti di eseguire tutte le operazioni sulle risorse Gateway API, a condizione che tali risorse dispongano del tag Environment con un valore di Development. L'istruzione Deny impedisce all'utente di modificare il valore del tag Environment.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ConditionallyAllow", "Effect": "Allow", "Action": [ "apigateway:*" ], "Resource": [ "arn:aws:apigateway:*::*" ], "Condition": { "StringEquals": { "aws:ResourceTag/Environment": "Development" } } }, { "Sid": "AllowTagging", "Effect": "Allow", "Action": [ "apigateway:*" ], "Resource": [ "arn:aws:apigateway:*::/tags/*" ] }, { "Sid": "DenyChangingTag", "Effect": "Deny", "Action": [ "apigateway:*" ], "Resource": [ "arn:aws:apigateway:*::/tags/*" ], "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": "Environment" } } } ] }

Negare operazioni di assegnazione di tag

La seguente policy di esempio consente a un utente di eseguire tutte le operazioni Gateway API, ad eccezione della modifica dei tag.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "apigateway:*" ], "Resource": [ "*" ], }, { "Effect": "Deny", "Action": [ "apigateway:*" ], "Resource": "arn:aws:apigateway:*::/tags*", } ] }

Consentire operazioni di assegnazione di tag

La seguente policy di esempio consente a un utente di disporre di tutte le risorse Gateway API e di modificare i tag per tali risorse. Per ottenere i tag per una risorsa, l'utente deve disporre delle autorizzazioni GET per quella risorsa. Per aggiornare i tag per una risorsa, l'utente deve disporre delle autorizzazioni PATCH per quella risorsa.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "apigateway:GET", "apigateway:PUT", "apigateway:POST", "apigateway:DELETE" ], "Resource": [ "arn:aws:apigateway:*::/tags/*", ] }, { "Effect": "Allow", "Action": [ "apigateway:GET", "apigateway:PATCH", ], "Resource": [ "arn:aws:apigateway:*::*", ] } ] }