一、用戶身份與許可權
GitLab的用戶身份分為以下幾種:
- Guest用戶 – 只能查看公共項目,無法對項目進行任何操作
- Reporter用戶 – 可以查看和報告問題,但不能做出任何更改
- Developer用戶 – 可以看到和更改代碼,但不能對項目進行重要更改,如添加新分支和標籤
- Maintainer用戶 – 可以對項目做出任何更改,包括添加新分支和標籤
- Owner用戶 – 創造了項目的用戶,擁有對項目的所有許可權
在創建項目時,可以選擇哪些用戶應具有什麼許可權。為了方便管理,可以將用戶分組並為每個組分配不同的許可權。例如,添加一個「QA」組,只允許該組的用戶報告問題和查看bug列表。
二、項目與分支保護
GitLab具有保護機制,以防止代碼或分支受到未經授權更改。其中,分支保護是必不可少的。創建分支保護可以確保只有特定的用戶或組才能推送在分支上進行的更改。
例如,創建一個名為「production」的主分支,只有維護者可以在其中進行更改。任何提交都需要審核並獲得批准後才能合併。
master: protected: true developers_can_push: false developers_can_merge: false access_level: 40
三、CI/CD許可權
GitLab的CI/CD工具需要在項目設置中啟用,並且需要具有許可權才能配置或使用它。CI/CD許可權包括構建、測試、發布和執行自動化操作的許可權。
例如,為了確保只有具有特定許可權的用戶才能在生產環境中啟動自動部署,可以在GitLab中配置一個名為「deploy」的組,並將具有管理員許可權的用戶添加到該組中。
deploy: stage: deploy script: - deploy.sh only: - master except: - tags
四、API許可權
GitLab提供了API,允許通過HTTP調用以編程方式與GitLab進行交互。與其他許可權類似,需要分配特定的許可權來訪問API。可以在GitLab中為具有管理員許可權的用戶創建個人訪問令牌,並將訪問級別限制為可選的API介面。
例如,為了允許特定的用戶通過API使用GitLab的CI/CD工具,可以為他們分配一個令牌,並為其提供與CI/CD相關的全局訪問許可權。
personal_access_token: scopes: - api - read_user - read_registry
五、LDAP/AD集成許可權
如果使用LDAP或AD將GitLab與企業的用戶目錄集成,需要分配特定的許可權才能訪問該目錄。該許可權必須授予特定的服務用戶,以及對LDAP/AD進行配置和測試的管理員。
例如,為了確保LDAP/AD用戶可以使用GitLab,可以創建一個名為「ldap-users」的分組,並將LDAP/AD用戶添加到其中。然後,可以在GitLab中為該組分配與項目和資源相關的許可權。
ldap-users: group_bindings: - group_dn: cn=gitlab-users,ou=groups,dc=example,dc=com group_access: Maintainer access_level: 30
六、總結
用戶許可權是保護GitLab項目安全的核心。在GitLab中,可以根據用戶的身份和角色為他們分配不同的許可權。這些許可權包括訪問公共項目、更改代碼、管理分支保護、使用CI/CD工具、訪問API和集成LDAP/AD。通過合理配置許可權,可以確保項目的安全性和可靠性。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/259550.html