Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Pindah ke produksi dengan AWS CloudFormation
Penyimpanan kebijakan terkait API adalah cara untuk membuat model otorisasi untuk API Gateway API dengan cepat. Mereka dirancang untuk berfungsi sebagai lingkungan pengujian untuk komponen otorisasi aplikasi Anda. Setelah membuat toko kebijakan pengujian, luangkan waktu untuk menyempurnakan kebijakan, skema, dan otorisasi Lambda.
Anda dapat menyesuaikan arsitektur API Anda, yang memerlukan penyesuaian yang setara dengan skema dan kebijakan penyimpanan kebijakan Anda. Toko kebijakan yang ditautkan API tidak secara otomatis memperbarui skema mereka dari Arsitektur APIāIzin Terverifikasi hanya melakukan polling API pada saat Anda membuat penyimpanan kebijakan. Jika API Anda cukup berubah, Anda mungkin harus mengulangi prosesnya dengan penyimpanan kebijakan baru.
Saat model aplikasi dan otorisasi Anda siap untuk diterapkan ke produksi, integrasikan toko kebijakan terkait API yang Anda kembangkan dengan proses otomatisasi Anda. Sebagai praktik terbaik, kami menyarankan Anda mengekspor skema dan kebijakan penyimpanan kebijakan ke dalam AWS CloudFormation templat yang dapat Anda terapkan ke yang lain Akun AWS dan. Wilayah AWS
Hasil dari proses penyimpanan kebijakan terkait API adalah penyimpanan kebijakan awal dan otorisasi Lambda. Otorisasi Lambda memiliki beberapa sumber daya yang bergantung. Izin Terverifikasi menyebarkan sumber daya ini dalam tumpukan yang dibuat secara otomatis CloudFormation . Untuk menyebarkan ke produksi, Anda harus mengumpulkan penyimpanan kebijakan dan sumber daya otorisasi Lambda ke dalam templat. Toko kebijakan terkait API dibuat dari sumber daya berikut:
-
AWS::VerifiedPermissions::PolicyStore: Salin skema Anda ke
SchemaDefinition
objek."
Karakter melarikan diri sebagai\"
. -
AWS::VerifiedPermissions::IdentitySource: Salin nilai dari output GetIdentitySource dari penyimpanan kebijakan pengujian Anda dan modifikasi sesuai kebutuhan.
-
Satu atau lebih dari AWS::VerifiedPermissions::Policy: Salin pernyataan kebijakan Anda ke
Definition
objek."
Karakter melarikan diri sebagai\"
. -
AWS: :Lambda: :Fungsi,:: AWS: :Peran,:IAM:: :Kebijakan,AWS:::IAM: :Authorizer,AWS ApiGateway AWS::Lambda::Permission
Template berikut adalah contoh toko kebijakan. Anda dapat menambahkan sumber daya otorisasi Lambda dari tumpukan yang ada ke template ini.
{ "AWSTemplateFormatVersion": "2010-09-09", "Resources": { "MyExamplePolicyStore": { "Type": "AWS::VerifiedPermissions::PolicyStore", "Properties": { "ValidationSettings": { "Mode": "STRICT" }, "Description": "ApiGateway: PetStore/test", "Schema": { "CedarJson": "{\"PetStore\":{\"actions\":{\"get /pets\":{\"appliesTo\":{\"principalTypes\":[\"User\"],\"resourceTypes\":[\"Application\"],\"context\":{\"type\":\"Record\",\"attributes\":{}}}},\"get /\":{\"appliesTo\":{\"principalTypes\":[\"User\"],\"resourceTypes\":[\"Application\"],\"context\":{\"type\":\"Record\",\"attributes\":{}}}},\"get /pets/{petId}\":{\"appliesTo\":{\"context\":{\"type\":\"Record\",\"attributes\":{}},\"resourceTypes\":[\"Application\"],\"principalTypes\":[\"User\"]}},\"post /pets\":{\"appliesTo\":{\"principalTypes\":[\"User\"],\"resourceTypes\":[\"Application\"],\"context\":{\"type\":\"Record\",\"attributes\":{}}}}},\"entityTypes\":{\"Application\":{\"shape\":{\"type\":\"Record\",\"attributes\":{}}},\"User\":{\"memberOfTypes\":[\"UserGroup\"],\"shape\":{\"attributes\":{},\"type\":\"Record\"}},\"UserGroup\":{\"shape\":{\"type\":\"Record\",\"attributes\":{}}}}}}" } } }, "MyExamplePolicy": { "Type": "AWS::VerifiedPermissions::Policy", "Properties": { "Definition": { "Static": { "Description": "Policy defining permissions for testgroup cognito group", "Statement": "permit(\nprincipal in PetStore::UserGroup::\"us-east-1_EXAMPLE|testgroup\",\naction in [\n PetStore::Action::\"get /\",\n PetStore::Action::\"post /pets\",\n PetStore::Action::\"get /pets\",\n PetStore::Action::\"get /pets/{petId}\"\n],\nresource);" } }, "PolicyStoreId": { "Ref": "MyExamplePolicyStore" } }, "DependsOn": [ "MyExamplePolicyStore" ] }, "MyExampleIdentitySource": { "Type": "AWS::VerifiedPermissions::IdentitySource", "Properties": { "Configuration": { "CognitoUserPoolConfiguration": { "ClientIds": [ "1example23456789" ], "GroupConfiguration": { "GroupEntityType": "PetStore::UserGroup" }, "UserPoolArn": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_EXAMPLE" } }, "PolicyStoreId": { "Ref": "MyExamplePolicyStore" }, "PrincipalEntityType": "PetStore::User" }, "DependsOn": [ "MyExamplePolicyStore" ] } } }