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
@@ -352,6 +353,14 @@ In case the setup does not work as intended follow the trace of events:
352
353
- Once an EC2 instance is running, you can connect to it in the EC2 user interface using Session Manager (use `enable_ssm_on_runners = true`). Check the user data script using `cat /var/log/user-data.log`. By default several log files of the instances are streamed to AWS CloudWatch, look for a log group named `<environment>/runners`. In the log group you should see at least the log streams for the user data installation and runner agent.
353
354
- Registered instances should show up in the Settings - Actions page of the repository or organization (depending on the installation mode).
354
355
356
+
## Security Consideration
357
+
358
+
This module creates resources in your AWS infrastructure, and EC2 instances for hosting the self-hosted runners on-demand. IAM permissions are set to a minimal level, and could be further limit by using permission boundaries. Instances permissions are limit to retrieve and delete the registration token, access the instance own tags, and terminate the instance itself.
359
+
360
+
The examples are using standard AMI's for different operation systems. Instances are not hardened, and sudo operation are not blocked. To provide an out of the box working expierence by default the module installs and configure the runner. However secrets are not hard coded, they finally end up in the memory of the instances. You can harden the instance by providing your own AMI and overwriting the cloud-init script.
361
+
362
+
We welcome any improvement to the standard module to make the default as secure as possible, in the end it remains your responsibility to keep your environment secure.
363
+
355
364
<!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK -->
356
365
## Requirements
357
366
@@ -380,7 +389,6 @@ In case the setup does not work as intended follow the trace of events:
@@ -409,6 +417,7 @@ In case the setup does not work as intended follow the trace of events:
409
417
| <aname="input_enable_runner_binaries_syncer"></a> [enable\_runner\_binaries\_syncer](#input\_enable\_runner\_binaries\_syncer)| Option to disable the lambda to sync GitHub runner distribution, useful when using a pre-build AMI. |`bool`|`true`| no |
410
418
| <aname="input_enable_runner_detailed_monitoring"></a> [enable\_runner\_detailed\_monitoring](#input\_enable\_runner\_detailed\_monitoring)| Should detailed monitoring be enabled for the runner. Set this to true if you want to use detailed monitoring. See https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch-new.html for details. |`bool`|`false`| no |
411
419
| <aname="input_enable_ssm_on_runners"></a> [enable\_ssm\_on\_runners](#input\_enable\_ssm\_on\_runners)| Enable to allow access the runner instances for debugging purposes via SSM. Note that this adds additional permissions to the runner instances. |`bool`|`false`| no |
420
+
| <aname="input_enable_user_data_debug_logging_runner"></a> [enable\_user\_data\_debug\_logging\_runner](#input\_enable\_user\_data\_debug\_logging\_runner)| Option to enable debug logging for user-data, this logs all secrets as well. |`bool`|`false`| no |
412
421
| <aname="input_enabled_userdata"></a> [enabled\_userdata](#input\_enabled\_userdata)| Should the userdata script be enabled for the runner. Set this to false if you are using your own prebuilt AMI. |`bool`|`true`| no |
413
422
| <aname="input_environment"></a> [environment](#input\_environment)| A name that identifies the environment, used as prefix and for tagging. |`string`|`null`| no |
414
423
| <aname="input_fifo_build_queue"></a> [fifo\_build\_queue](#input\_fifo\_build\_queue)| Enable a FIFO queue to remain the order of events received by the webhook. Suggest to set to true for repo level runners. |`bool`|`false`| no |
@@ -451,9 +460,9 @@ In case the setup does not work as intended follow the trace of events:
451
460
| <aname="input_runner_allow_prerelease_binaries"></a> [runner\_allow\_prerelease\_binaries](#input\_runner\_allow\_prerelease\_binaries)| (Deprecated, no longer used), allow the runners to update to prerelease binaries. |`bool`|`null`| no |
452
461
| <aname="input_runner_architecture"></a> [runner\_architecture](#input\_runner\_architecture)| The platform architecture of the runner instance\_type. |`string`|`"x64"`| no |
453
462
| <aname="input_runner_as_root"></a> [runner\_as\_root](#input\_runner\_as\_root)| Run the action runner under the root user. Variable `runner_run_as` will be ignored. |`bool`|`false`| no |
463
+
| <aname="input_runner_binaries_s3_logging_bucket"></a> [runner\_binaries\_s3\_logging\_bucket](#input\_runner\_binaries\_s3\_logging\_bucket)| Bucket for action runner distribution bucket access logging. |`string`|`null`| no |
464
+
| <aname="input_runner_binaries_s3_logging_bucket_prefix"></a> [runner\_binaries\_s3\_logging\_bucket\_prefix](#input\_runner\_binaries\_s3\_logging\_bucket\_prefix)| Bucket prefix for action runner distribution bucket access logging. |`string`|`null`| no |
454
465
| <aname="input_runner_binaries_s3_sse_configuration"></a> [runner\_binaries\_s3\_sse\_configuration](#input\_runner\_binaries\_s3\_sse\_configuration)| Map containing server-side encryption configuration for runner-binaries S3 bucket. |`any`|`{}`| no |
455
-
| <aname="input_runner_binaries_s3_logging_bucket"></a> [runner\_binaries\_s3\_logging\_bucket](#input\_runner\_binaries\_s3\_logging\_bucket)| Bucket for action runner distribution bucket access logging. |`string`|`null`| no |
456
-
| <aname="input_runner_binaries_s3_logging_bucket_prefix"></a> [runner\_binaries\_s3\_logging\_bucket\_prefix](#input\_runner\_binaries\_s3\logging\_bucket\_prefix)| Bucket prefix for action runner distribution bucket access logging. |`string`|`null`| no |
457
466
| <aname="input_runner_binaries_syncer_lambda_timeout"></a> [runner\_binaries\_syncer\_lambda\_timeout](#input\_runner\_binaries\_syncer\_lambda\_timeout)| Time out of the binaries sync lambda in seconds. |`number`|`300`| no |
458
467
| <aname="input_runner_binaries_syncer_lambda_zip"></a> [runner\_binaries\_syncer\_lambda\_zip](#input\_runner\_binaries\_syncer\_lambda\_zip)| File location of the binaries sync lambda zip file. |`string`|`null`| no |
459
468
| <aname="input_runner_boot_time_in_minutes"></a> [runner\_boot\_time\_in\_minutes](#input\_runner\_boot\_time\_in\_minutes)| The minimum time for an EC2 runner to boot and register as a runner. |`number`|`5`| no |
0 commit comments