Skip to content

PolicyTemplate

Source: src/AWS/VerifiedPermissions/PolicyTemplate.ts

A Cedar policy template in a Verified Permissions policy store. Templates contain ?principal / ?resource placeholders; template-linked policies instantiate the template for a concrete principal and resource, and every linked policy automatically picks up template updates.

Template with a Principal Placeholder

import * as AWS from "alchemy/AWS";
const store = yield* AWS.VerifiedPermissions.PolicyStore("Store", {});
const template = yield* AWS.VerifiedPermissions.PolicyTemplate("ViewPhoto", {
policyStoreId: store.policyStoreId,
statement: `permit(
principal == ?principal,
action == PhotoApp::Action::"viewPhoto",
resource
);`,
description: "Grant a user access to view photos",
});

Link a Policy to the Template

yield* AWS.VerifiedPermissions.Policy("AliceCanView", {
policyStoreId: store.policyStoreId,
templateId: template.policyTemplateId,
principal: { entityType: "PhotoApp::User", entityId: "alice" },
});