콘텐츠로 이동

새 팀원 IAM 사용자 추가

identity 루트 모듈에서 IAM 사용자를 생성하고 그룹에 소속시키는 절차를 설명합니다. IAM 사용자는 코드로만 생성합니다. 콘솔에서 직접 생성한 사용자를 명단에 포함하려면 기존 사용자 가져오기 를 수행하십시오.

사전 조건

  • bootstrap 모듈이 적용되어 원격 상태 버킷과 CI 역할이 준비되어 있어야 합니다.
  • 저장소에 대한 쓰기 권한과 PR 을 생성할 수 있는 권한이 있어야 합니다.
  • 4단계를 수행하려면 IAM 사용자의 콘솔 액세스를 활성화할 수 있는 관리자 자격 증명이 필요합니다.

1단계: 팀원 명단에 사용자 추가

identity/members.yaml 에 항목을 추가합니다. 맵의 키가 IAM 사용자 이름이 됩니다.

hong:
  groups: [TeamInfra]
  tags:
    Owner: hong@example.com

사용자 이름은 영숫자와 . _ - 문자만 사용할 수 있으며 64자를 초과할 수 없습니다. 허용되는 필드는 groupstags 이며 모두 선택 사항입니다. 위반 시 terraform plan 이 실패합니다.

2단계: 그룹 지정

groups 에 지정한 이름 중 groups.yaml 에 없는 이름은 AWS 에서 조회합니다. 존재하지 않는 이름을 지정하면 계획 단계에서 오류가 발생합니다.

새 그룹이 필요한 경우 groups.yaml 에 선언합니다.

KintounReadOnly:
  policy_arns:
    - arn:aws:iam::aws:policy/ReadOnlyAccess

3단계: 변경 사항 검토 및 배포

브랜치를 생성하고 PR 을 엽니다.

git switch -c feat/identity-add-hong
git commit -am "feat(identity): hong 팀원 추가"
git push -u origin feat/identity-add-hong

CI 파이프라인이 identity 모듈의 계획 결과를 PR 코멘트로 게시합니다. 병합하기 전에 다음 항목을 확인하십시오.

  • aws_iam_user.member["hong"] 리소스가 생성(create)으로 표시되는지 확인합니다. 교체(replace)로 표시되는 경우 병합하지 마십시오.
  • permissions_boundary 속성에 var.permissions_boundary_arn 값이 지정되었는지 확인합니다.
  • 다른 사용자의 삭제가 계획에 포함되어 있지 않은지 확인합니다. 포함되어 있다면 명단이 의도치 않게 수정된 것입니다.

검토가 승인되면 스쿼시 병합합니다. main 브랜치로 푸시되면 적용 파이프라인이 실행됩니다.

4단계: 콘솔 액세스 활성화

이 모듈은 콘솔 비밀번호와 액세스 키를 생성하지 않습니다(상태 파일에 평문으로 남습니다). 적용이 완료된 후 관리자가 콘솔에서 다음 절차를 수행합니다.

  1. IAM 콘솔에서 사용자 를 선택한 다음 해당 사용자를 선택합니다.
  2. 보안 자격 증명 탭에서 콘솔 액세스를 활성화합니다.
  3. 자동 생성된 비밀번호를 사용하고 다음 로그인 시 비밀번호 재설정 을 선택합니다.
  4. 계정 ID, 사용자 이름, 임시 비밀번호를 해당 사용자에게 개별적으로 전달합니다.

5단계: 사용자 초기 설정

enforce_mfa 변수가 true(기본값)인 동안에는 policies.tfrequire_mfa 정책이 MFA 등록과 비밀번호 변경을 제외한 모든 작업을 거부합니다. MFA 디바이스를 등록하기 전까지 콘솔에서 리소스가 표시되지 않는 것은 정상 동작입니다.

사용자는 다음 절차를 수행합니다.

  1. 콘솔에 로그인하고 비밀번호를 재설정합니다.
  2. 보안 자격 증명 탭에서 MFA 디바이스를 할당합니다.
  3. 로그아웃한 다음 MFA 를 사용하여 다시 로그인합니다. 이 시점부터 그룹에 부여된 권한이 적용됩니다.
  4. CLI 임시 자격 증명은 Wazuh 접속 절차 의 절차를 따라 발급받습니다.

사용자는 자신의 비밀번호, 액세스 키, MFA 디바이스를 직접 관리할 수 있습니다. 단, MFA 디바이스의 비활성화 및 삭제는 MFA 로 인증된 세션에서만 허용됩니다.

기존 사용자 가져오기

콘솔에서 이미 생성된 사용자를 명단에 추가하면 EntityAlreadyExists 오류로 적용이 실패합니다. 다음과 같이 import 블록을 함께 추가하십시오.

import {
  to = aws_iam_user.member["hong"]
  id = "hong"
}

계획 결과에 변경 사항이 없거나 태그 추가만 표시되어야 합니다. 리소스 교체가 표시되는 경우 실제 사용자의 경로 또는 권한 경계가 코드와 다른 것이므로, 병합하지 말고 코드를 실제 구성에 맞게 수정하십시오. 가져오기가 완료되면 다음 PR 에서 import 블록을 제거합니다.

고려 사항

  • MFA 디바이스가 등록되지 않은 관리 계정을 명단에 추가하지 마십시오. require_mfa 정책이 연결되는 즉시 해당 계정으로는 MFA 등록 외의 작업을 수행할 수 없습니다.
  • 권한은 그룹을 통해 부여합니다. 사용자에게 정책을 직접 연결하는 방법은 권한 및 그룹 변경 을 참조하십시오.