Hi @Visheshd_21
Based on the validation results, the failure is occurring at the initial AssumeRole step. Since Self Assume Role and External ID checks are skipped, Databricks is not successfully assuming the IAM role, so I would troubleshoot the AWS trust relationship before investigating S3 bucket permissions.
I would suggest the following checks:
1. Retrieve the exact values used by Databricks
Use the Databricks SDK to verify the IAM role ARN, Unity Catalog IAM principal and external ID configured in the storage credential:
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
credential_name = "your_credential_name"
credential = w.storage_credentials.get(credential_name)
role = credential.aws_iam_role
print("Role ARN:", role.role_arn)
print("UC IAM ARN:", role.unity_catalog_iam_arn)
print("External ID:", role.external_id)
results = w.storage_credentials.validate(
storage_credential_name=credential_name
)
for result in results.results:
print(
result.operation,
result.result,
result.message
)2. Verify the AWS IAM trust policy
Make sure the trust policy includes both the Unity Catalog IAM principal and the IAM role itself for self-assumption, with the exact external ID returned by the SDK.
Also ensure that both principals and the external ID condition are configured in the same trust policy statement.
3. Check AWS IAM propagation
If the trust policy was recently modified, wait a few minutes before retrying validation because IAM policy changes can take time to propagate.
4. Check CloudTrail carefully
A successful AssumeRole request should be visible in CloudTrail. However, a denied cross-account STS request might not appear in the target AWS account's event history, so the absence of an event alone does not prove that Databricks never attempted the request.
Regarding Free Edition, the current limitations documentation does not explicitly list Unity Catalog storage credentials or external locations as unsupported. However, it also does not explicitly guarantee this particular integration.
If the validation still fails, sharing the SDK validation messages (with account IDs and sensitive values redacted) would help identify whether the issue is with the principal, external ID, or trust relationship.
References:
https://docs.databricks.com/aws/connect/unity-catalog/cloud-storage/s3/s3-external-location-manual
https://docs.databricks.com/aws/en/getting-started/free-edition-limitations