Team Workspace

Team Workspace는 팀의 DynoTable 작업물(AI 컨텍스트와 스캔한 테이블 인덱스)을 요금제에 속한 모두에게 공유합니다. 그 전부는 여러분 자신의 AWS 계정에 있는 비공개 S3 버킷에 저장되며, 각 구성원의 AWS 자격 증명으로 읽고 씁니다. DynoTable은 여러분의 라이선스를 저장할 뿐, 콘텐츠는 저장하지 않습니다.

짧게 요약하면

  • 데이터는 여러분의 계정에 머무릅니다. 공유된 콘텐츠는 여러분이 소유한 S3 버킷에 있고, 각 구성원의 AWS 자격 증명으로 접근합니다. 테이블 이름, 속성, 샘플 데이터는 저희 서버에 닿지 않습니다.
  • 공유되는 것은 두 가지입니다. 조직 전체 및 테이블별 AI 컨텍스트, 그리고 한 동료가 한 번 스캔해 모두가 가져갈 수 있는 테이블 인덱스입니다.
  • 접근 제어는 여러분의 IAM입니다. 버킷을 읽을 수는 있지만 쓸 수 없는 구성원은 앱에서 읽기 전용이 됩니다. DynoTable 안에서 따로 관리할 계정이나 권한은 없습니다.
  • 중요한 곳은 옵트인입니다. 테이블 인덱스 게시는 기본적으로 꺼져 있고, 샘플 값은 공유되기 전에 두 번째 옵트인이 필요합니다.

데이터는 여러분의 AWS 계정에 머무릅니다

공유된 콘텐츠는 여러분 자신의 AWS 계정에 있는 비공개 S3 버킷에 있습니다. 모든 구성원이 이미 DynamoDB에 연결할 때 쓰는 것과 같은 프로필, 즉 자신의 AWS 자격 증명으로 읽고 씁니다. DynoTable의 서버는 여러분의 라이선스만 보관하며, schema와 샘플 데이터는 여러분의 계정을 벗어나지 않습니다.

버킷 이름은 AWS 계정과 리전에서 자동으로 도출되므로 따로 주고받을 것이 없습니다. 프로필이 같은 계정과 리전을 가리키는 모든 구성원이 스스로 같은 버킷을 찾습니다. 팀이 여러 리전에 걸쳐 일한다면 대신 각 프로필에 동일한 커스텀 버킷 이름을 설정하세요. 관리자는 강화된 기본값으로 버킷을 한 번에 만들 수 있습니다. 퍼블릭 액세스 차단, 암호화 활성화, TLS 필수, 버전 관리 활성화 및 대체된 버전은 30일 후 만료입니다.

모든 읽기와 쓰기가 여러분 자신의 IAM을 거치므로 버킷의 권한이 곧 경계입니다. 설정해야 할 별도의 DynoTable 권한 계층은 없습니다. IAM에서 구성원에게 쓰기 권한을 주면 게시할 수 있고, 읽기 전용을 주면 소비만 합니다.

공유 AI 컨텍스트

Team Workspace는 팀의 AI 어시스턴트에 두 계층의 안내를 공유합니다.

  • 워크스페이스 컨텍스트 — 모든 구성원의 어시스턴트가 읽는 조직 전체 메모입니다. 네이밍 규칙, 표준으로 삼은 액세스 패턴, 여러분의 데이터에만 있는 함정 등이죠.
  • 테이블별 컨텍스트 — 단일 테이블에 붙는 메모로, 어시스턴트가 그 테이블을 다룰 때마다 함께 반영됩니다.

워크스페이스 컨텍스트는 Settings → Knowledge에서, 테이블별 컨텍스트는 Table Settings에서 편집합니다. 버킷에 쓰기 권한이 있는 사람이 이를 작성하고, 다른 모든 구성원의 어시스턴트가 자동으로 읽습니다. 여러분 개인의 비공개 메모는 로컬에 남으며 Team 요금제가 필요하지 않습니다. 공유 계층은 그 위에 얹힙니다. 어시스턴트가 이 컨텍스트로 무엇을 하는지는 AI 도구를 참고하세요.

AI 컨텍스트 설정의 공유 워크스페이스 컨텍스트 — 한 번 게시하면 모든 구성원의 어시스턴트가 읽습니다.
AI 컨텍스트 설정의 공유 워크스페이스 컨텍스트 — 한 번 게시하면 모든 구성원의 어시스턴트가 읽습니다.

공유 테이블 인덱스

Team Workspace에서는 한 동료가 테이블 인덱스를 게시해 두면 다른 모두가 테이블을 다시 스캔하는 대신 그 결과를 가져올 수 있습니다. 인덱스에 무엇이 들어 있고 DynoTable이 어떻게 만드는지는 테이블 통계를 참고하세요.

두 개의 스위치가 인덱스 공유를 보수적으로 유지하며, 둘 다 기본적으로 꺼져 있습니다.

  • 게시 — 게시를 켜기 전까지는 인덱스에 관한 어떤 것도 공유되지 않습니다. 켜고 나면 여러분이 만드는 모든 인덱스가 팀에 자동으로 게시되며, 필요할 때 하나씩 직접 게시할 수도 있습니다.
  • 샘플 값 — 게시를 켜면 공유되는 인덱스에는 필드 경로, 타입, 각 필드의 출현 빈도가 담깁니다. 실제 샘플 값은 값 공유까지 함께 켜야만 전달됩니다.

가져오기는 언제나 여러분의 선택입니다. DynoTable은 아직 자신의 인덱스가 없거나 동료의 인덱스가 여러분 것보다 최신일 때 가져오기를 제안합니다. 누구의 스캔을 신뢰할지는 여러분이 정하며, 가져오기는 여러 기기의 카운트를 병합하는 것이 아니라 로컬 인덱스를 대체합니다.

워크스페이스 설정하기

  1. 워크스페이스를 사용하는 모든 사람에게 Team 요금제 좌석과 DynamoDB에 쓰는 것과 같은 프로필의 AWS 자격 증명 연결이 필요합니다(AWS에 연결 참고). 좌석은 팀 구성원에서 배정하세요.
  2. 관리자가 워크스페이스 버킷을 만들거나 기존 버킷을 DynoTable에 지정합니다. 자동 프로비저닝은 위의 강화된 기본값을 적용합니다.
  3. 각 구성원에게 필요한 IAM 접근 권한을 부여하세요. 소비만 하려면 읽기 전용, 게시까지 하려면 읽기/쓰기입니다. 정책은 아래에 있습니다.

버킷에 접근할 수 있게 되면, 좌석이 있고 자격 증명으로 읽을 수 있는 모든 구성원에게 공유 컨텍스트와 인덱스가 앱에 나타납니다.

프로필의 Team 설정에 연결된 Team Workspace — 워크스페이스 버킷과 동기화 컨트롤이 보입니다.
프로필의 Team 설정에 연결된 Team Workspace — 워크스페이스 버킷과 동기화 컨트롤이 보입니다.

IAM 정책

DynoTable은 자체 권한 계층을 추가하지 않으므로 이 정책들이 액세스 모델의 전부입니다. 여러분의 계정 ID와 리전, 또는 커스텀 버킷 이름으로 바꿔 넣으세요.

공유 콘텐츠를 소비하는 구성원에게는 읽기 권한이 필요합니다.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "FindWorkspaceBucket",
      "Effect": "Allow",
      "Action": ["s3:ListBucket", "s3:GetBucketLocation"],
      "Resource": "arn:aws:s3:::dynotable-team-<account-id>-<region>"
    },
    {
      "Sid": "ReadSharedContent",
      "Effect": "Allow",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::dynotable-team-<account-id>-<region>/*"
    }
  ]
}

게시하는 구성원(컨텍스트 작성, 인덱스 게시)에게는 그 위에 하나의 문이 더 필요합니다.

{
  "Sid": "PublishSharedContent",
  "Effect": "Allow",
  "Action": ["s3:PutObject", "s3:DeleteObject"],
  "Resource": "arn:aws:s3:::dynotable-team-<account-id>-<region>/*"
}

앱에서 버킷을 만드는 관리자에게는 버킷 수준 권한이 한 번 필요합니다.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "CreateWorkspaceBucket",
      "Effect": "Allow",
      "Action": [
        "s3:CreateBucket",
        "s3:PutBucketPublicAccessBlock",
        "s3:PutEncryptionConfiguration",
        "s3:PutBucketVersioning",
        "s3:PutLifecycleConfiguration",
        "s3:PutBucketPolicy",
        "s3:PutBucketOwnershipControls"
      ],
      "Resource": "arn:aws:s3:::dynotable-team-<account-id>-<region>"
    }
  ]
}

읽기 전용 구성원과 접근 권한

DynoTable은 모두가 쓸 수 있다고 가정하지 않고, IAM이 실제로 부여한 접근 권한을 보여 줍니다.

  • 읽기 전용 구성원 — 버킷을 읽을 수는 있지만 쓸 수 없는 구성원은 읽기 전용 워크스페이스를 갖습니다. 공유·게시·편집 컨트롤이 "관리자에게 문의하세요" 안내와 함께 비활성화됩니다. DynoTable은 IAM이 거부한 첫 쓰기에서 이를 알게 되므로, 새 세션에서는 그 첫 시도가 컨트롤이 정리되기 전에 권한 오류를 한 번 보고합니다.
  • 새 권한은 Refresh에서 적용됩니다. 관리자가 쓰기 권한을 부여한 뒤 Team 영역에서 Refresh를 클릭해 반영하세요.
  • 좌석을 잃으면 워크스페이스가 꺼질 뿐, 아무것도 지워지지 않습니다. Team 요금제가 만료되면 팀 인덱스를 가져오거나 공유 AI 컨텍스트를 어시스턴트에 전달할 수 없게 됩니다. 삭제되는 것은 없으며, 좌석을 되찾으면 접근도 복구됩니다.
  • 버킷 접근 문제는 설명해 줍니다. 버킷에 접근할 수 없으면, 앱이 버킷이 아직 없는 것인지 자격 증명에 권한이 없는 것인지 알려 주고 관리자에게 문의하도록 안내합니다.

좌석과 결제

Team 요금제는 좌석 단위로 청구되며, 누가 좌석을 가질지는 여러분이 정합니다.

  • 앱을 쓰는 사람은 모두 좌석을 가집니다. 팀 구성원에서 사람을 추가하고 제거하세요. 관리자는 결제와 구성원을 관리하며 좌석을 가지고, 구성원은 좌석을 가지고 앱을 사용합니다.
  • 결제 관리자는 좌석을 쓰지 않습니다. 재무, 구매, IT 담당자는 좌석이나 앱 접근 없이도 구독과 청구서를 관리할 수 있습니다. 결제 페이지에서 결제 관리자로 지정하세요.
  • 좌석 수는 팀을 따라갑니다. 좌석은 추가한 구성원을 따르므로, 사람을 추가하거나 제거하는 것이 청구액을 바꿉니다.
  • 팀당 청구서 하나. 구독, 결제 수단, 청구서는 결제 페이지에 있으며, 그곳에서 월간 결제와 연간 결제를 오갈 수 있습니다.

다음 단계

Team Workspace는 Team 요금제의 일부입니다. 좌석에 무엇이 포함되는지는 요금제를, 공유 컨텍스트가 무엇에 쓰이는지는 AI 도구를 참고하고, 좌석은 조직에서 관리하세요.

팀을 위한 워크스페이스를 설정하려면 DynoTable을 내려받으세요.

업데이트됨