client.assume-role.arn.
Your DevOps team configures the roles and resource permissions in your AWS account. Your e6data contact configures permission for the ingestion workload to assume those roles. Both sides must be in place before the connector can use a role.
MSK
Create an IAM role in the account that owns your MSK cluster. Use it as the Kafka source role.1. Attach resource permissions
Attach this identity policy to the source role:config.type.source_config.group_id to the group ID you authorize. These permissions allow consumption without granting topic creation or message production.
2. Configure role trust
Set this trust policy on the source role, using the ingestion workload role ARN supplied by e6data:3. Authorize role assumption
Share the source role ARN with your e6data contact. The ingestion workload needssts:AssumeRole permission on that exact role.
e6data applies a policy like this to the ingestion workload identity. It includes the separate source and registry roles used in this guide; only the roles your deployment uses are included.
4. Configure the connector
In the console, select AWS MSK IAM authentication and enter the source role in Source role ARN. Set the region to the MSK cluster’s region. For API or YAML configuration, use these settings inside the Kafka source’s configuration object. Setgroup_id to a consumer group authorized by the policy in step 1.
Glue Schema Registry
Create an IAM role in the account that owns your Glue registry. Use it as the registry role. To reuse the MSK source role instead, see Use one role for MSK and Glue.1. Attach resource permissions
Attach this identity policy to the registry role:GetRegistry is used for connection testing; GetSchemaVersion reads the registered schemas. These permissions don’t create or register schemas.
2. Configure role trust
Set this trust policy on the registry role, using the same ingestion workload role ARN supplied by e6data:3. Authorize role assumption
Share the registry role ARN with your e6data contact. The ingestion workload needssts:AssumeRole permission on that exact role, as shown in the MSK section.
4. Configure the connector
In the console, select Glue as the schema registry provider. Enter Glue region, Registry name and Registry role ARN. This Kafka source configuration shows MSK and Glue with separate roles. Replace the broker, topic, group, region, role and registry values for your deployment.schema for multi-schema ingestion. The source and registry roles may be in different accounts. The region in each block must match its service.
Use one role for MSK and Glue
Attach both the MSK and Glue permissions policies above to the source role. Keep its ARN in the MSK authentication settings, removeschema_registry.role_arn, and set:
S3
Create an IAM role in the account that owns your Iceberg warehouse bucket. Use it as a dedicated S3 writer role for the sink.1. Attach resource permissions
Attach this identity policy to the writer role. Replace<bucket-name> and <warehouse-prefix> with your bucket and warehouse path. Use the prefix without leading or trailing slashes. The object permissions cover every destination table under that warehouse prefix.
2. Configure role trust
Set this trust policy on the writer role, using the ingestion workload role ARN supplied by e6data. Ask your e6data contact for the workspace-specific external ID, and use the same value in both the trust policy and the sink settings.3. Authorize role assumption
Share the writer role ARN with your e6data contact. The ingestion workload needssts:AssumeRole permission on that exact role, and the worker needs its workload identity to call STS.
4. Configure the connector
Set these values under the Iceberg sink’sconfig.storageOptions. Use the bucket’s region and the external ID agreed with e6data. The parameters are described in the Iceberg connector’s storage options.