Skip to content
GitHubXDiscord

AccessGrantsLocation

The AccessGrantsLocation resource allows you to define access grants for specific locations in Amazon S3. This resource is useful for managing permissions and access control at a granular level for S3 buckets. For more information, refer to the AWS documentation on AWS S3 AccessGrantsLocations.

This example demonstrates how to create a basic AccessGrantsLocation resource with required properties and one optional property.

import AWS from "alchemy/aws/control";
const accessGrantsLocation = await AWS.S3.AccessGrantsLocation("myAccessGrantsLocation", {
LocationScope: "bucket",
IamRoleArn: "arn:aws:iam::123456789012:role/SampleRole"
});

In this example, we configure the AccessGrantsLocation resource with tags and enable resource adoption if it already exists.

const advancedAccessGrantsLocation = await AWS.S3.AccessGrantsLocation("advancedAccessGrantsLocation", {
LocationScope: "object",
IamRoleArn: "arn:aws:iam::123456789012:role/AnotherSampleRole",
Tags: [
{ Key: "Environment", Value: "Production" },
{ Key: "Project", Value: "S3AccessControl" }
],
adopt: true
});

This example shows how to create an AccessGrantsLocation that specifies a custom IAM role for access management.

const customIamRoleAccessGrantsLocation = await AWS.S3.AccessGrantsLocation("customIamRoleAccessGrantsLocation", {
LocationScope: "bucket",
IamRoleArn: "arn:aws:iam::123456789012:role/CustomAccessRole",
Tags: [
{ Key: "Purpose", Value: "Custom IAM Role for S3 Access" }
]
});

In this example, we demonstrate how to adopt an existing AccessGrantsLocation resource instead of failing if it already exists.

const adoptedAccessGrantsLocation = await AWS.S3.AccessGrantsLocation("adoptedAccessGrantsLocation", {
LocationScope: "object",
IamRoleArn: "arn:aws:iam::123456789012:role/AdoptedRole",
adopt: true
});