커넥터 등록하고 승인하기
회사 데이터베이스를 커넥터로 등록하고, 누가 어디까지 조회할 수 있는지 grant로 승인하는 방법이에요.
회사에서 쓰는 데이터베이스를 앱에서 조회할 수 있게 열어 주는 일이에요.
연결 등록과 접근 승인 두 가지를 하면, 그다음부터는 승인받은 사람이 각자 자기 앱에서 가져다 써요.
접속 정보는 AxHub가 맡아 관리해서 앱 코드에는 회사 DB 비밀번호가 전혀 남지 않아요.
준비물
- 회사 관리자 권한 — 커넥터 등록과 승인은 관리자만 할 수 있어요
- CLI 로그인 —
axhub로 시작하는 명령어 도구예요
연결 등록
회사 데이터베이스를 커넥터로 등록해요. Google Drive는 터미널에서 바로 연결할 수 있어요.
axhub connectors google start # 브라우저 인가 URL 받기
axhub connectors google finalize # 인가 후 커넥터 생성등록된 커넥터에 어떤 테이블 · 리소스가 있는지는 탐색(discovery)을 실행해 목록으로 만들어요. 이 목록이 있어야 범위를 지정해 승인할 수 있어요.
axhub connectors discover <connector_id> --executeAxHub 앱의 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에 커넥터가 보이면 성공이에요. 그다음부터는 각자 앱에서 커넥터로 회사 데이터 연결하기를 보고 조회하면 돼요.