Skip to content

Commit 17d3614

Browse files
authored
Merge pull request #237370 from MicrosoftDocs/release-arc-data
Arc data - May 2023 release
2 parents 179b061 + 31a034c commit 17d3614

16 files changed

+415
-81
lines changed

articles/azure-arc/data/adding-exporters-and-pipelines.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,8 @@ The following properties are currently configurable during the Public Preview:
7171

7272
The Telemetry Router supports logs and metrics pipelines. These pipelines are exposed in the custom resource specification of the Arc telemetry router and available for modification.
7373

74+
You can't remove the last pipeline from the telemetry router. If you apply a yaml file that removes the last pipeline, the service rejects the update.
75+
7476
#### Pipeline Settings
7577

7678
| Setting | Description |
@@ -100,19 +102,19 @@ metadata:
100102
spec:
101103
credentials:
102104
certificates:
103-
- certificateName: arcdata-msft-elasticsearch-exporter-internal
105+
- certificateName: arcdata-elasticsearch-exporter
104106
- certificateName: cluster-ca-certificate
105107
exporters:
106108
elasticsearch:
107109
- caCertificateName: cluster-ca-certificate
108-
certificateName: arcdata-msft-elasticsearch-exporter-internal
110+
certificateName: arcdata-elasticsearch-exporter
109111
endpoint: https://logsdb-svc:9200
110112
index: logstash-otel
111-
name: arcdata/msft/internal
113+
name: arcdata
112114
pipelines:
113115
logs:
114116
exporters:
115-
- elasticsearch/arcdata/msft/internal
117+
- elasticsearch/arcdata
116118
```
117119
118120
@@ -204,7 +206,7 @@ spec:
204206
secretName: <name_of_secret>
205207
secretNamespace: <namespace_with_secret>
206208
exporters:
207-
elasticsearch:
209+
Elasticsearch:
208210
# Step 2. Declare your Elasticsearch exporter with the needed settings
209211
# (certificates, endpoint, and index to export to)
210212
- name: myLogs

articles/azure-arc/data/configure-managed-instance.md

Lines changed: 106 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,14 @@ ms.subservice: azure-arc-data-sqlmi
77
author: dnethi
88
ms.author: dinethi
99
ms.reviewer: mikeray
10-
ms.date: 05/27/2022
10+
ms.date: 05/05/2023
1111
ms.topic: how-to
1212
---
1313

1414
# Configure Azure Arc-enabled SQL managed instance
1515

1616
This article explains how to configure Azure Arc-enabled SQL managed instance.
1717

18-
1918
## Configure resources such as cores, memory
2019

2120

@@ -74,30 +73,130 @@ The following example will scale down the number of replicas from 3 to 2.
7473
az sql mi-arc update --name sqlmi1 --replicas 2 --k8s-namespace mynamespace --use-k8s
7574
```
7675

77-
> [Note]
76+
> [!Note]
7877
> If you scale down from 2 replicas to 1 replica, you may run into a conflict with the pre-configured `--readable--secondaries` setting. You can first edit the `--readable--secondaries` before scaling down the replicas.
7978
8079

8180
## Configure Server options
8281

83-
You can configure server configuration settings for Azure Arc-enabled SQL managed instance after creation time. This article describes how to configure settings like enabling or disabling mssql Agent, enable specific trace flags for troubleshooting scenarios.
82+
You can configure certain server configuration settings for Azure Arc-enabled SQL managed instance either during or after creation time. This article describes how to configure settings like enabling "Ad Hoc Distributed Queries" or "backup compression default" etc.
83+
84+
Currently the following server options can be configured:
85+
- Ad Hoc Distributed Queries
86+
- Default Trace Enabled
87+
- Database Mail XPs
88+
- Backup compression default
89+
- Cost threshold for parallelism
90+
- Optimize for ad hoc workloads
91+
92+
> [!Note]
93+
> - Currently these options can only be specified via YAML file, either during Arc SQL MI creation or post deployment.
94+
> - The Arc SQL MI image tag has to be at least version v1.19.x or above
95+
96+
Add the following to your YAML file during deployment to configure any of these options.
97+
98+
```yml
99+
spec:
100+
serverConfigurations:
101+
- name: "Ad Hoc Distributed Queries"
102+
value: 1
103+
- name: "Default Trace Enabled"
104+
value: 0
105+
- name: "Database Mail XPs"
106+
value: 1
107+
- name: "backup compression default"
108+
value: 1
109+
- name: "cost threshold for parallelism"
110+
value: 50
111+
- name: "optimize for ad hoc workloads"
112+
value: 1
113+
```
114+
115+
If you already have an existing Arc SQL MI, you can run `kubectl edit sqlmi <sqlminame> -n <namespace>` and add the above options into the spec.
116+
117+
118+
Sample Arc SQL MI YAML file:
119+
120+
```yml
121+
apiVersion: sql.arcdata.microsoft.com/v13
122+
kind: SqlManagedInstance
123+
metadata:
124+
name: sql1
125+
annotations:
126+
exampleannotation1: exampleannotationvalue1
127+
exampleannotation2: exampleannotationvalue2
128+
labels:
129+
examplelabel1: examplelabelvalue1
130+
examplelabel2: examplelabelvalue2
131+
spec:
132+
dev: true #options: [true, false]
133+
licenseType: LicenseIncluded #options: [LicenseIncluded, BasePrice]. BasePrice is used for Azure Hybrid Benefits.
134+
tier: GeneralPurpose #options: [GeneralPurpose, BusinessCritical]
135+
serverConfigurations:
136+
- name: "Ad Hoc Distributed Queries"
137+
value: 1
138+
- name: "Default Trace Enabled"
139+
value: 0
140+
- name: "Database Mail XPs"
141+
value: 1
142+
- name: "backup compression default"
143+
value: 1
144+
- name: "cost threshold for parallelism"
145+
value: 50
146+
- name: "optimize for ad hoc workloads"
147+
value: 1
148+
security:
149+
adminLoginSecret: sql1-login-secret
150+
scheduling:
151+
default:
152+
resources:
153+
limits:
154+
cpu: "2"
155+
memory: 4Gi
156+
requests:
157+
cpu: "1"
158+
memory: 2Gi
159+
services:
160+
primary:
161+
type: LoadBalancer
162+
storage:
163+
backups:
164+
volumes:
165+
- className: azurefile # Backup volumes require a ReadWriteMany (RWX) capable storage class
166+
size: 5Gi
167+
data:
168+
volumes:
169+
- className: default # Use default configured storage class or modify storage class based on your Kubernetes environment
170+
size: 5Gi
171+
datalogs:
172+
volumes:
173+
- className: default # Use default configured storage class or modify storage class based on your Kubernetes environment
174+
size: 5Gi
175+
logs:
176+
volumes:
177+
- className: default # Use default configured storage class or modify storage class based on your Kubernetes environment
178+
size: 5Gi
179+
```
84180

85181

86-
### Enable SQL Server agent
182+
## Enable SQL Server agent
87183

88-
SQL Server agent is disabled by default. It can be enabled by running the following command:
184+
SQL Server agent is disabled during a default deployment of Arc SQL MI. It can be enabled by running the following command:
89185

90186
```azurecli
91187
az sql mi-arc update -n <NAME_OF_SQL_MI> --k8s-namespace <namespace> --use-k8s --agent-enabled true
92188
```
189+
93190
As an example:
191+
94192
```azurecli
95193
az sql mi-arc update -n sqlinstance1 --k8s-namespace arc --use-k8s --agent-enabled true
96194
```
97195

98-
### Enable Trace flags
196+
## Enable trace flags
99197

100198
Trace flags can be enabled as follows:
199+
101200
```azurecli
102201
az sql mi-arc update -n <NAME_OF_SQL_MI> --k8s-namespace <namespace> --use-k8s --trace-flags "3614,1234"
103202
```

articles/azure-arc/data/configure-transparent-data-encryption-sql-managed-instance.md

Lines changed: 93 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@ ms.custom: template-how-to, event-tier1-build-2022
1616

1717
This article describes how to enable and disable transparent data encryption (TDE) at-rest on an Azure Arc-enabled SQL Managed Instance. In this article, the term *managed instance* refers to a deployment of Azure Arc-enabled SQL Managed Instance and enabling/disabling TDE will apply to all databases running on a managed instance.
1818

19-
Enabling service-managed transparent data encryption will require the managed instance to use a service-managed database master key as well as the service-managed server certificate. These credentials will be automatically created when service-managed transparent data encryption is enabled. For more info on TDE, please refer to [Transparent data encryption](/sql/relational-databases/security/encryption/transparent-data-encryption).
20-
19+
For more info on TDE, please refer to [Transparent data encryption](/sql/relational-databases/security/encryption/transparent-data-encryption).
2120

2221
Turning on the TDE feature does the following:
2322

@@ -35,24 +34,48 @@ Before you proceed with this article, you must have an Azure Arc-enabled SQL Man
3534

3635
## Limitations
3736

38-
The following limitations must be considered when deploying Service-Managed TDE:
37+
The following limitations apply when you enable automatic TDE:
3938

4039
- Only General Purpose Tier is supported.
41-
- Failover Groups are not supported.
40+
- Failover groups aren't supported.
4241

4342
## Turn on transparent data encryption on the managed instance
44-
### Prerequisites
4543

46-
Turning on TDE on the managed instance will result in the following operations taking place:
44+
When TDE is enabled on Arc-enabled SQL Managed Instance, the data service automatically does the following tasks:
45+
46+
1. Adds the service-managed database master key in the `master` database.
47+
2. Adds the service-managed certificate protector.
48+
3. Adds the associated Database Encryption Keys (DEK) on all databases on the managed instance.
49+
4. Enables encryption on all databases on the managed instance.
50+
51+
You can set Azure Arc-enabled SQL Managed Instance TDE in one of two modes:
52+
53+
- Service-managed
54+
- Customer-managed
55+
56+
In service-managed mode, transparent data encryption requires the managed instance to use a service-managed database master key as well as the service-managed server certificate. These credentials are automatically created when service-managed transparent data encryption is enabled.
57+
58+
In customer-managed mode, transparent data encryption uses a service-managed database master key and uses keys you provide for the server certificate. To configure customer-managed mode:
4759

48-
1. Adding the service-managed database master key in the `master` database.
49-
2. Adding the service-managed certificate protector.
50-
3. Adding the associated Database Encryption Keys (DEK) on all databases on the managed instance.
51-
4. Enabling encryption on all databases on the managed instance.
60+
1. Create a certificate.
61+
1. Store the certificate as a secret in the same Kubernetes namespace as the instance.
62+
63+
> [!NOTE]
64+
> If you need to change from one mode to the other, you must disable TDE from the current mode before you apply the new mode. For details, see [Turn off transparent data encryption on the managed instance](#turn-off-transparent-data-encryption-on-the-managed-instance).
65+
>
66+
> For example, if the service is encrypted using service-managed mode, go to `Disabled` mode before you enable customer-managed mode.
67+
>
68+
> ```console
69+
> kubectl patch sqlmi <sqlmi-name> --namespace <namespace> --type merge --patch '{ "spec": { "security": { "transparentDataEncryption": { "mode": "Disabled" } } } }'
70+
> ```
71+
72+
73+
To proceed, select the mode you want to use.
5274
5375
### [Service-managed mode](#tab/service-managed-mode)
5476
55-
Run kubectl patch to enable service-managed TDE
77+
78+
To enable TDE in service-managed mode, run kubectl patch to enable service-managed TDE
5679
5780
```console
5881
kubectl patch sqlmi <sqlmi-name> --namespace <namespace> --type merge --patch '{ "spec": { "security": { "transparentDataEncryption": { "mode": "ServiceManaged" } } } }'
@@ -61,31 +84,81 @@ kubectl patch sqlmi <sqlmi-name> --namespace <namespace> --type merge --patch '{
6184
Example:
6285

6386
```console
64-
kubectl patch sqlmi contososqlmi --namespace arc --type merge --patch '{ "spec": { "security": { "transparentDataEncryption": { "mode": "ServiceManaged" } } } }'
87+
kubectl patch sqlmi sqlmi-tde --namespace arc --type merge --patch '{ "spec": { "security": { "transparentDataEncryption": { "mode": "ServiceManaged" } } } }'
6588
```
89+
90+
### [Customer-managed mode](#tab/customer-managed-mode)
91+
92+
To enable TDE in customer managed mode:
93+
94+
1. Create a certificate.
95+
96+
```console
97+
openssl req -x509 -newkey rsa:2048 -nodes -keyout <key-file> -days 365 -out <cert-file>
98+
```
99+
100+
1. Create a secret for the certificate.
101+
102+
> [!IMPORTANT]
103+
> Store the secret in the same namespace as the managed instance
104+
105+
```console
106+
kubectl create secret generic <tde-secret-name> --from-literal=privatekey.pem="$(cat <key-file>)" --from-literal=certificate.pem="$(cat <cert-file>) --namespace <namespace>"
107+
```
108+
109+
1. Run `kubectl patch ...` to enable customer-managed TDE
110+
111+
```console
112+
kubectl patch sqlmi <sqlmi-name> --namespace <namespace> --type merge --patch '{ "spec": { "security": { "transparentDataEncryption": { "mode": "CustomerManaged", "protectorSecret": "<tde-secret-name>" } } } }'
113+
```
114+
115+
Example:
116+
117+
```console
118+
kubectl patch sqlmi sqlmi-tde --namespace arc --type merge --patch '{ "spec": { "security": { "transparentDataEncryption": { "mode": "CustomerManaged", "protectorSecret": "sqlmi-tde-protector-cert-secret" } } } }'
119+
```
120+
66121
---
67122

68123
## Turn off transparent data encryption on the managed instance
69124

70-
Turning off TDE on the managed instance will result in the following operations taking place:
125+
When TDE is disabled on Arc-enabled SQL Managed Instance, the data service automatically does the following tasks:
71126

72-
1. Disabling encryption on all databases on the managed instance.
73-
2. Dropping the associated DEKs on all databases on the managed instance.
74-
3. Dropping the service-managed certificate protector.
75-
4. Dropping the service-managed database master key in the `master` database.
127+
1. Disables encryption on all databases on the managed instance.
128+
2. Drops the associated DEKs on all databases on the managed instance.
129+
3. Drops the service-managed certificate protector.
130+
4. Drops the service-managed database master key in the `master` database.
76131

77132
### [Service-managed mode](#tab/service-managed-mode)
78133

79-
Run kubectl patch to disable service-managed TDE
134+
Run kubectl patch to disable service-managed TDE.
135+
136+
```console
137+
kubectl patch sqlmi <sqlmi-name> --namespace <namespace> --type merge --patch '{ "spec": { "security": { "transparentDataEncryption": { "mode": "Disabled" } } } }'
138+
```
139+
140+
Example:
141+
```console
142+
kubectl patch sqlmi sqlmi-tde --namespace arc --type merge --patch '{ "spec": { "security": { "transparentDataEncryption": { "mode": "Disabled" } } } }'
143+
```
144+
145+
### [Customer-managed mode](#tab/customer-managed-mode)
146+
147+
Run kubectl patch to disable customer-managed TDE.
148+
149+
When you disable TDE in customer-managed mode, you need to set `"protectorSecret" : null`.
80150

81151
```console
82-
kubectl patch sqlmi <sqlmi-name> --namespace <namespace> --type merge --patch '{ "spec": { "security": { "transparentDataEncryption": { "mode": null } } } }'
152+
kubectl patch sqlmi <sqlmi-name> --namespace <namespace> --type merge --patch '{ "spec": { "security": { "transparentDataEncryption": { "mode": "Disabled" , "protectorSecret": null } } } }'
83153
```
84154

155+
85156
Example:
157+
86158
```console
87-
kubectl patch sqlmi contososqlmi --namespace arc --type merge --patch '{ "spec": { "security": { "transparentDataEncryption": { "mode": null } } } }'
159+
kubectl patch sqlmi sqlmi-tde --namespace arc --type merge --patch '{ "spec": { "security": { "transparentDataEncryption": { "mode": "Disabled" , "protectorSecret": null } } } }'
88160
```
161+
89162
---
90163

91164
## Back up a transparent data encryption credential

0 commit comments

Comments
 (0)