본문으로 건너뛰기

SCRAM 인증 설정

Advanced Managed Kafka는 클러스터에 접근하는 클라이언트를 사용자 이름과 비밀번호로 인증하는 SASL/SCRAM 방식을 지원합니다. 인증에 사용할 사용자 이름과 비밀번호는 카카오클라우드 Secrets Manager의 시크릿으로 관리하며, 클러스터에 시크릿을 연결하면 Advanced Managed Kafka가 시크릿 값을 읽어 Kafka 사용자로 등록합니다. 시크릿을 연결하거나 해제하려면 Advanced Managed Kafka 보안 매니저(Manager) 역할이 필요합니다.

안내
  • 클러스터 생성 시 클라이언트 인증을 SCRAM 인증으로 선택한 경우, 시크릿을 연결하기 전까지 클라이언트가 클러스터에 접속할 수 없습니다.
  • Advanced Managed Kafka가 지원하는 SASL/SCRAM 메커니즘은 SCRAM-SHA-512입니다. 그 외 다른 메커니즘은 지원하지 않습니다.
  • 하나의 클러스터에 연결할 수 있는 시크릿은 최대 100개입니다. 연결 가능한 개수는 프로젝트의 시크릿 쿼터를 따르며, 쿼터를 증설하면 그만큼 더 연결할 수 있습니다. 자세한 내용은 Secrets Manager 쿼터를 참고하세요.

시크릿 요구 사항​

Advanced Managed Kafka에 연결할 시크릿은 아래 조건을 모두 만족해야 합니다.

항목설명
프로젝트클러스터와 동일한 프로젝트에 생성된 시크릿이어야 합니다.
이름amk-로 시작해야 합니다. 다른 이름의 시크릿은 연결 목록에 표시되지 않습니다. 시크릿 이름은 생성 후 변경할 수 없으므로, 이름이 잘못된 경우 새로 생성해야 합니다.
값 형식키/값 형식으로 username, password 두 개의 키를 포함해야 합니다.
길이키와 값은 각각 128자 이하여야 합니다.
상태시크릿의 기본 버전이 운영(Active) 상태여야 합니다. 정지 또는 폐기 상태인 시크릿은 연결할 수 없습니다.
접근 제어시크릿에 접근 제어를 설정한 경우 Advanced Managed Kafka 서비스 에이전트 계정에 시크릿 조회 권한을 부여해야 합니다.

시크릿 값 예시는 다음과 같습니다.

키값
usernamekafka-app
password********
주의

Advanced Managed Kafka는 시크릿의 기본 버전 값을 읽습니다. 시크릿 값을 변경하면 새 버전이 기본 버전이 되므로, 클라이언트 설정도 함께 변경해야 인증에 실패하지 않습니다.

Step 1. 시크릿 생성​

  1. 카카오클라우드 콘솔 > Security > Secrets Manager 메뉴로 이동합니다.
  2. [시크릿 생성] 버튼을 클릭합니다.
  3. 아래 정보를 입력한 후 [생성] 버튼을 클릭합니다.
항목설명
이름amk-로 시작하는 이름을 입력합니다. 예: amk-order-service
시크릿 값키에 username과 password를 추가한 후, 각 값에 인증에 사용할 사용자 이름과 비밀번호를 입력합니다.
암호화 키시크릿을 암호화할 KMS 키를 선택합니다.

시크릿 생성 방법의 자세한 내용은 시크릿 생성 및 관리 문서를 참고하세요.

Step 2. 접근 제어 설정 (선택)​

시크릿에 접근 제어를 설정한 경우에만 필요한 단계입니다. 접근 제어를 설정하지 않았다면 Step 3으로 이동합니다.

  1. Secrets Manager > 시크릿 메뉴에서 생성한 시크릿을 선택합니다.
  2. 접근 제어 탭에서 [접근 제어 추가] 버튼을 클릭합니다.
  3. 대상 유형을 서비스 에이전트 계정으로 선택하고 Advanced Managed Kafka 서비스 에이전트 계정을 추가합니다.

접근 제어 설정의 자세한 내용은 접근 제어 설정 문서를 참고하세요.

Step 3. 클러스터에 시크릿 연결​

  1. 카카오클라우드 콘솔 > Analytics > Advanced Managed Kafka > 클러스터 메뉴로 이동합니다.
  2. 시크릿을 연결할 클러스터의 이름을 클릭합니다.
  3. 상세 페이지 상단 안내 메시지 또는 보안 탭에서 [연결하기] 버튼을 클릭합니다.
  4. 시크릿 연결 팝업창에서 연결할 시크릿을 선택하고 [연결] 버튼을 클릭합니다.
안내
  • 시크릿 연결은 클러스터 상태가 Active일 때만 수행할 수 있습니다.
  • 연결 목록에는 현재 프로젝트에서 이름이 amk-로 시작하는 운영 상태 시크릿만 표시됩니다. 시크릿을 새로 생성한 경우 새로고침 버튼을 클릭하여 목록을 갱신하세요.
  • 시크릿을 연결해도 클러스터 상태는 변경되지 않습니다. 다만 연결한 시크릿이 클러스터의 모든 브로커에 동기화될 때까지 최대 10분이 소요될 수 있으며, 동기화가 완료된 후부터 해당 사용자 이름과 비밀번호로 인증할 수 있습니다.

연결이 완료되면 보안 탭의 클라이언트 인증 영역에서 연결된 시크릿의 이름, 설명, 연결일시를 확인할 수 있습니다.

Step 4. 클라이언트 접속 설정​

연결된 시크릿의 username, password 값으로 클라이언트를 설정합니다. 아래는 Kafka 클라이언트 속성 파일 예시입니다.

security.protocol=SASL_PLAINTEXT
sasl.mechanism=SCRAM-SHA-512
sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \
username="kafka-app" \
password="********";
주의

security.protocol 값은 클러스터의 리스너 구성에 맞게 설정해야 합니다. 예시의 값은 확인 후 수정이 필요합니다.

시크릿 연결 해제​

  1. 클러스터 상세 페이지의 보안 탭으로 이동합니다.
  2. 클라이언트 인증 영역에서 [연결 해제] 버튼을 클릭합니다.
  3. 팝업창의 내용을 확인한 후 [해제] 버튼을 클릭합니다.
안내
  • 시크릿 연결 해제는 클러스터 상태가 Active일 때만 수행할 수 있습니다.
  • 시크릿 연결을 해제해도 클러스터 상태는 변경되지 않습니다. 다만 해제 내용이 클러스터의 모든 브로커에 동기화될 때까지 최대 10분이 소요될 수 있습니다.
주의

시크릿 연결을 해제하면 해당 시크릿의 사용자 이름과 비밀번호로 인증하던 모든 클라이언트가 클러스터에 접속할 수 없습니다. Secrets Manager에서 시크릿을 정지 또는 폐기하는 경우에도 동일하게 인증에 실패합니다.