Skip to content

PolicyAssociation ​

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

Minimal Example ​

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

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

Advanced Configuration ​

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

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

Using with Multiple Targets ​

Establish multiple associations for different accounts under a single policy.

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

Handling Existing Resources ​

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

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