Skip to content

PolicyStore ​

The PolicyStore resource lets you manage AWS VerifiedPermissions PolicyStores for handling and validating permissions for your applications.

Minimal Example ​

Create a basic PolicyStore with a description and validation settings.

ts
import AWS from "alchemy/aws/control";

const basicPolicyStore = await AWS.VerifiedPermissions.PolicyStore("basicPolicyStore", {
  Description: "A basic policy store for managing permissions.",
  ValidationSettings: {
    // Example validation settings
    PolicySyntax: "JSON"
  }
});

Advanced Configuration ​

Configure a PolicyStore with a custom schema and validation settings.

ts
const advancedPolicyStore = await AWS.VerifiedPermissions.PolicyStore("advancedPolicyStore", {
  Description: "An advanced policy store with custom schema.",
  ValidationSettings: {
    PolicySyntax: "JSON",
    EnableValidation: true
  },
  Schema: {
    // Example schema definition
    Type: "object",
    Properties: {
      Resource: {
        Type: "string"
      },
      Action: {
        Type: "string"
      },
      Effect: {
        Type: "string",
        Enum: ["Allow", "Deny"]
      }
    },
    Required: ["Resource", "Action", "Effect"]
  }
});

Adoption of Existing Resource ​

Create a PolicyStore and adopt an existing resource if it already exists.

ts
const adoptedPolicyStore = await AWS.VerifiedPermissions.PolicyStore("adoptedPolicyStore", {
  Description: "An adopted policy store that will take over an existing one if found.",
  ValidationSettings: {
    PolicySyntax: "JSON"
  },
  adopt: true // Will adopt existing resource if it exists
});

Policy Validation Example ​

Define a PolicyStore with specific policy validation settings.

ts
const policyValidationStore = await AWS.VerifiedPermissions.PolicyStore("policyValidationStore", {
  Description: "A policy store for validating specific policies.",
  ValidationSettings: {
    PolicySyntax: "JSON",
    EnableValidation: true,
    MaxPolicySize: 2048 // Example size limit for the policy
  }
});

Schema Definition Example ​

Create a PolicyStore with a detailed schema definition for policies.

ts
const schemaPolicyStore = await AWS.VerifiedPermissions.PolicyStore("schemaPolicyStore", {
  Description: "A policy store with a detailed schema for permissions.",
  ValidationSettings: {
    PolicySyntax: "JSON"
  },
  Schema: {
    Type: "object",
    Properties: {
      UserId: {
        Type: "string"
      },
      Resource: {
        Type: "string"
      },
      Action: {
        Type: "string"
      },
      Effect: {
        Type: "string",
        Enum: ["Allow", "Deny"]
      }
    },
    Required: ["UserId", "Resource", "Action", "Effect"]
  }
});