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
- AWS account with permissions to create S3 buckets and IAM users
23
+
- AWS account with permissions to create S3 buckets and IAM roles
24
+
25
+
## AWS Authentication
26
+
27
+
The Cron Job authenticates to AWS via [Render OIDC](https://render.com/docs/oidc) (currently in alpha): it exchanges a short-lived token for AWS credentials by assuming an IAM role. No long-lived secrets are stored. Render publishes a per-workspace OIDC issuer at `https://oidc.render.com/<render_deployment_workspace_id>`.
28
+
29
+
The Go application also supports long-lived `AWS_ACCESS_KEY_ID` / `AWS_SECRET_ACCESS_KEY` credentials as a fallback (if `AWS_ROLE_ARN` is unset.
24
30
25
31
## Quick Start
26
32
@@ -33,7 +39,7 @@ cd render-auditlogs/terraform
33
39
34
40
### 2. Configure authentication
35
41
36
-
Set up authentication for both providers:
42
+
Set up authentication for both providers for the Terraform providers:
For Enterprise customers with organization-level audit logs:
66
+
This creates an IAM OIDC provider for `https://oidc.render.com/<render_deployment_workspace_id>` (if one does not already exist) and an IAM role the Cron Job assumes at runtime.
67
+
68
+
If you already have the OIDC provider registered in AWS add:
|`aws_s3_bucket_name`| Yes | - | Name of the S3 bucket to create for storing audit logs |
81
+
|`render_api_key`| Yes | - | Render API key for accessing audit logs |
82
+
|`render_deployment_workspace_id`| Yes | - | Render workspace ID (`tea-xxx`) where the Cron Job is deployed; used to build the OIDC issuer URL `oidc.render.com/<render_deployment_workspace_id>`|
83
+
|`render_workspace_ids`| No |`[]`| List of workspace IDs to fetch audit logs from |
84
+
|`render_organization_id`| No |`""`| Organization ID for Enterprise audit logs |
85
+
|`aws_oidc_provider_arn`| No |`""`| ARN of an existing AWS IAM OIDC provider; if empty, one is created |
86
+
|`aws_iam_role_name`| No |`render-audit-log-processor`| Name of the IAM role the Cron Job assumes |
87
+
|`aws_s3_bucket_key_enabled`| No |`false`| Enable S3 bucket key to reduce KMS calls |
88
+
|`aws_s3_kms_key_id`| No |`""`| ARN for KMS key to use for encryption |
89
+
|`aws_s3_use_kms`| No |`false`| Use KMS for encryption (instead of SSE-S3) |
90
+
|`render_cronjob_name`| No |`render-auditlogs`| Name of the Render Cron Job |
91
+
|`render_cronjob_schedule`| No |`1/15 * * * *`| Cron schedule (default: every 15 minutes) |
92
+
|`render_cronjob_plan`| No |`starter`| Render plan for the Cron Job |
93
+
|`render_cronjob_region`| No |`oregon`| Region to deploy the Cron Job |
94
+
|`render_project_name`| No |`audit-logs`| Name of the Render project |
95
+
96
+
*Note*: If you use a KMS key, confirm that the IAM role is set up with User Permissions for the key.
When `AWS_ROLE_ARN` is set, the application assumes that role via web-identity federation. When it is empty, the AWS SDK's default credential chain picks up `AWS_ACCESS_KEY_ID` / `AWS_SECRET_ACCESS_KEY` (or your local AWS profile).
0 commit comments