본문 바로가기

Terraform

[테라폼] HCP Terraform(Terraform Cloud)의 계정 관리

2024년 4월 22일부터 Terraform Cloud의 이름이 HCP Terraform으로 변경되었습니다.

하기 내용에서는 Terraform Cloud 이름 대신 HCP Terraform 이름으로 대체하여 설명을 진행하도록 하겠습니다.

 

 

HCP Terraform 세부 기능 설명은 아래 URL을 통해 확인할 수 있습니다.

  • Project & Workspace : https://junho-foodprints.tistory.com/23
  • Project & Workspace 별 Team 권한(RBAC) 설정 : (작성중)
  • Version Control Workflow(VCS) 연동 : (작성중)
  • Variable Sets : (작성중)
  • Modules : (작성중)
  • No Code Provisioning : (작성중)
  • Policy(Sentinel) : (작성중)

 

1. HCP Terraform의 계정 관리

  • HCP Terraform의 Team Management
    • HCP Terraform의 Team management는 Standard Plan이상부터 가능합니다.

  • HCP Terraform의 Team은 Organization의 사용자 그룹을 의미합니다.
    • 사용자가 Organization의 하나이상의 팀에 속해 있어야 조직의 구성원으로 간주됩니다.

 

 

1-1) HCL Terraform의 Team Management 설정

HCL Terraform의 Team Management 설정을 통해 해당 Team의 속한 구성원들이 Organization 내에서 사용가능한 권한을 설정하여 관리가 가능합니다.

 

  • Project permissions
    • None: 모든 Project에 대한 액세스 권한 부여 X
    • View all projects: 해당 Organization의 모든 Project에 대한 View 권한 부여
    • Manage all projects: 구성원에게 해당 Organization의 모든 Project에 대한 view, edit, delete, 팀 액세스 권한할당에 대한 권한 설정모든 Project에서 새 Workspace를 생성할 수 있는 권한 부여

 

 

  • Workspace permission
    • None: 모든 Workspace에 대한 액세스 권한 부여 X
    • View all workspaces: 해당 Organization의 모든 Workspace에 대한 View 권한 부여
    • Manage all workspaces: 구성원에게 해당 Organization의 모든 Workspace에 대한 view, edit, delete, 팀 액세스 권한할당에 대한 권한 설정Default Project에서 새 Workspace를 생성할 수 있는 권한 부여 

 

 

  • Team permissions
    • None: 구성원에게 Team Management에 대한 액세스 권한 부여 X
    • Manage membership: 구성원이 Organization에 사용자를 추가 및 제거하고 팀 구성원을 관리할 수 있도록 권한 부여
    • Manage teams: 구성원에게 membership을 관리하고 팀을 생성 및 삭제할 수 있는 권한을 부여. 이 권한을 통해 구성원은 자신이 속하지 않은 팀을 포함하여 모든 팀을 관리 가능
    • Manage organization access: 구성원에게 membership 및 팀을 관리하고 팀 내 Organization 액세스를 관리할 수 있는 권한을 부여합니다. 이 권한을 통해 구성원은 자신이 속하지 않은 팀의 조직 액세스를 관리 가능
    • Include secret teams : 구성원이 Secret 팀에 액세스하도록 허용. 구성원은 모든 Secret 팀을 볼 수 있으며 팀 권한 수준에 따라 잠재적으로 관리 가능

 

 

  • Settings permissions
    • organizations의 policy, run tasks, VCS, 사용자 추가 및 제거 관리등의 권한 설정

 

 

  • Manage private registry
    • private module, private provider의 추가 및 삭제를 관리하는 권한 설정

 

  • Visibility
    • 팀에 대한 표시 영역 설정, 팀 구성원에게만 보일 지 또는 전체 구성원에게 보일 지 설정

 

 

  • Team API Token
    • Team에서 사용하는 API Token 생성

 

 

  • Add a New Team Member
    • organization의 유저를 해당 Team의 추가

 

 

 

  • HCP Terraform 계정
    • 각 사용자는 Organization의 Project 또는 Workspace에 대한 권한이 부여된 하나 이상의 Team에 속할 수 있습니다.
  • Organization의 가입
    • 사용자에게 Email로 초대 메일이 발송되며 다음과 같이 가입을 진행 할 수 있습니다.
    • 계정이 있다면 해당 계정으로 Organization의 가입할 수 있으며, 계정이 없다면 새 계정을 만들고 가입할 수 있습니다.

 

 

 

 

 

 

 

 

 

 

  • 하기 내용은 추후 새로운 페이지로 업데이트 할 예정입니다.

 

 

 

2. Variables Set 

Variables sets

 - Workspace에서 사용하는 Variables 미리 생성하고 관리하는 기능

 - 모든 Workspace의 적용할 것인지, 특정 Workspace의 적용할 것인지 선택할 수 있음

 

- Variable set scope

   - Variable set을 적용 할 워크스페이스 정의

-  Variables

   - Variables set에서 사용 할 변수 정의

   - Terraform variable은 구성파일에서 사용하기 위한 변수 정의

   - Environment variable은 실행환경에 대한 환경변수 정의

   - AWSCloudCredential Key값은 환경변수로 등록

   - Sensitive 옵션을 선택하면 최초 입력 이후 값의 사용만 가능하며 조회 또는 수정이 불가능 

 

 

3. VCS 연동

VCS Provider

 - Terraform cloudVCS와의 연동이 필요한 경우 사용

 - VCS repositoryWorkspace가 연결되면 repository의변화를 감지하고 자동으로 WorkspaceTerraform을 실행할 수 있음

 

 

 

6. Modules

Terraform Cloud Private Registry

 - TFCPrivate RegistryPublic Terraform Registry와 유사하며 TFC 사용하는 조직내에서 Terraform ProviderTerraform Module을 공유할 수 있다.

 - 버전 관리 지원과 사용가능한 Provider Moudle의 검색이 가능하다.

No-code-provisioning

 - Terraform Cloud의 no-code-provisioning은 해당 코드 모듈이 Terraform Cloud에 등록만 되어 있다면 사용자는 Terraform 구성을 작성하지 않고도 인프라 리소스를 배포 가능하다.

 

6.1)  Organization -> Registry에서 Publish 버튼을 클릭하고 Module을 클릭

 

6.2).  Connect to VCS에서는 Module이 등록되어 있는 VCS 선택

 

 

6.3)    Choose a Repository에서는 선택한 VCSRepository 선택

 

6.4).  Confirm selection에서는 전 단계에서 선택한 VCSRepository 확인하고 Publish module을 클릭

 

6.5).  Organization -> Registry -> Modules에서 등록한 Module을 확인

 

6.6)    No Code Provisioning - enable 설정