Übergang zur Produktion mit AWS CloudFormation - Amazon Verified Permissions

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Übergang zur Produktion mit AWS CloudFormation

API-verknüpfte Richtlinienspeicher sind eine Möglichkeit, schnell ein Autorisierungsmodell für ein API Gateway zu erstellen. API Sie sind so konzipiert, dass sie als Testumgebung für die Autorisierungskomponente Ihrer Anwendung dienen. Nachdem Sie Ihren Testrichtlinienspeicher erstellt haben, sollten Sie Zeit damit verbringen, die Richtlinien, das Schema und den Lambda-Authorizer zu verfeinern.

Möglicherweise passen Sie Ihre Architektur anAPI, sodass entsprechende Anpassungen an Ihrem Richtlinienspeicher-Schema und Ihren Richtlinien erforderlich sind. API-verknüpfte Richtlinienspeicher aktualisieren ihr Schema nicht automatisch aus API Architecture — Verified Permissions fragt nur die API ab, wenn Sie einen Richtlinienspeicher erstellen. Wenn Ihre API Änderungen ausreichend sind, müssen Sie den Vorgang möglicherweise mit einem neuen Richtlinienspeicher wiederholen.

Wenn Ihre Anwendung und Ihr Autorisierungsmodell bereit für die Bereitstellung in der Produktion sind, integrieren Sie den API mit -verknüpften Richtlinienspeicher, den Sie entwickelt haben, in Ihre Automatisierungsprozesse. Als bewährte Methode empfehlen wir, das Richtlinienspeicherschema und die Richtlinien in eine AWS CloudFormation Vorlage zu exportieren, die Sie in anderen AWS-Konten Ländern bereitstellen können. AWS-Regionen

Die Ergebnisse des Prozesses mit dem API verknüpften Richtlinienspeicher sind ein erster Richtlinienspeicher und ein Lambda-Autorisierer. Der Lambda-Autorisierer hat mehrere abhängige Ressourcen. Verified Permissions stellt diese Ressourcen in einem automatisch generierten Stack bereit. CloudFormation Für die Bereitstellung in der Produktion müssen Sie den Richtlinienspeicher und die Lambda-Autorisierungsressourcen in einer Vorlage zusammenfassen. Ein API mit -verknüpfter Richtlinienspeicher besteht aus den folgenden Ressourcen:

  1. AWS::VerifiedPermissions:PolicyStore: Kopieren Sie Ihr Schema in das SchemaDefinition Objekt. "Escape-Zeichen als\".

  2. AWS::VerifiedPermissions:IdentitySource: Kopieren Sie Werte aus der Ausgabe Ihres GetIdentitySource Testrichtlinienspeichers und ändern Sie sie nach Bedarf.

  3. Eine oder mehrere der AWS:VerifiedPermissions: :Policy: Kopieren Sie Ihre Richtlinienerklärung in das Definition Objekt. "Escape-Zeichen als\".

  4. AWS: :Lambda: :Function,: AWS:: :Role,IAM::: :Policy,AWS::IAM: :Authorizer,AWS: :LambdaApiGateway: :Permission AWS: Kopieren Sie die Vorlage aus dem Template-Tab des Stacks, der Verified Permissions bereitgestellt hat, als Sie Ihren Richtlinienspeicher erstellt haben.

Die folgende Vorlage ist ein Beispiel für einen Richtlinienspeicher. Sie können die Lambda-Authorizer-Ressourcen aus Ihrem vorhandenen Stack an diese Vorlage anhängen.

{ "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" ] } } }