-[Restrict write-access to a critical environment](#restrict-write-access-to-a-critical-environment)
-[Prevent deployments during deploy freeze windows](#prevent-deployments-during-deploy-freeze-windows)
-[Set appropriate roles to your project](#setting-appropriate-roles-to-your-project)
-[Protect production secrets](#protect-production-secrets)
-[Separate project for deployments](#separate-project-for-deployments)
If you are using a continuous deployment workflow and want to ensure that concurrent deployments to the same environment do not happen, you should enable the following options:
...
...
@@ -38,8 +41,8 @@ For example:
```yaml
deploy:
script:deploy-to-prod
resource_group:prod
script:deploy-to-prod
resource_group:prod
```
Example of a problematic pipeline flow **before** using the resource group:
...
...
@@ -89,6 +92,56 @@ If you want to prevent deployments for a particular period, for example during a
vacation period when most employees are out, you can set up a [Deploy Freeze](../../user/project/releases/index.md#prevent-unintentional-releases-by-setting-a-deploy-freeze).
During a deploy freeze period, no deployment can be executed. This is helpful to
ensure that deployments do not happen unexpectedly.
## Setting appropriate roles to your project
GitLab supports several different roles that can be assigned to your project members. See
[Project members permissions](../../user/permissions.md#project-members-permissions)
for an explanation of these roles and the permissions of each.
<divclass="video-fallback">
See the video: <ahref="https://www.youtube.com/watch?v=Mq3C1KveDc0">How to secure your CD pipelines</a>.