Membuat dan melampirkan kebijakan sumber daya API Gateway ke API - APIGerbang Amazon

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Membuat dan melampirkan kebijakan sumber daya API Gateway ke API

Untuk mengizinkan pengguna mengakses layanan Anda API dengan memanggil layanan API eksekusi, Anda harus membuat kebijakan sumber daya API Gateway dan melampirkan kebijakan tersebut keAPI. Saat Anda melampirkan kebijakan ke kebijakan AndaAPI, kebijakan tersebut menerapkan izin dalam kebijakan tersebut ke metode diAPI. Jika memperbarui kebijakan sumber daya, Anda harus menerapkan. API

Prasyarat

Untuk memperbarui kebijakan sumber daya API Gateway, Anda memerlukan apigateway:UpdateRestApiPolicy izin dan apigateway:PATCH izin.

Untuk Regional atau yang dioptimalkan di tepiAPI, Anda dapat melampirkan kebijakan sumber daya ke API saat Anda membuatnya, atau setelah diterapkan. Untuk pribadiAPI, Anda tidak dapat menerapkan API tanpa kebijakan sumber daya. Untuk informasi selengkapnya, lihat Pribadi REST APIs di API Gateway.

Melampirkan kebijakan sumber daya ke API Gateway API

Prosedur berikut menunjukkan cara melampirkan kebijakan sumber daya ke API GatewayAPI.

AWS Management Console
Untuk melampirkan kebijakan sumber daya ke API Gateway API
  1. Masuk ke konsol API Gateway di https://console.aws.amazon.com/apigateway.

  2. Pilih a RESTAPI.

  3. Di panel navigasi utama, pilih Kebijakan sumber daya.

  4. Pilih Buat kebijakan.

  5. (Opsional) Pilih templat untuk menghasilkan contoh kebijakan.

    Dalam contoh kebijakan, placeholder dilampirkan dalam double curly braces (). "{{placeholder}}" Ganti masing-masing placeholder, termasuk kawat gigi keriting, dengan informasi yang diperlukan.

  6. Jika Anda tidak menggunakan salah satu contoh templat, masukkan kebijakan sumber daya Anda.

  7. Pilih Simpan perubahan.

Jika API telah digunakan sebelumnya di konsol API Gateway, Anda harus menerapkannya kembali agar kebijakan sumber daya diterapkan.

AWS CLI

Untuk menggunakan AWS CLI untuk membuat baru API dan melampirkan kebijakan sumber daya untuk itu, panggil create-rest-apiperintah sebagai berikut:

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

Untuk menggunakan AWS CLI untuk melampirkan kebijakan sumber daya ke yang sudah adaAPI, panggil update-rest-apiperintah sebagai berikut:

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

Anda juga dapat melampirkan kebijakan sumber daya Anda sebagai policy.json file terpisah dan memasukkannya ke dalam create-rest-apiperintah Anda. Contoh berikut create-rest-apimenciptakan yang baruAPI:

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

policy.jsonadalah kebijakan sumber daya API Gateway, sepertiContoh: Tolak API lalu lintas berdasarkan alamat atau jangkauan IP sumber.

AWS CloudFormation

Anda dapat menggunakan AWS CloudFormation untuk membuat API dengan kebijakan sumber daya. Contoh berikut membuat REST API dengan contoh kebijakan sumber daya,Contoh: Tolak API lalu lintas berdasarkan alamat atau jangkauan IP sumber.

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

Memecahkan masalah kebijakan sumber daya Anda

Panduan pemecahan masalah berikut dapat membantu menyelesaikan masalah dengan kebijakan sumber daya Anda.

APIPengembalian saya {"Messageā€ :"User: anonymous tidak diizinkan untuk melakukan: execute-api:invoke on resource: arn:aws:execute-api:us-east-1: ********/****/****/ "}

Dalam kebijakan sumber daya Anda, jika Anda menetapkan Principal ke AWS prinsipal, seperti berikut ini:

{ "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:/*" ] }, ... }

Anda harus menggunakan AWS_IAM otorisasi untuk setiap metode dalam AndaAPI, atau Anda API mengembalikan pesan kesalahan sebelumnya. Untuk petunjuk selengkapnya tentang cara mengaktifkan AWS_IAM otorisasi untuk suatu metode, lihatMetode untuk REST APIs di API Gateway.

Kebijakan sumber daya saya tidak diperbarui

Jika Anda memperbarui kebijakan sumber daya setelah API dibuat, Anda harus menerapkan untuk menyebarkan perubahan setelah Anda melampirkan kebijakan yang diperbarui. API Memperbarui atau menyimpan kebijakan saja tidak akan mengubah perilaku runtime. API Untuk informasi selengkapnya tentang penerapanAPI, lihatTerapkan REST APIs di API Gateway.

Kebijakan sumber daya saya mengembalikan kesalahan berikut: Dokumen kebijakan tidak valid. Silakan periksa sintaks kebijakan dan pastikan bahwa Prinsipal valid.

Untuk mengatasi masalah kesalahan ini, sebaiknya periksa sintaks kebijakan terlebih dahulu. Untuk informasi selengkapnya, lihat Ikhtisar bahasa kebijakan akses untuk Amazon API Gateway. Kami juga menyarankan Anda memeriksa bahwa semua prinsipal yang ditentukan valid dan belum dihapus.

Selain itu, jika Anda API berada di Wilayah keikutsertaan, verifikasi bahwa semua akun dalam kebijakan sumber daya mengaktifkan Wilayah tersebut.