mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
Don't use parameters to pass secrets to GCP or AWS (#2039)
* Don't use parameters to pass secrets to GCP or AWS Signed-off-by: Spike Curtis <spike@coder.com> * Fix fmt Signed-off-by: Spike Curtis <spike@coder.com>
This commit is contained in:
+36
-2
@@ -23,8 +23,6 @@ vim <template-name>/main.tf
|
||||
coder templates <create/update> <template-name>
|
||||
```
|
||||
|
||||
> We recommend source controlling your templates.
|
||||
|
||||
## Persistent and ephemeral resources
|
||||
|
||||
Coder supports both ephemeral and persistent resources in workspaces. Ephemeral
|
||||
@@ -53,6 +51,42 @@ Templates often contain *parameters*. In Coder, there are two types of parameter
|
||||
each workspace, often personalization settings such as "preferred
|
||||
region" or "workspace image".
|
||||
|
||||
|
||||
## Best Practices
|
||||
|
||||
### Template Changes
|
||||
|
||||
We recommend source controlling your templates.
|
||||
|
||||
### Authenticating with Cloud Providers
|
||||
|
||||
Coder's provisioner process needs to authenticate with cloud provider APIs to provision
|
||||
workspaces. We strongly advise against including credentials directly in your templates. You
|
||||
can either pass credentials to the provisioner as parameters, or execute Coder
|
||||
in an environment that is authenticated with the cloud provider.
|
||||
|
||||
We encourage the latter where supported. This approach simplifies the template, keeps cloud
|
||||
provider credentials out of Coder's database (making it a less valuable target for attackers),
|
||||
and is compatible with agent-based authentication schemes (that handle credential rotation
|
||||
and/or ensure the credentials are not written to disk).
|
||||
|
||||
Cloud providers for which the Terraform provider supports authenticated environments include
|
||||
|
||||
* [Google Cloud](https://registry.terraform.io/providers/hashicorp/google/latest/docs)
|
||||
* [Amazon Web Services](https://registry.terraform.io/providers/hashicorp/aws/latest/docs)
|
||||
* [Microsoft Azure](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs)
|
||||
* [Kubernetes](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs)
|
||||
|
||||
Additional providers may be supported; check the
|
||||
[documentation of the Terraform provider](https://registry.terraform.io/browse/providers) for
|
||||
details.
|
||||
|
||||
The way these generally work is via the credentials being available to Coder either in some
|
||||
well-known location on disk (e.g. `~/.aws/credentials` for AWS on posix systems), or via
|
||||
environment variables. It is usually sufficient to authenticate using the CLI or SDK for the
|
||||
cloud provider before running Coder for this to work, but check the Terraform provider
|
||||
documentation for details.
|
||||
|
||||
---
|
||||
|
||||
Next: [Workspaces](./workspaces.md)
|
||||
|
||||
Reference in New Issue
Block a user