Skip to content

Commit c737915

Browse files
author
awstools
committed
feat(client-synthetics): CloudWatch Synthetics adds support for customer managed KMS keys for canary environment variables. Customers can now encrypt their canary's Lambda function environment variables at rest using their own AWS KMS key, providing additional control over data protection.
1 parent 6fcc95d commit c737915

7 files changed

Lines changed: 73 additions & 8 deletions

File tree

clients/client-synthetics/src/commands/CreateCanaryCommand.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ export interface CreateCanaryCommandOutput extends CreateCanaryResponse, __Metad
114114
* ],
115115
* Ipv6AllowedForDualStack: true || false,
116116
* },
117+
* KmsKeyArn: "STRING_VALUE",
117118
* },
118119
* ],
119120
* Tags: { // TagMap
@@ -125,6 +126,7 @@ export interface CreateCanaryCommandOutput extends CreateCanaryResponse, __Metad
125126
* KmsKeyArn: "STRING_VALUE",
126127
* },
127128
* },
129+
* KmsKeyArn: "STRING_VALUE",
128130
* };
129131
* const command = new CreateCanaryCommand(input);
130132
* const response = await client.send(command);
@@ -259,6 +261,7 @@ export interface CreateCanaryCommandOutput extends CreateCanaryResponse, __Metad
259261
* // KmsKeyArn: "STRING_VALUE",
260262
* // },
261263
* // },
264+
* // KmsKeyArn: "STRING_VALUE",
262265
* // DryRunConfig: { // DryRunConfigOutput
263266
* // DryRunId: "STRING_VALUE",
264267
* // LastDryRunExecutionStatus: "STRING_VALUE",

clients/client-synthetics/src/commands/DescribeCanariesCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,7 @@ export interface DescribeCanariesCommandOutput extends DescribeCanariesResponse,
182182
* // KmsKeyArn: "STRING_VALUE",
183183
* // },
184184
* // },
185+
* // KmsKeyArn: "STRING_VALUE",
185186
* // DryRunConfig: { // DryRunConfigOutput
186187
* // DryRunId: "STRING_VALUE",
187188
* // LastDryRunExecutionStatus: "STRING_VALUE",

clients/client-synthetics/src/commands/GetCanaryCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,7 @@ export interface GetCanaryCommandOutput extends GetCanaryResponse, __MetadataBea
171171
* // KmsKeyArn: "STRING_VALUE",
172172
* // },
173173
* // },
174+
* // KmsKeyArn: "STRING_VALUE",
174175
* // DryRunConfig: { // DryRunConfigOutput
175176
* // DryRunId: "STRING_VALUE",
176177
* // LastDryRunExecutionStatus: "STRING_VALUE",

clients/client-synthetics/src/commands/UpdateCanaryCommand.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,11 +145,13 @@ export interface UpdateCanaryCommandOutput extends UpdateCanaryResponse, __Metad
145145
* ],
146146
* Ipv6AllowedForDualStack: true || false,
147147
* },
148+
* KmsKeyArn: "STRING_VALUE",
148149
* },
149150
* ],
150151
* RemoveReplicaLocations: [ // RemoveReplicaLocations
151152
* "STRING_VALUE",
152153
* ],
154+
* KmsKeyArn: "STRING_VALUE",
153155
* };
154156
* const command = new UpdateCanaryCommand(input);
155157
* const response = await client.send(command);

clients/client-synthetics/src/models/models_0.ts

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,14 @@ export interface AddReplicaLocationInput {
5959
* @public
6060
*/
6161
VpcConfig?: VpcConfigInput | undefined;
62+
63+
/**
64+
* <p>The Amazon Resource Name (ARN) of the customer-managed AWS Key Management Service (AWS KMS) key used to encrypt the canary replica's
65+
* AWS Lambda function environment variables at rest. If you don't specify a value,
66+
* the service uses an AWS-managed key.</p>
67+
* @public
68+
*/
69+
KmsKeyArn?: string | undefined;
6270
}
6371

6472
/**
@@ -730,6 +738,14 @@ export interface Canary {
730738
*/
731739
ArtifactConfig?: ArtifactConfigOutput | undefined;
732740

741+
/**
742+
* <p>The Amazon Resource Name (ARN) of the customer-managed AWS Key Management Service (AWS KMS) key used to encrypt the canary's
743+
* AWS Lambda function environment variables at rest. If you don't specify a value,
744+
* the service uses an AWS-managed key.</p>
745+
* @public
746+
*/
747+
KmsKeyArn?: string | undefined;
748+
733749
/**
734750
* <p>Returns the dry run configurations for a canary.</p>
735751
* @public
@@ -1290,6 +1306,14 @@ export interface CreateCanaryRequest {
12901306
* @public
12911307
*/
12921308
ArtifactConfig?: ArtifactConfigInput | undefined;
1309+
1310+
/**
1311+
* <p>The Amazon Resource Name (ARN) of the customer-managed AWS Key Management Service (AWS KMS) key used to encrypt the canary's
1312+
* AWS Lambda function environment variables at rest. If you don't specify a value,
1313+
* the service uses an AWS-managed key.</p>
1314+
* @public
1315+
*/
1316+
KmsKeyArn?: string | undefined;
12931317
}
12941318

12951319
/**
@@ -2439,6 +2463,16 @@ export interface UpdateCanaryRequest {
24392463
* @public
24402464
*/
24412465
RemoveReplicaLocations?: string[] | undefined;
2466+
2467+
/**
2468+
* <p>The Amazon Resource Name (ARN) of the customer-managed AWS Key Management Service (AWS KMS) key used to encrypt the canary's
2469+
* AWS Lambda function environment variables at rest. If you don't specify a value,
2470+
* the service uses an AWS-managed key. If you omit this parameter, the service retains
2471+
* the existing value. To revert to the AWS-managed key, set this parameter to
2472+
* an empty string.</p>
2473+
* @public
2474+
*/
2475+
KmsKeyArn?: string | undefined;
24422476
}
24432477

24442478
/**

clients/client-synthetics/src/schemas/schemas_0.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -332,8 +332,8 @@ export const errorTypeRegistries = [
332332
]
333333
export var AddReplicaLocationInput$: StaticStructureSchema = [3, n0, _ARLI,
334334
0,
335-
[_L, _VC],
336-
[0, () => VpcConfigInput$], 1
335+
[_L, _VC, _KKA],
336+
[0, () => VpcConfigInput$, 0], 1
337337
];
338338
export var ArtifactConfigInput$: StaticStructureSchema = [3, n0, _ACI,
339339
0,
@@ -367,8 +367,8 @@ export var BrowserConfig$: StaticStructureSchema = [3, n0, _BC,
367367
];
368368
export var Canary$: StaticStructureSchema = [3, n0, _C,
369369
0,
370-
[_I, _N, _Co, _ERA, _S, _RC, _SRPID, _FRPID, _St, _T, _ASL, _EA, _RV, _VC, _VR, _PRC, _BCr, _EC, _VRi, _MLC, _Ta, _AC, _DRC],
371-
[0, 0, () => CanaryCodeOutput$, 0, () => CanaryScheduleOutput$, () => CanaryRunConfigOutput$, 1, 1, () => CanaryStatus$, () => CanaryTimeline$, 0, 0, 0, () => VpcConfigOutput$, () => VisualReferenceOutput$, 0, () => BrowserConfigs, () => EngineConfigs, () => VisualReferencesOutput, () => MultiLocationConfig$, 128 | 0, () => ArtifactConfigOutput$, () => DryRunConfigOutput$]
370+
[_I, _N, _Co, _ERA, _S, _RC, _SRPID, _FRPID, _St, _T, _ASL, _EA, _RV, _VC, _VR, _PRC, _BCr, _EC, _VRi, _MLC, _Ta, _AC, _KKA, _DRC],
371+
[0, 0, () => CanaryCodeOutput$, 0, () => CanaryScheduleOutput$, () => CanaryRunConfigOutput$, 1, 1, () => CanaryStatus$, () => CanaryTimeline$, 0, 0, 0, () => VpcConfigOutput$, () => VisualReferenceOutput$, 0, () => BrowserConfigs, () => EngineConfigs, () => VisualReferencesOutput, () => MultiLocationConfig$, 128 | 0, () => ArtifactConfigOutput$, 0, () => DryRunConfigOutput$]
372372
];
373373
export var CanaryCodeInput$: StaticStructureSchema = [3, n0, _CCI,
374374
0,
@@ -437,8 +437,8 @@ export var CanaryTimeline$: StaticStructureSchema = [3, n0, _CT,
437437
];
438438
export var CreateCanaryRequest$: StaticStructureSchema = [3, n0, _CCR,
439439
0,
440-
[_N, _Co, _ASL, _ERA, _S, _RV, _RC, _SRPID, _FRPID, _VC, _RTRT, _PRC, _BCr, _ARL, _Ta, _AC],
441-
[0, () => CanaryCodeInput$, 0, 0, () => CanaryScheduleInput$, 0, () => CanaryRunConfigInput$, 1, 1, () => VpcConfigInput$, 64 | 0, 0, () => BrowserConfigs, () => AddReplicaLocations, 128 | 0, () => ArtifactConfigInput$], 6
440+
[_N, _Co, _ASL, _ERA, _S, _RV, _RC, _SRPID, _FRPID, _VC, _RTRT, _PRC, _BCr, _ARL, _Ta, _AC, _KKA],
441+
[0, () => CanaryCodeInput$, 0, 0, () => CanaryScheduleInput$, 0, () => CanaryRunConfigInput$, 1, 1, () => VpcConfigInput$, 64 | 0, 0, () => BrowserConfigs, () => AddReplicaLocations, 128 | 0, () => ArtifactConfigInput$, 0], 6
442442
];
443443
export var CreateCanaryResponse$: StaticStructureSchema = [3, n0, _CCRr,
444444
0,
@@ -697,8 +697,8 @@ export var UntagResourceResponse$: StaticStructureSchema = [3, n0, _URRn,
697697
];
698698
export var UpdateCanaryRequest$: StaticStructureSchema = [3, n0, _UCR,
699699
0,
700-
[_N, _Co, _ERA, _RV, _S, _RC, _SRPID, _FRPID, _VC, _VR, _ASL, _AC, _PRC, _DRI, _VRi, _BCr, _ARL, _RRL],
701-
[[0, 1], () => CanaryCodeInput$, 0, 0, () => CanaryScheduleInput$, () => CanaryRunConfigInput$, 1, 1, () => VpcConfigInput$, () => VisualReferenceInput$, 0, () => ArtifactConfigInput$, 0, 0, () => VisualReferences, () => BrowserConfigs, () => AddReplicaLocations, 64 | 0], 1
700+
[_N, _Co, _ERA, _RV, _S, _RC, _SRPID, _FRPID, _VC, _VR, _ASL, _AC, _PRC, _DRI, _VRi, _BCr, _ARL, _RRL, _KKA],
701+
[[0, 1], () => CanaryCodeInput$, 0, 0, () => CanaryScheduleInput$, () => CanaryRunConfigInput$, 1, 1, () => VpcConfigInput$, () => VisualReferenceInput$, 0, () => ArtifactConfigInput$, 0, 0, () => VisualReferences, () => BrowserConfigs, () => AddReplicaLocations, 64 | 0, 0], 1
702702
];
703703
export var UpdateCanaryResponse$: StaticStructureSchema = [3, n0, _UCRp,
704704
0,

codegen/sdk-codegen/aws-models/synthetics.json

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,12 @@
5757
"traits": {
5858
"smithy.api#documentation": "<p>The VPC configuration to use for the canary replica in this location. If not specified, the replica runs without VPC connectivity.</p>"
5959
}
60+
},
61+
"KmsKeyArn": {
62+
"target": "com.amazonaws.synthetics#KmsKeyArn",
63+
"traits": {
64+
"smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the customer-managed AWS Key Management Service (AWS KMS) key used to encrypt the canary replica's\n AWS Lambda function environment variables at rest. If you don't specify a value,\n the service uses an AWS-managed key.</p>"
65+
}
6066
}
6167
},
6268
"traits": {
@@ -437,6 +443,12 @@
437443
"smithy.api#documentation": "<p>A structure that contains the configuration for canary artifacts, including \n the encryption-at-rest settings for artifacts that the canary uploads to Amazon S3.</p>"
438444
}
439445
},
446+
"KmsKeyArn": {
447+
"target": "com.amazonaws.synthetics#KmsKeyArn",
448+
"traits": {
449+
"smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the customer-managed AWS Key Management Service (AWS KMS) key used to encrypt the canary's\n AWS Lambda function environment variables at rest. If you don't specify a value,\n the service uses an AWS-managed key.</p>"
450+
}
451+
},
440452
"DryRunConfig": {
441453
"target": "com.amazonaws.synthetics#DryRunConfigOutput",
442454
"traits": {
@@ -1253,6 +1265,12 @@
12531265
"traits": {
12541266
"smithy.api#documentation": "<p>A structure that contains the configuration for canary artifacts, including \n the encryption-at-rest settings for artifacts that the canary uploads to Amazon S3.</p>"
12551267
}
1268+
},
1269+
"KmsKeyArn": {
1270+
"target": "com.amazonaws.synthetics#KmsKeyArn",
1271+
"traits": {
1272+
"smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the customer-managed AWS Key Management Service (AWS KMS) key used to encrypt the canary's\n AWS Lambda function environment variables at rest. If you don't specify a value,\n the service uses an AWS-managed key.</p>"
1273+
}
12561274
}
12571275
},
12581276
"traits": {
@@ -4894,6 +4912,12 @@
48944912
"traits": {
48954913
"smithy.api#documentation": "<p>A list of locations (Amazon Web Services Regions) to remove as replicas for the canary. You must specify at least one location to remove. All replicas can be removed in a single API \n call and you cannot remove the primary location.</p>"
48964914
}
4915+
},
4916+
"KmsKeyArn": {
4917+
"target": "com.amazonaws.synthetics#KmsKeyArn",
4918+
"traits": {
4919+
"smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the customer-managed AWS Key Management Service (AWS KMS) key used to encrypt the canary's\n AWS Lambda function environment variables at rest. If you don't specify a value,\n the service uses an AWS-managed key. If you omit this parameter, the service retains\n the existing value. To revert to the AWS-managed key, set this parameter to\n an empty string.</p>"
4920+
}
48974921
}
48984922
},
48994923
"traits": {

0 commit comments

Comments
 (0)