通过Terraform创建Databricks MWS凭证失败:账户配置无效
排查Terraform创建Databricks MWS凭证时的"invalid Databricks Account configuration"错误
我在AWS账户上通过Terraform配置Databricks mws_credentials,此前代码运行正常,但从CloudFormation堆栈删除MWS凭证文件后,创建新凭证并关联新工作区时出现如下错误:
Error: cannot create mws credentials: invalid Databricks Account configuration │ │ with module.databricks.databricks_mws_credentials.this, │ on modules/aws-databricks-tf/main.tf line 128, in resource "databricks_mws_credentials" "this": │ 128: resource "databricks_mws_credentials" "this" { │
我已确认账户用户名、密码、账户ID及令牌均无误,还尝试更新了Databricks密码,但问题依旧。
相关代码片段
1. databricks_mws_credentials资源定义
resource "databricks_mws_credentials" "this" { #provider = databricks.mws account_id = var.databricks_account_id # role_arn = aws_iam_role.cross_account_role.arn role_arn = var.databricks_role_arn credentials_name = var.databricks_credentials # depends_on = [aws_iam_role_policy.this] }
2. 模块调用代码
module "databricks" { source = "./modules/aws-databricks-tf" region = var.region databricks_vpc_id = element(data.aws_vpcs.vpc_list.ids, 0) databricks_subnet_ids = data.aws_subnets.subnet_ids_private.ids # Private Subnet 1/2 databricks_security_group_ids = [aws_security_group.databricksNode-sg.id] env = var.env databricks_account_username = "my-username" databricks_account_password = "mypassword" databricks_account_id = "account-id" databricks_root_storage_bucket = "root-bucket" # cross_account_iam_role = "DatabricksRole" databricks_role_arn = my-databricks-role # Instead of creating the Databricks Role via terraform, I have created it manually in the UI with relevant policies and trust relationship databricks_credentials = "DatabricksCredentials"
排查建议
- 检查Databricks MWS Provider配置:你注释掉了
provider = databricks.mws,需确保当前使用的Provider指向Databricks账户级MWS端点,而非工作区级端点。若未显式指定,Terraform会使用默认的Databricks Provider,可能配置的是工作区URL而非账户URL。 - 验证手动创建的IAM角色:
- 确认角色信任关系正确,信任实体为
accounts.cloud.databricks.com,而非工作区URL。 - 检查角色附加的权限策略,确保包含Databricks所需的所有权限(如S3访问、EC2相关权限等),无必要权限遗漏。
- 确认角色信任关系正确,信任实体为
- 清理Terraform状态:之前的凭证删除操作可能残留状态数据,运行
terraform state list查找旧的databricks_mws_credentials资源,若存在则用terraform state rm移除后重新执行。 - 确认账户ID格式:确保
databricks_account_id是正确的12位数字格式,无多余字符或错误前缀/后缀。 - 测试IAM角色有效性:用AWS CLI执行
aws sts assume-role --role-arn <你的角色ARN> --role-session-name test-databricks,验证能否正常获取临时凭证,排除IAM角色本身的配置问题。 - 检查账户权限:确保使用的账户用户名拥有账户管理员权限,普通工作区用户无法创建MWS凭证。
内容的提问来源于stack exchange,提问作者Bilal Yousaf
相关产品推荐
相关产品推荐

