1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

DatabricksのWorkspaceを作成してみた(Private Linkなし)

Last updated at Posted at 2025-02-14

前提

・利用環境:Databricks、AWS
・カスタムAWS構成(顧客管理VPC)を使用
・参考アーキテクチャ
image.png

参考ヘルプ

目次

  1. 顧客管理VPCを作成
  2. Databricksのメタストアを作成
  3. Databricksの資格情報を作成
  4. Databricksのワークスペースを作成
  5. トラブルシューティング

手順

1.顧客管理VPCを作成

参考手順のブログ:

2.Databricksのメタストアを作成

参考手順のブログ

3.Databricksの資格情報を作成

参考手順のブログ

4.Databricksのワークスペースを作成

1)「ワークスペース」をクリック
2)「ワークスペースを作成」をクリック

image.png

3)「手動」→「次のページ」をクリック

image.png

4)下記の内容を設定し、「次のページ」をクリック
    • ワークスペース名:ho-ws
    • リージョン:ap-northeast-1
      image.png
5)「ストレージ構成の作成」をクリック

image.png

6)右側の手順を参考にAWS上で、S3とIAMロールを作成する

image.png

6-1)S3を作成
6-1-1)AWS上で、S3を作成

image.png

6-1-2)「バケットを作成」をクリック

image.png

6-1-3)下記の内容を参考にバケットを作成
  • 例:
    • AWSリージョン:ap-northeast-1
    • バケットタイプ:汎用
    • バケット名:ho-db-s3
    • その他:デフォルトのまま
      image.png
6-2)IAMロールを作成

6-2-1)AWS上で、IAMロールをクリック

image.png

6-2-2)「ロール」→「ロールを作成」をクリック

image.png

6-2-3)「カスタム信頼ポリシー」を選択し、カスタム信頼ポリシーに以下の内容を貼り付ける
  • 次の内容を置き換える
    • "0000":DatabricksのアカウントID
{
  "Version": "2012-10-17",
  "Statement": [{
    "Effect": "Allow",
    "Principal": {
      "AWS": [
        "arn:aws:iam::414351767826:role/unity-catalog-prod-UCMasterRole-14S5ZJVKOTYTL"
      ]
    },
    "Action": "sts:AssumeRole",
    "Condition": {
      "StringEquals": {
        "sts:ExternalId": "0000"
      }
    }
  }]
}

image.png

6-2-4)「次へ」→「次へ」→ロール名を入力し、「ロールを作成」をクリック
  • 例:
    • ロール名:ho-iam-s3
6-2-5)「ポリシー」→「ポリシーの作成」をクリック

image.png

6-2-6)「JSON」タブをクリックし、以下の内容を貼り付ける
{
  "Version": "2012-10-17",
  "Statement": [
      {
          "Action": [
              "s3:GetObject",
              "s3:PutObject",
              "s3:DeleteObject",
              "s3:ListBucket",
              "s3:GetBucketLocation"
          ],
          "Resource": [
              "arn:aws:s3:::<BUCKET>/*",
              "arn:aws:s3:::<BUCKET>"
          ],
          "Effect": "Allow"
      },
      {
          "Action": [
              "kms:Decrypt",
              "kms:Encrypt",
              "kms:GenerateDataKey*"
          ],
          "Resource": [
              "arn:aws:kms:<KMS-KEY>"
          ],
          "Effect": "Allow"
      },
      {
          "Action": [
              "sts:AssumeRole"
          ],
          "Resource": [
              "arn:aws:iam::<AWS-ACCOUNT-ID>:role/<AWS-IAM-ROLE-NAME>"
          ],
          "Effect": "Allow"
      }
    ]
}
  • 次の内容を置き換える
    • <BUCKET>:上の手順で作成した、S3バケットの名前
    • <KMS-KEY>:オプション。暗号化が有効になっている場合は、S3バケットの内容を暗号化するKMSキーの名前を指定。暗号化が無効になっている場合は、IAMポリシーのKMSセクション全体を削除。
    • <AWS-ACCOUNT-ID>:AWSアカウントのアカウントID
    • <AWS-IAM-ROLE-NAME>:上のステップで作成したAWS IAMロールの名前
      image.png
6-2-7)「次へ」をクリック
6-2-8)ポリシー名を入力し、「ポリシーの作成」をクリック
  • 例:
    • ho-db-policy1
      image.png
6-2-9)「ポリシー」→「ポリシーの作成」をクリック

image.png

6-2-10)「JSON」タブをクリックし、以下の内容を貼り付ける
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "ManagedFileEventsSetupStatement",
      "Effect": "Allow",
      "Action": [
        "s3:GetBucketNotification",
        "s3:PutBucketNotification",
        "sns:ListSubscriptionsByTopic",
        "sns:GetTopicAttributes",
        "sns:SetTopicAttributes",
        "sns:CreateTopic",
        "sns:TagResource",
        "sns:Publish",
        "sns:Subscribe",
        "sqs:CreateQueue",
        "sqs:DeleteMessage",
        "sqs:ReceiveMessage",
        "sqs:SendMessage",
        "sqs:GetQueueUrl",
        "sqs:GetQueueAttributes",
        "sqs:SetQueueAttributes",
        "sqs:TagQueue",
        "sqs:ChangeMessageVisibility",
        "sqs:PurgeQueue"
      ],
      "Resource": [
        "arn:aws:s3:::<BUCKET>",
        "arn:aws:sqs:*:*:*",
        "arn:aws:sns:*:*:*"
      ]
    },
    {
      "Sid": "ManagedFileEventsListStatement",
      "Effect": "Allow",
      "Action": [
        "sqs:ListQueues",
        "sqs:ListQueueTags",
        "sns:ListTopics"
      ],
      "Resource": "*"
    },
    {
      "Sid": "ManagedFileEventsTeardownStatement",
      "Effect": "Allow",
      "Action": [
        "sns:Unsubscribe",
        "sns:DeleteTopic",
        "sqs:DeleteQueue"
      ],
      "Resource": [
        "arn:aws:sqs:*:*:*",
        "arn:aws:sns:*:*:*"
      ]
    }
  ]
}
  • 次の内容を置き換える
    • <BUCKET>:手順6-1で作成した、S3バケットの名前
      image.png
6-2-11)「次へ」をクリック
6-2-12)ポリシー名を入力し、「ポリシーの作成」をクリック
  • 例:
    • ho-db-policy2
      image.png
      image.png
6-2-13)上で作成したロールを開く→「許可を追加」→「ポリシーをアタッチ」をクリック

image.png

6-2-14)上で作成した二つのポリシーをチェックし、「許可を追加」をクリック

image.png

6-3)IAMロールのARNを設定
6-3-1)AWS画面で作成したIAMロールを開き、ARNをコピーする

image.png

6-3-2)コピーしたARNをDatabricksの「IAMロールARN」欄に貼り付ける

image.png

6-4)S3のバケットポリシーを生成する
6-4-1)下記の内容を入力し、「ポリシーを生成」をクリック
  • 例:
    • ストレージ設定名:ho-db-s3
    • バケット名:ho-db-s3
      image.png
6-4-2)生成されたポリシーをコピーする

image.png

6-5)上で作成したS3にポリシーを貼り付ける
6-5-1)AWS画面で、上で作成したS3を開く
6-5-2)「アクセス許可」→バケットポリシーの「編集」をクリック

image.png

6-5-3)上でコピーしたポリシーをポリシー欄に貼り付けし、「変更の保存」をクリック

image.png

6-6)「ストレージ設定の作成・続行」をクリック
7)「資格情報を設定」で、手順3で作成した資格情報を選択
8)「高度な設定」をクリックし、メタストアから手順2で作成したメタストアを選択
9)ネットワーク構成から手順1で作成したVPCを選択

image.png

10)「次のページ」をクリック

image.png

11)「ワークスペースを作成」をクリック

image.png

12)ワークスペースのステータスが「Running」になると成功!

image.png

5.トラブルシューティング

1)エラーメッセージ

MALFORMED_REQUEST: Failed network validation checks for network xxx-vpc; 
got error:ArrayBuffer(
error_type: "credentials" error_message: "Access denied; need permission for ec2:DescribeNetworkAcls" , 
error_type: "credentials" error_message: "Access denied; need permission for ec2:DescribeVpcAttribute" , 
error_type: "vpc" error_message: "DNS Support not enabled for vpc-0e0eaea756ecedb34." )
  • 原因:クロスアカウントIAMロールのポリシーの権限が足りない
  • 対策:顧客管理PCへデプロイの場合、オプション2のポリシーを設定しているかを確認

2)エラーメッセージ

Workspace failed to launch.Error: Unknown Error.
  • 原因:Databricks側のストレージの設定で、異なったIAMロールのARNが貼り付けされた
  • 対策:「ワークスペース更新」で、ストレージ用のIAMロールのARNを設定
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?