Databricks Terraform 실행 시 MALFORMED_REQUEST, IAM Role 에러 현상 및 해결 방법
버전
- Terraform Databricks Provider: 0.4.3
- Terraform AWS Provider: 3.38
현상
- Terraform으로 Databricks 환경을 구성할 때 아래와 같은 에러가 발생합니다.
- Error: MALFORMED_REQUEST: Failed credentials validation checks: Spot Cancellation, Create Placement Group, Delete Tags, Describe Availability Zones, Describe instances, Describe Instance Status, Describe Placement Group, Describe Route Tables, Describe Security Groups, Describe Spot Instances, Describe Spot Price History, Describe Subnets, Describe Volumes, Describe Vpcs, Request Spot Instances
(400 on /api/2.0/accounts/{UUID}/workspaces)
- Error: MALFORMED_REQUEST: Failed credentials validation checks: Spot Cancellation, Create Placement Group, Delete Tags, Describe Availability Zones, Describe instances, Describe Instance Status, Describe Placement Group, Describe Route Tables, Describe Security Groups, Describe Spot Instances, Describe Spot Price History, Describe Subnets, Describe Volumes, Describe Vpcs, Request Spot Instances
- Terraform으로 Databricks 내의 Log Delivery 세팅을 구성할 때 아래와 같은 에러가 발생합니다.
- Error: cannot create mws log delivery: Can not assume iamrole:arn:aws:iam::{your_aws_account_id}:role/databricks_log_delivery_iam_role. Please add Databricks Log Delivery Role to your IAM Role's trust relationship as specified in API docs. Using basic auth: host=https://accounts.cloud.databricks.com, username=[MASKED], password=***REDACTED***
원인
Terraform AWS Provider(v3.28에서 발견)의 버그로 인해 Databricks AWS 교차 계정 정책 (cross account policy) 생성 및 IAM role 연결이 Terraform에 대한 AWS 요청 확인보다 더 오래 걸리면서 발생하는 에러입니다. Terraform에서 Workspace를 생성하는 과정에서 아직 정책이 적용되지 않았기 때문에 자격 증명에 대한 유효성 검사가 실패합니다.
Log Delivery 세팅을 구성할 때 필요한 IAM role 구성에서도 마찬가지로 생성 및 연결에 걸리는 시간이 오래 걸리면서 이후의 유효성 검사에 실패한 경우입니다.
해결
아래와 같이 aws_iam_role 리소스 생성 시 timesleep을 추가합니다. (Log Delivery의 경우 Apply를 재수행만 해도 해결 가능할 수 있습니다.)
resource "time_sleep" "wait" {
depends_on = [
aws_iam_role.cross_account_role]
create_duration = "20s"
}
참고
'프로그래밍' 카테고리의 다른 글
CentOS7에서 Docker 데몬 설치 시 무한 대기 현상 (iptable_nat 이슈) (0) | 2022.04.17 |
---|---|
Fluentd에서 Azure Event Hubs 연동하기 (0) | 2022.02.01 |
Medallion 아키텍처란? (0) | 2021.12.12 |
크롬 확장 프로그램 제작 맛보기 - 날아다니는 밈 (0) | 2021.11.21 |
하이라이트 링크 복사 원리를 파해쳐보자 : Text Fragment (0) | 2021.11.19 |