Skip to content

TrustAnchor ​

The TrustAnchor resource lets you manage AWS RolesAnywhere TrustAnchors which are used to establish trust between AWS and external identities.

Minimal Example ​

Create a basic TrustAnchor with required properties and one optional property for notifications.

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

const basicTrustAnchor = await AWS.RolesAnywhere.TrustAnchor("basicTrustAnchor", {
  name: "MyTrustAnchor",
  source: {
    sourceType: "Cognito", // Example source type
    sourceDetails: {
      cognitoUserPoolId: "us-west-2_aBcDeFgHi"
    }
  },
  notificationSettings: [{
    sns: {
      topicArn: "arn:aws:sns:us-west-2:123456789012:MyTopic"
    }
  }],
  enabled: true
});

Advanced Configuration ​

Configure a TrustAnchor with additional settings, including tags and enabling the resource.

ts
const advancedTrustAnchor = await AWS.RolesAnywhere.TrustAnchor("advancedTrustAnchor", {
  name: "AdvancedTrustAnchor",
  source: {
    sourceType: "SAML",
    sourceDetails: {
      samlProviderArn: "arn:aws:iam::123456789012:saml-provider/MySAMLProvider"
    }
  },
  tags: [{
    key: "Environment",
    value: "Production"
  }],
  enabled: true,
  notificationSettings: [{
    sns: {
      topicArn: "arn:aws:sns:us-west-2:123456789012:NotificationTopic"
    }
  }]
});

Adoption of Existing Resources ​

If you need to adopt an existing TrustAnchor without failing, you can set the adopt property to true.

ts
const adoptedTrustAnchor = await AWS.RolesAnywhere.TrustAnchor("adoptTrustAnchor", {
  name: "ExistingTrustAnchor",
  source: {
    sourceType: "OIDC",
    sourceDetails: {
      openIdConnectProviderArn: "arn:aws:iam::123456789012:oidc-provider/my-oidc-provider"
    }
  },
  adopt: true
});

Enabling and Disabling TrustAnchors ​

You can easily toggle the enabled property to manage the TrustAnchor's state.

ts
const toggleTrustAnchor = await AWS.RolesAnywhere.TrustAnchor("toggleTrustAnchor", {
  name: "ToggleTrustAnchor",
  source: {
    sourceType: "Cognito",
    sourceDetails: {
      cognitoUserPoolId: "us-east-1_aBcDeFgHi"
    }
  },
  enabled: false // Disable the TrustAnchor
});

// Enable it later
toggleTrustAnchor.enabled = true;