創建跨帳戶IAM角色
了解如何設置一個跨帳戶的IAM角色,使Databricks可以在您的AWS帳戶中部署工作空間。
提示
您可以使用以下命令自動創建IAM角色磚起程拓殖的提供者.看到使用terrform創建Databricks工作空間.
創建跨帳戶角色
讓你的磚外部ID(帳戶ID)。當你在你的AWS帳戶中創建AWS跨帳戶IAM角色時,你需要它。
去賬戶控製台然後點擊右上角用戶名旁邊的向下箭頭。下帳戶ID,選擇並複製ID。
您還可以找到這個ID(標記為外部ID)前往雲資源>證書配置>添加證書配置.
作為具有管理員權限的用戶登錄到AWS控製台,然後轉到我控製台。
單擊角色選項卡。
點擊創建角色.
在選擇受信任實體類型,單擊AWS帳戶瓷磚。
選擇另一個AWS帳戶複選框。
在Account ID字段中,輸入Databricks帳戶ID
414351767826
.這是不您從Databricks帳戶控製台複製的帳戶ID。
選擇需要外部ID複選框。
在外部ID字段,輸入您從Databricks帳戶控製台複製的Databricks帳戶ID。
單擊接下來:添加權限按鈕。
單擊接下來:命名、檢查和創建按鈕。
在角色名字段,輸入角色名。
下步驟1:選擇信任實體JSON應該如下所示:
{“版本”:“2012-10-17”,“聲明”:[{“效應”:“允許”,“行動”:“sts: AssumeRole”,“校長”:{“AWS”:“414351767826”},“條件”:{“StringEquals”:{“sts: ExternalId”:“YOUR_EXTERNAL_ID”}}}]}
點擊創建角色.將顯示角色列表。
創建訪問策略
為了創建一個新的工作空間,你必須在你的跨帳戶IAM角色上設置一個訪問策略。根據您的Amazon VPC(虛擬私有雲)部署類型和使用限製的不同,該策略有所不同。有三種政策選擇:
默認的:在單個VPC中創建您的工作空間,由Databricks在您的AWS帳戶中創建和配置。這是默認配置。如需使用默認策略,請參見默認的部署策略.
客戶管理的VPC,默認限製:在您自己的VPC中創建您的Databricks工作空間customer-managed VPC.要使用此策略,請參見由客戶管理的VPC,默認策略限製.
客戶管理的VPC,自定義限製:在您自己的VPC中創建您的Databricks工作空間customer-managed VPC.用戶可以配置自定義訪問策略,對帳號ID、VPC ID、AWS Region和安全組進行限製。要使用此策略,請參見客戶管理的VPC,自定義策略限製.
重要的
這些策略假設工作區使用安全的集群連接,有時稱為無公共IP (NPIP)。截至2020年9月1日,對於使用Account API創建的工作區來說,安全集群連通性是默認的。如果您的工作空間不使用安全集群連通性(NPIP),請與Databricks的代表聯係。
默認的部署策略
以下步驟包括Databricks在您的AWS帳戶中創建並配置的VPC中啟動Databricks工作空間的訪問策略。有關Databricks如何使用每種權限的信息,請參見受databrick管理的VPC的IAM權限.
在角色列表中,單擊創建的角色。
添加內聯策略。
在權限選項卡上,單擊添加內嵌策略.
在策略編輯器中,單擊JSON選項卡。
將Databricks創建並配置的VPC中部署工作區的訪問策略拷貝到AWS帳戶中。
{“版本”:“2012-10-17”,“聲明”:[{“席德”:“Stmt1403287045000”,“效應”:“允許”,“行動”:[“ec2: AllocateAddress”,“ec2: AssociateDhcpOptions”,“ec2: AssociateIamInstanceProfile”,“ec2: AssociateRouteTable”,“ec2: AttachInternetGateway”,“ec2: AttachVolume”,“ec2: AuthorizeSecurityGroupEgress”,“ec2: AuthorizeSecurityGroupIngress”,“ec2: CancelSpotInstanceRequests”,“ec2: CreateDhcpOptions”,“ec2: CreateInternetGateway”,“ec2: CreateNatGateway”,“ec2: CreateRoute”,“ec2: CreateRouteTable”,“ec2: CreateSecurityGroup”,“ec2: CreateSubnet”,“ec2: CreateTags”,“ec2: CreateVolume”,“ec2: CreateVpc”,“ec2: CreateVpcEndpoint”,“ec2: DeleteDhcpOptions”,“ec2: DeleteInternetGateway”,“ec2: DeleteNatGateway”,“ec2: DeleteRoute”,“ec2: DeleteRouteTable”,“ec2: DeleteSecurityGroup”,“ec2: DeleteSubnet”,“ec2: DeleteTags”,“ec2: DeleteVolume”,“ec2: DeleteVpc”,“ec2: DeleteVpcEndpoints”,“ec2: DescribeAvailabilityZones”,“ec2: DescribeIamInstanceProfileAssociations”,“ec2: DescribeInstanceStatus”,“ec2: DescribeInstances”,“ec2: DescribeInternetGateways”,“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: ModifyVpcAttribute”,“ec2: ReleaseAddress”,“ec2: ReplaceIamInstanceProfileAssociation”,“ec2: RequestSpotInstances”,“ec2: RevokeSecurityGroupEgress”,“ec2: RevokeSecurityGroupIngress”,“ec2: RunInstances”,“ec2: TerminateInstances”),“資源”:[“*”]},{“效應”:“允許”,“行動”:[“我:CreateServiceLinkedRole”,“我:PutRolePolicy”),“資源”:“攻擊:aws:我::*:角色/ aws-service-role / spot.amazonaws.com/AWSServiceRoleForEC2Spot”,“條件”:{“StringLike”:{“我:AWSServiceName”:“spot.amazonaws.com”}}}]}
點擊審查政策.
在的名字字段,輸入策略名稱。
點擊創建政策.
如果你使用服務控製策略若要在AWS帳戶級別拒絕某些操作,請確保
sts: AssumeRole
是允許的,因此Databricks可以承擔跨帳戶的角色。
在角色摘要中,複製的角色是.
由客戶管理的VPC,默認策略限製
以下步驟包括在客戶管理VPC中啟動Databricks工作空間的訪問策略,策略限製為默認策略。有關Databricks如何使用每種權限的信息,請參見客戶管理VPC的IAM權限.
作為具有管理員權限的用戶登錄到AWS控製台,然後轉到我控製台。
單擊角色選項卡。
在角色列表中,單擊cross-account我角色你為數據庫創建的。
添加內聯策略。
在權限選項卡上,單擊添加內嵌策略.
在策略編輯器中,單擊JSON選項卡。
複製下麵用於部署工作空間的訪問策略客戶管理的VPC,默認限製.
{“版本”:“2012-10-17”,“聲明”:[{“席德”:“Stmt1403287045000”,“效應”:“允許”,“行動”:[“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”),“資源”:[“*”]},{“效應”:“允許”,“行動”:[“我:CreateServiceLinkedRole”,“我:PutRolePolicy”),“資源”:“攻擊:aws:我::*:角色/ aws-service-role / spot.amazonaws.com/AWSServiceRoleForEC2Spot”,“條件”:{“StringLike”:{“我:AWSServiceName”:“spot.amazonaws.com”}}}]}
點擊審查政策.
在的名字字段,輸入策略名稱。
點擊創建政策.
如果你使用服務控製策略若要在AWS帳戶級別拒絕某些操作,請確保
sts: AssumeRole
是允許的,因此Databricks可以承擔跨帳戶的角色。
在角色摘要中,複製的角色是.
客戶管理的VPC,自定義策略限製
以下步驟包括在客戶管理的VPC中使用自定義策略限製啟動Databricks工作空間的訪問策略。有關Databricks如何使用每種權限的信息,請參見客戶管理VPC的IAM權限.
請注意
Databricks生產AWS帳戶,亞馬遜機器圖像(AMI)的來源是601306020600
.您可以使用此帳戶Id創建自定義訪問策略,以限製可以在AWS帳戶中使用哪些ami。請聯係您的Databricks代表了解更多信息。
作為具有管理員權限的用戶登錄到AWS控製台,然後轉到我控製台。
單擊角色選項卡。
在角色列表中,單擊cross-account我角色你為數據庫創建的。
添加內聯策略。
在權限選項卡上,單擊添加內嵌策略.
在策略編輯器中,單擊JSON選項卡。
複製下麵用於部署工作空間的訪問策略客戶管理的VPC,自定義帳號ID、VPC ID、地區、安全組限製。
將策略中的以下值替換為您自己的配置值:
ACCOUNTID
-您的AWS帳戶ID,這是一個數字。VPCID
—需要啟動工作空間的AWS VPC ID。地區
—“AWS”,例如部署VPC時使用的“Region名稱”us-west-2
.SECURITYGROUPID
—AWS安全組ID。當您添加安全組限製時,您不能重用跨帳戶IAM角色或引用憑證ID (credentials_id
)及其他工作空間。對於那些其他工作區,您必須創建獨立的角色、策略和憑證對象。
請注意
如果使用不可變安全組,請從策略中移除這些權限:
ec2: AuthorizeSecurityGroupEgress
,ec2: AuthorizeSecurityGroupIngress
,ec2: RevokeSecurityGroupEgress
,ec2: RevokeSecurityGroupIngress
.修改策略以刪除最終的JSON對象Sid
價值VpcNonresourceSpecificActions
.{“版本”:“2012-10-17”,“聲明”:[{“席德”:“NonResourceBasedPermissions”,“效應”:“允許”,“行動”:[“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: RequestSpotInstances”),“資源”:[“*”]},{“席德”:“InstancePoolsSupport”,“效應”:“允許”,“行動”:[“ec2: AssociateIamInstanceProfile”,“ec2: DisassociateIamInstanceProfile”,“ec2: ReplaceIamInstanceProfileAssociation”),“資源”:“攻擊:aws: ec2:地區:ACCOUNTID:實例/ *”,“條件”:{“StringEquals”:{“ec2: ResourceTag /供應商”:“磚”}}},{“席德”:“AllowEc2RunInstancePerTag”,“效應”:“允許”,“行動”:“ec2: RunInstances”,“資源”:[“攻擊:aws: ec2:地區:ACCOUNTID:體積/ *”,“攻擊:aws: ec2:地區:ACCOUNTID:實例/ *”),“條件”:{“StringEquals”:{“aws: RequestTag /供應商”:“磚”}}},{“席德”:“AllowEc2RunInstanceImagePerTag”,“效應”:“允許”,“行動”:“ec2: RunInstances”,“資源”:[“攻擊:aws: ec2:地區:ACCOUNTID:形象/ *”),“條件”:{“StringEquals”:{“aws: ResourceTag /供應商”:“磚”}}},{“席德”:“AllowEc2RunInstancePerVPCid”,“效應”:“允許”,“行動”:“ec2: RunInstances”,“資源”:[“攻擊:aws: ec2:地區:ACCOUNTID:網絡接口/ *”,“攻擊:aws: ec2:地區:ACCOUNTID:子網/ *”,“攻擊:aws: ec2:地區:ACCOUNTID:安全組/ *”),“條件”:{“StringEquals”:{“ec2: vpc”:“攻擊:aws: ec2:地區:ACCOUNTID: vpc / VPCID”}}},{“席德”:“AllowEc2RunInstanceOtherResources”,“效應”:“允許”,“行動”:“ec2: RunInstances”,“NotResource”:[“攻擊:aws: ec2:地區:ACCOUNTID:形象/ *”,“攻擊:aws: ec2:地區:ACCOUNTID:網絡接口/ *”,“攻擊:aws: ec2:地區:ACCOUNTID:子網/ *”,“攻擊:aws: ec2:地區:ACCOUNTID:安全組/ *”,“攻擊:aws: ec2:地區:ACCOUNTID:體積/ *”,“攻擊:aws: ec2:地區:ACCOUNTID:實例/ *”]},{“席德”:“EC2TerminateInstancesTag”,“效應”:“允許”,“行動”:[“ec2: TerminateInstances”),“資源”:[“攻擊:aws: ec2:地區:ACCOUNTID:實例/ *”),“條件”:{“StringEquals”:{“ec2: ResourceTag /供應商”:“磚”}}},{“席德”:“EC2AttachDetachVolumeTag”,“效應”:“允許”,“行動”:[“ec2: AttachVolume”,“ec2: DetachVolume”),“資源”:[“攻擊:aws: ec2:地區:ACCOUNTID:實例/ *”,“攻擊:aws: ec2:地區:ACCOUNTID:體積/ *”),“條件”:{“StringEquals”:{“ec2: ResourceTag /供應商”:“磚”}}},{“席德”:“EC2CreateVolumeByTag”,“效應”:“允許”,“行動”:[“ec2: CreateVolume”),“資源”:[“攻擊:aws: ec2:地區:ACCOUNTID:體積/ *”),“條件”:{“StringEquals”:{“aws: RequestTag /供應商”:“磚”}}},{“席德”:“EC2DeleteVolumeByTag”,“效應”:“允許”,“行動”:[“ec2: DeleteVolume”),“資源”:[“攻擊:aws: ec2:地區:ACCOUNTID:體積/ *”),“條件”:{“StringEquals”:{“ec2: ResourceTag /供應商”:“磚”}}},{“效應”:“允許”,“行動”:[“我:CreateServiceLinkedRole”,“我:PutRolePolicy”),“資源”:“攻擊:aws:我::*:角色/ aws-service-role / spot.amazonaws.com/AWSServiceRoleForEC2Spot”,“條件”:{“StringLike”:{“我:AWSServiceName”:“spot.amazonaws.com”}}},{“席德”:“VpcNonresourceSpecificActions”,“效應”:“允許”,“行動”:[“ec2: AuthorizeSecurityGroupEgress”,“ec2: AuthorizeSecurityGroupIngress”,“ec2: RevokeSecurityGroupEgress”,“ec2: RevokeSecurityGroupIngress”),“資源”:“攻擊:aws: ec2:地區:ACCOUNTID:安全組/ SECURITYGROUPID”,“條件”:{“StringEquals”:{“ec2: vpc”:“攻擊:aws: ec2:地區:ACCOUNTID: vpc / VPCID”}}}]}
點擊審查政策.
在的名字字段,輸入策略名稱。
點擊創建政策.
如果你使用服務控製策略若要在AWS帳戶級別拒絕某些操作,請確保
sts: AssumeRole
是允許的,因此Databricks可以承擔跨帳戶的角色。
在角色摘要中,複製的角色是.