Skip to content
GitHubXDiscordRSS

PolicyAssociation

Learn how to create, update, and manage AWS SecurityHub PolicyAssociations using Alchemy Cloud Control.

The PolicyAssociation resource lets you manage AWS SecurityHub PolicyAssociations for associating security policies with targets like accounts or organizational units.

Create a basic PolicyAssociation that links a configuration policy to a target account.

import AWS from "alchemy/aws/control";
const policyAssociation = await AWS.SecurityHub.PolicyAssociation("myPolicyAssociation", {
ConfigurationPolicyId: "arn:aws:securityhub:us-east-1:123456789012:config-policy/myConfigPolicy",
TargetType: "ACCOUNT",
TargetId: "123456789012",
adopt: true // Adopt existing resource if it exists
});

Configure a PolicyAssociation with a different target type, associating a policy with an organizational unit.

const organizationalPolicyAssociation = await AWS.SecurityHub.PolicyAssociation("orgPolicyAssociation", {
ConfigurationPolicyId: "arn:aws:securityhub:us-east-1:123456789012:config-policy/myOrgPolicy",
TargetType: "ORGANIZATIONAL_UNIT",
TargetId: "ou-xyz-123456",
adopt: false // Do not adopt existing resource
});

Establish multiple associations for different accounts under a single policy.

const firstAccountAssociation = await AWS.SecurityHub.PolicyAssociation("firstAccountAssociation", {
ConfigurationPolicyId: "arn:aws:securityhub:us-east-1:123456789012:config-policy/myConfigPolicy",
TargetType: "ACCOUNT",
TargetId: "111111111111"
});
const secondAccountAssociation = await AWS.SecurityHub.PolicyAssociation("secondAccountAssociation", {
ConfigurationPolicyId: "arn:aws:securityhub:us-east-1:123456789012:config-policy/myConfigPolicy",
TargetType: "ACCOUNT",
TargetId: "222222222222"
});

Demonstrate how to manage a PolicyAssociation that might already exist using the adopt property.

const existingPolicyAssociation = await AWS.SecurityHub.PolicyAssociation("existingPolicyAssociation", {
ConfigurationPolicyId: "arn:aws:securityhub:us-east-1:123456789012:config-policy/myExistingPolicy",
TargetType: "ACCOUNT",
TargetId: "333333333333",
adopt: true // Adopts the existing association instead of failing
});