Terraform Cloud — это мощный инструмент «инфраструктура как код» (IaC), который позволяет организациям управлять своей инфраструктурой с помощью файлов декларативной конфигурации. Одним из ключевых аспектов Terraform Cloud является надежная система разрешений, которая обеспечивает детальный контроль над доступом пользователей и действиями на платформе. В этой статье мы рассмотрим различные разрешения, доступные в Terraform Cloud, и предоставим примеры кода, иллюстрирующие их использование.
Понимание разрешений Terraform Cloud:
- Разрешения на уровне организации:
- Администратор организации: имеет полный контроль над всеми ресурсами и настройками внутри организации.
- Член организации: может получать доступ к ресурсам внутри организации и управлять ими, но не имеет административных привилегий.
Пример:
# Organization-level permissions example
resource "tfe_organization" "example" {
name = "my-organization"
}
resource "tfe_organization_membership" "admin" {
organization = tfe_organization.example.id
username = "admin@example.com"
role = "admin"
}
resource "tfe_organization_membership" "member" {
organization = tfe_organization.example.id
username = "user@example.com"
role = "member"
}
- Разрешения на уровне рабочей области:
- Администратор рабочей области: имеет полный контроль над определенной рабочей областью, включая управление переменными и разрешениями.
- Разработчик рабочей области: может управлять ресурсами в рабочей области, но не может изменять настройки рабочей области или управлять разрешениями.
- Просмотр рабочего пространства: может просматривать состояние и конфигурацию рабочего пространства, но не может вносить какие-либо изменения.
Пример:
# Workspace-level permissions example
resource "tfe_workspace" "example" {
name = "my-workspace"
organization = tfe_organization.example.id
}
resource "tfe_workspace_permission" "admin" {
workspace = tfe_workspace.example.id
team = tfe_team.example.id
access_level = "admin"
}
resource "tfe_workspace_permission" "developer" {
workspace = tfe_workspace.example.id
user = tfe_user.example.id
access_level = "developer"
}
resource "tfe_workspace_permission" "viewer" {
workspace = tfe_workspace.example.id
user = tfe_user.example.id
access_level = "viewer"
}
- Разрешения на уровне переменных:
- Администратор переменных: может создавать, обновлять и удалять переменные в рабочей области.
- Оператор переменных: может читать и использовать переменные в рабочей области, но не может их изменять.
- Просмотр переменных: можно просматривать значения переменных только в рабочей области.
Пример:
# Variable-level permissions example
resource "tfe_variable" "example" {
key = "my-variable"
value = "secret"
workspace = tfe_workspace.example.id
}
resource "tfe_variable_access" "admin" {
variable = tfe_variable.example.id
team = tfe_team.example.id
access_level = "admin"
}
resource "tfe_variable_access" "operator" {
variable = tfe_variable.example.id
user = tfe_user.example.id
access_level = "operator"
}
resource "tfe_variable_access" "viewer" {
variable = tfe_variable.example.id
user = tfe_user.example.id
access_level = "viewer"
}
Terraform Cloud предлагает полный набор разрешений для контроля доступа и действий на платформе. Используя разрешения на уровне организации, рабочей области и переменного уровня, организации могут обеспечить надлежащую безопасность и сотрудничество в процессах управления своей инфраструктурой. Понимание и эффективное использование этих разрешений имеет решающее значение для успешного внедрения Terraform Cloud в среде DevOps.