@drunk-pulumi/azure 0.0.25 → 0.0.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/MySql/index.js CHANGED
@@ -1,57 +1,109 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const Naming_1 = require("../Common/Naming");
4
- const azure = require("@pulumi/azure-native");
4
+ const dbformysql = require("@pulumi/azure-native/dbformysql");
5
5
  const Random_1 = require("../Core/Random");
6
6
  const CustomHelper_1 = require("../KeyVault/CustomHelper");
7
7
  const AzureEnv_1 = require("../Common/AzureEnv");
8
- exports.default = ({ name, group,
9
- //auth,
10
- version = azure.dbformysql.ServerVersion.ServerVersion_8_0_21, storageSizeGB = 20,
8
+ const Group_1 = require("../AzAd/Group");
9
+ const Role_1 = require("../AzAd/Role");
10
+ const Helper_1 = require("../KeyVault/Helper");
11
+ const UserIdentity_1 = require("../AzAd/UserIdentity");
12
+ const VaultPermissions_1 = require("../KeyVault/VaultPermissions");
13
+ const random_1 = require("@pulumi/random");
14
+ const PrivateEndpoint_1 = require("../VNet/PrivateEndpoint");
15
+ exports.default = ({ name, group, auth, enableEncryption, version = dbformysql.ServerVersion.ServerVersion_8_0_21, storageSizeGB = 20,
11
16
  /**
12
- [Standard_B1ms, Standard_B1s, Standard_B2ms, Standard_B2s, Standard_B4ms, Standard_B8ms, Standard_D16s_v3, Standard_D2s_v3, Standard_D32s_v3, Standard_D4s_v3, Standard_D64s_v3, Standard_D8s_v3, Standard_E16s_v3, Standard_E2s_v3, Standard_E32s_v3, Standard_E4s_v3, Standard_E64s_v3, Standard_E8s_v3, Standard_M128ms, Standard_M128s, Standard_M64ms, Standard_M64s, Standard_E48s_v3, Standard_D2ds_v4, Standard_D4ds_v4, Standard_D8ds_v4, Standard_D16ds_v4, Standard_D32ds_v4, Standard_D48ds_v4, Standard_D64ds_v4, Standard_E2ds_v4, Standard_E4ds_v4, Standard_E8ds_v4, Standard_E16ds_v4, Standard_E32ds_v4, Standard_E48ds_v4, Standard_E64ds_v4, Standard_D48s_v3, Standard_E20ds_v4, Standard_M8ms, Standard_M16ms, Standard_M32ts, Standard_M32ls, Standard_M32ms, Standard_M64ls, Standard_M64, Standard_M64m, Standard_M128, Standard_M128m, Standard_B12ms, Standard_B16ms, Standard_B20ms, Standard_D2ads_v5, Standard_D4ads_v5, Standard_D8ads_v5, Standard_D16ads_v5, Standard_D32ads_v5, Standard_D48ads_v5, Standard_D64ads_v5, Standard_D96ads_v5, Standard_E2ads_v5, Standard_E4ads_v5, Standard_E8ads_v5, Standard_E16ads_v5, Standard_E20ads_v5, Standard_E32ads_v5, Standard_E48ads_v5, Standard_E64ads_v5, Standard_E96ads_v5, Standard_D2_v5, Standard_D4_v5, Standard_D8_v5, Standard_D16_v5, Standard_D32_v5, Standard_D48_v5, Standard_D64_v5, Standard_D96_v5, Standard_D2ds_v5, Standard_D4ds_v5, Standard_D8ds_v5, Standard_D16ds_v5, Standard_D32ds_v5, Standard_D48ds_v5, Standard_D64ds_v5, Standard_D96ds_v5, Standard_E2ds_v5, Standard_E4ds_v5, Standard_E8ds_v5, Standard_E16ds_v5, Standard_E20ds_v5, Standard_E32ds_v5, Standard_E48ds_v5, Standard_E64ds_v5, Standard_E96ds_v5, Standard_E104ids_v5, Standard_E2bds_v5, Standard_E4bds_v5, Standard_E8bds_v5, Standard_E16bds_v5, Standard_E32bds_v5, Standard_E48bds_v5, Standard_E64bds_v5, Standard_E112iads_v5, Standard_M32dms_v2, Standard_M64ds_v2, Standard_M64dms_v2, Standard_M128ds_v2, Standard_M128dms_v2, Standard_M192ids_v2, Standard_M192idms_v2]
13
- */
17
+ [Standard_B1ms, Standard_B1s, Standard_B2ms, Standard_B2s, Standard_B4ms, Standard_B8ms, Standard_D16s_v3, Standard_D2s_v3, Standard_D32s_v3, Standard_D4s_v3, Standard_D64s_v3, Standard_D8s_v3, Standard_E16s_v3, Standard_E2s_v3, Standard_E32s_v3, Standard_E4s_v3, Standard_E64s_v3, Standard_E8s_v3, Standard_M128ms, Standard_M128s, Standard_M64ms, Standard_M64s, Standard_E48s_v3, Standard_D2ds_v4, Standard_D4ds_v4, Standard_D8ds_v4, Standard_D16ds_v4, Standard_D32ds_v4, Standard_D48ds_v4, Standard_D64ds_v4, Standard_E2ds_v4, Standard_E4ds_v4, Standard_E8ds_v4, Standard_E16ds_v4, Standard_E32ds_v4, Standard_E48ds_v4, Standard_E64ds_v4, Standard_D48s_v3, Standard_E20ds_v4, Standard_M8ms, Standard_M16ms, Standard_M32ts, Standard_M32ls, Standard_M32ms, Standard_M64ls, Standard_M64, Standard_M64m, Standard_M128, Standard_M128m, Standard_B12ms, Standard_B16ms, Standard_B20ms, Standard_D2ads_v5, Standard_D4ads_v5, Standard_D8ads_v5, Standard_D16ads_v5, Standard_D32ads_v5, Standard_D48ads_v5, Standard_D64ads_v5, Standard_D96ads_v5, Standard_E2ads_v5, Standard_E4ads_v5, Standard_E8ads_v5, Standard_E16ads_v5, Standard_E20ads_v5, Standard_E32ads_v5, Standard_E48ads_v5, Standard_E64ads_v5, Standard_E96ads_v5, Standard_D2_v5, Standard_D4_v5, Standard_D8_v5, Standard_D16_v5, Standard_D32_v5, Standard_D48_v5, Standard_D64_v5, Standard_D96_v5, Standard_D2ds_v5, Standard_D4ds_v5, Standard_D8ds_v5, Standard_D16ds_v5, Standard_D32ds_v5, Standard_D48ds_v5, Standard_D64ds_v5, Standard_D96ds_v5, Standard_E2ds_v5, Standard_E4ds_v5, Standard_E8ds_v5, Standard_E16ds_v5, Standard_E20ds_v5, Standard_E32ds_v5, Standard_E48ds_v5, Standard_E64ds_v5, Standard_E96ds_v5, Standard_E104ids_v5, Standard_E2bds_v5, Standard_E4bds_v5, Standard_E8bds_v5, Standard_E16bds_v5, Standard_E32bds_v5, Standard_E48bds_v5, Standard_E64bds_v5, Standard_E112iads_v5, Standard_M32dms_v2, Standard_M64ds_v2, Standard_M64dms_v2, Standard_M128ds_v2, Standard_M128dms_v2, Standard_M192ids_v2, Standard_M192idms_v2]
18
+ */
14
19
  sku = {
15
- name: 'Standard_B1ms',
16
- tier: 'Burstable',
20
+ name: "Standard_B1ms",
21
+ tier: "Burstable",
17
22
  }, network, databases, vaultInfo, dependsOn, }) => {
18
23
  name = (0, Naming_1.getMySqlName)(name);
19
- const username = 'MySqlAdmin';
20
- const password = (0, Random_1.randomPassword)({
21
- name,
22
- length: 25,
23
- options: { special: false },
24
- }).result;
25
- const mySql = new azure.dbformysql.Server(name, {
24
+ const username = auth?.adminLogin ||
25
+ new random_1.RandomString(name, {
26
+ special: false,
27
+ length: 5,
28
+ lower: true,
29
+ upper: false,
30
+ }).result.apply((r) => `mysql${r}`);
31
+ const password = auth?.password ??
32
+ (0, Random_1.randomPassword)({
33
+ name,
34
+ length: 25,
35
+ options: { special: false },
36
+ }).result;
37
+ const encryptKey = enableEncryption
38
+ ? (0, Helper_1.getEncryptionKey)(name, vaultInfo)
39
+ : undefined;
40
+ const userIdentity = enableEncryption
41
+ ? (0, UserIdentity_1.default)({ name, group })
42
+ : undefined;
43
+ if (userIdentity) {
44
+ //Allows to Read Key Vault
45
+ (0, VaultPermissions_1.grantVaultAccessToIdentity)({
46
+ name,
47
+ identity: userIdentity.principalId.apply((i) => ({ principalId: i })),
48
+ vaultInfo,
49
+ });
50
+ }
51
+ const mySql = new dbformysql.Server(name, {
26
52
  serverName: name,
27
53
  ...group,
28
54
  version,
29
- storage: { storageSizeGB },
30
- // authConfig: {
31
- // passwordAuth: 'Enabled',
32
- // activeDirectoryAuth: 'Enabled',
33
- // tenantId,
55
+ storage: {
56
+ storageSizeGB,
57
+ autoGrow: AzureEnv_1.isPrd ? "Enabled" : "Disabled",
58
+ autoIoScaling: AzureEnv_1.isPrd ? "Enabled" : "Disabled",
59
+ },
60
+ // identity: {
61
+ // type: dbformysql.ManagedServiceIdentityType.UserAssigned,
62
+ // userAssignedIdentities: {
63
+ // [userAssignedIdentityId]: {},
64
+ // },
34
65
  // },
35
66
  administratorLogin: username,
36
67
  administratorLoginPassword: password,
37
- dataEncryption: { type: 'SystemManaged' },
68
+ dataEncryption: encryptKey
69
+ ? {
70
+ type: dbformysql.DataEncryptionType.AzureKeyVault,
71
+ primaryUserAssignedIdentityId: userIdentity?.id,
72
+ primaryKeyURI: encryptKey.apply((c) => `https://${vaultInfo.name}.vault.azure.net/keys/${c.name}/${c.properties.version}`),
73
+ }
74
+ : { type: dbformysql.DataEncryptionType.SystemManaged },
38
75
  //maintenanceWindow: { dayOfWeek: 6 },
39
76
  sku,
40
- //network: {},
41
77
  backup: {
42
- geoRedundantBackup: AzureEnv_1.isPrd ? 'Enabled' : 'Disabled',
78
+ geoRedundantBackup: AzureEnv_1.isPrd ? "Enabled" : "Disabled",
43
79
  backupRetentionDays: AzureEnv_1.isPrd ? 7 : 1,
44
80
  },
45
- highAvailability: { mode: AzureEnv_1.isPrd ? 'ZoneRedundant' : 'Disabled' },
46
- //availabilityZone: isPrd ? 3 : 1,
81
+ highAvailability: {
82
+ mode: AzureEnv_1.isPrd ? "ZoneRedundant" : "Disabled",
83
+ standbyAvailabilityZone: "3",
84
+ },
85
+ availabilityZone: "1",
47
86
  }, {
48
87
  dependsOn,
49
88
  protect: true,
50
- ignoreChanges: ['administratorLogin', 'dataEncryption'],
89
+ ignoreChanges: ["administratorLogin", "dataEncryption"],
51
90
  });
91
+ if (auth?.enableAdAdministrator) {
92
+ const adminGroup = auth.envRoleNames
93
+ ? (0, Group_1.getAdGroup)(auth.envRoleNames.admin)
94
+ : (0, Role_1.default)({ env: AzureEnv_1.currentEnv, roleName: "ADMIN", appName: "MYSQL" });
95
+ new dbformysql.AzureADAdministrator(name, {
96
+ serverName: mySql.name,
97
+ ...group,
98
+ login: username,
99
+ administratorType: "ActiveDirectory",
100
+ sid: adminGroup.objectId,
101
+ tenantId: AzureEnv_1.tenantId,
102
+ });
103
+ }
52
104
  if (network) {
53
105
  if (network.firewallRules) {
54
- network.firewallRules.map((f, i) => new azure.dbformysql.FirewallRule(`${name}-firewall-${i}`, {
106
+ network.firewallRules.map((f, i) => new dbformysql.FirewallRule(`${name}-firewall-${i}`, {
55
107
  firewallRuleName: `${name}-firewall-${i}`,
56
108
  serverName: mySql.name,
57
109
  ...group,
@@ -59,13 +111,23 @@ sku = {
59
111
  }));
60
112
  }
61
113
  if (network.allowsPublicAccess)
62
- new azure.dbformysql.FirewallRule(`${name}-firewall-allowpublic`, {
114
+ new dbformysql.FirewallRule(`${name}-firewall-allowpublic`, {
63
115
  firewallRuleName: `${name}-firewall-allowpublic`,
64
116
  serverName: mySql.name,
65
117
  ...group,
66
- startIpAddress: '0.0.0.0',
67
- endIpAddress: '255.255.255.255',
118
+ startIpAddress: "0.0.0.0",
119
+ endIpAddress: "255.255.255.255",
68
120
  });
121
+ if (network.privateLink) {
122
+ (0, PrivateEndpoint_1.default)({
123
+ name,
124
+ group,
125
+ resourceId: mySql.id,
126
+ privateDnsZoneName: "mysql.database.azure.com",
127
+ linkServiceGroupIds: ["mysql"],
128
+ subnetId: network.privateLink.subnetId,
129
+ });
130
+ }
69
131
  }
70
132
  if (vaultInfo) {
71
133
  (0, CustomHelper_1.addCustomSecret)({
@@ -82,7 +144,7 @@ sku = {
82
144
  });
83
145
  }
84
146
  if (databases) {
85
- databases.map((d) => new azure.dbformysql.Database(`${name}-${d}`, {
147
+ databases.map((d) => new dbformysql.Database(`${name}-${d}`, {
86
148
  serverName: mySql.name,
87
149
  databaseName: d,
88
150
  ...group,
@@ -90,4 +152,4 @@ sku = {
90
152
  }
91
153
  return mySql;
92
154
  };
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvTXlTcWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSw2Q0FBZ0Q7QUFFaEQsOENBQThDO0FBQzlDLDJDQUFnRDtBQUVoRCwyREFBMkQ7QUFDM0QsaURBQTJDO0FBcUIzQyxrQkFBZSxDQUFDLEVBQ2QsSUFBSSxFQUNKLEtBQUs7QUFDTCxPQUFPO0FBQ1AsT0FBTyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLG9CQUFvQixFQUM3RCxhQUFhLEdBQUcsRUFBRTtBQUNsQjs7bUJBRW1CO0FBQ25CLEdBQUcsR0FBRztJQUNKLElBQUksRUFBRSxlQUFlO0lBQ3JCLElBQUksRUFBRSxXQUFXO0NBQ2xCLEVBQ0QsT0FBTyxFQUNQLFNBQVMsRUFDVCxTQUFTLEVBQ1QsU0FBUyxHQUNFLEVBQUUsRUFBRTtJQUNmLElBQUksR0FBRyxJQUFBLHFCQUFZLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFFMUIsTUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDO0lBQzlCLE1BQU0sUUFBUSxHQUFHLElBQUEsdUJBQWMsRUFBQztRQUM5QixJQUFJO1FBQ0osTUFBTSxFQUFFLEVBQUU7UUFDVixPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFO0tBQzVCLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFFVixNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUN2QyxJQUFJLEVBQ0o7UUFDRSxVQUFVLEVBQUUsSUFBSTtRQUNoQixHQUFHLEtBQUs7UUFDUixPQUFPO1FBQ1AsT0FBTyxFQUFFLEVBQUUsYUFBYSxFQUFFO1FBRTFCLGdCQUFnQjtRQUNoQiw2QkFBNkI7UUFDN0Isb0NBQW9DO1FBQ3BDLGNBQWM7UUFDZCxLQUFLO1FBRUwsa0JBQWtCLEVBQUUsUUFBUTtRQUM1QiwwQkFBMEIsRUFBRSxRQUFRO1FBQ3BDLGNBQWMsRUFB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
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvTXlTcWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSw2Q0FBZ0Q7QUFFaEQsOERBQThEO0FBQzlELDJDQUFnRDtBQUVoRCwyREFBMkQ7QUFDM0QsaURBQWlFO0FBQ2pFLHlDQUEyQztBQUMzQyx1Q0FBZ0M7QUFFaEMsK0NBQXNEO0FBQ3RELHVEQUFnRDtBQUNoRCxtRUFBMEU7QUFDMUUsMkNBQThDO0FBQzlDLDZEQUFzRDtBQTRCdEQsa0JBQWUsQ0FBQyxFQUNkLElBQUksRUFDSixLQUFLLEVBQ0wsSUFBSSxFQUNKLGdCQUFnQixFQUNoQixPQUFPLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsRUFDdkQsYUFBYSxHQUFHLEVBQUU7QUFDbEI7O0dBRUc7QUFDSCxHQUFHLEdBQUc7SUFDSixJQUFJLEVBQUUsZUFBZTtJQUNyQixJQUFJLEVBQUUsV0FBVztDQUNsQixFQUNELE9BQU8sRUFDUCxTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsR0FDRSxFQUFFLEVBQUU7SUFDZixJQUFJLEdBQUcsSUFBQSxxQkFBWSxFQUFDLElBQUksQ0FBQyxDQUFDO0lBRTFCLE1BQU0sUUFBUSxHQUNaLElBQUksRUFBRSxVQUFVO1FBQ2hCLElBQUkscUJBQVksQ0FBQyxJQUFJLEVBQUU7WUFDckIsT0FBTyxFQUFFLEtBQUs7WUFDZCxNQUFNLEVBQUUsQ0FBQztZQUNULEtBQUssRUFBRSxJQUFJO1lBQ1gsS0FBSyxFQUFFLEtBQUs7U0FDYixDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXRDLE1BQU0sUUFBUSxHQUNaLElBQUksRUFBRSxRQUFRO1FBQ2QsSUFBQSx1QkFBYyxFQUFDO1lBQ2IsSUFBSTtZQUNKLE1BQU0sRUFBRSxFQUFFO1lBQ1YsT0FBTyxFQUFF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
@@ -1,7 +1,7 @@
1
- import { BasicResourceArgs, KeyVaultInfo } from '../types';
2
- import * as pulumi from '@pulumi/pulumi';
3
- import * as azure from '@pulumi/azure-native';
4
- import * as inputs from '@pulumi/azure-native/types/input';
1
+ import { BasicResourceArgs, KeyVaultInfo } from "../types";
2
+ import * as pulumi from "@pulumi/pulumi";
3
+ import * as azure from "@pulumi/azure-native";
4
+ import * as inputs from "@pulumi/azure-native/types/input";
5
5
  export interface PostgresProps extends BasicResourceArgs {
6
6
  sku?: pulumi.Input<inputs.dbforpostgresql.SkuArgs>;
7
7
  vaultInfo?: KeyVaultInfo;
@@ -10,6 +10,9 @@ export interface PostgresProps extends BasicResourceArgs {
10
10
  databases?: Array<string>;
11
11
  network?: {
12
12
  allowsPublicAccess?: boolean;
13
+ privateLink?: {
14
+ subnetId: pulumi.Input<string>;
15
+ };
13
16
  firewallRules?: Array<{
14
17
  startIpAddress: string;
15
18
  endIpAddress: string;
@@ -5,6 +5,8 @@ const azure = require("@pulumi/azure-native");
5
5
  const AzureEnv_1 = require("../Common/AzureEnv");
6
6
  const Random_1 = require("../Core/Random");
7
7
  const CustomHelper_1 = require("../KeyVault/CustomHelper");
8
+ const random_1 = require("@pulumi/random");
9
+ const PrivateEndpoint_1 = require("../VNet/PrivateEndpoint");
8
10
  exports.default = ({ name, group,
9
11
  //auth,
10
12
  version = azure.dbforpostgresql.ServerVersion.ServerVersion_14, storageSizeGB = 128,
@@ -12,11 +14,16 @@ version = azure.dbforpostgresql.ServerVersion.ServerVersion_14, storageSizeGB =
12
14
  [Standard_B1ms, Standard_B1s, Standard_B2ms, Standard_B2s, Standard_B4ms, Standard_B8ms, Standard_D16s_v3, Standard_D2s_v3, Standard_D32s_v3, Standard_D4s_v3, Standard_D64s_v3, Standard_D8s_v3, Standard_E16s_v3, Standard_E2s_v3, Standard_E32s_v3, Standard_E4s_v3, Standard_E64s_v3, Standard_E8s_v3, Standard_M128ms, Standard_M128s, Standard_M64ms, Standard_M64s, Standard_E48s_v3, Standard_D2ds_v4, Standard_D4ds_v4, Standard_D8ds_v4, Standard_D16ds_v4, Standard_D32ds_v4, Standard_D48ds_v4, Standard_D64ds_v4, Standard_E2ds_v4, Standard_E4ds_v4, Standard_E8ds_v4, Standard_E16ds_v4, Standard_E32ds_v4, Standard_E48ds_v4, Standard_E64ds_v4, Standard_D48s_v3, Standard_E20ds_v4, Standard_M8ms, Standard_M16ms, Standard_M32ts, Standard_M32ls, Standard_M32ms, Standard_M64ls, Standard_M64, Standard_M64m, Standard_M128, Standard_M128m, Standard_B12ms, Standard_B16ms, Standard_B20ms, Standard_D2ads_v5, Standard_D4ads_v5, Standard_D8ads_v5, Standard_D16ads_v5, Standard_D32ads_v5, Standard_D48ads_v5, Standard_D64ads_v5, Standard_D96ads_v5, Standard_E2ads_v5, Standard_E4ads_v5, Standard_E8ads_v5, Standard_E16ads_v5, Standard_E20ads_v5, Standard_E32ads_v5, Standard_E48ads_v5, Standard_E64ads_v5, Standard_E96ads_v5, Standard_D2_v5, Standard_D4_v5, Standard_D8_v5, Standard_D16_v5, Standard_D32_v5, Standard_D48_v5, Standard_D64_v5, Standard_D96_v5, Standard_D2ds_v5, Standard_D4ds_v5, Standard_D8ds_v5, Standard_D16ds_v5, Standard_D32ds_v5, Standard_D48ds_v5, Standard_D64ds_v5, Standard_D96ds_v5, Standard_E2ds_v5, Standard_E4ds_v5, Standard_E8ds_v5, Standard_E16ds_v5, Standard_E20ds_v5, Standard_E32ds_v5, Standard_E48ds_v5, Standard_E64ds_v5, Standard_E96ds_v5, Standard_E104ids_v5, Standard_E2bds_v5, Standard_E4bds_v5, Standard_E8bds_v5, Standard_E16bds_v5, Standard_E32bds_v5, Standard_E48bds_v5, Standard_E64bds_v5, Standard_E112iads_v5, Standard_M32dms_v2, Standard_M64ds_v2, Standard_M64dms_v2, Standard_M128ds_v2, Standard_M128dms_v2, Standard_M192ids_v2, Standard_M192idms_v2]
13
15
  */
14
16
  sku = {
15
- name: 'Standard_B1ms',
16
- tier: 'Burstable',
17
+ name: "Standard_B1ms",
18
+ tier: "Burstable",
17
19
  }, network, databases, vaultInfo, dependsOn, }) => {
18
20
  name = (0, Naming_1.getPostgresqlName)(name);
19
- const username = 'postgresadmin';
21
+ const username = new random_1.RandomString(name, {
22
+ special: false,
23
+ length: 5,
24
+ lower: true,
25
+ upper: false,
26
+ }).result.apply((r) => `postgres${r}`);
20
27
  const password = (0, Random_1.randomPassword)({
21
28
  name,
22
29
  length: 25,
@@ -28,26 +35,26 @@ sku = {
28
35
  version,
29
36
  storage: { storageSizeGB },
30
37
  authConfig: {
31
- passwordAuth: 'Enabled',
32
- activeDirectoryAuth: 'Enabled',
38
+ passwordAuth: "Enabled",
39
+ activeDirectoryAuth: "Enabled",
33
40
  tenantId: AzureEnv_1.tenantId,
34
41
  },
35
42
  administratorLogin: username,
36
43
  administratorLoginPassword: password,
37
- dataEncryption: { type: 'SystemManaged' },
44
+ dataEncryption: { type: "SystemManaged" },
38
45
  //maintenanceWindow: { dayOfWeek: 6 },
39
46
  sku,
40
47
  //network: {},
41
48
  backup: {
42
- geoRedundantBackup: AzureEnv_1.isPrd ? 'Enabled' : 'Disabled',
49
+ geoRedundantBackup: AzureEnv_1.isPrd ? "Enabled" : "Disabled",
43
50
  backupRetentionDays: 7,
44
51
  },
45
- highAvailability: { mode: AzureEnv_1.isPrd ? 'ZoneRedundant' : 'Disabled' },
52
+ highAvailability: { mode: AzureEnv_1.isPrd ? "ZoneRedundant" : "Disabled" },
46
53
  //availabilityZone: isPrd ? 3 : 1,
47
54
  }, {
48
55
  dependsOn,
49
56
  protect: true,
50
- ignoreChanges: ['administratorLogin', 'dataEncryption'],
57
+ ignoreChanges: ["administratorLogin", "dataEncryption"],
51
58
  });
52
59
  if (network) {
53
60
  if (network.firewallRules) {
@@ -63,9 +70,19 @@ sku = {
63
70
  firewallRuleName: `${name}-firewall-allowpublic`,
64
71
  serverName: postgres.name,
65
72
  ...group,
66
- startIpAddress: '0.0.0.0',
67
- endIpAddress: '255.255.255.255',
73
+ startIpAddress: "0.0.0.0",
74
+ endIpAddress: "255.255.255.255",
68
75
  });
76
+ if (network.privateLink) {
77
+ (0, PrivateEndpoint_1.default)({
78
+ name,
79
+ group,
80
+ resourceId: postgres.id,
81
+ privateDnsZoneName: "postgres.database.azure.com",
82
+ linkServiceGroupIds: ["postgresql"],
83
+ subnetId: network.privateLink.subnetId,
84
+ });
85
+ }
69
86
  }
70
87
  if (vaultInfo) {
71
88
  (0, CustomHelper_1.addCustomSecret)({
@@ -90,4 +107,4 @@ sku = {
90
107
  }
91
108
  return postgres;
92
109
  };
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvUG9zdGdyZXNxbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLDZDQUFxRDtBQUVyRCw4Q0FBOEM7QUFDOUMsaURBQXFEO0FBQ3JELDJDQUFnRDtBQUVoRCwyREFBMkQ7QUFxQjNELGtCQUFlLENBQUMsRUFDZCxJQUFJLEVBQ0osS0FBSztBQUNMLE9BQU87QUFDUCxPQUFPLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLEVBQzlELGFBQWEsR0FBRyxHQUFHO0FBQ25COztHQUVHO0FBQ0gsR0FBRyxHQUFHO0lBQ0osSUFBSSxFQUFFLGVBQWU7SUFDckIsSUFBSSxFQUFFLFdBQVc7Q0FDbEIsRUFDRCxPQUFPLEVBQ1AsU0FBUyxFQUNULFNBQVMsRUFDVCxTQUFTLEdBQ0ssRUFBRSxFQUFFO0lBQ2xCLElBQUksR0FBRyxJQUFBLDBCQUFpQixFQUFDLElBQUksQ0FBQyxDQUFDO0lBRS9CLE1BQU0sUUFBUSxHQUFHLGVBQWUsQ0FBQztJQUNqQyxNQUFNLFFBQVEsR0FBRyxJQUFBLHVCQUFjLEVBQUM7UUFDOUIsSUFBSTtRQUNKLE1BQU0sRUFBRSxFQUFFO1FBQ1YsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRTtLQUM1QixDQUFDLENBQUMsTUFBTSxDQUFDO0lBRVYsTUFBTSxRQUFRLEdBQUcsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FDL0MsSUFBSSxFQUNKO1FBQ0UsVUFBVSxFQUFFLElBQUk7UUFDaEIsR0FBRyxLQUFLO1FBQ1IsT0FBTztRQUNQLE9BQU8sRUFBRSxFQUFFLGFBQWEsRUFBRTtRQUUxQixVQUFVLEVBQUU7WUFDVixZQUFZLEVBQUUsU0FBUztZQUN2QixtQkFBbUIsRUFBRSxTQUFTO1lBQzlCLFFBQVEsRUFBUixtQkFBUTtTQUNUO1FBQ0Qsa0JBQWtCLEVBQUUsUUFBUTtRQUM1Qiww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
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvUG9zdGdyZXNxbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLDZDQUFxRDtBQUVyRCw4Q0FBOEM7QUFDOUMsaURBQXFEO0FBQ3JELDJDQUFnRDtBQUVoRCwyREFBMkQ7QUFDM0QsMkNBQThDO0FBQzlDLDZEQUFzRDtBQXdCdEQsa0JBQWUsQ0FBQyxFQUNkLElBQUksRUFDSixLQUFLO0FBQ0wsT0FBTztBQUNQLE9BQU8sR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsRUFDOUQsYUFBYSxHQUFHLEdBQUc7QUFDbkI7O0dBRUc7QUFDSCxHQUFHLEdBQUc7SUFDSixJQUFJLEVBQUUsZUFBZTtJQUNyQixJQUFJLEVBQUUsV0FBVztDQUNsQixFQUNELE9BQU8sRUFDUCxTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsR0FDSyxFQUFFLEVBQUU7SUFDbEIsSUFBSSxHQUFHLElBQUEsMEJBQWlCLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFFL0IsTUFBTSxRQUFRLEdBQUcsSUFBSSxxQkFBWSxDQUFDLElBQUksRUFBRTtRQUN0QyxPQUFPLEVBQUUsS0FBSztRQUNkLE1BQU0sRUFBRSxDQUFDO1FBQ1QsS0FBSyxFQUFFLElBQUk7UUFDWCxLQUFLLEVBQUUsS0FBSztLQUNiLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdkMsTUFBTSxRQUFRLEdBQUcsSUFBQSx1QkFBYyxFQUFDO1FBQzlCLElBQUk7UUFDSixNQUFNLEVBQUUsRUFBRTtRQUNWLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUU7S0FDNUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUVWLE1BQU0sUUFBUSxHQUFHLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxNQUFN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
package/Sql/SqlDb.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import * as sql from '@pulumi/azure-native/sql';
2
- import { BasicResourceArgs, BasicResourceResultProps } from '../types';
3
- import { Input, Output, Resource } from '@pulumi/pulumi';
4
- export type SqlDbSku = 'Basic' | 'S0' | 'S1' | 'S2' | 'S3' | 'P1' | 'P2' | 'P4' | 'P6' | 'P11';
1
+ import * as sql from "@pulumi/azure-native/sql";
2
+ import { BasicResourceArgs, BasicResourceResultProps } from "../types";
3
+ import { Input, Output, Resource } from "@pulumi/pulumi";
4
+ export type SqlDbSku = "Basic" | "S0" | "S1" | "S2" | "S3" | "P1" | "P2" | "P4" | "P6" | "P11";
5
5
  export interface SqlDbProps extends BasicResourceArgs {
6
6
  sqlServerName: Input<string>;
7
7
  elasticPoolId?: Output<string>;
package/Sql/SqlDb.js CHANGED
@@ -5,11 +5,11 @@ const AzureEnv_1 = require("../Common/AzureEnv");
5
5
  const Naming_1 = require("../Common/Naming");
6
6
  const Locker_1 = require("../Core/Locker");
7
7
  //https://blog.bredvid.no/handling-azure-managed-identity-access-to-azure-sql-in-an-azure-devops-pipeline-1e74e1beb10b
8
- exports.default = ({ group, name, sqlServerName, elasticPoolId, sku = 'S0', lock, dependsOn, }) => {
8
+ exports.default = ({ group, name, sqlServerName, elasticPoolId, sku = "S0", lock, dependsOn, }) => {
9
9
  name = (0, Naming_1.getSqlDbName)(name);
10
10
  const sqlDb = new sql.Database(name, {
11
11
  databaseName: name,
12
- createMode: 'Default',
12
+ createMode: "Default",
13
13
  ...group,
14
14
  serverName: sqlServerName,
15
15
  elasticPoolId,
@@ -21,21 +21,21 @@ exports.default = ({ group, name, sqlServerName, elasticPoolId, sku = 'S0', lock
21
21
  // capacity: 5,
22
22
  },
23
23
  //zoneRedundant: isPrd,
24
- requestedBackupStorageRedundancy: AzureEnv_1.isPrd ? 'Zone' : 'Local',
24
+ requestedBackupStorageRedundancy: AzureEnv_1.isPrd ? "Zone" : "Local",
25
25
  }, { dependsOn });
26
26
  if (lock) {
27
27
  (0, Locker_1.default)({ name, resourceId: sqlDb.id, dependsOn: sqlDb });
28
28
  }
29
29
  //By Default is 7 Day
30
- if (AzureEnv_1.isPrd) {
31
- new sql.BackupShortTermRetentionPolicy(name, {
32
- policyName: 'default',
33
- serverName: sqlServerName,
34
- ...group,
35
- databaseName: sqlDb.name,
36
- retentionDays: 7,
37
- });
38
- }
30
+ // if (isPrd) {
31
+ // new sql.BackupShortTermRetentionPolicy(name, {
32
+ // policyName: 'default',
33
+ // serverName: sqlServerName,
34
+ // ...group,
35
+ // databaseName: sqlDb.name,
36
+ // retentionDays: 7,
37
+ // });
38
+ // }
39
39
  return { name, resource: sqlDb };
40
40
  };
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3FsRGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU3FsL1NxbERiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsZ0RBQWdEO0FBS2hELGlEQUE0QztBQUM1Qyw2Q0FBZ0Q7QUFDaEQsMkNBQW9DO0FBdUJwQyxzSEFBc0g7QUFDdEgsa0JBQWUsQ0FBQyxFQUNkLEtBQUssRUFDTCxJQUFJLEVBQ0osYUFBYSxFQUNiLGFBQWEsRUFDYixHQUFHLEdBQUcsSUFBSSxFQUNWLElBQUksRUFDSixTQUFTLEdBQ0UsRUFBMEMsRUFBRTtJQUN2RCxJQUFJLEdBQUcsSUFBQSxxQkFBWSxFQUFDLElBQUksQ0FBQyxDQUFDO0lBRTFCLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FDNUIsSUFBSSxFQUNKO1FBQ0UsWUFBWSxFQUFFLElBQUk7UUFDbEIsVUFBVSxFQUFFLFNBQVM7UUFDckIsR0FBRyxLQUFLO1FBQ1IsVUFBVSxFQUFFLGFBQWE7UUFDekIsYUFBYTtRQUViLEdBQUcsRUFBRSxhQUFhO1lBQ2hCLENBQUMsQ0FBQyxTQUFTO1lBQ1gsQ0FBQyxDQUFDO2dCQUNFLElBQUksRUFBRSxHQUFHO2dCQUNULGlCQUFpQjtnQkFDakIsZUFBZTthQUNoQjtRQUNMLHVCQUF1QjtRQUN2QixnQ0FBZ0MsRUFBRSxnQkFBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU87S0FFM0QsRUFDRCxFQUFFLFNBQVMsRUFBRSxDQUNkLENBQUM7SUFFRixJQUFJLElBQUksRUFBRSxDQUFDO1FBQ1QsSUFBQSxnQkFBTSxFQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxxQkFBcUI7SUFDckIsSUFBSSxnQkFBSyxFQUFFLENBQUM7UUFDVixJQUFJLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQyxJQUFJLEVBQUU7WUFDM0MsVUFBVSxFQUFFLFNBQVM7WUFDckIsVUFBVSxFQUFFLGFBQWE7WUFDekIsR0FBRyxLQUFLO1lBQ1IsWUFBWSxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ3hCLGFBQWEsRUFBRSxDQUFDO1NBQ2pCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQztBQUNuQyxDQUFDLENBQUMifQ==
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3FsRGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU3FsL1NxbERiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsZ0RBQWdEO0FBS2hELGlEQUEyQztBQUMzQyw2Q0FBZ0Q7QUFDaEQsMkNBQW9DO0FBdUJwQyxzSEFBc0g7QUFDdEgsa0JBQWUsQ0FBQyxFQUNkLEtBQUssRUFDTCxJQUFJLEVBQ0osYUFBYSxFQUNiLGFBQWEsRUFDYixHQUFHLEdBQUcsSUFBSSxFQUNWLElBQUksRUFDSixTQUFTLEdBQ0UsRUFBMEMsRUFBRTtJQUN2RCxJQUFJLEdBQUcsSUFBQSxxQkFBWSxFQUFDLElBQUksQ0FBQyxDQUFDO0lBRTFCLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FDNUIsSUFBSSxFQUNKO1FBQ0UsWUFBWSxFQUFFLElBQUk7UUFDbEIsVUFBVSxFQUFFLFNBQVM7UUFDckIsR0FBRyxLQUFLO1FBQ1IsVUFBVSxFQUFFLGFBQWE7UUFDekIsYUFBYTtRQUViLEdBQUcsRUFBRSxhQUFhO1lBQ2hCLENBQUMsQ0FBQyxTQUFTO1lBQ1gsQ0FBQyxDQUFDO2dCQUNFLElBQUksRUFBRSxHQUFHO2dCQUNULGlCQUFpQjtnQkFDakIsZUFBZTthQUNoQjtRQUNMLHVCQUF1QjtRQUN2QixnQ0FBZ0MsRUFBRSxnQkFBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU87S0FDM0QsRUFDRCxFQUFFLFNBQVMsRUFBRSxDQUNkLENBQUM7SUFFRixJQUFJLElBQUksRUFBRSxDQUFDO1FBQ1QsSUFBQSxnQkFBTSxFQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxxQkFBcUI7SUFDckIsZUFBZTtJQUNmLG1EQUFtRDtJQUNuRCw2QkFBNkI7SUFDN0IsaUNBQWlDO0lBQ2pDLGdCQUFnQjtJQUNoQixnQ0FBZ0M7SUFDaEMsd0JBQXdCO0lBQ3hCLFFBQVE7SUFDUixJQUFJO0lBRUosT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUM7QUFDbkMsQ0FBQyxDQUFDIn0=
package/Sql/index.js CHANGED
@@ -13,6 +13,7 @@ const PrivateEndpoint_1 = require("../VNet/PrivateEndpoint");
13
13
  const SqlDb_1 = require("./SqlDb");
14
14
  const CustomHelper_1 = require("../KeyVault/CustomHelper");
15
15
  const Role_1 = require("../AzAd/Role");
16
+ const VaultPermissions_1 = require("../KeyVault/VaultPermissions");
16
17
  const createElasticPool = ({ group, name, sqlName,
17
18
  //Minimum is 50 GD
18
19
  maxSizeBytesGb = 50, sku = { name: AzureEnv_1.isPrd ? "Standard" : "Basic", capacity: 50 }, lock = true, }) => {
@@ -54,7 +55,7 @@ exports.default = ({ name, auth, group, enableEncryption, elasticPool, databases
54
55
  // password: login.password,
55
56
  // };
56
57
  // }
57
- const adminGroup = auth?.enableAdAdministrator
58
+ const adminGroup = auth?.enableAdAdministrator || auth.azureAdOnlyAuthentication
58
59
  ? auth.envRoleNames
59
60
  ? (0, Group_1.getAdGroup)(auth.envRoleNames.admin)
60
61
  : (0, Role_1.default)({ env: AzureEnv_1.currentEnv, roleName: "ADMIN", appName: "SQL" })
@@ -69,10 +70,9 @@ exports.default = ({ name, auth, group, enableEncryption, elasticPool, databases
69
70
  minimalTlsVersion: "1.2",
70
71
  identity: { type: "SystemAssigned" },
71
72
  administratorLogin: auth?.adminLogin,
72
- administratorLoginPassword: auth.azureAdOnlyAuthentication
73
- ? undefined
74
- : auth?.password,
75
- administrators: auth?.enableAdAdministrator && adminGroup
73
+ administratorLoginPassword: auth?.password,
74
+ administrators: (auth?.enableAdAdministrator || auth.azureAdOnlyAuthentication) &&
75
+ adminGroup
76
76
  ? {
77
77
  administratorType: sql.AdministratorType.ActiveDirectory,
78
78
  azureADOnlyAuthentication: auth.azureAdOnlyAuthentication,
@@ -89,6 +89,8 @@ exports.default = ({ name, auth, group, enableEncryption, elasticPool, databases
89
89
  ignoreChanges,
90
90
  protect: lock,
91
91
  });
92
+ //Allows to Read Key Vault
93
+ (0, VaultPermissions_1.grantVaultAccessToIdentity)({ name, identity: sqlServer.identity, vaultInfo });
92
94
  if (lock) {
93
95
  (0, Locker_1.default)({ name: sqlName, resourceId: sqlServer.id, dependsOn: sqlServer });
94
96
  }
@@ -205,19 +207,22 @@ exports.default = ({ name, auth, group, enableEncryption, elasticPool, databases
205
207
  }
206
208
  if (encryptKey) {
207
209
  // Enable a server key in the SQL Server with reference to the Key Vault Key
208
- new sql.ServerKey(`${sqlName}-serverKey`, {
210
+ const keyName = encryptKey.apply((c) => `${vaultInfo.name}_${c.name}_${c.properties.version}`);
211
+ const serverKey = new sql.ServerKey(`${sqlName}-serverKey`, {
209
212
  resourceGroupName: group.resourceGroupName,
210
213
  serverName: sqlName,
211
214
  serverKeyType: "AzureKeyVault",
212
- keyName: encryptKey.apply((c) => c.name),
213
- uri: encryptKey.apply((c) => `${c.properties.vaultUrl}/keys/${c.name}`),
214
- });
215
+ keyName,
216
+ uri: encryptKey.apply((c) => `https://${vaultInfo.name}.vault.azure.net/keys/${c.name}/${c.properties.version}`),
217
+ }, { ignoreChanges: ["keyName", "uri"] });
215
218
  new sql.EncryptionProtector(`${sqlName}-encryptionProtector`, {
219
+ encryptionProtectorName: "current",
216
220
  resourceGroupName: group.resourceGroupName,
217
221
  serverName: sqlName,
218
222
  serverKeyType: "AzureKeyVault",
223
+ serverKeyName: keyName,
219
224
  autoRotationEnabled: true,
220
- });
225
+ }, { dependsOn: serverKey });
221
226
  }
222
227
  const dbs = databases?.map((db) => {
223
228
  const d = (0, SqlDb_1.default)({
@@ -227,15 +232,15 @@ exports.default = ({ name, auth, group, enableEncryption, elasticPool, databases
227
232
  dependsOn: sqlServer,
228
233
  elasticPoolId: ep ? ep.resource.id : undefined,
229
234
  });
230
- if (encryptKey) {
231
- //Enable TransparentDataEncryption for each database
232
- new sql.TransparentDataEncryption(`${sqlName}-${db.name}`, {
233
- serverName: sqlName,
234
- databaseName: db.name,
235
- resourceGroupName: group.resourceGroupName,
236
- state: "Enabled",
237
- });
238
- }
235
+ // if (encryptKey) {
236
+ // //Enable TransparentDataEncryption for each database
237
+ // new sql.TransparentDataEncryption(`${sqlName}-${db.name}`, {
238
+ // serverName: sqlName,
239
+ // databaseName: d.name,
240
+ // resourceGroupName: group.resourceGroupName,
241
+ // state: "Enabled",
242
+ // });
243
+ // }
239
244
  if (vaultInfo) {
240
245
  const connectionString = auth?.adminLogin
241
246
  ? (0, pulumi_1.interpolate) `Data Source=${sqlName}.database.windows.net;Initial Catalog=${d.name};User Id=${auth.adminLogin};Password=${auth.password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=120;`
@@ -258,4 +263,4 @@ exports.default = ({ name, auth, group, enableEncryption, elasticPool, databases
258
263
  adminGroup,
259
264
  };
260
265
  };
261
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU3FsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsZ0RBQWdEO0FBQ2hELDJDQUFpRTtBQUNqRSwrQ0FBc0Q7QUFFdEQseUNBQTJDO0FBQzNDLDJEQUF3RDtBQUN4RCxpREFLNEI7QUFDNUIsNkNBQXdFO0FBQ3hFLDJDQUFvQztBQU9wQywyQ0FBa0Q7QUFDbEQsNkRBQTZEO0FBQzdELG1DQUFtRDtBQUNuRCwyREFBMkQ7QUFDM0QsdUNBQWdDO0FBWWhDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxFQUN6QixLQUFLLEVBQ0wsSUFBSSxFQUNKLE9BQU87QUFDUCxrQkFBa0I7QUFDbEIsY0FBYyxHQUFHLEVBQUUsRUFDbkIsR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFFLGdCQUFLLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFDMUQsSUFBSSxHQUFHLElBQUksR0FDTSxFQUE2QyxFQUFFO0lBQ2hFLG9CQUFvQjtJQUNwQixNQUFNLFdBQVcsR0FBRyxJQUFBLDJCQUFrQixFQUFDLElBQUksQ0FBQyxDQUFDO0lBRTdDLE1BQU0sRUFBRSxHQUFHLElBQUksR0FBRyxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUU7UUFDMUMsZUFBZSxFQUFFLFdBQVc7UUFDNUIsVUFBVSxFQUFFLE9BQU87UUFDbkIsR0FBRyxLQUFLO1FBRVIsWUFBWSxFQUFFLGdCQUFLLENBQUMsQ0FBQyxDQUFDLGNBQWMsR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUztRQUNyRSxHQUFHLEVBQUU7WUFDSCxJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUMsSUFBSSxNQUFNO1lBQ3ZCLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSTtZQUNkLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUTtTQUN2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
266
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU3FsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsZ0RBQWdEO0FBQ2hELDJDQUFpRTtBQUNqRSwrQ0FBc0Q7QUFFdEQseUNBQTJDO0FBQzNDLDJEQUF3RDtBQUN4RCxpREFLNEI7QUFDNUIsNkNBQXdFO0FBQ3hFLDJDQUFvQztBQU9wQywyQ0FBa0Q7QUFDbEQsNkRBQTZEO0FBQzdELG1DQUFtRDtBQUNuRCwyREFBMkQ7QUFDM0QsdUNBQWdDO0FBQ2hDLG1FQUEwRTtBQVkxRSxNQUFNLGlCQUFpQixHQUFHLENBQUMsRUFDekIsS0FBSyxFQUNMLElBQUksRUFDSixPQUFPO0FBQ1Asa0JBQWtCO0FBQ2xCLGNBQWMsR0FBRyxFQUFFLEVBQ25CLEdBQUcsR0FBRyxFQUFFLElBQUksRUFBRSxnQkFBSyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQzFELElBQUksR0FBRyxJQUFJLEdBQ00sRUFBNkMsRUFBRTtJQUNoRSxvQkFBb0I7SUFDcEIsTUFBTSxXQUFXLEdBQUcsSUFBQSwyQkFBa0IsRUFBQyxJQUFJLENBQUMsQ0FBQztJQUU3QyxNQUFNLEVBQUUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFO1FBQzFDLGVBQWUsRUFBRSxXQUFXO1FBQzVCLFVBQVUsRUFBRSxPQUFPO1FBQ25CLEdBQUcsS0FBSztRQUVSLFlBQVksRUFBRSxnQkFBSyxDQUFDLENBQUMsQ0FBQyxjQUFjLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDckUsR0FBRyxFQUFFO1lBQ0gsSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFDLElBQUksTUFBTTtZQUN2QixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7WUFDZCxRQUFRLEVBQUUsR0FBRyxD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
package/Storage/index.js CHANGED
@@ -9,6 +9,7 @@ const Naming_1 = require("../Common/Naming");
9
9
  const CustomHelper_1 = require("../KeyVault/CustomHelper");
10
10
  const Locker_1 = require("../Core/Locker");
11
11
  const ManagementRules_1 = require("./ManagementRules");
12
+ const VaultPermissions_1 = require("../KeyVault/VaultPermissions");
12
13
  /** Storage Creator */
13
14
  exports.default = ({ name, group, customDomain, allowsCors, vaultInfo, defaultManagementRules, containers = [], queues = [], fileShares = [],
14
15
  //appInsight,
@@ -205,7 +206,8 @@ network, featureFlags = {}, policies = { keyExpirationPeriodInDays: 365 }, lock
205
206
  stg.id.apply(async (id) => {
206
207
  if (!id)
207
208
  return;
208
- stg.identity.apply((i) => console.log("Add this ID into Key Vault ReadOnly Group to allows custom key encryption:", i.principalId));
209
+ //Allows to Read Key Vault
210
+ (0, VaultPermissions_1.grantVaultAccessToIdentity)({ name, identity: stg.identity, vaultInfo });
209
211
  const keys = (await storage.listStorageAccountKeys({
210
212
  accountName: name,
211
213
  resourceGroupName: group.resourceGroupName,
@@ -254,4 +256,4 @@ network, featureFlags = {}, policies = { keyExpirationPeriodInDays: 365 }, lock
254
256
  : undefined,
255
257
  };
256
258
  };
257
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU3RvcmFnZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHdEQUF3RDtBQUl4RCw2Q0FBeUQ7QUFDekQsK0NBQWlFO0FBQ2pFLGlEQUEyQztBQUMzQywrQ0FBdUM7QUFFdkMsNkNBSTBCO0FBQzFCLDJEQUE0RDtBQUM1RCwyQ0FBb0M7QUFDcEMsdURBSTJCO0FBdUQzQixzQkFBc0I7QUFDdEIsa0JBQWUsQ0FBQyxFQUNkLElBQUksRUFDSixLQUFLLEVBQ0wsWUFBWSxFQUNaLFVBQVUsRUFDVixTQUFTLEVBQ1Qsc0JBQXNCLEVBQ3RCLFVBQVUsR0FBRyxFQUFFLEVBQ2YsTUFBTSxHQUFHLEVBQUUsRUFDWCxVQUFVLEdBQUcsRUFBRTtBQUNmLGFBQWE7QUFDYixPQUFPLEVBQ1AsWUFBWSxHQUFHLEVBQUUsRUFDakIsUUFBUSxHQUFHLEVBQUUseUJBQXlCLEVBQUUsR0FBRyxFQUFFLEVBQzdDLElBQUksR0FBRyxJQUFJLEdBQ0UsRUFBRSxFQUFFO0lBQ2pCLElBQUksR0FBRyxJQUFBLHVCQUFjLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFFNUIsTUFBTSxjQUFjLEdBQUcsSUFBQSxtQkFBVSxFQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNuRCxNQUFNLGdCQUFnQixHQUFHLElBQUEsbUJBQVUsRUFBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDdkQsTUFBTSx3QkFBd0IsR0FBRyxJQUFBLDBCQUFpQixFQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNwRSxNQUFNLHVCQUF1QixHQUFHLElBQUEsMEJBQWlCLEVBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3JFLE1BQU0sYUFBYSxHQUFHLFlBQVksQ0FBQyx3QkFBd0I7UUFDekQsQ0FBQyxDQUFDLElBQUEseUJBQWdCLEVBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQztRQUNu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
259
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU3RvcmFnZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHdEQUF3RDtBQUl4RCw2Q0FBeUQ7QUFDekQsK0NBQWlFO0FBQ2pFLGlEQUEyQztBQUMzQywrQ0FBdUM7QUFFdkMsNkNBSTBCO0FBQzFCLDJEQUE0RDtBQUM1RCwyQ0FBb0M7QUFDcEMsdURBSTJCO0FBQzNCLG1FQUEwRTtBQXVEMUUsc0JBQXNCO0FBQ3RCLGtCQUFlLENBQUMsRUFDZCxJQUFJLEVBQ0osS0FBSyxFQUNMLFlBQVksRUFDWixVQUFVLEVBQ1YsU0FBUyxFQUNULHNCQUFzQixFQUN0QixVQUFVLEdBQUcsRUFBRSxFQUNmLE1BQU0sR0FBRyxFQUFFLEVBQ1gsVUFBVSxHQUFHLEVBQUU7QUFDZixhQUFhO0FBQ2IsT0FBTyxFQUNQLFlBQVksR0FBRyxFQUFFLEVBQ2pCLFFBQVEsR0FBRyxFQUFFLHlCQUF5QixFQUFFLEdBQUcsRUFBRSxFQUM3QyxJQUFJLEdBQUcsSUFBSSxHQUNFLEVBQUUsRUFBRTtJQUNqQixJQUFJLEdBQUcsSUFBQSx1QkFBYyxFQUFDLElBQUksQ0FBQyxDQUFDO0lBRTVCLE1BQU0sY0FBYyxHQUFHLElBQUEsbUJBQVUsRUFBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDbkQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLG1CQUFVLEVBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3ZELE1BQU0sd0JBQXdCLEdBQUcsSUFBQSwwQkFBaUIsRUFBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDcEUsTUFBTSx1QkFBdUIsR0FBRyxJQUFBLDBCQUFpQixFQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNyRSxNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUMsd0JBQXdCO1FBQ3pELENBQUMsQ0FBQyxJQUFBLHlCQUFnQixFQUFDLElBQUksRUFBRSxT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