Skip to content

ResourcePolicy

The ResourcePolicy resource lets you manage AWS Lex ResourcePolicys for your Lex bots, enabling you to control access to your resources through IAM policies.

Minimal Example

Create a basic resource policy for an AWS Lex bot with required properties.

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

const lexResourcePolicy = await AWS.Lex.ResourcePolicy("myLexPolicy", {
  Policy: {
    Version: "2012-10-17",
    Statement: [
      {
        Effect: "Allow",
        Principal: "*",
        Action: "lex:StartConversation",
        Resource: "arn:aws:lex:us-west-2:123456789012:bot:myBot:1"
      }
    ]
  },
  ResourceArn: "arn:aws:lex:us-west-2:123456789012:bot:myBot:1",
  adopt: true
});

Advanced Configuration

Configure a resource policy with additional IAM policy statements for more granular access control.

ts
const advancedLexResourcePolicy = await AWS.Lex.ResourcePolicy("advancedLexPolicy", {
  Policy: {
    Version: "2012-10-17",
    Statement: [
      {
        Effect: "Allow",
        Principal: {
          AWS: "arn:aws:iam::123456789012:user/Alice"
        },
        Action: [
          "lex:StartConversation",
          "lex:RecognizeUtterance"
        ],
        Resource: "arn:aws:lex:us-west-2:123456789012:bot:myBot:1"
      },
      {
        Effect: "Deny",
        Principal: "*",
        Action: "lex:DeleteBot",
        Resource: "arn:aws:lex:us-west-2:123456789012:bot:myBot:1"
      }
    ]
  },
  ResourceArn: "arn:aws:lex:us-west-2:123456789012:bot:myBot:1"
});

Policy for Specific Actions

Demonstrate how to create a policy that allows only specific users to invoke certain actions on the Lex bot.

ts
const userSpecificPolicy = await AWS.Lex.ResourcePolicy("userSpecificPolicy", {
  Policy: {
    Version: "2012-10-17",
    Statement: [
      {
        Effect: "Allow",
        Principal: {
          AWS: "arn:aws:iam::123456789012:user/Bob"
        },
        Action: "lex:StartConversation",
        Resource: "arn:aws:lex:us-west-2:123456789012:bot:myBot:1"
      }
    ]
  },
  ResourceArn: "arn:aws:lex:us-west-2:123456789012:bot:myBot:1"
});