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

カスタム AWS 設定を使用してワークスペースを作成する

注記

これらの手順は、2023 年 11 月 8 日以降に作成されたアカウントに適用されます。 Databricks アカウントが 2023 年 11 月 8 日より前に作成された場合は、「ワークスペースを手動で作成する (既存の Databricks アカウント)」を参照してください。

この記事では、アカウントコンソールとカスタムAWS設定を使用してワークスペースを手動で作成する方法について説明します。 このプロセスは、独自の AWS リソースを作成する場合、または独自の VPC にワークスペースをデプロイする必要がある場合に使用できます。 デプロイのカスタム構成を作成する必要がない場合、Databricks では AWS クイック スタート テンプレートを使用してワークスペースを作成することをお勧めします。

また、アカウント API または Terraformを使用してワークスペースを作成することもできます。

必要条件

この記事の手順を完了するには、次が必要となります。

  • Databricks アカウントのアカウント管理者ロール。
  • AWS アカウントのプロビジョニング、IAMロール、S3バケットのアクセス許可。
  • ワークスペースのリージョンにある AWS アカウントで使用可能な VPC および NAT ゲートウェイ。利用可能なクォータを表示し、引き上げをリクエストするには、 AWS サービスのクォータコンソールを使用します。

カスタム AWS 設定を使用してワークスペースを作成する

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

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

ストレージ構成手順では、データ、ライブラリ、ログなどの Databricks ワークスペース資産を格納するためのストレージ バケットを作成します。また、 が位置情報にアクセスするために使用するIAM ロールも作成します。Databricks

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

  1. 管理者権限を持つユーザーとしてAWSコンソールにログインし、 S3 サービスに移動します。
  2. バケットを作成 」ボタンをクリックします。
  3. バケットの名前を入力します。
  4. Databricks ワークスペースのデプロイに使用する AWS リージョンを選択します。
  5. バケットを作成 」をクリックします。
  6. 権限 」タブをクリックします。
  7. バケットポリシー 」セクションで、「 編集 」をクリックします。
  8. 次のバケットポリシーを追加し、 <BUCKET-NAME> をバケットの名前に置き換えます。
JSON
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Grant Databricks Access",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::548125073166: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": ["7a99b43c-b46c-432b-b0a7-814217701909"]
}
}
},
{
"Sid": "Prevent DBFS from accessing Unity Catalog metastore",
"Effect": "Deny",
"Principal": {
"AWS": "arn:aws:iam::548125073166:root"
},
"Action": ["s3:*"],
"Resource": ["arn:aws:s3:::<BUCKET-NAME>/unity-catalog/*"]
}
]
}
  1. バケットを保存します。

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

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

  1. AWSアカウントで、IAM Custom Trust ポリシー を使用して ロールを作成します。

  2. [Custom Trust ポリシー ] フィールドに、次のポリシー 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ロールで、[ Trust Relationships ] タブに移動し、次のように信頼関係ポリシーを編集し、<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ロールを保存します。

ステップ 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>",
    "Condition": {
    "StringLike": {
    "s3:prefix": "unity-catalog/*"
    }
    }
    },
    {
    "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. [Permission ] タブで、作成した IAM ポリシーをアタッチします。

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

次に、Databricks アカウントのワークスペース作成フローに戻ります。[ ストレージ ] ステップで、ワークスペースに S3 バケットへのアクセス権を付与するストレージ設定を作成します。

  1. ストレージ構成の人間が判読できる名前を入力します。
  2. AWS アカウントで作成した S3 バケットの名前を入力します。
  3. 手順 2 で作成した ロールの を入力します。ARNIAM
  4. [ ストレージ認証情報の作成] をクリックして続行します

資格情報構成を作成する

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

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

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

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

ロールに追加するアクセスポリシーは、Amazon VPC (Virtual Private Cloud) のデプロイタイプによって異なります。Databricksが各アクセス許可をどのように使用するかについては、「IAM Databricksマネージド VPC のアクセス許可 」を参照してください。デプロイメントを説明するポリシーの指示を使用します。

オプション 1: デフォルト deployment ポリシー

  1. IAM コンソールの [ロール] セクションで、ステップ1で作成したIAMロールをクリックします。

  2. [権限を追加] ドロップダウンをクリックし、 [インラインポリシーの作成] を選択します。

  3. ポリシーエディターで、「 JSON 」タブをクリックします。

  4. 以下のアクセスポリシーをコピー&ペーストしてください:

    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"
    }
    }
    }
    ]
    }
  5. ポリシーの確認 」をクリックします。

  6. 名前 」フィールドにポリシー名を入力します。

  7. ポリシーの作成 」をクリックします。

  8. (オプション) サービスコントロールポリシー を使用して AWS アカウントレベルで特定のアクションを拒否する場合は、Databricks がクロスアカウントロールを引き受けることができるように、 sts:AssumeRole が許可リストに登録されていることを確認してください。

  9. ロールの概要で、 ロールARN をコピーしてDatabricksに追加します。

オプション 2: 顧客管理VPC with デフォルト restrictions ポリシー

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

  2. サイドバーの「 ロール 」タブをクリックします。

  3. ロールのリストで、ステップ1で作成したクロスアカウントIAMロールをクリックします。

  4. [権限を追加] ドロップダウンをクリックし、 [インラインポリシーの作成] を選択します。

  5. ポリシーエディターで、「 JSON 」タブをクリックします。

  6. 次のアクセスポリシーをコピーして貼り付けます。

    JSON
    {
    "Version": "2012-10-17",
    "Statement": [
    {
    "Sid": "Stmt1403287045000",
    "Effect": "Allow",
    "Action": [
    "ec2:AssociateIamInstanceProfile",
    "ec2:AttachVolume",
    "ec2:AuthorizeSecurityGroupEgress",
    "ec2:AuthorizeSecurityGroupIngress",
    "ec2:CancelSpotInstanceRequests",
    "ec2:CreateTags",
    "ec2:CreateVolume",
    "ec2:DeleteTags",
    "ec2:DeleteVolume",
    "ec2:DescribeAvailabilityZones",
    "ec2:DescribeIamInstanceProfileAssociations",
    "ec2:DescribeInstanceStatus",
    "ec2:DescribeInstances",
    "ec2:DescribeInternetGateways",
    "ec2:DescribeNatGateways",
    "ec2:DescribeNetworkAcls",
    "ec2:DescribePrefixLists",
    "ec2:DescribeReservedInstancesOfferings",
    "ec2:DescribeRouteTables",
    "ec2:DescribeSecurityGroups",
    "ec2:DescribeSpotInstanceRequests",
    "ec2:DescribeSpotPriceHistory",
    "ec2:DescribeSubnets",
    "ec2:DescribeVolumes",
    "ec2:DescribeVpcAttribute",
    "ec2:DescribeVpcs",
    "ec2:DetachVolume",
    "ec2:DisassociateIamInstanceProfile",
    "ec2:ReplaceIamInstanceProfileAssociation",
    "ec2:RequestSpotInstances",
    "ec2:RevokeSecurityGroupEgress",
    "ec2:RevokeSecurityGroupIngress",
    "ec2:RunInstances",
    "ec2:TerminateInstances",
    "ec2:DescribeFleetHistory",
    "ec2:ModifyFleet",
    "ec2:DeleteFleets",
    "ec2:DescribeFleetInstances",
    "ec2:DescribeFleets",
    "ec2:CreateFleet",
    "ec2:DeleteLaunchTemplate",
    "ec2:GetLaunchTemplateData",
    "ec2:CreateLaunchTemplate",
    "ec2:DescribeLaunchTemplates",
    "ec2:DescribeLaunchTemplateVersions",
    "ec2:ModifyLaunchTemplate",
    "ec2:DeleteLaunchTemplateVersions",
    "ec2:CreateLaunchTemplateVersion",
    "ec2:AssignPrivateIpAddresses",
    "ec2:GetSpotPlacementScores"
    ],
    "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"
    }
    }
    }
    ]
    }
  7. ポリシーの確認 」をクリックします。

  8. 名前 」フィールドにポリシー名を入力します。

  9. ポリシーの作成 」をクリックします。

  10. (オプション) サービスコントロールポリシー を使用して AWS アカウントレベルで特定のアクションを拒否する場合は、Databricks がクロスアカウントロールを引き受けることができるように、 sts:AssumeRole が許可リストに登録されていることを確認してください。

  11. ロールの概要で、 ロールARN をコピーします。

オプション 3: カスタム ポリシーの制限がある顧客管理VPC

注記

Machine Images (AMI) のソース Databricks元となる 本番運用AWS アカウントはAmazon601306020600 です。このアカウント ID を使用して、AWS アカウントで使用できる AMI を制限するカスタムアクセスポリシーを作成できます。詳しくは、 Databricks アカウントチームにお問い合わせください。

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

  2. サイドバーの「 ロール 」タブをクリックします。

  3. ロールのリストで、ステップ1で作成したクロスアカウントIAMロールをクリックします。

  4. [アクセス許可の追加] ドロップダウンをクリックし、 [インラインポリシーの作成]を クリックします。

  5. ポリシーエディターで、「 JSON 」タブをクリックします。

  6. 次のアクセスポリシーをコピーして貼り付けます。

    ポリシー内の以下の値を独自の設定値に置き換えます:

    • ACCOUNTID — AWSアカウントID(数字)。

    • VPCID —ワークスペースを起動するAWS VPCのID。

    • REGION — VPCデプロイメントのAWSリージョン名(例:us-west-2)。

    • SECURITYGROUPID — AWS セキュリティグループの ID。セキュリティ グループ制限を追加すると、クロスアカウント IAMロールを再利用したり、別のワークスペースの資格情報 ID (credentials_id) を参照したりすることはできません。 ワークスペースごとに個別のロール、ポリシー、および資格情報オブジェクトを作成する必要があります。

注記

顧客管理VPC でセキュリティ グループ用にカスタム要件を設定している場合は、Databricks アカウント チームに連絡して、IAM ポリシーのカスタマイズについてサポートを受けてください。

JSON
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "NonResourceBasedPermissions",
"Effect": "Allow",
"Action": [
"ec2:AssignPrivateIpAddresses",
"ec2:CancelSpotInstanceRequests",
"ec2:DescribeAvailabilityZones",
"ec2:DescribeIamInstanceProfileAssociations",
"ec2:DescribeInstanceStatus",
"ec2:DescribeInstances",
"ec2:DescribeInternetGateways",
"ec2:DescribeNatGateways",
"ec2:DescribeNetworkAcls",
"ec2:DescribePrefixLists",
"ec2:DescribeReservedInstancesOfferings",
"ec2:DescribeRouteTables",
"ec2:DescribeSecurityGroups",
"ec2:DescribeSpotInstanceRequests",
"ec2:DescribeSpotPriceHistory",
"ec2:DescribeSubnets",
"ec2:DescribeVolumes",
"ec2:DescribeVpcAttribute",
"ec2:DescribeVpcs",
"ec2:CreateTags",
"ec2:DeleteTags",
"ec2:GetSpotPlacementScores",
"ec2:RequestSpotInstances",
"ec2:DescribeFleetHistory",
"ec2:ModifyFleet",
"ec2:DeleteFleets",
"ec2:DescribeFleetInstances",
"ec2:DescribeFleets",
"ec2:CreateFleet",
"ec2:DeleteLaunchTemplate",
"ec2:GetLaunchTemplateData",
"ec2:CreateLaunchTemplate",
"ec2:DescribeLaunchTemplates",
"ec2:DescribeLaunchTemplateVersions",
"ec2:ModifyLaunchTemplate",
"ec2:DeleteLaunchTemplateVersions",
"ec2:CreateLaunchTemplateVersion"
],
"Resource": ["*"]
},
{
"Sid": "InstancePoolsSupport",
"Effect": "Allow",
"Action": [
"ec2:AssociateIamInstanceProfile",
"ec2:DisassociateIamInstanceProfile",
"ec2:ReplaceIamInstanceProfileAssociation"
],
"Resource": "arn:aws:ec2:REGION:ACCOUNTID:instance/*",
"Condition": {
"StringEquals": {
"ec2:ResourceTag/Vendor": "Databricks"
}
}
},
{
"Sid": "AllowEc2RunInstancePerTag",
"Effect": "Allow",
"Action": "ec2:RunInstances",
"Resource": ["arn:aws:ec2:REGION:ACCOUNTID:volume/*", "arn:aws:ec2:REGION:ACCOUNTID:instance/*"],
"Condition": {
"StringEquals": {
"aws:RequestTag/Vendor": "Databricks"
}
}
},
{
"Sid": "AllowEc2RunInstanceImagePerTag",
"Effect": "Allow",
"Action": "ec2:RunInstances",
"Resource": ["arn:aws:ec2:REGION:ACCOUNTID:image/*"],
"Condition": {
"StringEquals": {
"aws:ResourceTag/Vendor": "Databricks"
}
}
},
{
"Sid": "AllowEc2RunInstancePerVPCid",
"Effect": "Allow",
"Action": "ec2:RunInstances",
"Resource": [
"arn:aws:ec2:REGION:ACCOUNTID:network-interface/*",
"arn:aws:ec2:REGION:ACCOUNTID:subnet/*",
"arn:aws:ec2:REGION:ACCOUNTID:security-group/*"
],
"Condition": {
"StringEquals": {
"ec2:vpc": "arn:aws:ec2:REGION:ACCOUNTID:vpc/VPCID"
}
}
},
{
"Sid": "AllowEc2RunInstanceOtherResources",
"Effect": "Allow",
"Action": "ec2:RunInstances",
"NotResource": [
"arn:aws:ec2:REGION:ACCOUNTID:image/*",
"arn:aws:ec2:REGION:ACCOUNTID:network-interface/*",
"arn:aws:ec2:REGION:ACCOUNTID:subnet/*",
"arn:aws:ec2:REGION:ACCOUNTID:security-group/*",
"arn:aws:ec2:REGION:ACCOUNTID:volume/*",
"arn:aws:ec2:REGION:ACCOUNTID:instance/*"
]
},
{
"Sid": "EC2TerminateInstancesTag",
"Effect": "Allow",
"Action": ["ec2:TerminateInstances"],
"Resource": ["arn:aws:ec2:REGION:ACCOUNTID:instance/*"],
"Condition": {
"StringEquals": {
"ec2:ResourceTag/Vendor": "Databricks"
}
}
},
{
"Sid": "EC2AttachDetachVolumeTag",
"Effect": "Allow",
"Action": ["ec2:AttachVolume", "ec2:DetachVolume"],
"Resource": ["arn:aws:ec2:REGION:ACCOUNTID:instance/*", "arn:aws:ec2:REGION:ACCOUNTID:volume/*"],
"Condition": {
"StringEquals": {
"ec2:ResourceTag/Vendor": "Databricks"
}
}
},
{
"Sid": "EC2CreateVolumeByTag",
"Effect": "Allow",
"Action": ["ec2:CreateVolume"],
"Resource": ["arn:aws:ec2:REGION:ACCOUNTID:volume/*"],
"Condition": {
"StringEquals": {
"aws:RequestTag/Vendor": "Databricks"
}
}
},
{
"Sid": "EC2DeleteVolumeByTag",
"Effect": "Allow",
"Action": ["ec2:DeleteVolume"],
"Resource": ["arn:aws:ec2:REGION:ACCOUNTID:volume/*"],
"Condition": {
"StringEquals": {
"ec2:ResourceTag/Vendor": "Databricks"
}
}
},
{
"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"
}
}
},
{
"Sid": "VpcNonresourceSpecificActions",
"Effect": "Allow",
"Action": [
"ec2:AuthorizeSecurityGroupEgress",
"ec2:AuthorizeSecurityGroupIngress",
"ec2:RevokeSecurityGroupEgress",
"ec2:RevokeSecurityGroupIngress"
],
"Resource": "arn:aws:ec2:REGION:ACCOUNTID:security-group/SECURITYGROUPID",
"Condition": {
"StringEquals": {
"ec2:vpc": "arn:aws:ec2:REGION:ACCOUNTID:vpc/VPCID"
}
}
}
]
}
  1. ポリシーの確認 」をクリックします。

  2. 名前 」フィールドにポリシー名を入力します。

  3. ポリシーの作成 」をクリックします。

  4. (オプション) サービスコントロールポリシー を使用して AWS アカウントレベルで特定のアクションを拒否する場合は、Databricks がクロスアカウントロールを引き受けることができるように、 sts:AssumeRole が許可リストに登録されていることを確認してください。

  5. ロールの概要で、 ロールARN をコピーします。

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

Databricks で、前の手順で作成したロールを使用する資格情報構成を作成します。

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

  1. [資格情報構成名] フィールドに、新しい資格情報構成の人間が判読できる名前を入力します。
  2. [ロールARN] フィールドに、ロールのARNを入力します。
  3. [資格情報の作成] をクリックして続行します

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

高度な構成

次の構成は、新しいワークスペースを作成する場合のオプションです。これらの設定を表示するには、[ Credentials ] ステップの [ Advanced configurations ] ドロップダウンをクリックします。

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

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

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

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

新しいワークスペースのステータスが [失敗] の場合は、ワークスペースをクリックして詳細なエラー メッセージを表示します。 構成を更新して、ワークスペースのデプロイを再試行できます。 ワークスペースの作成に関するトラブルシューティングを参照してください。

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

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

次のステップ

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