AWS cross-アカウント IAMロール (レガシ) を構成する
このドキュメントは廃止されており、更新されない可能性があります。 このコンテンツに記載されている製品、サービス、またはテクノロジはサポートされなくなりました。 現在の管理者向けドキュメントを表示するには、「 Databricks アカウントの管理」を参照してください。
この記事では、従来のアカウントコンソールを使用してクロスアカウント IAMロールを設定する方法について説明します。 すべての新しい Databricks アカウントとほとんどの既存のアカウントは、 ワークスペースのデプロイに IAMロールを作成するを使用する必要があります。
DatabricksDatabricksAWSを設定するには コンピュートとVPC リソースを作成および管理する アカウントにアクセスする権限を付与する必要があります。Databricks では 、クロスアカウント ロール または アクセス キーを使用できます。 この記事では、いずれかの方法を使用するように Databricks を構成する方法について説明します。 どちらの方法でも、AWS コンソールと Databricks アカウントコンソールの両方で設定を構成します。
- ロールとアクセスキーの両方がサポートされていますが、Databricks では、クロスアカウントロールを使用して AWS アカウントへのアクセスを有効にする ことを強くお勧めします 。
- AWS アカウントは変更できます。 ただし、 AWS アカウントを変更すると、クラスターの終了、 VPC の削除、および設定した インスタンスプロファイル の無効化が発生します。
- AWS アカウント、または AWS アクセス許可のタイプと設定を変更すると、2 分から 10 分のダウンタイムが発生する可能性があります。
クロスアカウントロールを使用する
このセクションでは、クロスアカウントロールを使用して AWS アカウントへのアクセスを設定する方法について説明します。
ステップ 1: クロスアカウントロールを使用するように Databricks を設定する
-
Databricks アカウントの所有者として、 アカウント コンソールにログインします。
-
[AWS アカウント ] タブをクリックします。
-
[ クロスアカウントロールを使用してAWSにデプロイ ]ラジオボタンを選択します。
-
アカウントを初めて設定する場合は、[AWS リージョン] ドロップダウンで AWS リージョンを選択します。
-
外部 ID をコピーします。
ステップ 2: クロスアカウントロールとアクセスポリシーを作成する
-
AWSコンソールで、 [IAM] サービスに移動します。
-
サイドバーの「 ロール 」タブをクリックします。
-
「 ロールの作成 」をクリックします。
-
[ 信頼されたエンティティのタイプを選択] で、[ 別の AWS アカウント ] タイルをクリックします。
-
アカウント ID フィールドに、 Databricksアカウント ID
414351767826
を入力します。 -
[外部IDが必要] チェックボックスを選択してください。
-
[ 外部 ID ] フィールドに、ステップ 1 でコピーした Databricks 外部 ID を貼り付けます。
-
「 次へ:権限 」ボタンをクリックします。
-
「 次へ:タグ 」ボタンをクリックします。
-
「 次へ:確認 」ボタンをクリックします。
-
「 ロール名 」フィールドにロール名を入力します。
-
「 ロールの作成 」をクリックします。ロールのリストが表示されます。
-
-
ロールのリストで、作成したロールをクリックします。
-
インラインポリシーを追加します。
-
「権限」タブで、「 インラインポリシーを追加 」をクリックします。
-
ポリシーエディターで、「 JSON 」タブをクリックします。
-
このアクセスポリシーをエディターに貼り付けます。
JSON{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1403287045000",
"Effect": "Allow",
"Action": [
"ec2:AssociateDhcpOptions",
"ec2:AssociateIamInstanceProfile",
"ec2:AssociateRouteTable",
"ec2:AttachInternetGateway",
"ec2:AttachVolume",
"ec2:AuthorizeSecurityGroupEgress",
"ec2:AuthorizeSecurityGroupIngress",
"ec2:CancelSpotInstanceRequests",
"ec2:CreateDhcpOptions",
"ec2:CreateInternetGateway",
"ec2:CreateKeyPair",
"ec2:CreateRoute",
"ec2:CreateSecurityGroup",
"ec2:CreateSubnet",
"ec2:CreateTags",
"ec2:CreateVolume",
"ec2:CreateVpc",
"ec2:CreateVpcPeeringConnection",
"ec2:DeleteInternetGateway",
"ec2:DeleteKeyPair",
"ec2:DeleteRoute",
"ec2:DeleteRouteTable",
"ec2:DeleteSecurityGroup",
"ec2:DeleteSubnet",
"ec2:DeleteTags",
"ec2:DeleteVolume",
"ec2:DeleteVpc",
"ec2:DescribeAvailabilityZones",
"ec2:DescribeIamInstanceProfileAssociations",
"ec2:DescribeInstanceStatus",
"ec2:DescribeInstances",
"ec2:DescribePrefixLists",
"ec2:DescribeReservedInstancesOfferings",
"ec2:DescribeRouteTables",
"ec2:DescribeSecurityGroups",
"ec2:DescribeSpotInstanceRequests",
"ec2:DescribeSpotPriceHistory",
"ec2:DescribeSubnets",
"ec2:DescribeVolumes",
"ec2:DescribeVpcs",
"ec2:DescribeVpcAttribute",
"ec2:DescribeNetworkAcls",
"ec2:DescribeNatGateways",
"ec2:DescribeInternetGateways",
"ec2:DetachInternetGateway",
"ec2:DisassociateIamInstanceProfile",
"ec2:ModifyVpcAttribute",
"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"
}
}
}
]
} -
「 ポリシーの確認 」をクリックします。
-
「 名前 」フィールドにポリシー名を入力します。
-
「 ポリシーの作成 」をクリックします。
-
-
ロールの概要で、 ロールARN をコピーします。
手順 3: Databricks アカウントでクロスアカウントの役割を構成する
-
Databricks アカウント コンソールで、 AWS アカウント タブに戻ります。
-
[ Role ARN ] フィールドに、ステップ 2 でコピーしたロール ARN を貼り付けます。
-
「次のステップ 」をクリックします。認証を初めて構成するのではなく、認証方法を変更する場合、このボタンには [Apply Changes] というラベルが付けられます。
認証方法を変更し、最初にアカウントを設定したときに使用したもの とは異なる AWS アカウント ID を指定すると、その変更の影響 (クラスターの終了、 VPC の削除、設定した インスタンスプロファイル の無効化など) に関する警告が表示されます。 続行するには、[ AWS アカウントの変更 ] をクリックします。
アクセスキーを使用する
このセクションでは、アクセスキーを使用して AWS アカウントへのアクセスを設定する方法について説明します。
ステップ 1: アクセスポリシーとアクセスキーを持つユーザーを作成する
-
AWSコンソールで、 [IAM] サービスに移動します。
-
サイドバーの 「ポリシー 」タブをクリックします。
-
「 ポリシーの作成 」をクリックします。
-
ポリシーエディターで、「 JSON 」タブをクリックします。
-
このアクセスポリシーをエディターに貼り付けます。
JSON{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1403287045000",
"Effect": "Allow",
"Action": [
"ec2:AssociateDhcpOptions",
"ec2:AssociateIamInstanceProfile",
"ec2:AssociateRouteTable",
"ec2:AttachInternetGateway",
"ec2:AttachVolume",
"ec2:AuthorizeSecurityGroupEgress",
"ec2:AuthorizeSecurityGroupIngress",
"ec2:CancelSpotInstanceRequests",
"ec2:CreateDhcpOptions",
"ec2:CreateInternetGateway",
"ec2:CreateKeyPair",
"ec2:CreateRoute",
"ec2:CreateSecurityGroup",
"ec2:CreateSubnet",
"ec2:CreateTags",
"ec2:CreateVolume",
"ec2:CreateVpc",
"ec2:CreateVpcPeeringConnection",
"ec2:DeleteInternetGateway",
"ec2:DeleteKeyPair",
"ec2:DeleteRoute",
"ec2:DeleteRouteTable",
"ec2:DeleteSecurityGroup",
"ec2:DeleteSubnet",
"ec2:DeleteTags",
"ec2:DeleteVolume",
"ec2:DeleteVpc",
"ec2:DescribeAvailabilityZones",
"ec2:DescribeIamInstanceProfileAssociations",
"ec2:DescribeInstanceStatus",
"ec2:DescribeInstances",
"ec2:DescribePrefixLists",
"ec2:DescribeReservedInstancesOfferings",
"ec2:DescribeRouteTables",
"ec2:DescribeSecurityGroups",
"ec2:DescribeSpotInstanceRequests",
"ec2:DescribeSpotPriceHistory",
"ec2:DescribeSubnets",
"ec2:DescribeVolumes",
"ec2:DescribeVpcs",
"ec2:DetachInternetGateway",
"ec2:DisassociateIamInstanceProfile",
"ec2:ModifyVpcAttribute",
"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"
}
}
}
]
} -
「 ポリシーの確認 」をクリックします。
-
「 名前 」フィールドにポリシー名を入力します。
-
「 ポリシーの作成 」をクリックします。
-
-
サイドバーの 「ユーザー 」タブをクリックします。
-
[ ユーザーを追加 ]をクリックします。
-
ユーザー名を入力します。
-
[アクセスの種類 ] で、[ プログラムによるアクセス ] を選択します。
-
[次への権限] をクリックします。
-
[既存のポリシーを直接アタッチする ] を選択します。
-
[ポリシーの種類] フィルターで、[ 顧客管理] を選択します。
-
作成したポリシーの横にあるチェックボックスを選択します。
-
「次のレビュー」 をクリックします。
-
[ ユーザーを作成 ] をクリックします。
-
-
「Download .csv 」をクリックします。次の手順で必要なアクセスキーIDとシークレットアクセスキーを含むCSVファイルをダウンロードします。
-
「閉じる」 をクリックします。
ステップ 2: Databricks アカウントでアクセスキーを設定する
- Databricks アカウントの所有者として、 アカウント コンソールにログインします。
- [AWS アカウント ] タブをクリックします。
- [ Deploy to AWS using Access Key ] ラジオボタンを選択します。 このプロセスは、認証を初めて構成するか、認証方法を変更するかによって異なります。
-
まずは
-
[AWS リージョン] ドロップダウンで、AWS リージョンを選択します。
-
「 AWS アカウント ID」フィールドに、 AWS アカウント ID を入力します。 アカウントIDの探し方については、AWS アカウント識別子をご覧ください。
-
ステップ 1 でダウンロードした CSV ファイルのアクセス キー ID とシークレット アクセス キーをそれぞれのフィールドに入力します。
-
「次のステップ 」をクリックします。
-
-
変更
-
「AWS設定の編集 」ボタンをクリックします。
-
必要に応じて、新しい AWS アカウント ID を入力します。
-
ステップ 1 でダウンロードした CSV ファイルのアクセス キー ID とシークレット アクセス キーをそれぞれのフィールドに入力します。
-
「 変更の適用」 をクリックします。
-
最初にアカウントを設定したときに使用したもの とは異なる AWS アカウント ID を指定すると、その変更の影響 (クラスターの終了、 VPC の削除、設定した インスタンスプロファイル の無効化など) に関する警告が表示されます。 続行するには、[ AWS アカウントの変更 ] をクリックします。
トラブルシューティング
- AWS アカウントの請求情報に誤りがないか確認してください。 そうでない場合、Databricks は資格情報を検証できない可能性があります。
- AWS アカウントに問題がないことを確認するには、EC2 インスタンスを起動できることを確認します。
- IAM がIAMロールまたはユーザーに設定されたアクセス許可を反映するのに 1 分から 2 分かかる場合があります。検証に失敗した場合は、Databricks アカウントで構成を再試行します。
次のステップ
アカウントを初めて設定するときは、AWSストレージも設定する必要があります。 「 AWS ストレージ (レガシー) の設定」を参照してください。