メインコンテンツまでスキップ

手動のAWS設定でワークスペースを作成する

このページでは、手動で作成された AWS リソースを使用してクラシックワークスペースをデプロイする方法について説明します。独自の AWS リソースを作成する場合、または独自の VPC、特定の IAM ポリシー、既存の S3 バケットなどのカスタム構成でワークスペースをデプロイする必要がある場合は、この方法を使用します。

ほとんどのデプロイメントでは、Databricks は、AWS IAM の一時委任を使用して必要なすべてのリソースを自動的にプロビジョニングする自動構成の使用を推奨しています。

必要条件

手動構成でワークスペースを作成するには、次の操作を行う必要があります。

  • Databricks アカウントのアカウント管理者になる。
  • プロビジョニングIAMロール、 S3バケット、およびAWSアカウントのポリシーへのアクセス権限を持っています。
  • ワークスペースのリージョン内の AWS アカウントに、利用可能な VPC と NAT ゲートウェイを用意します。AWSサービス クォータ コンソールを使用して、利用可能なクォータを表示し、増加をリクエストできます。
  • us-west-2の STS エンドポイントをアクティブ化します。詳細については、 AWS ドキュメントを参照してください。

手動のAWS構成を使用してDatabricksワークスペースを作成する

手動で構成された AWS リソースを使用してワークスペースを作成するには:

  1. アカウントコンソールに移動し、[ ワークスペース ]アイコンをクリックします。
  2. [ワークスペースの作成]を クリックします。
  3. ワークスペース名 ]フィールドに、人間にとってわかりやすい名称で、このワークスペースの名前を入力します。ここには、スペースを含めることもできます。
  4. [ リージョン] フィールドで、ワークスペースのネットワークとコンピュート リソースのAWSリージョンを選択します。
  5. [クラウド資格情報] ドロップダウンで、資格情報の構成を選択または作成します。新しい資格情報構成を作成する場合は、 「資格情報構成の作成」を参照してください。
  6. [クラウド ストレージ] ドロップダウンで、このワークスペースに使用するストレージ構成を選択または作成します。新しいストレージ構成を作成する場合は、 「ストレージ構成の作成」を参照してください。
  7. (オプション) 詳細設定 を設定します。 詳細構成を参照してください。
  8. 次へ 」をクリックします。
  9. ワークスペースの詳細を確認し、 ワークスペースの作成 をクリックします。

資格情報構成を作成する

資格情報の設定により、AWSアカウントでコンピュート リソースを起動するためのアクセス権がDatabricksに付与されます。この手順では、アクセス ポリシーを使用して新しいクロスアカウント IAMロールを作成する必要があります。

ステップ 1: クロスアカウント IAMロールを作成する

  1. Databricks アカウント ID を取得します。アカウント ID を確認するを参照してください。
  2. 管理者権限を持つユーザーとしてAWSコンソールにログインし、 IAM コンソールに移動します。
  3. サイドバーの「 ロール 」タブをクリックします。
  4. ロールの作成 」をクリックします。
    1. [信頼できるエンティティの種類の選択] で、 [AWSアカウント] タイルをクリックします。
    2. [別のAWSアカウント] チェックボックスを選択してください。
    3. 「アカウント ID」フィールドに、 Databricks アカウント ID 414351767826を入力します。 これは、 Databricks アカウントコンソールからあなたがコピーしたアカウントID ではありませんDatabricks on AWS GovCloudを使用している場合は、AWS GovCloudではDatabricksアカウントID 044793339203、AWS GovCloud DoDでは170661010020を使用します 。
    4. [外部IDが必要] チェックボックスを選択してください。
    5. 外部ID フィールドに、DatabricksアカウントコンソールからコピーしたDatabricksアカウントIDを入力します。
    6. [次へ] ボタンをクリックします。
    7. 許可の追加 ページで、 次へ ボタンをクリックします。これで、 名前、確認、作成 ページが表示されます。
    8. ロール名 」フィールドにロール名を入力します。
    9. ロールの作成 」をクリックします。役割のリストが表示されます。

ステップ 2: アクセスポリシーを作成する

ロールに追加するアクセスポリシーは、Amazon VPC (仮想プライベートクラウド) のデプロイメントタイプによって異なります。Databricks各権限をどのように使用するかについては、 Databricks管理 VPC のIAM権限」を参照してください。

  1. IAM コンソールの [ロール] セクションで、ステップ1で作成したIAMロールをクリックします。
  2. [許可を追加] ドロップダウンをクリックし、 [インラインポリシーの作成] を選択します。
  3. ポリシーエディターで、「 JSON 」タブをクリックします。
  4. 展開タイプに適したアクセス ポリシーをコピーして貼り付けます。

DatabricksがAWSアカウント内で作成および構成する単一のVPC。

JSON
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1403287045000",
"Effect": "Allow",
"Action": [
"ec2:AllocateAddress",
"ec2:AssignPrivateIpAddresses",
"ec2:AssociateDhcpOptions",
"ec2:AssociateIamInstanceProfile",
"ec2:AssociateRouteTable",
"ec2:AttachInternetGateway",
"ec2:AttachVolume",
"ec2:AuthorizeSecurityGroupEgress",
"ec2:AuthorizeSecurityGroupIngress",
"ec2:CancelSpotInstanceRequests",
"ec2:CreateDhcpOptions",
"ec2:CreateFleet",
"ec2:CreateInternetGateway",
"ec2:CreateLaunchTemplate",
"ec2:CreateLaunchTemplateVersion",
"ec2:CreateNatGateway",
"ec2:CreateRoute",
"ec2:CreateRouteTable",
"ec2:CreateSecurityGroup",
"ec2:CreateSubnet",
"ec2:CreateTags",
"ec2:CreateVolume",
"ec2:CreateVpc",
"ec2:CreateVpcEndpoint",
"ec2:DeleteDhcpOptions",
"ec2:DeleteFleets",
"ec2:DeleteInternetGateway",
"ec2:DeleteLaunchTemplate",
"ec2:DeleteLaunchTemplateVersions",
"ec2:DeleteNatGateway",
"ec2:DeleteRoute",
"ec2:DeleteRouteTable",
"ec2:DeleteSecurityGroup",
"ec2:DeleteSubnet",
"ec2:DeleteTags",
"ec2:DeleteVolume",
"ec2:DeleteVpc",
"ec2:DeleteVpcEndpoints",
"ec2:DescribeAvailabilityZones",
"ec2:DescribeFleetHistory",
"ec2:DescribeFleetInstances",
"ec2:DescribeFleets",
"ec2:DescribeIamInstanceProfileAssociations",
"ec2:DescribeInstanceStatus",
"ec2:DescribeInstances",
"ec2:DescribeInternetGateways",
"ec2:DescribeLaunchTemplates",
"ec2:DescribeLaunchTemplateVersions",
"ec2:DescribeNatGateways",
"ec2:DescribePrefixLists",
"ec2:DescribeReservedInstancesOfferings",
"ec2:DescribeRouteTables",
"ec2:DescribeSecurityGroups",
"ec2:DescribeSpotInstanceRequests",
"ec2:DescribeSpotPriceHistory",
"ec2:DescribeSubnets",
"ec2:DescribeVolumes",
"ec2:DescribeVpcs",
"ec2:DetachInternetGateway",
"ec2:DisassociateIamInstanceProfile",
"ec2:DisassociateRouteTable",
"ec2:GetLaunchTemplateData",
"ec2:GetSpotPlacementScores",
"ec2:ModifyFleet",
"ec2:ModifyLaunchTemplate",
"ec2:ModifyVpcAttribute",
"ec2:ReleaseAddress",
"ec2:ReplaceIamInstanceProfileAssociation",
"ec2:RequestSpotInstances",
"ec2:RevokeSecurityGroupEgress",
"ec2:RevokeSecurityGroupIngress",
"ec2:RunInstances",
"ec2:TerminateInstances"
],
"Resource": ["*"]
},
{
"Effect": "Allow",
"Action": ["iam:CreateServiceLinkedRole", "iam:PutRolePolicy"],
"Resource": "arn:aws:iam::*:role/aws-service-role/spot.amazonaws.com/AWSServiceRoleForEC2Spot",
"Condition": {
"StringLike": {
"iam:AWSServiceName": "spot.amazonaws.com"
}
}
}
]
}
  1. ポリシーの確認 」をクリックします。
  2. 名前 」フィールドにポリシー名を入力します。
  3. ポリシーの作成 」をクリックします。
  4. (オプション) サービスコントロールポリシー を使用して AWS アカウントレベルで特定のアクションを拒否する場合は、Databricks がクロスアカウントロールを引き受けることができるように、 sts:AssumeRole が許可リストに登録されていることを確認してください。
  5. ロールの概要で、 ロールARN をコピーして資格情報構成ステップに貼り付けます。

ステップ 3: 資格情報の設定を作成する

資格情報構成は、前のステップで作成したIAMを表すDatabricks構成オブジェクトです。

クレデンシャルコンフィギュレーションを作成する方法:

  1. 新しいワークスペースを作成するときに、 クラウド資格情報のドロップ ダウン メニューで [クラウド資格情報の追加] を選択します。
  2. 手動で追加を 選択します。
  3. 「クラウド認証情報名」 フィールドに、新しい認証情報構成の人間が判読できる名前を入力します。
  4. [ロールARN フィールドに、前のステップでコピーしたロールARNを貼り付けます。
  5. OK をクリックします。

Databricks は、この手順で資格情報の構成を検証します。考えられるエラーには、無効な ARN やロールのアクセス許可の誤りなどがあります。

ストレージ構成を作成する

ストレージ構成ステップでは、データ、ライブラリ、ログなどのDatabricksワークスペース資産を保存するストレージ バケットを作成します。 ワークスペースのデフォルトカタログもここに保存されます。ストレージ構成の一部として、 Databricksストレージの場所にアクセスするために使用するIAMロールも作成します。

ステップ 1: S3 バケットを作成する

  1. 管理者権限を持つユーザーとしてAWSコンソールにログインし、 S3 サービスに移動します。

  2. バケットを作成 」ボタンをクリックします。

  3. バケットの名前を入力します。

  4. Databricks ワークスペースのデプロイに使用する AWS リージョンを選択します。

  5. バケットを作成 」をクリックします。

  6. アクセス許可 」タブをクリックします。

  7. バケットポリシー 」セクションで、「 編集 」をクリックします。

  8. 次のバケットポリシーを追加し、 <BUCKET-NAME> をバケットの名前に、 <YOUR-DATABRICKS-ACCOUNT-ID> を Databricks アカウント ID に置き換えます。

    JSON
    {
    "Version": "2012-10-17",
    "Statement": [
    {
    "Sid": "Grant Databricks Access",
    "Effect": "Allow",
    "Principal": {
    "AWS": "arn:aws:iam::414351767826:root"
    },
    "Action": [
    "s3:GetObject",
    "s3:GetObjectVersion",
    "s3:PutObject",
    "s3:DeleteObject",
    "s3:ListBucket",
    "s3:GetBucketLocation"
    ],
    "Resource": ["arn:aws:s3:::<BUCKET-NAME>/*", "arn:aws:s3:::<BUCKET-NAME>"],
    "Condition": {
    "StringEquals": {
    "aws:PrincipalTag/DatabricksAccountId": ["<YOUR-DATABRICKS-ACCOUNT-ID>"]
    }
    }
    },
    {
    "Sid": "Prevent DBFS from accessing Unity Catalog metastore",
    "Effect": "Deny",
    "Principal": {
    "AWS": "arn:aws:iam::414351767826:root"
    },
    "Action": ["s3:*"],
    "Resource": ["arn:aws:s3:::<BUCKET-NAME>/unity-catalog/*"]
    }
    ]
    }
  9. バケットを保存します。

ステップ 2: カスタム信頼ポリシーを使用して IAMロールを作成する

このIAM ロールと信頼ポリシー は、Databricksユーザーに代わってDatabricksがS3バケット内のデータにアクセスできるように、アカウント間の信頼関係を確立します。Principal セクションの ARN は、Databricks によって作成されたロールを参照する静的な値です。Databricks on AWSGovCloudを使用している場合、ARNが若干異なります。

  1. AWSアカウントで、IAM カスタム信頼ポリシー を使用して ロールを作成します。

  2. カスタム信頼ポリシー フィールドに、次のポリシー JSONを貼り付けます。

    このポリシーは、プレースホルダーとして外部 ID を 0000 に設定します。これは、後の手順で Databricks アカウントのアカウント ID に更新します。

JSON
{
"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"
}
}
}
]
}
  1. IAMロールを保存します。

    ロールを作成したので、その信頼ポリシーを更新して自己引き受けにする必要があります。

  2. 作成した IAMロールで、 信頼関係 タブに移動し、次のように信頼関係ポリシーを編集し、<YOUR-AWS-ACCOUNT-ID><THIS-ROLE-NAME><YOUR-DATABRICKS-ACCOUNT-ID>の値を置き換えます。

JSON
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::414351767826:role/unity-catalog-prod-UCMasterRole-14S5ZJVKOTYTL",
"arn:aws:iam::<YOUR-AWS-ACCOUNT-ID>:role/<THIS-ROLE-NAME>"
]
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"sts:ExternalId": "<YOUR-DATABRICKS-ACCOUNT-ID>"
}
}
}
]
}
  1. アクセス許可ポリシーの構成をスキップします。これは、後の手順で追加するために戻ります。

  2. IAM ARNコピーし、ストレージ構成ステップに貼り付けます。

ステップ 3: 読み取りおよび書き込みアクセスを付与する IAM ポリシーを作成する

  1. S3 バケットと同じアカウントに IAM ポリシーを作成し、次の値を置き換えます。

    • <BUCKET>:S3バケットの名前。
    • <AWS-ACCOUNT-ID>:AWSアカウントのアカウントID(Databricksアカウントではありません)。
    • <AWS-IAM-ROLE-NAME>:前のステップで作成したAWS IAMロールの名前。
    • <KMS-KEY> (オプション): 暗号化が有効になっている場合は、S3 バケットの内容を暗号化する KMS キーの名前を指定します。 暗号化が無効になっている場合は、IAM ポリシーの KMS セクション全体を削除します。

    このIAMポリシーは、読み取りおよび書き込みアクセスを許可します。読み取りアクセスのみを許可するポリシーを作成することもできます。ただし、ストレージ認証情報は読み取り専用としてマークすることが可能であり、このIAMロールによって付与された書き込みアクセスはすべて無視されるため、これは不要な場合があります。

    JSON
    {
    "Version": "2012-10-17",
    "Statement": [
    {
    "Effect": "Allow",
    "Action": ["s3:GetObject", "s3:PutObject", "s3:DeleteObject"],
    "Resource": "arn:aws:s3:::<BUCKET>/unity-catalog/*"
    },
    {
    "Effect": "Allow",
    "Action": ["s3:ListBucket", "s3:GetBucketLocation"],
    "Resource": "arn:aws:s3:::<BUCKET>"
    },
    {
    "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"
    }
    ]
    }
注記

Unity Catalogに対してより制限の厳しいIAMポリシーが必要な場合は、Databricksの担当者にお問い合わせください。

  1. S3 バケットと同じアカウントのファイルイベントに対して、別の IAM ポリシーを作成します。
注記

この手順はオプションですが、強くお勧めします。ユーザーに代わってファイル イベントを構成するための Databricks アクセス権を付与しない場合は、場所ごとにファイル イベントを手動で構成する必要があります。そうしないと、Databricks が将来リリースする重要な機能へのアクセスが制限されます。

IAM ポリシーは、バケットのイベント通知設定の更新、SNS トピックの作成、SQS キューの作成、および SQS キューの SNS トピックへのサブスクライブを行う権限を Databricks に付与します。これらは、ファイルイベントを使用する機能に必要なリソースです。<BUCKET> を S3 バケットの名前に置き換えます。

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:*:*:*"]
}
]
}
  1. ステップ 2 で作成した IAMロールに戻ります。

  2. 許可 タブで、作成した IAM ポリシーをアタッチします。

ステップ 4: ストレージ構成を作成する

次に、ワークスペース作成フローに戻り、Databricks でストレージ構成を手動で作成します。

  1. [クラウド ストレージ] ドロップダウン メニューで、 [新しいクラウド ストレージの追加] を選択します。
  2. 手動で追加を 選択します。
  3. 「ストレージ構成名」 フィールドに、ストレージ構成の判読可能な名前を入力します。
  4. 「バケット名」 フィールドに、AWS アカウントで作成した S3 バケットの名前を入力します。
  5. IAM IAMrollARN ARN フィールドに、ステップ 2 で作成したIAMのARN貼り付けます。
  6. OK をクリックします。

高度な構成

次の構成は、新しいワークスペースを作成する場合のオプションです。これらの設定を表示するには、 資格情報 ステップの 高度な設定 ドロップダウンをクリックします。

  • メタストア : ワークスペースのメタストアの割り当てを確認します。Unity Catalogメタストアがワークスペースのリージョンに既に存在し、メタストアが新しいワークスペースに自動的に割り当てられるように構成されている場合、メタストアは自動的に選択されます。これがリージョンにデプロイする最初のワークスペースである場合、メタストアは自動的に作成されます。メタストアは、デフォルトによってメタストア レベルのストレージなしで作成されます。 メタストア レベルのストレージが必要な場合は、追加できます。「 既存のメタストアに管理ストレージを追加する」を参照してください。
  • ネットワーク構成 : 独自の VPC にワークスペースを作成するには、 ネットワーク構成を 選択または追加します。独自のVPCを構成する手順については、 「顧客管理VPC構成」を参照してください。 顧客管理VPCを使用している場合は、 IAMロールが顧客管理 VPC をサポートするアクセス ポリシーを使用していることを確認してください。
  • Private Link : PrivateLink を有効にするには、 プライベート アクセス設定を選択または追加します。これには、正しいリージョン VPC エンドポイントを作成し、登録する ネットワーク構成から参照する必要があります。
  • 顧客管理キー : マネージド サービスおよびワークスペース ストレージのワークスペース展開に暗号化キーを追加できます。 マネージド サービスのキーは、ノートブック、シークレット、およびDatabricks SQLクエリ データをコントロール プレーンで暗号化します。 ワークスペース ストレージのキーは、ワークスペース ストレージ バケットと、クラシック コンピュート プレーンのコンピュート リソースの EBS ボリュームを暗号化します。 詳細なガイダンスについては、 「暗号化用の顧客管理キーを構成する」を参照してください。
  • セキュリティとコンプライアンス : これらのチェックボックスを使用すると、コンプライアンス セキュリティ プロファイルを有効にしたり、コンプライアンス標準を追加したり、ワークスペースの拡張セキュリティ監視を有効にしたりできます。 詳細については、「 強化されたセキュリティとコンプライアンスの設定を構成する」を参照してください。

ワークスペースの状態を表示する

ワークスペースを作成した後、 「ワークスペース」 ページでそのステータスを確認できます。

  • プロビジョニング :進行中です。数分待ってからページを更新してください。
  • 実行中 :ワークスペースの展開が成功しました。
  • 失敗 :デプロイに失敗しました。
  • 禁止 : Databricks アカウント チームにお問い合わせください。
  • キャンセル中 :キャンセル中です。

ワークスペースにログインします

  1. アカウントコンソールに移動し、[ ワークスペース ]アイコンをクリックします。
  2. ワークスペースのある行で、「 開く 」をクリックします。
  3. ワークスペース管理者としてログインするには、アカウントオーナーまたはアカウント管理者のEメールアドレスとパスワードでログインしてください。 シングルサインオンを設定した場合は、[ シングルサインオン ]ボタンをクリックします。

次のステップ

ワークスペースをデプロイしたので、データ戦略の構築を開始できます。 Databricks では、次の記事をお勧めします。