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
Adding support for WIF based auth to Webhook Datasource module (#21)
* Adding support for WIF based auth to Webhook Datasource module
Change summary:
-----------------
To add auth support for validating cloud ingestion resources :-
- Adding the support for creating WIF resources with AWS provider.
- Allowing external trusted identity to be able to impersonate
the SA and use temporary service tokens for authentication. This
is to allow Sysdig backend to be able to talk to GCP to access
and read the cloud resources.
- Using assumed role attribute as the signature for trusted identity.
- Creating and binding a custom role to the SA, with just the right
set of permissions to read data ingestion cloud resources.
- Updating the module outputs with the fields to pass in as metadata
to Sysdig backend to do the auth.
* Fix fmt
* Fix sysdig provider version in tests
* Restrict the WIF identity signtaure to use external_id within the assumed role
* Fix org installs for webhook datasource with org-level permissions
* Add README and tests
* Add comment for randomly generated suffix
Copy file name to clipboardExpand all lines: modules/services/webhook-datasource/README.md
+20Lines changed: 20 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,19 +8,22 @@ The following resources will be created in each instrumented account:
8
8
- A `PubSub` ingestion topic that will hold all the AuditLogs coming from the specified project
9
9
- A `Push` Subscription that will POST the AuditLogs collected from the project towards Sysdig's backend
10
10
- All the necessary `Service Accounts` and `Policies` to enable the `AuditLogs` publishing operation
11
+
- A `Workload Identity Pool`, `Provider` and added custom role permissions to the `Service Account`, to allow Sysdig to authenticate to GCP on your behalf to validate resources.
|[google_organization.org](https://registry.terraform.io/providers/hashicorp/google/latest/docs/data-sources/organization)| data source |
47
+
|[sysdig_secure_trusted_cloud_identity.trusted_identity](https://registry.terraform.io/providers/sysdiglabs/sysdig/latest/docs/data-sources/secure_trusted_cloud_identity)| data source |
48
+
|[google_project.project](https://registry.terraform.io/providers/hashicorp/google/latest/docs/data-sources/project)| data source |
| <aname="input_organization_domain"></a> [organization\_domain](#input\_organization\_domain)| Organization domain. e.g. sysdig.com |`string`|`""`| no |
57
70
| <aname="input_project_id"></a> [project\_id](#input\_project\_id)| (Required) Target Project identifier provided by the customer |`string`| n/a | yes |
58
71
| <aname="input_push_endpoint"></a> [push\_endpoint](#input\_push\_endpoint)| (Required) Final endpoint towards which audit logs POST calls will be directed |`string`| n/a | yes |
72
+
| <aname="input_role_name"></a> [role\_name](#input\_role\_name)| (Optional) Role name for custom role binding to the service account, with read permissions for data ingestion resources |`string`|`"SysdigIngestionAuthRole"`| no |
73
+
| <aname="input_external_id"></a> [external\_id](#input\_external\_id)| (Optional) Random string generated unique to a customer |`string`|`""`| no |
74
+
| <aname="input_suffix"></a> [suffix](#input\_suffix)| (Optional) Suffix to uniquely identify resources during multiple installs. If not provided, random value is autogenerated |`string`|`null`| no |
59
75
60
76
## Outputs
61
77
@@ -65,3 +81,7 @@ No modules.
65
81
| <aname="output_ingestion_pubsub_topic_name"></a> [ingestion\_pubsub\_topic\_name](#output\_ingestion\_pubsub\_topic\_name)| PubSub ingestion topic that will hold all the AuditLogs coming from the specified project |
66
82
| <aname="output_ingestion_sink_name"></a> [ingestion\_sink\_name](#output\_ingestion\_sink\_name)| Project/Organization sink to direct the AuditLogs towards a dedicated PubSub topic |
67
83
| <aname="output_ingestion_push_subscription_name"></a> [ingestion\_push\_subscription\_name](#output\_ingestion\_push\_subscription\_name)| Push Subscription that will POST the AuditLogs collected from the project towards Sysdig's backend |
84
+
| <aname="output_workload_identity_pool_id"></a> [workload\_identity\_pool\_id](#output\_workload\_identity\_pool\_id)| Id of Workload Identity Pool for authenticating to GCP to access data ingestion resources |
85
+
| <aname="output_workload_identity_pool_provider_id"></a> [workload\_identity\_pool\_provider\_id](#output\_workload\_identity\_pool\_provider\_id)| Id of Workload Identity Pool Provider for authenticating to GCP to access data ingestion resources |
86
+
| <aname="output_workload_identity_project_number"></a> [workload\_identity\_project\_number](#output\_workload\_identity\_project\_number)| GCP project number |
87
+
| <aname="output_service_account_email"></a> [service\_account\_email](#output\_service\_account\_email)| email of the Service Account created |
0 commit comments