Creare e allegare una politica delle risorse API Gateway a un 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à.

Creare e allegare una politica delle risorse API Gateway a un API

Per consentire a un utente di accedere al servizio di esecuzione API chiamando il servizio di API esecuzione, è necessario creare una politica delle risorse API Gateway e allegare la politica aAPI. Quando si allega una politica alla propriaAPI, vengono applicate le autorizzazioni contenute nella politica ai metodi in. API Se aggiorni la politica delle risorse, dovrai implementare il. API

Prerequisiti

Per aggiornare una politica delle risorse di API Gateway, avrai bisogno dell'apigateway:UpdateRestApiPolicyautorizzazione e dell'apigateway:PATCHautorizzazione.

Nel caso di una politica regionale o ottimizzata per i dispositivi perifericiAPI, puoi allegare la politica delle risorse al API momento della creazione o dopo che è stata implementata. Se si tratta di una politica privataAPI, non è possibile implementarla senza una politica in materia di risorseAPI. Per ulteriori informazioni, consulta Privato REST APIs in API Gateway.

Allega una politica delle risorse a un API Gateway API

La procedura seguente mostra come allegare una politica delle risorse a un API GatewayAPI.

AWS Management Console
Per allegare una politica delle risorse a un API Gateway API
  1. Accedere alla console API Gateway all'indirizzo https://console.aws.amazon.com/apigateway.

  2. Scegli un. REST API

  3. Nel riquadro di navigazione principale, scegli Policy delle risorse.

  4. Scegli Create Policy (Crea policy).

  5. (Facoltativo) Scegli Seleziona un modello per generare una policy di esempio.

    Negli esempi di policy, i segnaposto sono racchiusi tra parentesi graffe doppie ("{{placeholder}}"). Sostituisci ogni segnaposto, incluse le parentesi graffe, con le informazioni necessarie.

  6. Se non utilizzi uno dei modelli di esmepio, immetti la tua policy delle risorse.

  7. Scegli Save changes (Salva modifiche).

Se API è stato distribuito in precedenza nella console API Gateway, sarà necessario ridistribuirlo affinché la politica delle risorse abbia effetto.

AWS CLI

Per utilizzare la AWS CLI per creare una nuova politica delle risorse API e allegarla, chiama il create-rest-apicomando come segue:

aws apigateway create-rest-api \ --name "api-name" \ --policy "{\"jsonEscapedPolicyDocument\"}"

Per utilizzare il AWS CLI per allegare una politica delle risorse a una esistenteAPI, chiamate il update-rest-apicomando come segue:

aws apigateway update-rest-api \ --rest-api-id api-id \ --patch-operations op=replace,path=/policy,value='"{\"jsonEscapedPolicyDocument\"}"'

È inoltre possibile allegare la politica delle risorse come policy.json file separato e includerla nel create-rest-apicomando. L'esempio seguente create-rest-apicrea un nuovoAPI:

aws apigateway create-rest-api \ --name "api-name" \ --policy file://policy.json

policy.jsonè una politica delle risorse di API Gateway, ad esempioEsempio: nega API il traffico in base all'indirizzo o all'intervallo IP di origine.

AWS CloudFormation

È possibile utilizzare AWS CloudFormation per creare una politica API con una risorsa. L'esempio seguente crea una politica delle risorse REST API con l'esempio,Esempio: nega API il traffico in base all'indirizzo o all'intervallo IP di origine.

AWSTemplateFormatVersion: 2010-09-09 Resources: Api: Type: 'AWS::ApiGateway::RestApi' Properties: Name: testapi Policy: Statement: - Action: 'execute-api:Invoke' Effect: Allow Principal: '*' Resource: 'execute-api/*' - Action: 'execute-api:Invoke' Effect: Deny Principal: '*' Resource: 'execute-api/*' Condition: IpAddress: 'aws:SourceIp': ["192.0.2.0/24", "198.51.100.0/24" ] Version: 2012-10-17 Resource: Type: 'AWS::ApiGateway::Resource' Properties: RestApiId: !Ref Api ParentId: !GetAtt Api.RootResourceId PathPart: 'helloworld' MethodGet: Type: 'AWS::ApiGateway::Method' Properties: RestApiId: !Ref Api ResourceId: !Ref Resource HttpMethod: GET ApiKeyRequired: false AuthorizationType: NONE Integration: Type: MOCK ApiDeployment: Type: 'AWS::ApiGateway::Deployment' DependsOn: - MethodGet Properties: RestApiId: !Ref Api StageName: test

Risolvi i problemi relativi alla politica delle risorse

La seguente guida per la risoluzione dei problemi potrebbe aiutarti a risolvere i problemi relativi alla politica delle risorse.

My API return {"Message» :"User: anonymous is not authorized to perform: execute-api:invoke on resource: arn:aws:execute-api:us-east-1: ********/****/****/ "}

Nella tua politica delle risorse, AWS se imposti il Principal su un principale, come il seguente:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", ""Principal": { "AWS": [ "arn:aws:iam::account-id:role/developer", "arn:aws:iam::account-id:role/Admin" ] }, "Action": "execute-api:Invoke", "Resource": [ "execute-api:/*" ] }, ... }

È necessario utilizzare AWS_IAM l'autorizzazione per ogni metodo utilizzatoAPI, altrimenti verrà API restituito il messaggio di errore precedente. Per ulteriori istruzioni su come attivare AWS_IAM l'autorizzazione per un metodo, consultaMetodi per REST APIs in API Gateway.

La mia politica sulle risorse non si aggiorna

Se aggiorni la politica delle risorse dopo API la creazione, dovrai implementare la politica API per propagare le modifiche dopo aver allegato la politica aggiornata. L'aggiornamento o il salvataggio della politica da soli non modificheranno il comportamento di runtime di. API Per ulteriori informazioni sulla distribuzione del tuoAPI, consultaImplementazione REST APIs in Gateway API.

La mia politica sulle risorse restituisce il seguente errore: Documento di policy non valido. Controlla la sintassi della politica e assicurati che i Principal siano validi.

Per risolvere questo errore, ti consigliamo innanzitutto di controllare la sintassi della policy. Per ulteriori informazioni, consulta Panoramica linguistica delle policy di accesso per Amazon API Gateway. Ti consigliamo inoltre di verificare che tutti i principali specificati siano validi e non siano stati eliminati.

Inoltre, se ti trovi in una regione che accetta l'iscrizione, verifica che la regione API sia abilitata per tutti gli account indicati nella politica delle risorse.