Option A: Create IAM Role with CloudFormation / Terraform
- CloudFormation
- Terraform
For the simplest integration, we recommend using our CloudFormation template to create the role. Click here
to launch the CloudFormation template.
- Make sure to enter the External ID provided to you by Ryft.
- Before launching the stack, make sure to log in to the AWS account where you want to create the access role.
- To disable Glue access, set
EnableGlueAccesstofalse. - To disable Athena access, set
EnableAthenaAccesstofalse.
Option B: Create the IAM Role manually
- Login to your AWS account
- Security → Identity & Compliance → IAM → Roles
- Click Create Role
- Select AWS Account
- Select Another AWS Account
- Enter Ryft’s AWS account ID: 864981746572
- Enable Require External ID, and enter the External ID received from Ryft
- For permissions, we are going to create the policies in the next steps
- Give the role a name, e.g -
Ryft-ControlPlaneRole - Click Create Role
AWS Policies
AWS S3
- IAM → Roles → Search for “Ryft-ControlPlaneRole” (or the name you used)
- Add permissions → Create inline policy → Select the JSON tab
- Add the following policy to provide Glue API access
- Give the policy a name and save it (e.g -
RyftS3AccessPolicy) - Attach the created policy to the Ryft-ControlPlaneRole
AWS Glue
- IAM → Roles → Search for “Ryft-ControlPlaneRole” (or the name you used)
- Add permissions → Create inline policy → Select the JSON tab
- Add the following policy to provide Glue API access
- Give the policy a name and save it (e.g -
RyftGlueAccessPolicy) - Attach the created policy to the Ryft-ControlPlaneRole
AWS Athena
- IAM → Roles → Search for “Ryft-ControlPlaneRole” (or the name you used)
- Add permissions → Create inline policy → Select the JSON tab
- Add the following policy to provide Athena API access
- Name the policy “Ryft-AthenaMetadataAccess”
- Attach the created policy to the Ryft-ControlPlaneRole
You are done! Locate the ARN of the role you have just created (”Ryft-ControlPlaneRole”) and provide it to Ryft, we will now finish setting up the integration.
The ARN should look similar to:
arn:aws:iam::<account>:role/Ryft-ControlPlaneRoleGlue Metadata Encryption
If you are using Glue Metadata Encryption, ensure that the role you created above has the necessary KMS permissions to the encryption key as well.AWS Lake Formation
If you are using AWS Lake Formation to manage access to your Glue Catalog, ensure that the role you created above has the necessary Lake Formation permissions as well. Follow the AWS documentation here to grant the required permissions to the role.Amazon S3 Access Points
If you are using Amazon S3 Access Points as the storage location for your tables, ensure that the role you created above has the necessary permissions for the access point. The policy for access points should include the same S3 actions mentioned above, with the resource in the format ofarn:aws:s3:<region>:<account_id>::accesspoint/<access_point_name>.
For more details, see AWS documentation here.