UNPKG

@pulumi/databricks

Version:

A Pulumi package for creating and managing databricks cloud resources.

162 lines (161 loc) 7.04 kB
import * as pulumi from "@pulumi/pulumi"; /** * This data source constructs necessary AWS STS assume role policy for you. * * ## Example Usage * * End-to-end example of provisioning Cross-account IAM role with databricks.MwsCredentials and aws_iam_role: * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * import * as databricks from "@pulumi/databricks"; * * const config = new pulumi.Config(); * // Account Id that could be found in the top right corner of https://accounts.cloud.databricks.com/ * const databricksAccountId = config.requireObject<any>("databricksAccountId"); * const _this = databricks.getAwsCrossAccountPolicy({}); * const crossAccountPolicy = new aws.iam.Policy("cross_account_policy", { * name: `${prefix}-crossaccount-iam-policy`, * policy: _this.then(_this => _this.json), * }); * const thisGetAwsAssumeRolePolicy = databricks.getAwsAssumeRolePolicy({ * externalId: databricksAccountId, * }); * const crossAccount = new aws.iam.Role("cross_account", { * name: `${prefix}-crossaccount-iam-role`, * assumeRolePolicy: thisGetAwsAssumeRolePolicy.then(thisGetAwsAssumeRolePolicy => thisGetAwsAssumeRolePolicy.json), * description: "Grants Databricks full access to VPC resources", * }); * const crossAccountRolePolicyAttachment = new aws.iam.RolePolicyAttachment("cross_account", { * policyArn: crossAccountPolicy.arn, * role: crossAccount.name, * }); * // required only in case of multi-workspace setup * const thisMwsCredentials = new databricks.MwsCredentials("this", { * accountId: databricksAccountId, * credentialsName: `${prefix}-creds`, * roleArn: crossAccount.arn, * }); * ``` * * ## Related Resources * * The following resources are used in the same context: * * * Provisioning AWS Databricks workspaces with a Hub & Spoke firewall for data exfiltration protection guide * * databricks.getAwsBucketPolicy data to configure a simple access policy for AWS S3 buckets, so that Databricks can access data in it. * * databricks.getAwsCrossAccountPolicy data to construct the necessary AWS cross-account policy for you, which is based on [official documentation](https://docs.databricks.com/administration-guide/account-api/iam-role.html#language-Your%C2%A0VPC,%C2%A0default). */ export declare function getAwsAssumeRolePolicy(args: GetAwsAssumeRolePolicyArgs, opts?: pulumi.InvokeOptions): Promise<GetAwsAssumeRolePolicyResult>; /** * A collection of arguments for invoking getAwsAssumeRolePolicy. */ export interface GetAwsAssumeRolePolicyArgs { /** * AWS partition. The options are `aws`, `aws-us-gov`, or `aws-us-gov-dod`. Defaults to `aws` */ awsPartition?: string; /** * @deprecated databricks_account_id will be will be removed in the next major release. */ databricksAccountId?: string; /** * Account Id that could be found in the top right corner of [Accounts Console](https://accounts.cloud.databricks.com/). */ externalId: string; /** * Either or not this assume role policy should be created for usage log delivery. Defaults to false. */ forLogDelivery?: boolean; } /** * A collection of values returned by getAwsAssumeRolePolicy. */ export interface GetAwsAssumeRolePolicyResult { readonly awsPartition?: string; /** * @deprecated databricks_account_id will be will be removed in the next major release. */ readonly databricksAccountId?: string; readonly externalId: string; readonly forLogDelivery?: boolean; /** * The provider-assigned unique ID for this managed resource. */ readonly id: string; /** * AWS IAM Policy JSON document */ readonly json: string; } /** * This data source constructs necessary AWS STS assume role policy for you. * * ## Example Usage * * End-to-end example of provisioning Cross-account IAM role with databricks.MwsCredentials and aws_iam_role: * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * import * as databricks from "@pulumi/databricks"; * * const config = new pulumi.Config(); * // Account Id that could be found in the top right corner of https://accounts.cloud.databricks.com/ * const databricksAccountId = config.requireObject<any>("databricksAccountId"); * const _this = databricks.getAwsCrossAccountPolicy({}); * const crossAccountPolicy = new aws.iam.Policy("cross_account_policy", { * name: `${prefix}-crossaccount-iam-policy`, * policy: _this.then(_this => _this.json), * }); * const thisGetAwsAssumeRolePolicy = databricks.getAwsAssumeRolePolicy({ * externalId: databricksAccountId, * }); * const crossAccount = new aws.iam.Role("cross_account", { * name: `${prefix}-crossaccount-iam-role`, * assumeRolePolicy: thisGetAwsAssumeRolePolicy.then(thisGetAwsAssumeRolePolicy => thisGetAwsAssumeRolePolicy.json), * description: "Grants Databricks full access to VPC resources", * }); * const crossAccountRolePolicyAttachment = new aws.iam.RolePolicyAttachment("cross_account", { * policyArn: crossAccountPolicy.arn, * role: crossAccount.name, * }); * // required only in case of multi-workspace setup * const thisMwsCredentials = new databricks.MwsCredentials("this", { * accountId: databricksAccountId, * credentialsName: `${prefix}-creds`, * roleArn: crossAccount.arn, * }); * ``` * * ## Related Resources * * The following resources are used in the same context: * * * Provisioning AWS Databricks workspaces with a Hub & Spoke firewall for data exfiltration protection guide * * databricks.getAwsBucketPolicy data to configure a simple access policy for AWS S3 buckets, so that Databricks can access data in it. * * databricks.getAwsCrossAccountPolicy data to construct the necessary AWS cross-account policy for you, which is based on [official documentation](https://docs.databricks.com/administration-guide/account-api/iam-role.html#language-Your%C2%A0VPC,%C2%A0default). */ export declare function getAwsAssumeRolePolicyOutput(args: GetAwsAssumeRolePolicyOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetAwsAssumeRolePolicyResult>; /** * A collection of arguments for invoking getAwsAssumeRolePolicy. */ export interface GetAwsAssumeRolePolicyOutputArgs { /** * AWS partition. The options are `aws`, `aws-us-gov`, or `aws-us-gov-dod`. Defaults to `aws` */ awsPartition?: pulumi.Input<string>; /** * @deprecated databricks_account_id will be will be removed in the next major release. */ databricksAccountId?: pulumi.Input<string>; /** * Account Id that could be found in the top right corner of [Accounts Console](https://accounts.cloud.databricks.com/). */ externalId: pulumi.Input<string>; /** * Either or not this assume role policy should be created for usage log delivery. Defaults to false. */ forLogDelivery?: pulumi.Input<boolean>; }