Skip to content

Commit 87db114

Browse files
mvvsubbu00Kai0
authored andcommitted
CMK Support for Databricks (Azure#9869)
1 parent 3aed46c commit 87db114

File tree

4 files changed

+459
-1
lines changed

4 files changed

+459
-1
lines changed

specification/databricks/resource-manager/Microsoft.Databricks/stable/2018-04-01/databricks.json

Lines changed: 90 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,15 @@
134134
},
135135
"Create or update workspace with custom parameters": {
136136
"$ref": "./examples/WorkspaceCreateWithParameters.json"
137+
},
138+
"Create a workspace which is ready for Customer-Managed Key (CMK) encryption": {
139+
"$ref": "./examples/PrepareEncryption.json"
140+
},
141+
"Enable Customer-Managed Key (CMK) encryption on a workspace which is prepared for encryption": {
142+
"$ref": "./examples/EnableEncryption.json"
143+
},
144+
"Revert Customer-Managed Key (CMK) encryption to Microsoft Managed Keys encryption on a workspace": {
145+
"$ref": "./examples/DisableEncryption.json"
137146
}
138147
},
139148
"parameters": [
@@ -466,7 +475,8 @@
466475
"$ref": "#/definitions/ErrorResponse"
467476
}
468477
}
469-
}
478+
},
479+
"x-ms-long-running-operation": true
470480
}
471481
},
472482
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Databricks/workspaces/{workspaceName}/virtualNetworkPeerings": {
@@ -621,6 +631,10 @@
621631
"readOnly": true,
622632
"description": "The workspace URL which is of the format 'adb-{workspaceId}.{random}.azuredatabricks.net'",
623633
"type": "string"
634+
},
635+
"storageAccountIdentity": {
636+
"description": "The details of Managed Identity of Storage Account",
637+
"$ref": "#/definitions/ManagedIdentityConfiguration"
624638
}
625639
},
626640
"required": [
@@ -735,6 +749,28 @@
735749
"modelAsString": true
736750
}
737751
},
752+
"ManagedIdentityConfiguration": {
753+
"description": "The Managed Identity details for storage account.",
754+
"properties": {
755+
"principalId": {
756+
"type": "string",
757+
"format": "uuid",
758+
"description": "The objectId of the Managed Identity that is linked to the Managed Storage account.",
759+
"readOnly": true
760+
},
761+
"tenantId": {
762+
"type": "string",
763+
"format": "uuid",
764+
"description": "The tenant Id where the Managed Identity is created.",
765+
"readOnly": true
766+
},
767+
"type": {
768+
"type": "string",
769+
"description": "The type of Identity created. It can be either SystemAssigned or UserAssigned.",
770+
"readOnly": true
771+
}
772+
}
773+
},
738774
"WorkspaceCustomParameterType": {
739775
"description": "Provisioning status of the workspace.",
740776
"readOnly": true,
@@ -814,6 +850,14 @@
814850
"enableNoPublicIp": {
815851
"$ref": "#/definitions/WorkspaceCustomBooleanParameter",
816852
"description": "Should the Public IP be Disabled?"
853+
},
854+
"prepareEncryption": {
855+
"$ref": "#/definitions/WorkspaceCustomBooleanParameter",
856+
"description": "Prepare the workspace for encryption. Enables the Managed Identity for managed storage account."
857+
},
858+
"encryption": {
859+
"$ref": "#/definitions/WorkspaceEncryptionParameter",
860+
"description": "Contains the encryption details for Customer-Managed Key (CMK) enabled workspace."
817861
}
818862
},
819863
"description": "Custom Parameters used for Cluster Creation."
@@ -846,6 +890,51 @@
846890
},
847891
"description": "Provides details of the entity that created/updated the workspace."
848892
},
893+
"WorkspaceEncryptionParameter": {
894+
"properties": {
895+
"type": {
896+
"$ref": "#/definitions/WorkspaceCustomParameterType",
897+
"description": "The type of variable that this is"
898+
},
899+
"value": {
900+
"$ref": "#/definitions/Encryption",
901+
"description": "The value which should be used for this field."
902+
}
903+
},
904+
"description": "The object that contains details of encryption used on the workspace."
905+
},
906+
"Encryption": {
907+
"properties": {
908+
"keySource": {
909+
"type": "string",
910+
"description": "The encryption keySource (provider). Possible values (case-insensitive): Default, Microsoft.Keyvault",
911+
"enum": [
912+
"Default",
913+
"Microsoft.Keyvault"
914+
],
915+
"x-ms-enum": {
916+
"name": "KeySource",
917+
"modelAsString": true
918+
},
919+
"default": "Default"
920+
},
921+
"KeyName": {
922+
"type": "string",
923+
"description": "The name of KeyVault key."
924+
},
925+
"keyversion": {
926+
"type": "string",
927+
"description": "The version of KeyVault key.",
928+
"x-ms-client-name": "KeyVersion"
929+
},
930+
"keyvaulturi": {
931+
"type": "string",
932+
"description": "The Uri of KeyVault.",
933+
"x-ms-client-name": "KeyVaultUri"
934+
}
935+
},
936+
"description": "The object that contains details of encryption used on the workspace."
937+
},
849938
"WorkspaceProviderAuthorization": {
850939
"properties": {
851940
"principalId": {
Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
{
2+
"parameters": {
3+
"subscriptionId": "subid",
4+
"resourceGroupName": "rg",
5+
"workspaceName": "myWorkspace",
6+
"api-version": "2018-04-01",
7+
"parameters": {
8+
"properties": {
9+
"managedResourceGroupId": "/subscriptions/subid/resourceGroups/myManagedRG",
10+
"parameters": {
11+
"encryption": {
12+
"value": {
13+
"keySource": "Default"
14+
}
15+
}
16+
}
17+
},
18+
"location": "westus"
19+
}
20+
},
21+
"responses": {
22+
"200": {
23+
"headers": {},
24+
"body": {
25+
"name": "myWorkspace",
26+
"id": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Databricks/workspaces/myWorkspace",
27+
"type": "Microsoft.Databricks/workspaces",
28+
"sku": {
29+
"name": "premium"
30+
},
31+
"location": "East US 2",
32+
"properties": {
33+
"managedResourceGroupId": "/subscriptions/subid/resourceGroups/myManagedRG",
34+
"parameters": {
35+
"customPrivateSubnetName": {
36+
"type": "String",
37+
"value": "PrivateBob"
38+
},
39+
"customPublicSubnetName": {
40+
"type": "String",
41+
"value": "PublicSarah"
42+
},
43+
"customVirtualNetworkId": {
44+
"type": "String",
45+
"value": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/myNetwork"
46+
},
47+
"prepareEncryption": {
48+
"type": "Bool",
49+
"value": true
50+
},
51+
"encryption": {
52+
"type": "Object",
53+
"value": {
54+
"keySource": "Default"
55+
}
56+
}
57+
},
58+
"provisioningState": "Succeeded",
59+
"uiDefinitionUri": "https://path/to/workspaceCreateUiDefinition.json",
60+
"authorizations": [
61+
{
62+
"principalId": "00000000-0000-0000-0000-000000000000",
63+
"roleDefinitionId": "11111111-1111-1111-1111-111111111111"
64+
}
65+
],
66+
"createdBy": {
67+
"oid": "22222222-2222-2222-2222-222222222222",
68+
"puid": "33333333",
69+
"applicationId": "44444444-4444-4444-4444-444444444444"
70+
},
71+
"storageAccountIdentity": {
72+
"principalId": "55555555-5555-5555-5555-555555555555",
73+
"tenantId": "66666666-6666-6666-6666-666666666666",
74+
"type": "SystemAssigned"
75+
},
76+
"updatedBy": {
77+
"oid": "22222222-2222-2222-2222-222222222222",
78+
"puid": "33333333",
79+
"applicationId": "44444444-4444-4444-4444-444444444444"
80+
},
81+
"createdDateTime": "2020-02-20T00:10:29.2858439Z",
82+
"workspaceId": "5555555555555555",
83+
"workspaceUrl": "adb-5555555555555555.19.azuredatabricks.net"
84+
}
85+
}
86+
},
87+
"201": {
88+
"headers": {},
89+
"body": {
90+
"name": "myWorkspace",
91+
"id": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Databricks/workspaces/myWorkspace",
92+
"type": "Microsoft.Databricks/workspaces",
93+
"location": "East US 2",
94+
"tags": {
95+
"environment": "dev"
96+
},
97+
"sku": {
98+
"name": "premium"
99+
},
100+
"properties": {
101+
"managedResourceGroupId": "/subscriptions/subid/resourceGroups/myManagedRG",
102+
"provisioningState": "Accepted",
103+
"uiDefinitionUri": "https://path/to/workspaceCreateUiDefinition.json",
104+
"authorizations": [
105+
{
106+
"principalId": "00000000-0000-0000-0000-000000000000",
107+
"roleDefinitionId": "11111111-1111-1111-1111-111111111111"
108+
}
109+
],
110+
"createdBy": {
111+
"oid": "22222222-2222-2222-2222-222222222222",
112+
"puid": "33333333",
113+
"applicationId": "44444444-4444-4444-4444-444444444444"
114+
},
115+
"updatedBy": {
116+
"oid": "22222222-2222-2222-2222-222222222222",
117+
"puid": "33333333",
118+
"applicationId": "44444444-4444-4444-4444-444444444444"
119+
},
120+
"createdDateTime": "2020-02-20T00:10:29.2858439Z",
121+
"storageAccountIdentity": {
122+
"principalId": "55555555-5555-5555-5555-555555555555",
123+
"tenantId": "66666666-6666-6666-6666-666666666666",
124+
"type": "SystemAssigned"
125+
}
126+
}
127+
}
128+
}
129+
}
130+
}

0 commit comments

Comments
 (0)