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"
});