Skip to content

ChannelPolicy ​

The ChannelPolicy resource allows you to manage policies for AWS MediaTailor channels, enabling you to control various settings and permissions for media playback. For more details, refer to the AWS MediaTailor ChannelPolicies documentation.

Minimal Example ​

Create a basic ChannelPolicy with required properties.

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

const basicChannelPolicy = await AWS.MediaTailor.ChannelPolicy("basicChannelPolicy", {
  Policy: {
    Version: "2012-10-17",
    Statement: [
      {
        Effect: "Allow",
        Action: "mediatailor:PutChannelPolicy",
        Resource: "*"
      }
    ]
  },
  ChannelName: "my-media-channel"
});

Advanced Configuration ​

Configure a ChannelPolicy with more complex IAM permissions and additional settings.

ts
const advancedChannelPolicy = await AWS.MediaTailor.ChannelPolicy("advancedChannelPolicy", {
  Policy: {
    Version: "2012-10-17",
    Statement: [
      {
        Effect: "Allow",
        Action: [
          "mediatailor:PutChannelPolicy",
          "mediatailor:GetChannelPolicy"
        ],
        Resource: "*"
      },
      {
        Effect: "Deny",
        Action: "mediatailor:DeleteChannelPolicy",
        Resource: "*",
        Condition: {
          "StringEquals": {
            "mediatailor:ChannelName": "my-media-channel"
          }
        }
      }
    ]
  },
  ChannelName: "my-media-channel",
  adopt: true // Adopt existing resource if it exists
});

Policy with Custom Conditions ​

Define a ChannelPolicy with specific conditions based on the requester.

ts
const conditionalChannelPolicy = await AWS.MediaTailor.ChannelPolicy("conditionalChannelPolicy", {
  Policy: {
    Version: "2012-10-17",
    Statement: [
      {
        Effect: "Allow",
        Action: "mediatailor:PutChannelPolicy",
        Resource: "*",
        Condition: {
          "StringEquals": {
            "aws:PrincipalOrgID": "o-1234567890"
          }
        }
      }
    ]
  },
  ChannelName: "organization-channel"
});