@aws-cdk/aws-mediapackagev2-alpha 2.257.0-alpha.0 → 2.258.0-alpha.0
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/.jsii +214 -235
- package/.jsii.tabl.json.gz +0 -0
- package/.warnings.jsii.js +0 -11
- package/README.md +44 -0
- package/lib/channel-policy.js +1 -1
- package/lib/channel.js +3 -3
- package/lib/cloudfront-origin.d.ts +0 -12
- package/lib/cloudfront-origin.js +38 -7
- package/lib/endpoint.d.ts +39 -10
- package/lib/endpoint.js +39 -33
- package/lib/group.js +1 -1
- package/lib/mediapackagev2-grants.generated.js +37 -4
- package/lib/origin-endpoint-policy.d.ts +4 -0
- package/lib/origin-endpoint-policy.js +2 -2
- package/package.json +7 -7
package/.jsii.tabl.json.gz
CHANGED
|
Binary file
|
package/.warnings.jsii.js
CHANGED
|
@@ -211,17 +211,6 @@ const VALIDATORS = { _aws_cdk_aws_mediapackagev2_alpha_FilterConfiguration: func
|
|
|
211
211
|
finally {
|
|
212
212
|
visitedObjects.delete(p);
|
|
213
213
|
}
|
|
214
|
-
}, _aws_cdk_aws_mediapackagev2_alpha_MediaPackageV2OriginProps: function _aws_cdk_aws_mediapackagev2_alpha_MediaPackageV2OriginProps(p) {
|
|
215
|
-
if (p == null)
|
|
216
|
-
return;
|
|
217
|
-
visitedObjects.add(p);
|
|
218
|
-
try {
|
|
219
|
-
if (!visitedObjects.has(p.cdnAuth))
|
|
220
|
-
module.exports._aws_cdk_aws_mediapackagev2_alpha_CdnAuthConfiguration(p.cdnAuth);
|
|
221
|
-
}
|
|
222
|
-
finally {
|
|
223
|
-
visitedObjects.delete(p);
|
|
224
|
-
}
|
|
225
214
|
} };
|
|
226
215
|
function print(name, deprecationMessage) {
|
|
227
216
|
const deprecated = process.env.JSII_DEPRECATED;
|
package/README.md
CHANGED
|
@@ -243,6 +243,50 @@ origin.addToResourcePolicy(new PolicyStatement({
|
|
|
243
243
|
}));
|
|
244
244
|
```
|
|
245
245
|
|
|
246
|
+
### CDN Authorization
|
|
247
|
+
|
|
248
|
+
MediaPackage V2 supports two ways to lock an origin endpoint to your CDN:
|
|
249
|
+
|
|
250
|
+
- **AWS Signature Version 4 (SigV4)** — the CDN signs requests with an IAM
|
|
251
|
+
role. For Amazon CloudFront, see [CloudFront Integration](#cloudfront-integration).
|
|
252
|
+
See the [SigV4 authentication guide][sigv4-auth].
|
|
253
|
+
- **Header-based CDN authorization** — the CDN attaches a shared secret in
|
|
254
|
+
a request header that MediaPackage validates. Use this when your CDN
|
|
255
|
+
doesn't support SigV4. See the [CDN authorization guide][cdn-auth].
|
|
256
|
+
|
|
257
|
+
[sigv4-auth]: https://docs.aws.amazon.com/mediapackage/latest/userguide/sig-v4-authenticating-requests.html
|
|
258
|
+
[cdn-auth]: https://docs.aws.amazon.com/mediapackage/latest/userguide/cdn-auth.html
|
|
259
|
+
|
|
260
|
+
To configure header-based authorization, set `cdnAuth` on the `OriginEndpoint`
|
|
261
|
+
props. The L2 auto-creates the endpoint policy with:
|
|
262
|
+
|
|
263
|
+
- a `PolicyStatement` requiring the `mediapackagev2:RequestHasMatchingCdnAuthHeader`
|
|
264
|
+
condition on every `GetObject` request
|
|
265
|
+
- the `CdnAuthConfiguration` block that references the secrets and the read role
|
|
266
|
+
|
|
267
|
+
If you don't supply a role, one is created with the needed Secrets Manager
|
|
268
|
+
and KMS permissions.
|
|
269
|
+
|
|
270
|
+
```ts
|
|
271
|
+
import * as secretsmanager from 'aws-cdk-lib/aws-secretsmanager';
|
|
272
|
+
|
|
273
|
+
declare const channel: Channel;
|
|
274
|
+
declare const mySecret: secretsmanager.ISecret;
|
|
275
|
+
|
|
276
|
+
new OriginEndpoint(this, 'OriginEndpoint', {
|
|
277
|
+
channel,
|
|
278
|
+
segment: Segment.ts(),
|
|
279
|
+
manifests: [Manifest.hls({ manifestName: 'index' })],
|
|
280
|
+
cdnAuth: {
|
|
281
|
+
secrets: [mySecret],
|
|
282
|
+
},
|
|
283
|
+
});
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
You can still call `addToResourcePolicy()` to add extra statements (e.g. a
|
|
287
|
+
harvester allow); they're appended to the auto-created policy alongside the
|
|
288
|
+
gating statement.
|
|
289
|
+
|
|
246
290
|
## Granting Permissions
|
|
247
291
|
|
|
248
292
|
### Granting Ingest Access to MediaLive
|
package/lib/channel-policy.js
CHANGED
|
@@ -76,7 +76,7 @@ let ChannelPolicy = (() => {
|
|
|
76
76
|
ChannelPolicy = _classThis = _classDescriptor.value;
|
|
77
77
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
78
78
|
}
|
|
79
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediapackagev2-alpha.ChannelPolicy", version: "2.
|
|
79
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediapackagev2-alpha.ChannelPolicy", version: "2.258.0-alpha.0" };
|
|
80
80
|
/** Uniquely identifies this class. */
|
|
81
81
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-mediapackagev2-alpha.ChannelPolicy';
|
|
82
82
|
/**
|
package/lib/channel.js
CHANGED
|
@@ -80,7 +80,7 @@ var IngestEndpoint;
|
|
|
80
80
|
*/
|
|
81
81
|
class HeadersCMSD {
|
|
82
82
|
value;
|
|
83
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediapackagev2-alpha.HeadersCMSD", version: "2.
|
|
83
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediapackagev2-alpha.HeadersCMSD", version: "2.258.0-alpha.0" };
|
|
84
84
|
/**
|
|
85
85
|
* Media Quality Confidence Score
|
|
86
86
|
*/
|
|
@@ -111,7 +111,7 @@ class InputConfiguration {
|
|
|
111
111
|
inputType;
|
|
112
112
|
inputSwitchConfiguration;
|
|
113
113
|
outputHeaders;
|
|
114
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediapackagev2-alpha.InputConfiguration", version: "2.
|
|
114
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediapackagev2-alpha.InputConfiguration", version: "2.258.0-alpha.0" };
|
|
115
115
|
/**
|
|
116
116
|
* Create an HLS input configuration
|
|
117
117
|
*/
|
|
@@ -357,7 +357,7 @@ let Channel = (() => {
|
|
|
357
357
|
Channel = _classThis = _classDescriptor.value;
|
|
358
358
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
359
359
|
}
|
|
360
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediapackagev2-alpha.Channel", version: "2.
|
|
360
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediapackagev2-alpha.Channel", version: "2.258.0-alpha.0" };
|
|
361
361
|
/** Uniquely identifies this class. */
|
|
362
362
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-mediapackagev2-alpha.Channel';
|
|
363
363
|
channelGroupName;
|
|
@@ -2,7 +2,6 @@ import * as cloudfront from 'aws-cdk-lib/aws-cloudfront';
|
|
|
2
2
|
import type { Construct } from 'constructs';
|
|
3
3
|
import type { IOriginEndpoint } from './endpoint';
|
|
4
4
|
import type { IChannelGroup } from './group';
|
|
5
|
-
import type { CdnAuthConfiguration } from './origin-endpoint-policy';
|
|
6
5
|
/**
|
|
7
6
|
* Properties for a MediaPackage V2 Origin with OAC.
|
|
8
7
|
*/
|
|
@@ -19,16 +18,6 @@ export interface MediaPackageV2OriginProps extends cloudfront.OriginProps {
|
|
|
19
18
|
* @default - an Origin Access Control will be created automatically.
|
|
20
19
|
*/
|
|
21
20
|
readonly originAccessControl?: cloudfront.IOriginAccessControlRef;
|
|
22
|
-
/**
|
|
23
|
-
* Optional CDN authorization configuration.
|
|
24
|
-
*
|
|
25
|
-
* If you need CDN auth on this endpoint, provide it here so it is configured
|
|
26
|
-
* on the first `addToResourcePolicy` call. If CDN auth is added separately
|
|
27
|
-
* after this origin is bound, it will be ignored.
|
|
28
|
-
*
|
|
29
|
-
* @default - no CDN authorization
|
|
30
|
-
*/
|
|
31
|
-
readonly cdnAuth?: CdnAuthConfiguration;
|
|
32
21
|
}
|
|
33
22
|
/**
|
|
34
23
|
* A CloudFront Origin for AWS Elemental MediaPackage V2 endpoints.
|
|
@@ -58,7 +47,6 @@ export interface MediaPackageV2OriginProps extends cloudfront.OriginProps {
|
|
|
58
47
|
export declare class MediaPackageV2Origin extends cloudfront.OriginBase {
|
|
59
48
|
private originAccessControl?;
|
|
60
49
|
private readonly endpoint;
|
|
61
|
-
private readonly cdnAuth?;
|
|
62
50
|
constructor(endpoint: IOriginEndpoint, props: MediaPackageV2OriginProps);
|
|
63
51
|
protected renderCustomOriginConfig(): cloudfront.CfnDistribution.CustomOriginConfigProperty | undefined;
|
|
64
52
|
bind(scope: Construct, options: cloudfront.OriginBindOptions): cloudfront.OriginBindConfig;
|
package/lib/cloudfront-origin.js
CHANGED
|
@@ -1,10 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.MediaPackageV2Origin = void 0;
|
|
4
37
|
const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
|
|
5
38
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
-
const cdk = require("aws-cdk-lib");
|
|
7
|
-
const cloudfront = require("aws-cdk-lib/aws-cloudfront");
|
|
39
|
+
const cdk = __importStar(require("aws-cdk-lib"));
|
|
40
|
+
const cloudfront = __importStar(require("aws-cdk-lib/aws-cloudfront"));
|
|
8
41
|
const aws_iam_1 = require("aws-cdk-lib/aws-iam");
|
|
9
42
|
const core_1 = require("aws-cdk-lib/core");
|
|
10
43
|
const helpers_internal_1 = require("aws-cdk-lib/core/lib/helpers-internal");
|
|
@@ -34,10 +67,9 @@ const helpers_internal_1 = require("aws-cdk-lib/core/lib/helpers-internal");
|
|
|
34
67
|
* @see https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-mediapackage.html
|
|
35
68
|
*/
|
|
36
69
|
class MediaPackageV2Origin extends cloudfront.OriginBase {
|
|
37
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediapackagev2-alpha.MediaPackageV2Origin", version: "2.
|
|
70
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediapackagev2-alpha.MediaPackageV2Origin", version: "2.258.0-alpha.0" };
|
|
38
71
|
originAccessControl;
|
|
39
72
|
endpoint;
|
|
40
|
-
cdnAuth;
|
|
41
73
|
constructor(endpoint, props) {
|
|
42
74
|
try {
|
|
43
75
|
jsiiDeprecationWarnings._aws_cdk_aws_mediapackagev2_alpha_IOriginEndpoint(endpoint);
|
|
@@ -55,7 +87,6 @@ class MediaPackageV2Origin extends cloudfront.OriginBase {
|
|
|
55
87
|
super(props.channelGroup.egressDomain, props);
|
|
56
88
|
this.endpoint = endpoint;
|
|
57
89
|
this.originAccessControl = props.originAccessControl;
|
|
58
|
-
this.cdnAuth = props.cdnAuth;
|
|
59
90
|
}
|
|
60
91
|
renderCustomOriginConfig() {
|
|
61
92
|
return {
|
|
@@ -87,7 +118,7 @@ class MediaPackageV2Origin extends cloudfront.OriginBase {
|
|
|
87
118
|
}),
|
|
88
119
|
},
|
|
89
120
|
},
|
|
90
|
-
})
|
|
121
|
+
}));
|
|
91
122
|
return {
|
|
92
123
|
...originBindConfig,
|
|
93
124
|
originProperty: {
|
|
@@ -98,4 +129,4 @@ class MediaPackageV2Origin extends cloudfront.OriginBase {
|
|
|
98
129
|
}
|
|
99
130
|
}
|
|
100
131
|
exports.MediaPackageV2Origin = MediaPackageV2Origin;
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRmcm9udC1vcmlnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbG91ZGZyb250LW9yaWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlEQUFtQztBQUNuQyx1RUFBeUQ7QUFDekQsaURBQWdGO0FBQ2hGLDJDQUEyRDtBQUMzRCw0RUFBNEQ7QUF3QjVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3Qkc7QUFDSCxNQUFhLG9CQUFxQixTQUFRLFVBQVUsQ0FBQyxVQUFVOztJQUNyRCxtQkFBbUIsQ0FBc0M7SUFDaEQsUUFBUSxDQUFrQjtJQUUzQyxZQUFZLFFBQXlCLEVBQUUsS0FBZ0M7Ozs7Ozs7K0NBSjVELG9CQUFvQjs7OztRQUs3QixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNyQyxNQUFNLElBQUksOEJBQXVCLENBQy9CLElBQUEsc0JBQUcsRUFBQSxxQkFBcUIsRUFDeEIsbUlBQW1JLENBQ3BJLENBQUM7UUFDSixDQUFDO1FBQ0QsS0FBSyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUMsbUJBQW1CLENBQUM7S0FDdEQ7SUFFUyx3QkFBd0I7UUFDaEMsT0FBTztZQUNMLGtCQUFrQixFQUFFLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUM7WUFDekQsb0JBQW9CLEVBQUUsVUFBVSxDQUFDLG9CQUFvQixDQUFDLFVBQVU7U0FDakUsQ0FBQztLQUNIO0lBRU0sSUFBSSxDQUFDLEtBQWdCLEVBQUUsT0FBcUM7UUFDakUsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUVwRCxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksVUFBVSxDQUFDLGlDQUFpQyxDQUFDLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1FBQzFHLENBQUM7UUFFRCxrRkFBa0Y7UUFDbEYsMkVBQTJFO1FBQzNFLGtJQUFrSTtRQUNsSSxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUMvQixJQUFJLHlCQUFlLENBQUM7WUFDbEIsR0FBRyxFQUFFLGlDQUFpQztZQUN0QyxNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxLQUFLO1lBQ3BCLFVBQVUsRUFBRSxDQUFDLElBQUksMEJBQWdCLENBQUMsMEJBQTBCLENBQUMsQ0FBQztZQUM5RCxPQUFPLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSw4QkFBOEIsQ0FBQztZQUNyRSxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDO1lBQzVDLFVBQVUsRUFBRTtnQkFDVixZQUFZLEVBQUU7b0JBQ1osZUFBZSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQzt3QkFDN0MsT0FBTyxFQUFFLFlBQVk7d0JBQ3JCLE1BQU0sRUFBRSxFQUFFO3dCQUNWLFFBQVEsRUFBRSxjQUFjO3dCQUN4QixZQUFZLEVBQUUsT0FBTyxDQUFDLGNBQWM7cUJBQ3JDLENBQUM7aUJBQ0g7YUFDRjtTQUNGLENBQUMsQ0FDSCxDQUFDO1FBRUYsT0FBTztZQUNMLEdBQUcsZ0JBQWdCO1lBQ25CLGNBQWMsRUFBRTtnQkFDZCxHQUFHLGdCQUFnQixDQUFDLGNBQWU7Z0JBQ25DLHFCQUFxQixFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxzQkFBc0IsQ0FBQyxxQkFBcUI7YUFDN0Y7U0FDRixDQUFDO0tBQ0g7O0FBNURILG9EQTZEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBjbG91ZGZyb250IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZGZyb250JztcbmltcG9ydCB7IEVmZmVjdCwgUG9saWN5U3RhdGVtZW50LCBTZXJ2aWNlUHJpbmNpcGFsIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgeyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvciB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHsgbGl0IH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvaGVscGVycy1pbnRlcm5hbCc7XG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHR5cGUgeyBJT3JpZ2luRW5kcG9pbnQgfSBmcm9tICcuL2VuZHBvaW50JztcbmltcG9ydCB0eXBlIHsgSUNoYW5uZWxHcm91cCB9IGZyb20gJy4vZ3JvdXAnO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGEgTWVkaWFQYWNrYWdlIFYyIE9yaWdpbiB3aXRoIE9BQy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZWRpYVBhY2thZ2VWMk9yaWdpblByb3BzIGV4dGVuZHMgY2xvdWRmcm9udC5PcmlnaW5Qcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgY2hhbm5lbCBncm91cCB0aGF0IHRoZSBvcmlnaW4gZW5kcG9pbnQgYmVsb25ncyB0by5cbiAgICpcbiAgICogVXNlZCB0byBkZXJpdmUgdGhlIGVncmVzcyBkb21haW4gZm9yIHRoZSBDbG91ZEZyb250IG9yaWdpbi5cbiAgICovXG4gIHJlYWRvbmx5IGNoYW5uZWxHcm91cDogSUNoYW5uZWxHcm91cDtcblxuICAvKipcbiAgICogQW4gb3B0aW9uYWwgT3JpZ2luIEFjY2VzcyBDb250cm9sLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGFuIE9yaWdpbiBBY2Nlc3MgQ29udHJvbCB3aWxsIGJlIGNyZWF0ZWQgYXV0b21hdGljYWxseS5cbiAgICovXG4gIHJlYWRvbmx5IG9yaWdpbkFjY2Vzc0NvbnRyb2w/OiBjbG91ZGZyb250LklPcmlnaW5BY2Nlc3NDb250cm9sUmVmO1xufVxuXG4vKipcbiAqIEEgQ2xvdWRGcm9udCBPcmlnaW4gZm9yIEFXUyBFbGVtZW50YWwgTWVkaWFQYWNrYWdlIFYyIGVuZHBvaW50cy5cbiAqXG4gKiBBdXRvbWF0aWNhbGx5IGNyZWF0ZXMgYW4gT0FDIGFuZCB3aXJlcyB0aGUgb3JpZ2luIGVuZHBvaW50IHBvbGljeVxuICogdG8gZ3JhbnQgdGhlIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uIGFjY2Vzcy5cbiAqXG4gKiBVc2VzIGBhZGRUb1Jlc291cmNlUG9saWN5KClgIG9uIHRoZSBvcmlnaW4gZW5kcG9pbnQsIHdoaWNoIGlzIGNvbXBhdGlibGVcbiAqIHdpdGggb3RoZXIgcG9saWN5IHN0YXRlbWVudHMgYWRkZWQgdG8gdGhlIHNhbWUgZW5kcG9pbnQuIERvIG5vdCB1c2UgdGhpc1xuICogYWxvbmdzaWRlIGEgbWFudWFsbHkgY3JlYXRlZCBgT3JpZ2luRW5kcG9pbnRQb2xpY3lgIGNvbnN0cnVjdCBmb3IgdGhlIHNhbWUgZW5kcG9pbnQuXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiAgICBkZWNsYXJlIGNvbnN0IGVuZHBvaW50OiBPcmlnaW5FbmRwb2ludDtcbiAqICAgIGRlY2xhcmUgY29uc3QgZ3JvdXA6IENoYW5uZWxHcm91cDtcbiAqXG4gKiAgICBuZXcgY2xvdWRmcm9udC5EaXN0cmlidXRpb24odGhpcywgJ0Rpc3QnLCB7XG4gKiAgICAgIGRlZmF1bHRCZWhhdmlvcjoge1xuICogICAgICAgIG9yaWdpbjogbmV3IE1lZGlhUGFja2FnZVYyT3JpZ2luKGVuZHBvaW50LCB7XG4gKiAgICAgICAgICBjaGFubmVsR3JvdXA6IGdyb3VwLFxuICogICAgICAgIH0pLFxuICogICAgICB9LFxuICogICAgfSk7XG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRGcm9udC9sYXRlc3QvRGV2ZWxvcGVyR3VpZGUvcHJpdmF0ZS1jb250ZW50LXJlc3RyaWN0aW5nLWFjY2Vzcy10by1tZWRpYXBhY2thZ2UuaHRtbFxuICovXG5leHBvcnQgY2xhc3MgTWVkaWFQYWNrYWdlVjJPcmlnaW4gZXh0ZW5kcyBjbG91ZGZyb250Lk9yaWdpbkJhc2Uge1xuICBwcml2YXRlIG9yaWdpbkFjY2Vzc0NvbnRyb2w/OiBjbG91ZGZyb250LklPcmlnaW5BY2Nlc3NDb250cm9sUmVmO1xuICBwcml2YXRlIHJlYWRvbmx5IGVuZHBvaW50OiBJT3JpZ2luRW5kcG9pbnQ7XG5cbiAgY29uc3RydWN0b3IoZW5kcG9pbnQ6IElPcmlnaW5FbmRwb2ludCwgcHJvcHM6IE1lZGlhUGFja2FnZVYyT3JpZ2luUHJvcHMpIHtcbiAgICBpZiAoIXByb3BzLmNoYW5uZWxHcm91cC5lZ3Jlc3NEb21haW4pIHtcbiAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgbGl0YE1pc3NpbmdFZ3Jlc3NEb21haW5gLFxuICAgICAgICAnVGhlIGNoYW5uZWwgZ3JvdXAgbXVzdCBoYXZlIGFuIGVncmVzc0RvbWFpbiB0byB1c2UgYXMgYSBDbG91ZEZyb250IG9yaWdpbi4gUHJvdmlkZSBlZ3Jlc3NEb21haW4gd2hlbiBpbXBvcnRpbmcgdGhlIGNoYW5uZWwgZ3JvdXAuJyxcbiAgICAgICk7XG4gICAgfVxuICAgIHN1cGVyKHByb3BzLmNoYW5uZWxHcm91cC5lZ3Jlc3NEb21haW4sIHByb3BzKTtcbiAgICB0aGlzLmVuZHBvaW50ID0gZW5kcG9pbnQ7XG4gICAgdGhpcy5vcmlnaW5BY2Nlc3NDb250cm9sID0gcHJvcHMub3JpZ2luQWNjZXNzQ29udHJvbDtcbiAgfVxuXG4gIHByb3RlY3RlZCByZW5kZXJDdXN0b21PcmlnaW5Db25maWcoKTogY2xvdWRmcm9udC5DZm5EaXN0cmlidXRpb24uQ3VzdG9tT3JpZ2luQ29uZmlnUHJvcGVydHkgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB7XG4gICAgICBvcmlnaW5Tc2xQcm90b2NvbHM6IFtjbG91ZGZyb250Lk9yaWdpblNzbFBvbGljeS5UTFNfVjFfMl0sXG4gICAgICBvcmlnaW5Qcm90b2NvbFBvbGljeTogY2xvdWRmcm9udC5PcmlnaW5Qcm90b2NvbFBvbGljeS5IVFRQU19PTkxZLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgYmluZChzY29wZTogQ29uc3RydWN0LCBvcHRpb25zOiBjbG91ZGZyb250Lk9yaWdpbkJpbmRPcHRpb25zKTogY2xvdWRmcm9udC5PcmlnaW5CaW5kQ29uZmlnIHtcbiAgICBjb25zdCBvcmlnaW5CaW5kQ29uZmlnID0gc3VwZXIuYmluZChzY29wZSwgb3B0aW9ucyk7XG5cbiAgICBpZiAoIXRoaXMub3JpZ2luQWNjZXNzQ29udHJvbCkge1xuICAgICAgdGhpcy5vcmlnaW5BY2Nlc3NDb250cm9sID0gbmV3IGNsb3VkZnJvbnQuTWVkaWFQYWNrYWdlVjJPcmlnaW5BY2Nlc3NDb250cm9sKHNjb3BlLCAnTWVkaWFQYWNrYWdlVjJPQUMnKTtcbiAgICB9XG5cbiAgICAvLyBHcmFudCB0aGUgQ2xvdWRGcm9udCBkaXN0cmlidXRpb24gYWNjZXNzIHRvIHRoZSBNZWRpYVBhY2thZ2UgVjIgb3JpZ2luIGVuZHBvaW50XG4gICAgLy8gSW5jbHVkZXMgR2V0SGVhZE9iamVjdCBmb3IgTVFBUiAoTWVkaWEgUXVhbGl0eS1Bd2FyZSBSZXNpbGllbmN5KSBzdXBwb3J0XG4gICAgLy8gQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRGcm9udC9sYXRlc3QvRGV2ZWxvcGVyR3VpZGUvcHJpdmF0ZS1jb250ZW50LXJlc3RyaWN0aW5nLWFjY2Vzcy10by1tZWRpYXBhY2thZ2UuaHRtbFxuICAgIHRoaXMuZW5kcG9pbnQuYWRkVG9SZXNvdXJjZVBvbGljeShcbiAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBzaWQ6ICdBbGxvd0Nsb3VkRnJvbnRTZXJ2aWNlUHJpbmNpcGFsJyxcbiAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgIHByaW5jaXBhbHM6IFtuZXcgU2VydmljZVByaW5jaXBhbCgnY2xvdWRmcm9udC5hbWF6b25hd3MuY29tJyldLFxuICAgICAgICBhY3Rpb25zOiBbJ21lZGlhcGFja2FnZXYyOkdldE9iamVjdCcsICdtZWRpYXBhY2thZ2V2MjpHZXRIZWFkT2JqZWN0J10sXG4gICAgICAgIHJlc291cmNlczogW3RoaXMuZW5kcG9pbnQub3JpZ2luRW5kcG9pbnRBcm5dLFxuICAgICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgICAnYXdzOlNvdXJjZUFybic6IGNkay5TdGFjay5vZihzY29wZSkuZm9ybWF0QXJuKHtcbiAgICAgICAgICAgICAgc2VydmljZTogJ2Nsb3VkZnJvbnQnLFxuICAgICAgICAgICAgICByZWdpb246ICcnLFxuICAgICAgICAgICAgICByZXNvdXJjZTogJ2Rpc3RyaWJ1dGlvbicsXG4gICAgICAgICAgICAgIHJlc291cmNlTmFtZTogb3B0aW9ucy5kaXN0cmlidXRpb25JZCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLm9yaWdpbkJpbmRDb25maWcsXG4gICAgICBvcmlnaW5Qcm9wZXJ0eToge1xuICAgICAgICAuLi5vcmlnaW5CaW5kQ29uZmlnLm9yaWdpblByb3BlcnR5ISxcbiAgICAgICAgb3JpZ2luQWNjZXNzQ29udHJvbElkOiB0aGlzLm9yaWdpbkFjY2Vzc0NvbnRyb2wub3JpZ2luQWNjZXNzQ29udHJvbFJlZi5vcmlnaW5BY2Nlc3NDb250cm9sSWQsXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
package/lib/endpoint.d.ts
CHANGED
|
@@ -3,7 +3,8 @@ import { RemovalPolicy, Duration, Resource } from 'aws-cdk-lib';
|
|
|
3
3
|
import type { ICertificate } from 'aws-cdk-lib/aws-certificatemanager';
|
|
4
4
|
import type { MetricOptions } from 'aws-cdk-lib/aws-cloudwatch';
|
|
5
5
|
import { Metric } from 'aws-cdk-lib/aws-cloudwatch';
|
|
6
|
-
import type { IRole,
|
|
6
|
+
import type { IRole, AddToResourcePolicyResult } from 'aws-cdk-lib/aws-iam';
|
|
7
|
+
import { PolicyStatement } from 'aws-cdk-lib/aws-iam';
|
|
7
8
|
import { CfnOriginEndpoint } from 'aws-cdk-lib/aws-mediapackagev2';
|
|
8
9
|
import type { IOriginEndpointRef, OriginEndpointReference } from 'aws-cdk-lib/aws-mediapackagev2';
|
|
9
10
|
import type { Construct } from 'constructs';
|
|
@@ -617,9 +618,8 @@ export interface IOriginEndpoint extends IResource, IOriginEndpointRef {
|
|
|
617
618
|
* If you have already defined one, it will append to the policy already created.
|
|
618
619
|
*
|
|
619
620
|
* @param statement - The policy statement to add
|
|
620
|
-
* @param cdnAuth - Optional CDN authorization configuration. Only the first CDN auth configuration is used if provided multiple times.
|
|
621
621
|
*/
|
|
622
|
-
addToResourcePolicy(statement: PolicyStatement
|
|
622
|
+
addToResourcePolicy(statement: PolicyStatement): AddToResourcePolicyResult;
|
|
623
623
|
/**
|
|
624
624
|
* Create a CloudWatch metric.
|
|
625
625
|
*
|
|
@@ -1343,6 +1343,35 @@ export interface OriginEndpointOptions {
|
|
|
1343
1343
|
/**
|
|
1344
1344
|
* Provide access to MediaPackage V2 Origin Endpoint via secret header.
|
|
1345
1345
|
*
|
|
1346
|
+
* Use this when your CDN doesn't support AWS Signature Version 4 (SigV4)
|
|
1347
|
+
* authentication. For SigV4-based access with Amazon CloudFront, see
|
|
1348
|
+
* `MediaPackageV2Origin`.
|
|
1349
|
+
*
|
|
1350
|
+
* Setting `cdnAuth` auto-creates the following policy on the OriginEndpoint:
|
|
1351
|
+
*
|
|
1352
|
+
* ```json
|
|
1353
|
+
* {
|
|
1354
|
+
* "Version":"2012-10-17",
|
|
1355
|
+
* "Statement": [
|
|
1356
|
+
* {
|
|
1357
|
+
* "Sid": "AllowGetObjectAccessForAuthorizedRequest",
|
|
1358
|
+
* "Effect": "Allow",
|
|
1359
|
+
* "Principal": "*",
|
|
1360
|
+
* "Action": "mediapackagev2:GetObject",
|
|
1361
|
+
* "Resource": "arn:aws:mediapackagev2:us-east-1:111122223333:channelGroup/channelGroupName/channel/channelName/originEndpoint/originEndpointName",
|
|
1362
|
+
* "Condition": {
|
|
1363
|
+
* "Bool": {
|
|
1364
|
+
* "mediapackagev2:RequestHasMatchingCdnAuthHeader": "true"
|
|
1365
|
+
* }
|
|
1366
|
+
* }
|
|
1367
|
+
* }
|
|
1368
|
+
* ]
|
|
1369
|
+
* }
|
|
1370
|
+
* ```
|
|
1371
|
+
*
|
|
1372
|
+
* @see https://docs.aws.amazon.com/mediapackage/latest/userguide/cdn-auth.html
|
|
1373
|
+
* @see https://docs.aws.amazon.com/mediapackage/latest/userguide/cdn-auth-setup.html
|
|
1374
|
+
*
|
|
1346
1375
|
* @default undefined - Not configured on endpoint
|
|
1347
1376
|
*/
|
|
1348
1377
|
readonly cdnAuth?: CdnAuthConfiguration;
|
|
@@ -1869,20 +1898,20 @@ declare abstract class OriginEndpointBase extends Resource implements IOriginEnd
|
|
|
1869
1898
|
protected abstract autoCreatePolicy: boolean;
|
|
1870
1899
|
/**
|
|
1871
1900
|
* CDN authorization configuration to be applied when the policy is created.
|
|
1901
|
+
* Set by subclass constructors when `cdnAuth` is provided in props.
|
|
1872
1902
|
*/
|
|
1873
|
-
|
|
1903
|
+
protected cdnAuthConfig?: CdnAuthConfiguration;
|
|
1874
1904
|
/**
|
|
1875
1905
|
* Configure origin endpoint policy.
|
|
1876
1906
|
*
|
|
1877
|
-
* You can only add 1 OriginEndpointPolicy to an OriginEndpoint.
|
|
1878
|
-
*
|
|
1907
|
+
* You can only add 1 OriginEndpointPolicy to an OriginEndpoint. If you have already
|
|
1908
|
+
* defined one, this will append to the policy already created.
|
|
1909
|
+
*
|
|
1910
|
+
* To configure CDN authentication, set `cdnAuth` on the construct's props instead.
|
|
1879
1911
|
*
|
|
1880
1912
|
* @param statement - The policy statement to add
|
|
1881
|
-
* @param cdnAuth - Optional CDN authorization configuration. If provided, the policy will be
|
|
1882
|
-
* created with CDN authentication enabled using secrets from AWS Secrets Manager.
|
|
1883
|
-
* If cdnAuth is provided multiple times, only the first configuration is used.
|
|
1884
1913
|
*/
|
|
1885
|
-
addToResourcePolicy(statement: PolicyStatement
|
|
1914
|
+
addToResourcePolicy(statement: PolicyStatement): AddToResourcePolicyResult;
|
|
1886
1915
|
/**
|
|
1887
1916
|
* Validate and modify Segment configuration for endpoint.
|
|
1888
1917
|
*/
|