aws-delivlib 13.6.1 → 13.6.4

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.
Files changed (26) hide show
  1. package/cdk.out/{asset.98dba9b3d79739d40a37e0621754556a791eef3b1c96e913c6e8d5df3a379bd4 → asset.0ff875115bf3a3ba9f32946b1f2b9b153553ecba0e511c42ac11bef064968c40}/index.js +30 -30
  2. package/cdk.out/asset.15684a15d07860e99d2a8079150ad33dd2cb743677fcd7016dd07345e1b69538/__entrypoint__.js +119 -0
  3. package/cdk.out/asset.15684a15d07860e99d2a8079150ad33dd2cb743677fcd7016dd07345e1b69538/index.d.ts +1 -0
  4. package/cdk.out/asset.15684a15d07860e99d2a8079150ad33dd2cb743677fcd7016dd07345e1b69538/index.js +81 -0
  5. package/cdk.out/{asset.70d613312145b8280d33a47035cc5be2a9bd0e5069705e39f83b14cd1f720e99 → asset.9012a4bd6eb36f7ec4fec65ce817435d9b8dda297c62e87163a773c7d25c60a9}/_cloud-formation.js +0 -0
  6. package/cdk.out/{asset.70d613312145b8280d33a47035cc5be2a9bd0e5069705e39f83b14cd1f720e99 → asset.9012a4bd6eb36f7ec4fec65ce817435d9b8dda297c62e87163a773c7d25c60a9}/_exec.js +0 -0
  7. package/cdk.out/{asset.70d613312145b8280d33a47035cc5be2a9bd0e5069705e39f83b14cd1f720e99 → asset.9012a4bd6eb36f7ec4fec65ce817435d9b8dda297c62e87163a773c7d25c60a9}/_lambda.js +0 -0
  8. package/cdk.out/{asset.70d613312145b8280d33a47035cc5be2a9bd0e5069705e39f83b14cd1f720e99 → asset.9012a4bd6eb36f7ec4fec65ce817435d9b8dda297c62e87163a773c7d25c60a9}/_rmrf.js +0 -0
  9. package/cdk.out/{asset.70d613312145b8280d33a47035cc5be2a9bd0e5069705e39f83b14cd1f720e99 → asset.9012a4bd6eb36f7ec4fec65ce817435d9b8dda297c62e87163a773c7d25c60a9}/certificate-signing-request.js +18 -3
  10. package/cdk.out/{asset.70d613312145b8280d33a47035cc5be2a9bd0e5069705e39f83b14cd1f720e99 → asset.9012a4bd6eb36f7ec4fec65ce817435d9b8dda297c62e87163a773c7d25c60a9}/index.js +18 -3
  11. package/cdk.out/delivlib-test.assets.json +22 -8
  12. package/cdk.out/delivlib-test.template.json +237 -4
  13. package/cdk.out/manifest.json +118 -5
  14. package/cdk.out/tree.json +619 -393
  15. package/lib/code-signing/certificate-signing-request.d.ts +4 -1
  16. package/lib/code-signing/certificate-signing-request.js +11 -1
  17. package/lib/code-signing/certificate-signing-request.ts +17 -1
  18. package/lib/custom-resource-handlers/bin/certificate-signing-request/certificate-signing-request.js +18 -3
  19. package/lib/custom-resource-handlers/bin/certificate-signing-request/index.js +18 -3
  20. package/lib/custom-resource-handlers/src/certificate-signing-request.js +18 -3
  21. package/lib/custom-resource-handlers/src/certificate-signing-request.ts +19 -2
  22. package/lib/custom-resource-handlers/src/certificate-signing-request.tsbuildinfo +1 -1
  23. package/lib/custom-resource-handlers/src/pgp-secret.tsbuildinfo +1 -1
  24. package/lib/custom-resource-handlers/src/private-key.tsbuildinfo +1 -1
  25. package/lib/package-integrity/handler/validate.bundle.js +424 -358
  26. package/package.json +10 -9
@@ -32,9 +32,12 @@ export interface CertificateSigningRequestProps {
32
32
  */
33
33
  export declare class CertificateSigningRequest extends Construct {
34
34
  /**
35
- * The PEM-encoded CSR document.
35
+ * The S3 URL to the CSR document.
36
36
  */
37
37
  readonly pemRequest: string;
38
+ /**
39
+ * The S3 URL to a self-signed certificate that corresponds with this CSR.
40
+ */
38
41
  readonly selfSignedPemCertificate: string;
39
42
  constructor(parent: Construct, id: string, props: CertificateSigningRequestProps);
40
43
  }
@@ -48,6 +48,14 @@ class CertificateSigningRequest extends monocdk_1.Construct {
48
48
  code: monocdk_1.aws_lambda.Code.fromAsset(path.join(__dirname, '..', 'custom-resource-handlers', 'layers', 'openssl-cli-layer.zip')),
49
49
  })],
50
50
  });
51
+ const outputBucket = new monocdk_1.aws_s3.Bucket(this, 'Bucket', {
52
+ // CSRs can be easily re-created if lost or corrupt, so we can let those get to a black hole, no worries.
53
+ autoDeleteObjects: true,
54
+ removalPolicy: monocdk_1.RemovalPolicy.DESTROY,
55
+ encryption: monocdk_1.aws_s3.BucketEncryption.S3_MANAGED,
56
+ enforceSSL: true,
57
+ });
58
+ outputBucket.grantReadWrite(customResource);
51
59
  const csr = new monocdk_1.aws_cloudformation.CustomResource(this, 'Resource', {
52
60
  provider: monocdk_1.aws_cloudformation.CustomResourceProvider.lambda(customResource),
53
61
  resourceType: 'Custom::CertificateSigningRequest',
@@ -66,6 +74,8 @@ class CertificateSigningRequest extends monocdk_1.Construct {
66
74
  // Key Usage
67
75
  extendedKeyUsage: props.extendedKeyUsage || '',
68
76
  keyUsage: props.keyUsage,
77
+ // Ouput location
78
+ outputBucket: outputBucket.bucketName,
69
79
  },
70
80
  });
71
81
  if (customResource.role) {
@@ -78,4 +88,4 @@ class CertificateSigningRequest extends monocdk_1.Construct {
78
88
  }
79
89
  }
80
90
  exports.CertificateSigningRequest = CertificateSigningRequest;
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VydGlmaWNhdGUtc2lnbmluZy1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2VydGlmaWNhdGUtc2lnbmluZy1yZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBNkI7QUFDN0IscUNBSWlCO0FBQ2pCLGtDQUE4QztBQTJCOUM7Ozs7Ozs7R0FPRztBQUNILE1BQWEseUJBQTBCLFNBQVEsbUJBQVM7SUFRdEQsWUFBWSxNQUFpQixFQUFFLEVBQVUsRUFBRSxLQUFxQztRQUM5RSxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWxCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSwwQkFBMEIsRUFBRSxLQUFLLEVBQUUsNkJBQTZCLENBQUMsQ0FBQztRQUNySCxNQUFNLGNBQWMsR0FBRyxJQUFJLG9CQUFNLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFO1lBQzNFLElBQUksRUFBRSxzQ0FBc0M7WUFDNUMsYUFBYSxFQUFFLFdBQVc7WUFDMUIsV0FBVyxFQUFFLHdFQUF3RTtZQUNyRixPQUFPLEVBQUUsb0JBQU0sQ0FBQyxPQUFPLENBQUMsV0FBVztZQUNuQyxPQUFPLEVBQUUsZUFBZTtZQUN4QixJQUFJLEVBQUUsSUFBSSxvQkFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUM7WUFDeEMsT0FBTyxFQUFFLGtCQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUM5QixxREFBcUQ7WUFDckQsTUFBTSxFQUFFLENBQUMsSUFBSSxvQkFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUU7b0JBQ3hELElBQUksRUFBRSxvQkFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLDBCQUEwQixFQUFFLFFBQVEsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO2lCQUN2SCxDQUFDLENBQUM7U0FDSixDQUFDLENBQUM7UUFFSCxNQUFNLEdBQUcsR0FBRyxJQUFJLDRCQUFHLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDbkQsUUFBUSxFQUFFLDRCQUFHLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQztZQUMzRCxZQUFZLEVBQUUsbUNBQW1DO1lBQ2pELFVBQVUsRUFBRTtnQkFDVixlQUFlLEVBQUUsSUFBQSwwQkFBbUIsRUFBQyxZQUFZLENBQUM7Z0JBQ2xELGNBQWM7Z0JBQ2Qsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTO2dCQUM5QyxxQkFBcUI7Z0JBQ3JCLFlBQVksRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLFVBQVU7Z0JBQ2pDLFNBQVMsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU87Z0JBQzNCLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsZUFBZTtnQkFDM0MsVUFBVSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsUUFBUTtnQkFDN0Isa0JBQWtCLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0I7Z0JBQzdDLHdCQUF3QixFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsc0JBQXNCO2dCQUN6RCxjQUFjLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxZQUFZO2dCQUNyQyxZQUFZO2dCQUNaLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFO2dCQUM5QyxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7YUFDekI7U0FDRixDQUFDLENBQUM7UUFDSCxJQUFJLGNBQWMsQ0FBQyxJQUFJLEVBQUU7WUFDdkIsMkRBQTJEO1lBQzNELEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1QyxLQUFLLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMzRDtRQUVELElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMvQyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pGLENBQUM7Q0FDRjtBQXZERCw4REF1REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHtcbiAgQ29uc3RydWN0LCBEdXJhdGlvbixcbiAgYXdzX2Nsb3VkZm9ybWF0aW9uIGFzIGNmbixcbiAgYXdzX2xhbWJkYSBhcyBsYW1iZGEsXG59IGZyb20gJ21vbm9jZGsnO1xuaW1wb3J0IHsgaGFzaEZpbGVPckRpcmVjdG9yeSB9IGZyb20gJy4uL3V0aWwnO1xuaW1wb3J0IHsgUnNhUHJpdmF0ZUtleVNlY3JldCB9IGZyb20gJy4vcHJpdmF0ZS1rZXknO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2VydGlmaWNhdGVTaWduaW5nUmVxdWVzdFByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBSU0EgUHJpdmF0ZSBLZXkgdG8gdXNlIGZvciB0aGlzIENTUi5cbiAgICovXG4gIHByaXZhdGVLZXk6IFJzYVByaXZhdGVLZXlTZWNyZXQ7XG4gIC8qKlxuICAgKiBUaGUgRGlzdGluZ3Vpc2hlZCBOYW1lIGZvciB0aGlzIENTUi5cbiAgICovXG4gIGRuOiBEaXN0aW5ndWlzaGVkTmFtZTtcbiAgLyoqXG4gICAqIFRoZSBrZXkgdXNhZ2UgcmVxdWVzdHMgZm9yIHRoaXMgQ1NSLlxuICAgKlxuICAgKiBAZXhhbXBsZSBjcml0aWNhbCxkaWdpdGFsU2lnbmF0dXJlXG4gICAqL1xuICBrZXlVc2FnZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGV4dGVuZGVkIGtleSB1c2FnZSByZXF1ZXN0cyBmb3IgdGhpcyBDU1IuXG4gICAqXG4gICAqIEBleGFtcGxlIGNyaXRpY2FsLGNvZGVTaWduaW5nXG4gICAqL1xuICBleHRlbmRlZEtleVVzYWdlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBDZXJ0aWZpY2F0ZSBTaWduaW5nIFJlcXVlc3QgKENTUiksIHdoaWNoIHdpbGwgYWxsb3cgYSBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgdG8gcHJvdmlkZSBhIHNpZ25lZCBjZXJ0aWZpY2F0ZVxuICogdGhhdCB1c2VzIHRoZSBzcGVjaWZpZWQgUlNBIFByaXZhdGUgS2V5LiBBIENTUiBkb2N1bWVudCBjYW4gdXN1YWxseSBiZSBzaGFyZWQgcHVibGljbHksIGhvd2V2ZXIgaXQgbXVzdCBiZSBub3RlZCB0aGF0XG4gKiB0aGUgaW5mb3JtYXRpb24gcHJvdmlkZWQgaW4gdGhlIGBgZG5gYCBmaWVsZHMsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBwdWJsaWMga2V5IGFuZCB0aGUgaW50ZW5kZWQgbGV5IHVzYWdlIHdpbGwgYmVcbiAqIHJlYWRhYmxlIGJ5IGFueW9uZSB3aG8gY2FuIGFjY2VzcyB0aGUgQ1NSLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly93d3cub3BlbnNzbC5vcmcvZG9jcy9tYW5tYXN0ZXIvbWFuMS9yZXEuaHRtbFxuICovXG5leHBvcnQgY2xhc3MgQ2VydGlmaWNhdGVTaWduaW5nUmVxdWVzdCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBUaGUgUEVNLWVuY29kZWQgQ1NSIGRvY3VtZW50LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHBlbVJlcXVlc3Q6IHN0cmluZztcblxuICBwdWJsaWMgcmVhZG9ubHkgc2VsZlNpZ25lZFBlbUNlcnRpZmljYXRlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocGFyZW50OiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDZXJ0aWZpY2F0ZVNpZ25pbmdSZXF1ZXN0UHJvcHMpIHtcbiAgICBzdXBlcihwYXJlbnQsIGlkKTtcblxuICAgIGNvbnN0IGNvZGVMb2NhdGlvbiA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuLicsICdjdXN0b20tcmVzb3VyY2UtaGFuZGxlcnMnLCAnYmluJywgJ2NlcnRpZmljYXRlLXNpZ25pbmctcmVxdWVzdCcpO1xuICAgIGNvbnN0IGN1c3RvbVJlc291cmNlID0gbmV3IGxhbWJkYS5TaW5nbGV0b25GdW5jdGlvbih0aGlzLCAnUmVzb3VyY2VIYW5kbGVyJywge1xuICAgICAgdXVpZDogJzU0MUY2NzgyLTZEQ0YtNDlBNy04QzVBLTY3NzE1QUREOUU0QycsXG4gICAgICBsYW1iZGFQdXJwb3NlOiAnQ3JlYXRlQ1NSJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQ3JlYXRlcyBhIENlcnRpZmljYXRlIFNpZ25pbmcgUmVxdWVzdCBkb2N1bWVudCBmb3IgYW4geDUwOSBjZXJ0aWZpY2F0ZScsXG4gICAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5OT0RFSlNfMTJfWCxcbiAgICAgIGhhbmRsZXI6ICdpbmRleC5oYW5kbGVyJyxcbiAgICAgIGNvZGU6IG5ldyBsYW1iZGEuQXNzZXRDb2RlKGNvZGVMb2NhdGlvbiksXG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDMwMCksXG4gICAgICAvLyBhZGQgdGhlIGxheWVyIHRoYXQgY29udGFpbnMgdGhlIE9wZW5TU0wgQ0xJIGJpbmFyeVxuICAgICAgbGF5ZXJzOiBbbmV3IGxhbWJkYS5MYXllclZlcnNpb24odGhpcywgJ09wZW5Tc2xDbGlMYXllcicsIHtcbiAgICAgICAgY29kZTogbGFtYmRhLkNvZGUuZnJvbUFzc2V0KHBhdGguam9pbihfX2Rpcm5hbWUsICcuLicsICdjdXN0b20tcmVzb3VyY2UtaGFuZGxlcnMnLCAnbGF5ZXJzJywgJ29wZW5zc2wtY2xpLWxheWVyLnppcCcpKSxcbiAgICAgIH0pXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGNzciA9IG5ldyBjZm4uQ3VzdG9tUmVzb3VyY2UodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgcHJvdmlkZXI6IGNmbi5DdXN0b21SZXNvdXJjZVByb3ZpZGVyLmxhbWJkYShjdXN0b21SZXNvdXJjZSksXG4gICAgICByZXNvdXJjZVR5cGU6ICdDdXN0b206OkNlcnRpZmljYXRlU2lnbmluZ1JlcXVlc3QnLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICByZXNvdXJjZVZlcnNpb246IGhhc2hGaWxlT3JEaXJlY3RvcnkoY29kZUxvY2F0aW9uKSxcbiAgICAgICAgLy8gUHJpdmF0ZSBrZXlcbiAgICAgICAgcHJpdmF0ZUtleVNlY3JldElkOiBwcm9wcy5wcml2YXRlS2V5LnNlY3JldEFybixcbiAgICAgICAgLy8gRGlzdGluZ3Vpc2hlZCBuYW1lXG4gICAgICAgIGRuQ29tbW9uTmFtZTogcHJvcHMuZG4uY29tbW9uTmFtZSxcbiAgICAgICAgZG5Db3VudHJ5OiBwcm9wcy5kbi5jb3VudHJ5LFxuICAgICAgICBkblN0YXRlT3JQcm92aW5jZTogcHJvcHMuZG4uc3RhdGVPclByb3ZpbmNlLFxuICAgICAgICBkbkxvY2FsaXR5OiBwcm9wcy5kbi5sb2NhbGl0eSxcbiAgICAgICAgZG5Pcmdhbml6YXRpb25OYW1lOiBwcm9wcy5kbi5vcmdhbml6YXRpb25OYW1lLFxuICAgICAgICBkbk9yZ2FuaXphdGlvbmFsVW5pdE5hbWU6IHByb3BzLmRuLm9yZ2FuaXphdGlvbmFsVW5pdE5hbWUsXG4gICAgICAgIGRuRW1haWxBZGRyZXNzOiBwcm9wcy5kbi5lbWFpbEFkZHJlc3MsXG4gICAgICAgIC8vIEtleSBVc2FnZVxuICAgICAgICBleHRlbmRlZEtleVVzYWdlOiBwcm9wcy5leHRlbmRlZEtleVVzYWdlIHx8ICcnLFxuICAgICAgICBrZXlVc2FnZTogcHJvcHMua2V5VXNhZ2UsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGlmIChjdXN0b21SZXNvdXJjZS5yb2xlKSB7XG4gICAgICAvLyBNYWtlIHN1cmUgdGhlIHBlcm1pc3Npb25zIGFyZSBhbGwgZ29vZCBiZWZvcmUgcHJvY2VlZGluZ1xuICAgICAgY3NyLm5vZGUuYWRkRGVwZW5kZW5jeShjdXN0b21SZXNvdXJjZS5yb2xlKTtcbiAgICAgIHByb3BzLnByaXZhdGVLZXkuZ3JhbnRHZXRTZWNyZXRWYWx1ZShjdXN0b21SZXNvdXJjZS5yb2xlKTtcbiAgICB9XG5cbiAgICB0aGlzLnBlbVJlcXVlc3QgPSBjc3IuZ2V0QXR0KCdDU1InKS50b1N0cmluZygpO1xuICAgIHRoaXMuc2VsZlNpZ25lZFBlbUNlcnRpZmljYXRlID0gY3NyLmdldEF0dCgnU2VsZlNpZ25lZENlcnRpZmljYXRlJykudG9TdHJpbmcoKTtcbiAgfVxufVxuXG4vKipcbiAqIEZpZWxkcyB0aGF0IGNvbXBvc2UgdGhlIGRpc3Rpbmd1aXNoZWQgbmFtZSBvZiBhIGNlcnRpZmljYXRlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGlzdGluZ3Vpc2hlZE5hbWUge1xuICAvKiogVGhlIENvbW1vbiBOYW1lIChDTikgKi9cbiAgY29tbW9uTmFtZTogc3RyaW5nO1xuICAvKiogVGhlIGVtYWlsIGFkZHJlc3MgKGVtYWlsQWRkcmVzcykgKi9cbiAgZW1haWxBZGRyZXNzOiBzdHJpbmc7XG5cbiAgLyoqIFRoZSBDb3VudHJ5IChDKSAqL1xuICBjb3VudHJ5OiBzdHJpbmc7XG4gIC8qKiBUaGUgU3RhdGUgb3IgUHJvdmluY2UgKFNUKSAqL1xuICBzdGF0ZU9yUHJvdmluY2U6IHN0cmluZztcbiAgLyoqIFRoZSBsb2NhbGl0eSAoTCkgKi9cbiAgbG9jYWxpdHk6IHN0cmluZztcblxuICAvKiogVGhlIG9yZ2FuaXphdGlvbiBuYW1lIChPKSAqL1xuICBvcmdhbml6YXRpb25OYW1lOiBzdHJpbmc7XG4gIC8qKiBUaGUgb3JnYW5pemF0aW9uYWwgdW5pdCBuYW1lIChPVSkgKi9cbiAgb3JnYW5pemF0aW9uYWxVbml0TmFtZTogc3RyaW5nO1xufVxuIl19
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VydGlmaWNhdGUtc2lnbmluZy1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2VydGlmaWNhdGUtc2lnbmluZy1yZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBNkI7QUFDN0IscUNBTWlCO0FBQ2pCLGtDQUE4QztBQTJCOUM7Ozs7Ozs7R0FPRztBQUNILE1BQWEseUJBQTBCLFNBQVEsbUJBQVM7SUFXdEQsWUFBWSxNQUFpQixFQUFFLEVBQVUsRUFBRSxLQUFxQztRQUM5RSxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWxCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSwwQkFBMEIsRUFBRSxLQUFLLEVBQUUsNkJBQTZCLENBQUMsQ0FBQztRQUNySCxNQUFNLGNBQWMsR0FBRyxJQUFJLG9CQUFNLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFO1lBQzNFLElBQUksRUFBRSxzQ0FBc0M7WUFDNUMsYUFBYSxFQUFFLFdBQVc7WUFDMUIsV0FBVyxFQUFFLHdFQUF3RTtZQUNyRixPQUFPLEVBQUUsb0JBQU0sQ0FBQyxPQUFPLENBQUMsV0FBVztZQUNuQyxPQUFPLEVBQUUsZUFBZTtZQUN4QixJQUFJLEVBQUUsSUFBSSxvQkFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUM7WUFDeEMsT0FBTyxFQUFFLGtCQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUM5QixxREFBcUQ7WUFDckQsTUFBTSxFQUFFLENBQUMsSUFBSSxvQkFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUU7b0JBQ3hELElBQUksRUFBRSxvQkFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLDBCQUEwQixFQUFFLFFBQVEsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO2lCQUN2SCxDQUFDLENBQUM7U0FDSixDQUFDLENBQUM7UUFFSCxNQUFNLFlBQVksR0FBRyxJQUFJLGdCQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUU7WUFDakQseUdBQXlHO1lBQ3pHLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsYUFBYSxFQUFFLHVCQUFhLENBQUMsT0FBTztZQUNwQyxVQUFVLEVBQUUsZ0JBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVO1lBQzFDLFVBQVUsRUFBRSxJQUFJO1NBQ2pCLENBQUMsQ0FBQztRQUNILFlBQVksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFNUMsTUFBTSxHQUFHLEdBQUcsSUFBSSw0QkFBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ25ELFFBQVEsRUFBRSw0QkFBRyxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUM7WUFDM0QsWUFBWSxFQUFFLG1DQUFtQztZQUNqRCxVQUFVLEVBQUU7Z0JBQ1YsZUFBZSxFQUFFLElBQUEsMEJBQW1CLEVBQUMsWUFBWSxDQUFDO2dCQUNsRCxjQUFjO2dCQUNkLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUztnQkFDOUMscUJBQXFCO2dCQUNyQixZQUFZLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxVQUFVO2dCQUNqQyxTQUFTLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPO2dCQUMzQixpQkFBaUIsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLGVBQWU7Z0JBQzNDLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLFFBQVE7Z0JBQzdCLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsZ0JBQWdCO2dCQUM3Qyx3QkFBd0IsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLHNCQUFzQjtnQkFDekQsY0FBYyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsWUFBWTtnQkFDckMsWUFBWTtnQkFDWixnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCLElBQUksRUFBRTtnQkFDOUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO2dCQUN4QixpQkFBaUI7Z0JBQ2pCLFlBQVksRUFBRSxZQUFZLENBQUMsVUFBVTthQUN0QztTQUNGLENBQUMsQ0FBQztRQUNILElBQUksY0FBYyxDQUFDLElBQUksRUFBRTtZQUN2QiwyREFBMkQ7WUFDM0QsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVDLEtBQUssQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzNEO1FBRUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQy9DLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDakYsQ0FBQztDQUNGO0FBckVELDhEQXFFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQge1xuICBDb25zdHJ1Y3QsIER1cmF0aW9uLFxuICBhd3NfY2xvdWRmb3JtYXRpb24gYXMgY2ZuLFxuICBhd3NfbGFtYmRhIGFzIGxhbWJkYSxcbiAgYXdzX3MzIGFzIHMzLFxuICBSZW1vdmFsUG9saWN5LFxufSBmcm9tICdtb25vY2RrJztcbmltcG9ydCB7IGhhc2hGaWxlT3JEaXJlY3RvcnkgfSBmcm9tICcuLi91dGlsJztcbmltcG9ydCB7IFJzYVByaXZhdGVLZXlTZWNyZXQgfSBmcm9tICcuL3ByaXZhdGUta2V5JztcblxuXG5leHBvcnQgaW50ZXJmYWNlIENlcnRpZmljYXRlU2lnbmluZ1JlcXVlc3RQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgUlNBIFByaXZhdGUgS2V5IHRvIHVzZSBmb3IgdGhpcyBDU1IuXG4gICAqL1xuICBwcml2YXRlS2V5OiBSc2FQcml2YXRlS2V5U2VjcmV0O1xuICAvKipcbiAgICogVGhlIERpc3Rpbmd1aXNoZWQgTmFtZSBmb3IgdGhpcyBDU1IuXG4gICAqL1xuICBkbjogRGlzdGluZ3Vpc2hlZE5hbWU7XG4gIC8qKlxuICAgKiBUaGUga2V5IHVzYWdlIHJlcXVlc3RzIGZvciB0aGlzIENTUi5cbiAgICpcbiAgICogQGV4YW1wbGUgY3JpdGljYWwsZGlnaXRhbFNpZ25hdHVyZVxuICAgKi9cbiAga2V5VXNhZ2U6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBleHRlbmRlZCBrZXkgdXNhZ2UgcmVxdWVzdHMgZm9yIHRoaXMgQ1NSLlxuICAgKlxuICAgKiBAZXhhbXBsZSBjcml0aWNhbCxjb2RlU2lnbmluZ1xuICAgKi9cbiAgZXh0ZW5kZWRLZXlVc2FnZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgQ2VydGlmaWNhdGUgU2lnbmluZyBSZXF1ZXN0IChDU1IpLCB3aGljaCB3aWxsIGFsbG93IGEgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IHRvIHByb3ZpZGUgYSBzaWduZWQgY2VydGlmaWNhdGVcbiAqIHRoYXQgdXNlcyB0aGUgc3BlY2lmaWVkIFJTQSBQcml2YXRlIEtleS4gQSBDU1IgZG9jdW1lbnQgY2FuIHVzdWFsbHkgYmUgc2hhcmVkIHB1YmxpY2x5LCBob3dldmVyIGl0IG11c3QgYmUgbm90ZWQgdGhhdFxuICogdGhlIGluZm9ybWF0aW9uIHByb3ZpZGVkIGluIHRoZSBgYGRuYGAgZmllbGRzLCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcHVibGljIGtleSBhbmQgdGhlIGludGVuZGVkIGxleSB1c2FnZSB3aWxsIGJlXG4gKiByZWFkYWJsZSBieSBhbnlvbmUgd2hvIGNhbiBhY2Nlc3MgdGhlIENTUi5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vd3d3Lm9wZW5zc2wub3JnL2RvY3MvbWFubWFzdGVyL21hbjEvcmVxLmh0bWxcbiAqL1xuZXhwb3J0IGNsYXNzIENlcnRpZmljYXRlU2lnbmluZ1JlcXVlc3QgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogVGhlIFMzIFVSTCB0byB0aGUgQ1NSIGRvY3VtZW50LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHBlbVJlcXVlc3Q6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIFMzIFVSTCB0byBhIHNlbGYtc2lnbmVkIGNlcnRpZmljYXRlIHRoYXQgY29ycmVzcG9uZHMgd2l0aCB0aGlzIENTUi5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzZWxmU2lnbmVkUGVtQ2VydGlmaWNhdGU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihwYXJlbnQ6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IENlcnRpZmljYXRlU2lnbmluZ1JlcXVlc3RQcm9wcykge1xuICAgIHN1cGVyKHBhcmVudCwgaWQpO1xuXG4gICAgY29uc3QgY29kZUxvY2F0aW9uID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4uJywgJ2N1c3RvbS1yZXNvdXJjZS1oYW5kbGVycycsICdiaW4nLCAnY2VydGlmaWNhdGUtc2lnbmluZy1yZXF1ZXN0Jyk7XG4gICAgY29uc3QgY3VzdG9tUmVzb3VyY2UgPSBuZXcgbGFtYmRhLlNpbmdsZXRvbkZ1bmN0aW9uKHRoaXMsICdSZXNvdXJjZUhhbmRsZXInLCB7XG4gICAgICB1dWlkOiAnNTQxRjY3ODItNkRDRi00OUE3LThDNUEtNjc3MTVBREQ5RTRDJyxcbiAgICAgIGxhbWJkYVB1cnBvc2U6ICdDcmVhdGVDU1InLFxuICAgICAgZGVzY3JpcHRpb246ICdDcmVhdGVzIGEgQ2VydGlmaWNhdGUgU2lnbmluZyBSZXF1ZXN0IGRvY3VtZW50IGZvciBhbiB4NTA5IGNlcnRpZmljYXRlJyxcbiAgICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLk5PREVKU18xMl9YLFxuICAgICAgaGFuZGxlcjogJ2luZGV4LmhhbmRsZXInLFxuICAgICAgY29kZTogbmV3IGxhbWJkYS5Bc3NldENvZGUoY29kZUxvY2F0aW9uKSxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoMzAwKSxcbiAgICAgIC8vIGFkZCB0aGUgbGF5ZXIgdGhhdCBjb250YWlucyB0aGUgT3BlblNTTCBDTEkgYmluYXJ5XG4gICAgICBsYXllcnM6IFtuZXcgbGFtYmRhLkxheWVyVmVyc2lvbih0aGlzLCAnT3BlblNzbENsaUxheWVyJywge1xuICAgICAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQocGF0aC5qb2luKF9fZGlybmFtZSwgJy4uJywgJ2N1c3RvbS1yZXNvdXJjZS1oYW5kbGVycycsICdsYXllcnMnLCAnb3BlbnNzbC1jbGktbGF5ZXIuemlwJykpLFxuICAgICAgfSldLFxuICAgIH0pO1xuXG4gICAgY29uc3Qgb3V0cHV0QnVja2V0ID0gbmV3IHMzLkJ1Y2tldCh0aGlzLCAnQnVja2V0Jywge1xuICAgICAgLy8gQ1NScyBjYW4gYmUgZWFzaWx5IHJlLWNyZWF0ZWQgaWYgbG9zdCBvciBjb3JydXB0LCBzbyB3ZSBjYW4gbGV0IHRob3NlIGdldCB0byBhIGJsYWNrIGhvbGUsIG5vIHdvcnJpZXMuXG4gICAgICBhdXRvRGVsZXRlT2JqZWN0czogdHJ1ZSxcbiAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgIGVuY3J5cHRpb246IHMzLkJ1Y2tldEVuY3J5cHRpb24uUzNfTUFOQUdFRCxcbiAgICAgIGVuZm9yY2VTU0w6IHRydWUsXG4gICAgfSk7XG4gICAgb3V0cHV0QnVja2V0LmdyYW50UmVhZFdyaXRlKGN1c3RvbVJlc291cmNlKTtcblxuICAgIGNvbnN0IGNzciA9IG5ldyBjZm4uQ3VzdG9tUmVzb3VyY2UodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgcHJvdmlkZXI6IGNmbi5DdXN0b21SZXNvdXJjZVByb3ZpZGVyLmxhbWJkYShjdXN0b21SZXNvdXJjZSksXG4gICAgICByZXNvdXJjZVR5cGU6ICdDdXN0b206OkNlcnRpZmljYXRlU2lnbmluZ1JlcXVlc3QnLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICByZXNvdXJjZVZlcnNpb246IGhhc2hGaWxlT3JEaXJlY3RvcnkoY29kZUxvY2F0aW9uKSxcbiAgICAgICAgLy8gUHJpdmF0ZSBrZXlcbiAgICAgICAgcHJpdmF0ZUtleVNlY3JldElkOiBwcm9wcy5wcml2YXRlS2V5LnNlY3JldEFybixcbiAgICAgICAgLy8gRGlzdGluZ3Vpc2hlZCBuYW1lXG4gICAgICAgIGRuQ29tbW9uTmFtZTogcHJvcHMuZG4uY29tbW9uTmFtZSxcbiAgICAgICAgZG5Db3VudHJ5OiBwcm9wcy5kbi5jb3VudHJ5LFxuICAgICAgICBkblN0YXRlT3JQcm92aW5jZTogcHJvcHMuZG4uc3RhdGVPclByb3ZpbmNlLFxuICAgICAgICBkbkxvY2FsaXR5OiBwcm9wcy5kbi5sb2NhbGl0eSxcbiAgICAgICAgZG5Pcmdhbml6YXRpb25OYW1lOiBwcm9wcy5kbi5vcmdhbml6YXRpb25OYW1lLFxuICAgICAgICBkbk9yZ2FuaXphdGlvbmFsVW5pdE5hbWU6IHByb3BzLmRuLm9yZ2FuaXphdGlvbmFsVW5pdE5hbWUsXG4gICAgICAgIGRuRW1haWxBZGRyZXNzOiBwcm9wcy5kbi5lbWFpbEFkZHJlc3MsXG4gICAgICAgIC8vIEtleSBVc2FnZVxuICAgICAgICBleHRlbmRlZEtleVVzYWdlOiBwcm9wcy5leHRlbmRlZEtleVVzYWdlIHx8ICcnLFxuICAgICAgICBrZXlVc2FnZTogcHJvcHMua2V5VXNhZ2UsXG4gICAgICAgIC8vIE91cHV0IGxvY2F0aW9uXG4gICAgICAgIG91dHB1dEJ1Y2tldDogb3V0cHV0QnVja2V0LmJ1Y2tldE5hbWUsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGlmIChjdXN0b21SZXNvdXJjZS5yb2xlKSB7XG4gICAgICAvLyBNYWtlIHN1cmUgdGhlIHBlcm1pc3Npb25zIGFyZSBhbGwgZ29vZCBiZWZvcmUgcHJvY2VlZGluZ1xuICAgICAgY3NyLm5vZGUuYWRkRGVwZW5kZW5jeShjdXN0b21SZXNvdXJjZS5yb2xlKTtcbiAgICAgIHByb3BzLnByaXZhdGVLZXkuZ3JhbnRHZXRTZWNyZXRWYWx1ZShjdXN0b21SZXNvdXJjZS5yb2xlKTtcbiAgICB9XG5cbiAgICB0aGlzLnBlbVJlcXVlc3QgPSBjc3IuZ2V0QXR0KCdDU1InKS50b1N0cmluZygpO1xuICAgIHRoaXMuc2VsZlNpZ25lZFBlbUNlcnRpZmljYXRlID0gY3NyLmdldEF0dCgnU2VsZlNpZ25lZENlcnRpZmljYXRlJykudG9TdHJpbmcoKTtcbiAgfVxufVxuXG4vKipcbiAqIEZpZWxkcyB0aGF0IGNvbXBvc2UgdGhlIGRpc3Rpbmd1aXNoZWQgbmFtZSBvZiBhIGNlcnRpZmljYXRlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGlzdGluZ3Vpc2hlZE5hbWUge1xuICAvKiogVGhlIENvbW1vbiBOYW1lIChDTikgKi9cbiAgY29tbW9uTmFtZTogc3RyaW5nO1xuICAvKiogVGhlIGVtYWlsIGFkZHJlc3MgKGVtYWlsQWRkcmVzcykgKi9cbiAgZW1haWxBZGRyZXNzOiBzdHJpbmc7XG5cbiAgLyoqIFRoZSBDb3VudHJ5IChDKSAqL1xuICBjb3VudHJ5OiBzdHJpbmc7XG4gIC8qKiBUaGUgU3RhdGUgb3IgUHJvdmluY2UgKFNUKSAqL1xuICBzdGF0ZU9yUHJvdmluY2U6IHN0cmluZztcbiAgLyoqIFRoZSBsb2NhbGl0eSAoTCkgKi9cbiAgbG9jYWxpdHk6IHN0cmluZztcblxuICAvKiogVGhlIG9yZ2FuaXphdGlvbiBuYW1lIChPKSAqL1xuICBvcmdhbml6YXRpb25OYW1lOiBzdHJpbmc7XG4gIC8qKiBUaGUgb3JnYW5pemF0aW9uYWwgdW5pdCBuYW1lIChPVSkgKi9cbiAgb3JnYW5pemF0aW9uYWxVbml0TmFtZTogc3RyaW5nO1xufVxuIl19
@@ -3,6 +3,8 @@ import {
3
3
  Construct, Duration,
4
4
  aws_cloudformation as cfn,
5
5
  aws_lambda as lambda,
6
+ aws_s3 as s3,
7
+ RemovalPolicy,
6
8
  } from 'monocdk';
7
9
  import { hashFileOrDirectory } from '../util';
8
10
  import { RsaPrivateKeySecret } from './private-key';
@@ -41,10 +43,13 @@ export interface CertificateSigningRequestProps {
41
43
  */
42
44
  export class CertificateSigningRequest extends Construct {
43
45
  /**
44
- * The PEM-encoded CSR document.
46
+ * The S3 URL to the CSR document.
45
47
  */
46
48
  public readonly pemRequest: string;
47
49
 
50
+ /**
51
+ * The S3 URL to a self-signed certificate that corresponds with this CSR.
52
+ */
48
53
  public readonly selfSignedPemCertificate: string;
49
54
 
50
55
  constructor(parent: Construct, id: string, props: CertificateSigningRequestProps) {
@@ -65,6 +70,15 @@ export class CertificateSigningRequest extends Construct {
65
70
  })],
66
71
  });
67
72
 
73
+ const outputBucket = new s3.Bucket(this, 'Bucket', {
74
+ // CSRs can be easily re-created if lost or corrupt, so we can let those get to a black hole, no worries.
75
+ autoDeleteObjects: true,
76
+ removalPolicy: RemovalPolicy.DESTROY,
77
+ encryption: s3.BucketEncryption.S3_MANAGED,
78
+ enforceSSL: true,
79
+ });
80
+ outputBucket.grantReadWrite(customResource);
81
+
68
82
  const csr = new cfn.CustomResource(this, 'Resource', {
69
83
  provider: cfn.CustomResourceProvider.lambda(customResource),
70
84
  resourceType: 'Custom::CertificateSigningRequest',
@@ -83,6 +97,8 @@ export class CertificateSigningRequest extends Construct {
83
97
  // Key Usage
84
98
  extendedKeyUsage: props.extendedKeyUsage || '',
85
99
  keyUsage: props.keyUsage,
100
+ // Ouput location
101
+ outputBucket: outputBucket.bucketName,
86
102
  },
87
103
  });
88
104
  if (customResource.role) {
@@ -26,6 +26,7 @@ async function handleEvent(event, _context) {
26
26
  ExtendedKeyUsage: false,
27
27
  KeyUsage: true,
28
28
  PrivateKeySecretId: true,
29
+ OutputBucket: true,
29
30
  });
30
31
  }
31
32
  switch (event.RequestType) {
@@ -45,10 +46,24 @@ async function _createSelfSignedCertificate(event) {
45
46
  await _exec('/opt/openssl', 'req', '-config', configFile, '-key', pkeyFile, '-out', csrFile, '-new');
46
47
  const certFile = path.join(tempDir, 'cert.pem');
47
48
  await _exec('/opt/openssl', 'x509', '-in', csrFile, '-out', certFile, '-req', '-signkey', pkeyFile, '-days', '365');
49
+ const s3 = new aws.S3();
50
+ const bucketName = event.ResourceProperties.OutputBucket;
51
+ await s3.putObject({
52
+ Bucket: bucketName,
53
+ Key: 'certificate-signing-request.pem',
54
+ Body: await readFile(csrFile, { encoding: 'utf8' }),
55
+ ContentType: 'application/x-pem-file',
56
+ }).promise();
57
+ await s3.putObject({
58
+ Bucket: bucketName,
59
+ Key: 'self-signed-certificate.pem',
60
+ Body: await readFile(certFile, { encoding: 'utf8' }),
61
+ ContentType: 'application/x-pem-file',
62
+ }).promise();
48
63
  return {
49
64
  Ref: event.LogicalResourceId,
50
- CSR: await readFile(csrFile, { encoding: 'utf8' }),
51
- SelfSignedCertificate: await readFile(certFile, { encoding: 'utf8' }),
65
+ CSR: `s3://${bucketName}/certificate-signing-request.pem`,
66
+ SelfSignedCertificate: `s3://${bucketName}/self-signed-certificate.pem`,
52
67
  };
53
68
  }
54
69
  finally {
@@ -91,4 +106,4 @@ async function _retrievePrivateKey(event, dir) {
91
106
  await writeFile(file, secret.SecretString, { encoding: 'utf8' });
92
107
  return file;
93
108
  }
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VydGlmaWNhdGUtc2lnbmluZy1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NlcnRpZmljYXRlLXNpZ25pbmctcmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlCQUF5QjtBQUN6Qix5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLDZCQUE2QjtBQUU3QiwrQkFBK0I7QUFFL0IsMENBQTBDO0FBRTFDLGlDQUFrQztBQUdsQyxpQ0FBa0M7QUFFbEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDM0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDN0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFL0MsTUFBTSxjQUFjLEdBQUcsSUFBSSxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7QUFFaEQsT0FBTyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDLENBQUM7QUFPekQsS0FBSyxVQUFVLFdBQVcsQ0FBQyxLQUFnQixFQUFFLFFBQXdCO0lBQ25FLElBQUksS0FBSyxDQUFDLFdBQVcsS0FBSyxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRTtRQUNoRCxHQUFHLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFO1lBQy9DLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsY0FBYyxFQUFFLElBQUk7WUFDcEIsVUFBVSxFQUFFLElBQUk7WUFDaEIsa0JBQWtCLEVBQUUsSUFBSTtZQUN4Qix3QkFBd0IsRUFBRSxJQUFJO1lBQzlCLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsZ0JBQWdCLEVBQUUsS0FBSztZQUN2QixRQUFRLEVBQUUsSUFBSTtZQUNkLGtCQUFrQixFQUFFLElBQUk7U0FDekIsQ0FBQyxDQUFDO0tBQ0o7SUFFRCxRQUFRLEtBQUssQ0FBQyxXQUFXLEVBQUU7UUFDekIsS0FBSyxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztRQUM1QixLQUFLLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTTtZQUN6QixPQUFPLDRCQUE0QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdDLEtBQUssR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNO1lBRXpCLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixFQUFFLENBQUM7S0FDM0M7QUFDSCxDQUFDO0FBRUQsS0FBSyxVQUFVLDRCQUE0QixDQUFDLEtBQWdCO0lBQzFELE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDbEUsSUFBSTtRQUNGLE1BQU0sVUFBVSxHQUFHLE1BQU0sY0FBYyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN4RCxNQUFNLFFBQVEsR0FBRyxNQUFNLG1CQUFtQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMzRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUM5QyxNQUFNLEtBQUssQ0FBQyxjQUFjLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQ3RELE1BQU0sRUFBRSxRQUFRLEVBQ2hCLE1BQU0sRUFBRSxPQUFPLEVBQ2YsTUFBTSxDQUFDLENBQUM7UUFDVixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNoRCxNQUFNLEtBQUssQ0FBQyxjQUFjLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQ2hELE1BQU0sRUFBRSxRQUFRLEVBQ2hCLE1BQU0sRUFDTixVQUFVLEVBQUUsUUFBUSxFQUNwQixPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbEIsT0FBTztZQUNMLEdBQUcsRUFBRSxLQUFLLENBQUMsaUJBQWlCO1lBQzVCLEdBQUcsRUFBRSxNQUFNLFFBQVEsQ0FBQyxPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDbEQscUJBQXFCLEVBQUUsTUFBTSxRQUFRLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDO1NBQ3RFLENBQUM7S0FDSDtZQUFTO1FBQ1IsTUFBTSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDdEI7QUFDSCxDQUFDO0FBRUQsS0FBSyxVQUFVLGNBQWMsQ0FBQyxLQUFnQixFQUFFLEdBQVc7SUFDekQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDMUMsTUFBTSxTQUFTLENBQUMsSUFBSSxFQUFFO1FBQ3BCLFNBQVM7UUFDVCwrQkFBK0I7UUFDL0IsMkJBQTJCO1FBQzNCLDJCQUEyQjtRQUMzQixtQ0FBbUM7UUFDbkMsaUNBQWlDO1FBQ2pDLDRCQUE0QjtRQUM1QixFQUFFO1FBQ0YsUUFBUTtRQUNSLDBCQUEwQixLQUFLLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFO1FBQ2pFLDBCQUEwQixLQUFLLENBQUMsa0JBQWtCLENBQUMsU0FBUyxFQUFFO1FBQzlELDBCQUEwQixLQUFLLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLEVBQUU7UUFDdEUsMEJBQTBCLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUU7UUFDL0QsMEJBQTBCLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsRUFBRTtRQUN2RSwwQkFBMEIsS0FBSyxDQUFDLGtCQUFrQixDQUFDLHdCQUF3QixFQUFFO1FBQzdFLDBCQUEwQixLQUFLLENBQUMsa0JBQWtCLENBQUMsY0FBYyxFQUFFO1FBQ25FLEVBQUU7UUFDRixnQkFBZ0I7UUFDaEIsMEJBQTBCLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsRUFBRTtRQUNyRSwwQkFBMEIsS0FBSyxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRTtRQUM3RCw2QkFBNkI7S0FDOUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNwQyxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxLQUFLLFVBQVUsbUJBQW1CLENBQUMsS0FBZ0IsRUFBRSxHQUFXO0lBQzlELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDL0MsTUFBTSxNQUFNLEdBQUcsTUFBTSxjQUFjLENBQUMsY0FBYyxDQUFDO1FBQ2pELFFBQVEsRUFBRSxLQUFLLENBQUMsa0JBQWtCLENBQUMsa0JBQWtCO1FBQ3JELFlBQVksRUFBRSxZQUFZO0tBQzNCLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNiLE1BQU0sU0FBUyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsWUFBYSxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDbEUsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIn0=
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VydGlmaWNhdGUtc2lnbmluZy1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NlcnRpZmljYXRlLXNpZ25pbmctcmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlCQUF5QjtBQUN6Qix5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLDZCQUE2QjtBQUU3QiwrQkFBK0I7QUFFL0IsMENBQTBDO0FBRTFDLGlDQUFrQztBQUdsQyxpQ0FBa0M7QUFFbEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDM0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDN0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFL0MsTUFBTSxjQUFjLEdBQUcsSUFBSSxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7QUFFaEQsT0FBTyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDLENBQUM7QUFPekQsS0FBSyxVQUFVLFdBQVcsQ0FBQyxLQUFnQixFQUFFLFFBQXdCO0lBQ25FLElBQUksS0FBSyxDQUFDLFdBQVcsS0FBSyxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRTtRQUNoRCxHQUFHLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFO1lBQy9DLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsY0FBYyxFQUFFLElBQUk7WUFDcEIsVUFBVSxFQUFFLElBQUk7WUFDaEIsa0JBQWtCLEVBQUUsSUFBSTtZQUN4Qix3QkFBd0IsRUFBRSxJQUFJO1lBQzlCLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsZ0JBQWdCLEVBQUUsS0FBSztZQUN2QixR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
@@ -26,6 +26,7 @@ async function handleEvent(event, _context) {
26
26
  ExtendedKeyUsage: false,
27
27
  KeyUsage: true,
28
28
  PrivateKeySecretId: true,
29
+ OutputBucket: true,
29
30
  });
30
31
  }
31
32
  switch (event.RequestType) {
@@ -45,10 +46,24 @@ async function _createSelfSignedCertificate(event) {
45
46
  await _exec('/opt/openssl', 'req', '-config', configFile, '-key', pkeyFile, '-out', csrFile, '-new');
46
47
  const certFile = path.join(tempDir, 'cert.pem');
47
48
  await _exec('/opt/openssl', 'x509', '-in', csrFile, '-out', certFile, '-req', '-signkey', pkeyFile, '-days', '365');
49
+ const s3 = new aws.S3();
50
+ const bucketName = event.ResourceProperties.OutputBucket;
51
+ await s3.putObject({
52
+ Bucket: bucketName,
53
+ Key: 'certificate-signing-request.pem',
54
+ Body: await readFile(csrFile, { encoding: 'utf8' }),
55
+ ContentType: 'application/x-pem-file',
56
+ }).promise();
57
+ await s3.putObject({
58
+ Bucket: bucketName,
59
+ Key: 'self-signed-certificate.pem',
60
+ Body: await readFile(certFile, { encoding: 'utf8' }),
61
+ ContentType: 'application/x-pem-file',
62
+ }).promise();
48
63
  return {
49
64
  Ref: event.LogicalResourceId,
50
- CSR: await readFile(csrFile, { encoding: 'utf8' }),
51
- SelfSignedCertificate: await readFile(certFile, { encoding: 'utf8' }),
65
+ CSR: `s3://${bucketName}/certificate-signing-request.pem`,
66
+ SelfSignedCertificate: `s3://${bucketName}/self-signed-certificate.pem`,
52
67
  };
53
68
  }
54
69
  finally {
@@ -91,4 +106,4 @@ async function _retrievePrivateKey(event, dir) {
91
106
  await writeFile(file, secret.SecretString, { encoding: 'utf8' });
92
107
  return file;
93
108
  }
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VydGlmaWNhdGUtc2lnbmluZy1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NlcnRpZmljYXRlLXNpZ25pbmctcmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlCQUF5QjtBQUN6Qix5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLDZCQUE2QjtBQUU3QiwrQkFBK0I7QUFFL0IsMENBQTBDO0FBRTFDLGlDQUFrQztBQUdsQyxpQ0FBa0M7QUFFbEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDM0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDN0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFL0MsTUFBTSxjQUFjLEdBQUcsSUFBSSxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7QUFFaEQsT0FBTyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDLENBQUM7QUFPekQsS0FBSyxVQUFVLFdBQVcsQ0FBQyxLQUFnQixFQUFFLFFBQXdCO0lBQ25FLElBQUksS0FBSyxDQUFDLFdBQVcsS0FBSyxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRTtRQUNoRCxHQUFHLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFO1lBQy9DLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsY0FBYyxFQUFFLElBQUk7WUFDcEIsVUFBVSxFQUFFLElBQUk7WUFDaEIsa0JBQWtCLEVBQUUsSUFBSTtZQUN4Qix3QkFBd0IsRUFBRSxJQUFJO1lBQzlCLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsZ0JBQWdCLEVBQUUsS0FBSztZQUN2QixR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
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VydGlmaWNhdGUtc2lnbmluZy1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NlcnRpZmljYXRlLXNpZ25pbmctcmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlCQUF5QjtBQUN6Qix5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLDZCQUE2QjtBQUU3QiwrQkFBK0I7QUFFL0IsMENBQTBDO0FBRTFDLGlDQUFrQztBQUdsQyxpQ0FBa0M7QUFFbEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDM0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDN0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFL0MsTUFBTSxjQUFjLEdBQUcsSUFBSSxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7QUFFaEQsT0FBTyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDLENBQUM7QUFPekQsS0FBSyxVQUFVLFdBQVcsQ0FBQyxLQUFnQixFQUFFLFFBQXdCO0lBQ25FLElBQUksS0FBSyxDQUFDLFdBQVcsS0FBSyxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRTtRQUNoRCxHQUFHLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFO1lBQy9DLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsY0FBYyxFQUFFLElBQUk7WUFDcEIsVUFBVSxFQUFFLElBQUk7WUFDaEIsa0JBQWtCLEVBQUUsSUFBSTtZQUN4Qix3QkFBd0IsRUFBRSxJQUFJO1lBQzlCLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsZ0JBQWdCLEVBQUUsS0FBSztZQUN2QixRQUFRLEVBQUUsSUFBSTtZQUNkLGtCQUFrQixFQUFFLElBQUk7WUFDeEIsWUFBWSxFQUFFLElBQUk7U0FDbkIsQ0FBQyxDQUFDO0tBQ0o7SUFFRCxRQUFRLEtBQUssQ0FBQyxXQUFXLEVBQUU7UUFDekIsS0FBSyxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztRQUM1QixLQUFLLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTTtZQUN6QixPQUFPLDRCQUE0QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdDLEtBQUssR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNO1lBRXpCLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixFQUFFLENBQUM7S0FDM0M7QUFDSCxDQUFDO0FBRUQsS0FBSyxVQUFVLDRCQUE0QixDQUFDLEtBQWdCO0lBQzFELE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDbEUsSUFBSTtRQUNGLE1BQU0sVUFBVSxHQUFHLE1BQU0sY0FBYyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN4RCxNQUFNLFFBQVEsR0FBRyxNQUFNLG1CQUFtQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMzRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUM5QyxNQUFNLEtBQUssQ0FBQyxjQUFjLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQ3RELE1BQU0sRUFBRSxRQUFRLEVBQ2hCLE1BQU0sRUFBRSxPQUFPLEVBQ2YsTUFBTSxDQUFDLENBQUM7UUFDVixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNoRCxNQUFNLEtBQUssQ0FBQyxjQUFjLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQ2hELE1BQU0sRUFBRSxRQUFRLEVBQ2hCLE1BQU0sRUFDTixVQUFVLEVBQUUsUUFBUSxFQUNwQixPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFbEIsTUFBTSxFQUFFLEdBQUcsSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDeEIsTUFBTSxVQUFVLEdBQVcsS0FBSyxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQztRQUNqRSxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUM7WUFDakIsTUFBTSxFQUFFLFVBQVU7WUFDbEIsR0FBRyxFQUFFLGlDQUFpQztZQUN0QyxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUMsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ25ELFdBQVcsRUFBRSx3QkFBd0I7U0FDdEMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2IsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDO1lBQ2pCLE1BQU0sRUFBRSxVQUFVO1lBQ2xCLEdBQUcsRUFBRSw2QkFBNkI7WUFDbEMsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDLFFBQVEsRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwRCxXQUFXLEVBQUUsd0JBQXdCO1NBQ3RDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUViLE9BQU87WUFDTCxHQUFHLEVBQUUsS0FBSyxDQUFDLGlCQUFpQjtZQUM1QixHQUFHLEVBQUUsUUFBUSxVQUFVLGtDQUFrQztZQUN6RCxxQkFBcUIsRUFBRSxRQUFRLFVBQVUsOEJBQThCO1NBQ3hFLENBQUM7S0FDSDtZQUFTO1FBQ1IsTUFBTSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDdEI7QUFDSCxDQUFDO0FBRUQsS0FBSyxVQUFVLGNBQWMsQ0FBQyxLQUFnQixFQUFFLEdBQVc7SUFDekQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDMUMsTUFBTSxTQUFTLENBQUMsSUFBSSxFQUFFO1FBQ3BCLFNBQVM7UUFDVCwrQkFBK0I7UUFDL0IsMkJBQTJCO1FBQzNCLDJCQUEyQjtRQUMzQixtQ0FBbUM7UUFDbkMsaUNBQWlDO1FBQ2pDLDRCQUE0QjtRQUM1QixFQUFFO1FBQ0YsUUFBUTtRQUNSLDBCQUEwQixLQUFLLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFO1FBQ2pFLDBCQUEwQixLQUFLLENBQUMsa0JBQWtCLENBQUMsU0FBUyxFQUFFO1FBQzlELDBCQUEwQixLQUFLLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLEVBQUU7UUFDdEUsMEJBQTBCLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUU7UUFDL0QsMEJBQTBCLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsRUFBRTtRQUN2RSwwQkFBMEIsS0FBSyxDQUFDLGtCQUFrQixDQUFDLHdCQUF3QixFQUFFO1FBQzdFLDBCQUEwQixLQUFLLENBQUMsa0JBQWtCLENBQUMsY0FBYyxFQUFFO1FBQ25FLEVBQUU7UUFDRixnQkFBZ0I7UUFDaEIsMEJBQTBCLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsRUFBRTtRQUNyRSwwQkFBMEIsS0FBSyxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRTtRQUM3RCw2QkFBNkI7S0FDOUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNwQyxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxLQUFLLFVBQVUsbUJBQW1CLENBQUMsS0FBZ0IsRUFBRSxHQUFXO0lBQzlELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDL0MsTUFBTSxNQUFNLEdBQUcsTUFBTSxjQUFjLENBQUMsY0FBYyxDQUFDO1FBQ2pELFFBQVEsRUFBRSxLQUFLLENBQUMsa0JBQWtCLENBQUMsa0JBQWtCO1FBQ3JELFlBQVksRUFBRSxZQUFZO0tBQzNCLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNiLE1BQU0sU0FBUyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsWUFBYSxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDbEUsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIn0=
@@ -48,6 +48,7 @@ async function handleEvent(event, _context) {
48
48
  ExtendedKeyUsage: false,
49
49
  KeyUsage: true,
50
50
  PrivateKeySecretId: true,
51
+ OutputBucket: true,
51
52
  });
52
53
  }
53
54
  switch (event.RequestType) {
@@ -68,10 +69,24 @@ async function _createSelfSignedCertificate(event) {
68
69
  await _exec('/opt/openssl', 'req', '-config', configFile, '-key', pkeyFile, '-out', csrFile, '-new');
69
70
  const certFile = path.join(tempDir, 'cert.pem');
70
71
  await _exec('/opt/openssl', 'x509', '-in', csrFile, '-out', certFile, '-req', '-signkey', pkeyFile, '-days', '365');
72
+ const s3 = new aws.S3();
73
+ const bucketName = event.ResourceProperties.OutputBucket;
74
+ await s3.putObject({
75
+ Bucket: bucketName,
76
+ Key: 'certificate-signing-request.pem',
77
+ Body: await readFile(csrFile, { encoding: 'utf8' }),
78
+ ContentType: 'application/x-pem-file',
79
+ }).promise();
80
+ await s3.putObject({
81
+ Bucket: bucketName,
82
+ Key: 'self-signed-certificate.pem',
83
+ Body: await readFile(certFile, { encoding: 'utf8' }),
84
+ ContentType: 'application/x-pem-file',
85
+ }).promise();
71
86
  return {
72
87
  Ref: event.LogicalResourceId,
73
- CSR: await readFile(csrFile, { encoding: 'utf8' }),
74
- SelfSignedCertificate: await readFile(certFile, { encoding: 'utf8' }),
88
+ CSR: `s3://${bucketName}/certificate-signing-request.pem`,
89
+ SelfSignedCertificate: `s3://${bucketName}/self-signed-certificate.pem`,
75
90
  };
76
91
  }
77
92
  finally {
@@ -114,4 +129,4 @@ async function _retrievePrivateKey(event, dir) {
114
129
  await writeFile(file, secret.SecretString, { encoding: 'utf8' });
115
130
  return file;
116
131
  }
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VydGlmaWNhdGUtc2lnbmluZy1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2VydGlmaWNhdGUtc2lnbmluZy1yZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVDQUF5QjtBQUN6Qix1Q0FBeUI7QUFDekIsMkNBQTZCO0FBQzdCLDJDQUE2QjtBQUM3Qiw2REFBNkQ7QUFDN0QsNkNBQStCO0FBRS9CLHdEQUEwQztBQUMxQyxpRUFBaUU7QUFDakUsaUNBQWtDO0FBRWxDLGlFQUFpRTtBQUNqRSxpQ0FBa0M7QUFFbEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDM0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDN0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFL0MsTUFBTSxjQUFjLEdBQUcsSUFBSSxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7QUFFaEQsT0FBTyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDLENBQUM7QUFPekQsS0FBSyxVQUFVLFdBQVcsQ0FBQyxLQUFnQixFQUFFLFFBQXdCO0lBQ25FLElBQUksS0FBSyxDQUFDLFdBQVcsS0FBSyxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRTtRQUNoRCxHQUFHLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFO1lBQy9DLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsY0FBYyxFQUFFLElBQUk7WUFDcEIsVUFBVSxFQUFFLElBQUk7WUFDaEIsa0JBQWtCLEVBQUUsSUFBSTtZQUN4Qix3QkFBd0IsRUFBRSxJQUFJO1lBQzlC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RUFBRTtRQUM3RSwwQkFBMEIsS0FBSyxDQUFDLGtCQUFrQixDQUFDLGNBQWMsRUFBRTtRQUNuRSxFQUFFO1FBQ0YsZ0JBQWdCO1FBQ2hCLDBCQUEwQixLQUFLLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLEVBQUU7UUFDckUsMEJBQTBCLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUU7UUFDN0QsNkJBQTZCO0tBQzlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDcEMsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsS0FBSyxVQUFVLG1CQUFtQixDQUFDLEtBQWdCLEVBQUUsR0FBVztJQUM5RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sTUFBTSxHQUFHLE1BQU0sY0FBYyxDQUFDLGNBQWMsQ0FBQztRQUNqRCxRQUFRLEVBQUUsS0FBSyxDQUFDLGtCQUFrQixDQUFDLGtCQUFrQjtRQUNyRCxZQUFZLEVBQUUsWUFBWTtLQUMzQixDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDYixNQUFNLFNBQVMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLFlBQWEsRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIG9zIGZyb20gJ29zJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyB1dGlsIGZyb20gJ3V0aWwnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llc1xuaW1wb3J0ICogYXMgYXdzIGZyb20gJ2F3cy1zZGsnO1xuXG5pbXBvcnQgKiBhcyBjZm4gZnJvbSAnLi9fY2xvdWQtZm9ybWF0aW9uJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG5pbXBvcnQgX2V4ZWMgPSByZXF1aXJlKCcuL19leGVjJyk7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnLi9fbGFtYmRhJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG5pbXBvcnQgX3JtcmYgPSByZXF1aXJlKCcuL19ybXJmJyk7XG5cbmNvbnN0IG1rZHRlbXAgPSB1dGlsLnByb21pc2lmeShmcy5ta2R0ZW1wKTtcbmNvbnN0IHJlYWRGaWxlID0gdXRpbC5wcm9taXNpZnkoZnMucmVhZEZpbGUpO1xuY29uc3Qgd3JpdGVGaWxlID0gdXRpbC5wcm9taXNpZnkoZnMud3JpdGVGaWxlKTtcblxuY29uc3Qgc2VjcmV0c01hbmFnZXIgPSBuZXcgYXdzLlNlY3JldHNNYW5hZ2VyKCk7XG5cbmV4cG9ydHMuaGFuZGxlciA9IGNmbi5jdXN0b21SZXNvdXJjZUhhbmRsZXIoaGFuZGxlRXZlbnQpO1xuXG5pbnRlcmZhY2UgUmVzb3VyY2VBdHRyaWJ1dGVzIGV4dGVuZHMgY2ZuLlJlc291cmNlQXR0cmlidXRlcyB7XG4gIENTUjogc3RyaW5nO1xuICBTZWxmU2lnbmVkQ2VydGlmaWNhdGU6IHN0cmluZztcbn1cblxuYXN5bmMgZnVuY3Rpb24gaGFuZGxlRXZlbnQoZXZlbnQ6IGNmbi5FdmVudCwgX2NvbnRleHQ6IGxhbWJkYS5Db250ZXh0KTogUHJvbWlzZTxjZm4uUmVzb3VyY2VBdHRyaWJ1dGVzPiB7XG4gIGlmIChldmVudC5SZXF1ZXN0VHlwZSAhPT0gY2ZuLlJlcXVlc3RUeXBlLkRFTEVURSkge1xuICAgIGNmbi52YWxpZGF0ZVByb3BlcnRpZXMoZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzLCB7XG4gICAgICBEbkNvbW1vbk5hbWU6IHRydWUsXG4gICAgICBEbkNvdW50cnk6IHRydWUsXG4gICAgICBEbkVtYWlsQWRkcmVzczogdHJ1ZSxcbiAgICAgIERuTG9jYWxpdHk6IHRydWUsXG4gICAgICBEbk9yZ2FuaXphdGlvbk5hbWU6IHRydWUsXG4gICAgICBEbk9yZ2FuaXphdGlvbmFsVW5pdE5hbWU6IHRydWUsXG4gICAgICBEblN0YXRlT3JQcm92aW5jZTogdHJ1ZSxcbiAgICAgIEV4dGVuZGVkS2V5VXNhZ2U6IGZhbHNlLFxuICAgICAgS2V5VXNhZ2U6IHRydWUsXG4gICAgICBQcml2YXRlS2V5U2VjcmV0SWQ6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBzd2l0Y2ggKGV2ZW50LlJlcXVlc3RUeXBlKSB7XG4gICAgY2FzZSBjZm4uUmVxdWVzdFR5cGUuQ1JFQVRFOlxuICAgIGNhc2UgY2ZuLlJlcXVlc3RUeXBlLlVQREFURTpcbiAgICAgIHJldHVybiBfY3JlYXRlU2VsZlNpZ25lZENlcnRpZmljYXRlKGV2ZW50KTtcbiAgICBjYXNlIGNmbi5SZXF1ZXN0VHlwZS5ERUxFVEU6XG4gICAgLy8gTm90aGluZyB0byBkbyAtIHRoaXMgaXMgbm90IGEgXCJQaHlzaWNhbFwiIHJlc291cmNlXG4gICAgICByZXR1cm4geyBSZWY6IGV2ZW50LkxvZ2ljYWxSZXNvdXJjZUlkIH07XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gX2NyZWF0ZVNlbGZTaWduZWRDZXJ0aWZpY2F0ZShldmVudDogY2ZuLkV2ZW50KTogUHJvbWlzZTxSZXNvdXJjZUF0dHJpYnV0ZXM+IHtcbiAgY29uc3QgdGVtcERpciA9IGF3YWl0IG1rZHRlbXAocGF0aC5qb2luKG9zLnRtcGRpcigpLCAneDUwOUNTUi0nKSk7XG4gIHRyeSB7XG4gICAgY29uc3QgY29uZmlnRmlsZSA9IGF3YWl0IF9tYWtlQ3NyQ29uZmlnKGV2ZW50LCB0ZW1wRGlyKTtcbiAgICBjb25zdCBwa2V5RmlsZSA9IGF3YWl0IF9yZXRyaWV2ZVByaXZhdGVLZXkoZXZlbnQsIHRlbXBEaXIpO1xuICAgIGNvbnN0IGNzckZpbGUgPSBwYXRoLmpvaW4odGVtcERpciwgJ2Nzci5wZW0nKTtcbiAgICBhd2FpdCBfZXhlYygnL29wdC9vcGVuc3NsJywgJ3JlcScsICctY29uZmlnJywgY29uZmlnRmlsZSxcbiAgICAgICcta2V5JywgcGtleUZpbGUsXG4gICAgICAnLW91dCcsIGNzckZpbGUsXG4gICAgICAnLW5ldycpO1xuICAgIGNvbnN0IGNlcnRGaWxlID0gcGF0aC5qb2luKHRlbXBEaXIsICdjZXJ0LnBlbScpO1xuICAgIGF3YWl0IF9leGVjKCcvb3B0L29wZW5zc2wnLCAneDUwOScsICctaW4nLCBjc3JGaWxlLFxuICAgICAgJy1vdXQnLCBjZXJ0RmlsZSxcbiAgICAgICctcmVxJyxcbiAgICAgICctc2lnbmtleScsIHBrZXlGaWxlLFxuICAgICAgJy1kYXlzJywgJzM2NScpO1xuICAgIHJldHVybiB7XG4gICAgICBSZWY6IGV2ZW50LkxvZ2ljYWxSZXNvdXJjZUlkLFxuICAgICAgQ1NSOiBhd2FpdCByZWFkRmlsZShjc3JGaWxlLCB7IGVuY29kaW5nOiAndXRmOCcgfSksXG4gICAgICBTZWxmU2lnbmVkQ2VydGlmaWNhdGU6IGF3YWl0IHJlYWRGaWxlKGNlcnRGaWxlLCB7IGVuY29kaW5nOiAndXRmOCcgfSksXG4gICAgfTtcbiAgfSBmaW5hbGx5IHtcbiAgICBhd2FpdCBfcm1yZih0ZW1wRGlyKTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBfbWFrZUNzckNvbmZpZyhldmVudDogY2ZuLkV2ZW50LCBkaXI6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IGZpbGUgPSBwYXRoLmpvaW4oZGlyLCAnY3NyLmNvbmZpZycpO1xuICBhd2FpdCB3cml0ZUZpbGUoZmlsZSwgW1xuICAgICdbIHJlcSBdJyxcbiAgICAnZGVmYXVsdF9tZCAgICAgICAgICAgPSBzaGEyNTYnLFxuICAgICdkaXN0aW5ndWlzaGVkX25hbWUgICA9IGRuJyxcbiAgICAncHJvbXB0ICAgICAgICAgICAgICAgPSBubycsXG4gICAgJ3JlcV9leHRlbnNpb25zICAgICAgID0gZXh0ZW5zaW9ucycsXG4gICAgJ3N0cmluZ19tYXNrICAgICAgICAgID0gdXRmOG9ubHknLFxuICAgICd1dGY4ICAgICAgICAgICAgICAgICA9IHllcycsXG4gICAgJycsXG4gICAgJ1sgZG4gXScsXG4gICAgYENOICAgICAgICAgICAgICAgICAgID0gJHtldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuRG5Db21tb25OYW1lfWAsXG4gICAgYEMgICAgICAgICAgICAgICAgICAgID0gJHtldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuRG5Db3VudHJ5fWAsXG4gICAgYFNUICAgICAgICAgICAgICAgICAgID0gJHtldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuRG5TdGF0ZU9yUHJvdmluY2V9YCxcbiAgICBgTCAgICAgICAgICAgICAgICAgICAgPSAke2V2ZW50LlJlc291cmNlUHJvcGVydGllcy5EbkxvY2FsaXR5fWAsXG4gICAgYE8gICAgICAgICAgICAgICAgICAgID0gJHtldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuRG5Pcmdhbml6YXRpb25OYW1lfWAsXG4gICAgYE9VICAgICAgICAgICAgICAgICAgID0gJHtldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuRG5Pcmdhbml6YXRpb25hbFVuaXROYW1lfWAsXG4gICAgYGVtYWlsQWRkcmVzcyAgICAgICAgID0gJHtldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuRG5FbWFpbEFkZHJlc3N9YCxcbiAgICAnJyxcbiAgICAnWyBleHRlbnNpb25zIF0nLFxuICAgIGBleHRlbmRlZEtleVVzYWdlICAgICA9ICR7ZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzLkV4dGVuZGVkS2V5VXNhZ2V9YCxcbiAgICBga2V5VXNhZ2UgICAgICAgICAgICAgPSAke2V2ZW50LlJlc291cmNlUHJvcGVydGllcy5LZXlVc2FnZX1gLFxuICAgICdzdWJqZWN0S2V5SWRlbnRpZmllciA9IGhhc2gnLFxuICBdLmpvaW4oJ1xcbicpLCB7IGVuY29kaW5nOiAndXRmOCcgfSk7XG4gIHJldHVybiBmaWxlO1xufVxuXG5hc3luYyBmdW5jdGlvbiBfcmV0cmlldmVQcml2YXRlS2V5KGV2ZW50OiBjZm4uRXZlbnQsIGRpcjogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgZmlsZSA9IHBhdGguam9pbihkaXIsICdwcml2YXRlX2tleS5wZW0nKTtcbiAgY29uc3Qgc2VjcmV0ID0gYXdhaXQgc2VjcmV0c01hbmFnZXIuZ2V0U2VjcmV0VmFsdWUoe1xuICAgIFNlY3JldElkOiBldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuUHJpdmF0ZUtleVNlY3JldElkLFxuICAgIFZlcnNpb25TdGFnZTogJ0FXU0NVUlJFTlQnLFxuICB9KS5wcm9taXNlKCk7XG4gIGF3YWl0IHdyaXRlRmlsZShmaWxlLCBzZWNyZXQuU2VjcmV0U3RyaW5nISwgeyBlbmNvZGluZzogJ3V0ZjgnIH0pO1xuICByZXR1cm4gZmlsZTtcbn1cbiJdfQ==
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VydGlmaWNhdGUtc2lnbmluZy1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2VydGlmaWNhdGUtc2lnbmluZy1yZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVDQUF5QjtBQUN6Qix1Q0FBeUI7QUFDekIsMkNBQTZCO0FBQzdCLDJDQUE2QjtBQUM3Qiw2REFBNkQ7QUFDN0QsNkNBQStCO0FBRS9CLHdEQUEwQztBQUMxQyxpRUFBaUU7QUFDakUsaUNBQWtDO0FBRWxDLGlFQUFpRTtBQUNqRSxpQ0FBa0M7QUFFbEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDM0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDN0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFL0MsTUFBTSxjQUFjLEdBQUcsSUFBSSxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7QUFFaEQsT0FBTyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDLENBQUM7QUFPekQsS0FBSyxVQUFVLFdBQVcsQ0FBQyxLQUFnQixFQUFFLFFBQXdCO0lBQ25FLElBQUksS0FBSyxDQUFDLFdBQVcsS0FBSyxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRTtRQUNoRCxHQUFHLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFO1lBQy9DLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsY0FBYyxFQUFFLElBQUk7WUFDcEIsVUFBVSxFQUFFLElBQUk7WUFDaEIsa0JBQWtCLEVBQUUsSUFBSTtZQUN4Qix3QkFBd0IsRUFBRSxJQUFJO1lBQzlC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S0FBSyxDQUFDLGtCQUFrQixDQUFDLGtCQUFrQjtRQUNyRCxZQUFZLEVBQUUsWUFBWTtLQUMzQixDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDYixNQUFNLFNBQVMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLFlBQWEsRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIG9zIGZyb20gJ29zJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyB1dGlsIGZyb20gJ3V0aWwnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llc1xuaW1wb3J0ICogYXMgYXdzIGZyb20gJ2F3cy1zZGsnO1xuXG5pbXBvcnQgKiBhcyBjZm4gZnJvbSAnLi9fY2xvdWQtZm9ybWF0aW9uJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG5pbXBvcnQgX2V4ZWMgPSByZXF1aXJlKCcuL19leGVjJyk7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnLi9fbGFtYmRhJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG5pbXBvcnQgX3JtcmYgPSByZXF1aXJlKCcuL19ybXJmJyk7XG5cbmNvbnN0IG1rZHRlbXAgPSB1dGlsLnByb21pc2lmeShmcy5ta2R0ZW1wKTtcbmNvbnN0IHJlYWRGaWxlID0gdXRpbC5wcm9taXNpZnkoZnMucmVhZEZpbGUpO1xuY29uc3Qgd3JpdGVGaWxlID0gdXRpbC5wcm9taXNpZnkoZnMud3JpdGVGaWxlKTtcblxuY29uc3Qgc2VjcmV0c01hbmFnZXIgPSBuZXcgYXdzLlNlY3JldHNNYW5hZ2VyKCk7XG5cbmV4cG9ydHMuaGFuZGxlciA9IGNmbi5jdXN0b21SZXNvdXJjZUhhbmRsZXIoaGFuZGxlRXZlbnQpO1xuXG5pbnRlcmZhY2UgUmVzb3VyY2VBdHRyaWJ1dGVzIGV4dGVuZHMgY2ZuLlJlc291cmNlQXR0cmlidXRlcyB7XG4gIENTUjogc3RyaW5nO1xuICBTZWxmU2lnbmVkQ2VydGlmaWNhdGU6IHN0cmluZztcbn1cblxuYXN5bmMgZnVuY3Rpb24gaGFuZGxlRXZlbnQoZXZlbnQ6IGNmbi5FdmVudCwgX2NvbnRleHQ6IGxhbWJkYS5Db250ZXh0KTogUHJvbWlzZTxjZm4uUmVzb3VyY2VBdHRyaWJ1dGVzPiB7XG4gIGlmIChldmVudC5SZXF1ZXN0VHlwZSAhPT0gY2ZuLlJlcXVlc3RUeXBlLkRFTEVURSkge1xuICAgIGNmbi52YWxpZGF0ZVByb3BlcnRpZXMoZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzLCB7XG4gICAgICBEbkNvbW1vbk5hbWU6IHRydWUsXG4gICAgICBEbkNvdW50cnk6IHRydWUsXG4gICAgICBEbkVtYWlsQWRkcmVzczogdHJ1ZSxcbiAgICAgIERuTG9jYWxpdHk6IHRydWUsXG4gICAgICBEbk9yZ2FuaXphdGlvbk5hbWU6IHRydWUsXG4gICAgICBEbk9yZ2FuaXphdGlvbmFsVW5pdE5hbWU6IHRydWUsXG4gICAgICBEblN0YXRlT3JQcm92aW5jZTogdHJ1ZSxcbiAgICAgIEV4dGVuZGVkS2V5VXNhZ2U6IGZhbHNlLFxuICAgICAgS2V5VXNhZ2U6IHRydWUsXG4gICAgICBQcml2YXRlS2V5U2VjcmV0SWQ6IHRydWUsXG4gICAgICBPdXRwdXRCdWNrZXQ6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBzd2l0Y2ggKGV2ZW50LlJlcXVlc3RUeXBlKSB7XG4gICAgY2FzZSBjZm4uUmVxdWVzdFR5cGUuQ1JFQVRFOlxuICAgIGNhc2UgY2ZuLlJlcXVlc3RUeXBlLlVQREFURTpcbiAgICAgIHJldHVybiBfY3JlYXRlU2VsZlNpZ25lZENlcnRpZmljYXRlKGV2ZW50KTtcbiAgICBjYXNlIGNmbi5SZXF1ZXN0VHlwZS5ERUxFVEU6XG4gICAgLy8gTm90aGluZyB0byBkbyAtIHRoaXMgaXMgbm90IGEgXCJQaHlzaWNhbFwiIHJlc291cmNlXG4gICAgICByZXR1cm4geyBSZWY6IGV2ZW50LkxvZ2ljYWxSZXNvdXJjZUlkIH07XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gX2NyZWF0ZVNlbGZTaWduZWRDZXJ0aWZpY2F0ZShldmVudDogY2ZuLkV2ZW50KTogUHJvbWlzZTxSZXNvdXJjZUF0dHJpYnV0ZXM+IHtcbiAgY29uc3QgdGVtcERpciA9IGF3YWl0IG1rZHRlbXAocGF0aC5qb2luKG9zLnRtcGRpcigpLCAneDUwOUNTUi0nKSk7XG4gIHRyeSB7XG4gICAgY29uc3QgY29uZmlnRmlsZSA9IGF3YWl0IF9tYWtlQ3NyQ29uZmlnKGV2ZW50LCB0ZW1wRGlyKTtcbiAgICBjb25zdCBwa2V5RmlsZSA9IGF3YWl0IF9yZXRyaWV2ZVByaXZhdGVLZXkoZXZlbnQsIHRlbXBEaXIpO1xuICAgIGNvbnN0IGNzckZpbGUgPSBwYXRoLmpvaW4odGVtcERpciwgJ2Nzci5wZW0nKTtcbiAgICBhd2FpdCBfZXhlYygnL29wdC9vcGVuc3NsJywgJ3JlcScsICctY29uZmlnJywgY29uZmlnRmlsZSxcbiAgICAgICcta2V5JywgcGtleUZpbGUsXG4gICAgICAnLW91dCcsIGNzckZpbGUsXG4gICAgICAnLW5ldycpO1xuICAgIGNvbnN0IGNlcnRGaWxlID0gcGF0aC5qb2luKHRlbXBEaXIsICdjZXJ0LnBlbScpO1xuICAgIGF3YWl0IF9leGVjKCcvb3B0L29wZW5zc2wnLCAneDUwOScsICctaW4nLCBjc3JGaWxlLFxuICAgICAgJy1vdXQnLCBjZXJ0RmlsZSxcbiAgICAgICctcmVxJyxcbiAgICAgICctc2lnbmtleScsIHBrZXlGaWxlLFxuICAgICAgJy1kYXlzJywgJzM2NScpO1xuXG4gICAgY29uc3QgczMgPSBuZXcgYXdzLlMzKCk7XG4gICAgY29uc3QgYnVja2V0TmFtZTogc3RyaW5nID0gZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzLk91dHB1dEJ1Y2tldDtcbiAgICBhd2FpdCBzMy5wdXRPYmplY3Qoe1xuICAgICAgQnVja2V0OiBidWNrZXROYW1lLFxuICAgICAgS2V5OiAnY2VydGlmaWNhdGUtc2lnbmluZy1yZXF1ZXN0LnBlbScsXG4gICAgICBCb2R5OiBhd2FpdCByZWFkRmlsZShjc3JGaWxlLCB7IGVuY29kaW5nOiAndXRmOCcgfSksXG4gICAgICBDb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL3gtcGVtLWZpbGUnLFxuICAgIH0pLnByb21pc2UoKTtcbiAgICBhd2FpdCBzMy5wdXRPYmplY3Qoe1xuICAgICAgQnVja2V0OiBidWNrZXROYW1lLFxuICAgICAgS2V5OiAnc2VsZi1zaWduZWQtY2VydGlmaWNhdGUucGVtJyxcbiAgICAgIEJvZHk6IGF3YWl0IHJlYWRGaWxlKGNlcnRGaWxlLCB7IGVuY29kaW5nOiAndXRmOCcgfSksXG4gICAgICBDb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL3gtcGVtLWZpbGUnLFxuICAgIH0pLnByb21pc2UoKTtcblxuICAgIHJldHVybiB7XG4gICAgICBSZWY6IGV2ZW50LkxvZ2ljYWxSZXNvdXJjZUlkLFxuICAgICAgQ1NSOiBgczM6Ly8ke2J1Y2tldE5hbWV9L2NlcnRpZmljYXRlLXNpZ25pbmctcmVxdWVzdC5wZW1gLFxuICAgICAgU2VsZlNpZ25lZENlcnRpZmljYXRlOiBgczM6Ly8ke2J1Y2tldE5hbWV9L3NlbGYtc2lnbmVkLWNlcnRpZmljYXRlLnBlbWAsXG4gICAgfTtcbiAgfSBmaW5hbGx5IHtcbiAgICBhd2FpdCBfcm1yZih0ZW1wRGlyKTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBfbWFrZUNzckNvbmZpZyhldmVudDogY2ZuLkV2ZW50LCBkaXI6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IGZpbGUgPSBwYXRoLmpvaW4oZGlyLCAnY3NyLmNvbmZpZycpO1xuICBhd2FpdCB3cml0ZUZpbGUoZmlsZSwgW1xuICAgICdbIHJlcSBdJyxcbiAgICAnZGVmYXVsdF9tZCAgICAgICAgICAgPSBzaGEyNTYnLFxuICAgICdkaXN0aW5ndWlzaGVkX25hbWUgICA9IGRuJyxcbiAgICAncHJvbXB0ICAgICAgICAgICAgICAgPSBubycsXG4gICAgJ3JlcV9leHRlbnNpb25zICAgICAgID0gZXh0ZW5zaW9ucycsXG4gICAgJ3N0cmluZ19tYXNrICAgICAgICAgID0gdXRmOG9ubHknLFxuICAgICd1dGY4ICAgICAgICAgICAgICAgICA9IHllcycsXG4gICAgJycsXG4gICAgJ1sgZG4gXScsXG4gICAgYENOICAgICAgICAgICAgICAgICAgID0gJHtldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuRG5Db21tb25OYW1lfWAsXG4gICAgYEMgICAgICAgICAgICAgICAgICAgID0gJHtldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuRG5Db3VudHJ5fWAsXG4gICAgYFNUICAgICAgICAgICAgICAgICAgID0gJHtldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuRG5TdGF0ZU9yUHJvdmluY2V9YCxcbiAgICBgTCAgICAgICAgICAgICAgICAgICAgPSAke2V2ZW50LlJlc291cmNlUHJvcGVydGllcy5EbkxvY2FsaXR5fWAsXG4gICAgYE8gICAgICAgICAgICAgICAgICAgID0gJHtldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuRG5Pcmdhbml6YXRpb25OYW1lfWAsXG4gICAgYE9VICAgICAgICAgICAgICAgICAgID0gJHtldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuRG5Pcmdhbml6YXRpb25hbFVuaXROYW1lfWAsXG4gICAgYGVtYWlsQWRkcmVzcyAgICAgICAgID0gJHtldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuRG5FbWFpbEFkZHJlc3N9YCxcbiAgICAnJyxcbiAgICAnWyBleHRlbnNpb25zIF0nLFxuICAgIGBleHRlbmRlZEtleVVzYWdlICAgICA9ICR7ZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzLkV4dGVuZGVkS2V5VXNhZ2V9YCxcbiAgICBga2V5VXNhZ2UgICAgICAgICAgICAgPSAke2V2ZW50LlJlc291cmNlUHJvcGVydGllcy5LZXlVc2FnZX1gLFxuICAgICdzdWJqZWN0S2V5SWRlbnRpZmllciA9IGhhc2gnLFxuICBdLmpvaW4oJ1xcbicpLCB7IGVuY29kaW5nOiAndXRmOCcgfSk7XG4gIHJldHVybiBmaWxlO1xufVxuXG5hc3luYyBmdW5jdGlvbiBfcmV0cmlldmVQcml2YXRlS2V5KGV2ZW50OiBjZm4uRXZlbnQsIGRpcjogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgZmlsZSA9IHBhdGguam9pbihkaXIsICdwcml2YXRlX2tleS5wZW0nKTtcbiAgY29uc3Qgc2VjcmV0ID0gYXdhaXQgc2VjcmV0c01hbmFnZXIuZ2V0U2VjcmV0VmFsdWUoe1xuICAgIFNlY3JldElkOiBldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuUHJpdmF0ZUtleVNlY3JldElkLFxuICAgIFZlcnNpb25TdGFnZTogJ0FXU0NVUlJFTlQnLFxuICB9KS5wcm9taXNlKCk7XG4gIGF3YWl0IHdyaXRlRmlsZShmaWxlLCBzZWNyZXQuU2VjcmV0U3RyaW5nISwgeyBlbmNvZGluZzogJ3V0ZjgnIH0pO1xuICByZXR1cm4gZmlsZTtcbn1cbiJdfQ==
@@ -38,6 +38,7 @@ async function handleEvent(event: cfn.Event, _context: lambda.Context): Promise<
38
38
  ExtendedKeyUsage: false,
39
39
  KeyUsage: true,
40
40
  PrivateKeySecretId: true,
41
+ OutputBucket: true,
41
42
  });
42
43
  }
43
44
 
@@ -67,10 +68,26 @@ async function _createSelfSignedCertificate(event: cfn.Event): Promise<ResourceA
67
68
  '-req',
68
69
  '-signkey', pkeyFile,
69
70
  '-days', '365');
71
+
72
+ const s3 = new aws.S3();
73
+ const bucketName: string = event.ResourceProperties.OutputBucket;
74
+ await s3.putObject({
75
+ Bucket: bucketName,
76
+ Key: 'certificate-signing-request.pem',
77
+ Body: await readFile(csrFile, { encoding: 'utf8' }),
78
+ ContentType: 'application/x-pem-file',
79
+ }).promise();
80
+ await s3.putObject({
81
+ Bucket: bucketName,
82
+ Key: 'self-signed-certificate.pem',
83
+ Body: await readFile(certFile, { encoding: 'utf8' }),
84
+ ContentType: 'application/x-pem-file',
85
+ }).promise();
86
+
70
87
  return {
71
88
  Ref: event.LogicalResourceId,
72
- CSR: await readFile(csrFile, { encoding: 'utf8' }),
73
- SelfSignedCertificate: await readFile(certFile, { encoding: 'utf8' }),
89
+ CSR: `s3://${bucketName}/certificate-signing-request.pem`,
90
+ SelfSignedCertificate: `s3://${bucketName}/self-signed-certificate.pem`,
74
91
  };
75
92
  } finally {
76
93
  await _rmrf(tempDir);