Skip to content

Permission ​

The Permission resource allows you to manage AWS QBusiness Permissions for controlling access to specific actions within QBusiness applications.

Minimal Example ​

Create a basic QBusiness permission with required properties.

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

const basicPermission = await AWS.QBusiness.Permission("basicPermission", {
  Actions: ["qbusiness:StartConversation", "qbusiness:StopConversation"],
  StatementId: "unique-statement-id-123",
  ApplicationId: "my-application-id",
  Principal: "arn:aws:iam::123456789012:user/my-iam-user"
});

Advanced Configuration ​

Configure a permission that adopts an existing resource if it already exists.

ts
const advancedPermission = await AWS.QBusiness.Permission("advancedPermission", {
  Actions: ["qbusiness:SendMessage", "qbusiness:ReceiveMessage"],
  StatementId: "advanced-statement-id-456",
  ApplicationId: "my-application-id",
  Principal: "arn:aws:iam::123456789012:user/my-iam-user",
  adopt: true // Adopt existing resource if it already exists
});

Permission for Multiple Actions ​

Create a permission that grants access to a wider range of actions within the QBusiness application.

ts
const multiActionPermission = await AWS.QBusiness.Permission("multiActionPermission", {
  Actions: [
    "qbusiness:StartConversation",
    "qbusiness:SendMessage",
    "qbusiness:ReceiveMessage",
    "qbusiness:StopConversation"
  ],
  StatementId: "multi-action-statement-id-789",
  ApplicationId: "my-application-id",
  Principal: "arn:aws:iam::123456789012:user/my-iam-user"
});

Restricting Access by Principal ​

Demonstrate how to restrict permission to a specific IAM role.

ts
const roleBasedPermission = await AWS.QBusiness.Permission("roleBasedPermission", {
  Actions: ["qbusiness:ManageSettings"],
  StatementId: "role-based-statement-id-101",
  ApplicationId: "my-application-id",
  Principal: "arn:aws:iam::123456789012:role/my-iam-role"
});