K

커넥터 등록하고 승인하기

회사 데이터베이스를 커넥터로 등록하고, 누가 어디까지 조회할 수 있는지 grant로 승인하는 방법이에요.

회사에서 쓰는 데이터베이스를 앱에서 조회할 수 있게 열어 주는 일이에요.
연결 등록접근 승인 두 가지를 하면, 그다음부터는 승인받은 사람이 각자 자기 앱에서 가져다 써요.

접속 정보는 AxHub가 맡아 관리해서 앱 코드에는 회사 DB 비밀번호가 전혀 남지 않아요.

준비물

  • 회사 관리자 권한 — 커넥터 등록과 승인은 관리자만 할 수 있어요
  • CLI 로그인axhub로 시작하는 명령어 도구예요

연결 등록

회사 데이터베이스를 커넥터로 등록해요. Google Drive는 터미널에서 바로 연결할 수 있어요.

axhub connectors google start        # 브라우저 인가 URL 받기
axhub connectors google finalize     # 인가 후 커넥터 생성

등록된 커넥터에 어떤 테이블 · 리소스가 있는지는 탐색(discovery)을 실행해 목록으로 만들어요. 이 목록이 있어야 범위를 지정해 승인할 수 있어요.

axhub connectors discover <connector_id> --execute

AxHub 앱의 DB도 커넥터로 열 수 있어요. 어떤 앱이 쌓은 데이터를 다른 사람이 조회하게 하고 싶을 때 써요.

axhub connectors app-db eligible-apps        # 열 수 있는 앱 목록
axhub connectors app-db create --app-id <> --execute

접근 승인 (grant)

커넥터가 있어도 승인 없이는 아무도 조회할 수 없어요. grant로 네 가지를 정해서 승인해요.

정하는 것내용
누가subject — 사람 · 그룹 · 조직 단위
어떤 커넥터등록해 둔 커넥터 중 하나
어떤 액션 묶음으로preset — 예: 읽기 전용
(선택) 어떤 테이블 범위까지범위를 지정하면 그 밖은 아예 조회할 수 없어요

범위를 지정하면 자유 SQL이 막혀요. 범위 지정 grant로는 임의 쿼리를 못 돌리고(403 scope_requires_target), 범위 밖 리소스에 접근하면 403 scope_out_of_range가 나요. 넓게 열지, 좁게 잠글지를 정하는 스위치예요.

승인이 잘 걸렸는지는 승인받은 사람 계정에서 이렇게 확인해요.

axhub authz grants mine                    # 내 활성 grant 목록
axhub connectors mine                      # 내가 조회할 수 있는 커넥터
axhub connectors resources <connector_id>  # 그 커넥터의 리소스 트리

grant 없는 커넥터는 목록에조차 나오지 않아요. 개발자가 "커넥터가 안 보인다"고 하면 승인이 아직 안 된 거예요.

조회는 이렇게 통제돼요

승인한 뒤 실제 조회에는 세 겹의 안전장치가 걸려요.

안전장치내용
허용된 액션만grant의 preset이 허용한 액션만 실행돼요. 기본 읽기 전용 preset은 SELECT · WITH · EXPLAIN 같은 읽기 쿼리만 통과시켜요
안전 쿼리값은 SQL과 분리해 전달되고, 모든 조회는 허용 · 거부 여부와 함께 감사 기록으로 남아요
임시 세션조회는 게이트웨이 세션으로만 되고, 세션은 8시간이 지나면 자동으로 닫혀요

이렇게 보이면 성공

승인한 사람의 계정에서 axhub connectors mine커넥터가 보이면 성공이에요. 그다음부터는 각자 앱에서 커넥터로 회사 데이터 연결하기를 보고 조회하면 돼요.