Skip to content
GitHubXDiscordRSS

ResourceShare

Learn how to create, update, and manage AWS RAM ResourceShares using Alchemy Cloud Control.

The ResourceShare resource lets you manage AWS RAM ResourceShares for sharing resources across AWS accounts and within your organization.

Create a basic resource share with a name and a resource ARN.

import AWS from "alchemy/aws/control";
const basicResourceShare = await AWS.RAM.ResourceShare("basicShare", {
Name: "MyBasicResourceShare",
ResourceArns: [
"arn:aws:s3:::my-example-bucket"
]
});

Configure a resource share with permissions, principals, and external principals allowed.

const advancedResourceShare = await AWS.RAM.ResourceShare("advancedShare", {
Name: "MyAdvancedResourceShare",
ResourceArns: [
"arn:aws:s3:::my-example-bucket",
"arn:aws:ec2:region:account-id:instance/i-1234567890abcdef0"
],
PermissionArns: [
"arn:aws:ram::aws:policy/ServicePermissionPolicy"
],
Principals: [
"arn:aws:iam::123456789012:role/MyRole"
],
AllowExternalPrincipals: true
});

Share resources with specified AWS accounts by listing their ARNs.

const accountShare = await AWS.RAM.ResourceShare("accountShare", {
Name: "MyAccountResourceShare",
ResourceArns: [
"arn:aws:sqs:us-east-1:123456789012:my-queue"
],
Principals: [
"arn:aws:iam::987654321098:role/AnotherRole"
],
Tags: [
{ Key: "Project", Value: "ResourceSharing" }
]
});

Create a resource share that allows external principals to access the resources.

const externalShare = await AWS.RAM.ResourceShare("externalShare", {
Name: "MyExternalResourceShare",
ResourceArns: [
"arn:aws:ec2:us-west-2:123456789012:volume/vol-12345678"
],
AllowExternalPrincipals: true,
Principals: [
"arn:aws:iam::external-account-id:role/ExternalRole"
]
});