Skip to content
GitHubXDiscord

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.

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

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

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

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

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

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