You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/blog/esc-connect/index.md
+85-19Lines changed: 85 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,7 +20,7 @@ Pulumi ESC has [native integrations](/docs/esc/integrations/) with popular secre
20
20
21
21
ESC Connect changes this by letting you build simple HTTPS adapter services using the [`external` provider](/docs/esc/integrations/dynamic-secrets/external/). Your adapter handles requests from ESC, fetches secrets from your custom source, and returns them. ESC handles authentication with signed JWT tokens, so you get fine-grained control over access without building a complete security infrastructure.
22
22
23
-
## Building an Adapter
23
+
## Building an adapter
24
24
25
25
Here's an [ESC environment](/docs/esc/environments/) configuration that uses ESC Connect:
26
26
@@ -33,24 +33,71 @@ values:
33
33
secretName: DATABASE_PASSWORD
34
34
```
35
35
36
-
When you open this environment, ESC makes an authenticated POST request to your adapter. Your adapter validates the JWT token, fetches the secret from your source, and returns it:
36
+
When you open this environment, ESC makes an authenticated POST request to your adapter. Your adapter validates the JWT token, fetches the secret from your source, and returns it.
37
+
38
+
Here's a reusable validation helper you can copy into any adapter:
Once deployed, the secrets become available in your ESC environment:
@@ -60,7 +107,7 @@ environmentVariables:
60
107
DB_PASSWORD: ${customSecrets.response.value}
61
108
```
62
109
63
-
The [documentation](/docs/esc/integrations/dynamic-secrets/external/) includes complete adapter examples with JWT verification, body hash validation, and security best practices.
110
+
The [documentation](/docs/esc/integrations/dynamic-secrets/external/) includes a complete implementation with all helper methods and security best practices.
64
111
65
112
## Automated Rotation
66
113
@@ -79,8 +126,27 @@ values:
79
126
80
127
The [rotation documentation](/docs/esc/integrations/rotated-secrets/external/) covers state management, dual-secret strategies, and implementation patterns.
81
128
82
-
## Try It Out
129
+
## Try it out
130
+
131
+
ESC Connect is available now in Pulumi ESC. We've created a deployable reference implementation on AWS Lambda that you can use as a starting point:
132
+
133
+
[](https://app.pulumi.com/new?template=https://github.com/pulumi/examples/blob/master/aws-ts-esc-external-adapter-lambda/README.md)
134
+
135
+
The example includes the `ESCRequestValidator` class shown above and demonstrates:
136
+
- JWT validation with Pulumi Cloud's JWKS
137
+
- Request integrity checking with body hash verification
138
+
- Inline Lambda deployment using Pulumi's function serialization
139
+
- CloudWatch logging for debugging
140
+
141
+
Deploy it with:
142
+
143
+
```bash
144
+
git clone https://github.com/pulumi/examples.git
145
+
cd examples/aws-ts-esc-external-adapter-lambda
146
+
npm install
147
+
pulumi up
148
+
```
83
149
84
-
ESC Connect is available now in Pulumi ESC. Check out the documentation for the [external provider](/docs/esc/integrations/dynamic-secrets/external/) and [external rotation](/docs/esc/integrations/rotated-secrets/external/) to get started. The docs include complete adapter examples with JWT verification, security best practices, and example implementations in multiple languages.
150
+
Check out the documentation for the [external provider](/docs/esc/integrations/dynamic-secrets/external/) and [external rotation](/docs/esc/integrations/rotated-secrets/external/) to learn more about building production adapters.
85
151
86
152
To learn more about Pulumi ESC, explore the [ESC documentation](/docs/esc/) or [get started for free](/docs/esc/get-started/). If you build an adapter for a system that others might find useful, share it in the [Pulumi Community Slack](https://slack.pulumi.com) — we'd love to see what you build.
0 commit comments