Google Cloud Search에서는 사용자의 Google 계정을 기준으로 액세스를 제어합니다. 콘텐츠의 색인을 생성할 때 모든 항목 ACL은 유효한 Google 사용자 또는 그룹 ID (이메일 주소)를 확인해야 합니다.
대부분의 경우 저장소에는 Google 계정에 대한 직접적인 정보가 없습니다. 대신 로컬 계정으로 사용자를 나타내거나 사용자가 ID 공급업체와 제휴 로그인을 사용합니다. 이메일 주소를 제외한 이 식별자를 외부 ID라고 합니다.
관리 콘솔을 사용하여 만든 ID 소스는 다음과 같은 방법으로 ID 시스템 간의 간격을 해소합니다.
- 외부 ID를 저장할 커스텀 사용자 필드를 정의합니다. 이 필드는 외부 ID를 Google 계정으로 확인합니다.
- 저장소 또는 ID 공급업체에서 관리하는 보안 그룹의 네임스페이스를 정의합니다.
다음과 같은 경우 ID 소스를 사용합니다.
- 저장소가 Google Workspace 또는 Google Cloud 디렉터리에 있는 사용자의 기본 이메일 주소를 알지 못합니다.
- 저장소는 Google Workspace의 이메일 기반 그룹에 해당하지 않는 액세스 제어 그룹을 정의합니다.
ID 소스를 사용하면 색인 생성이 ID 매핑에서 분리되므로 효율성이 향상됩니다. 이를 통해 ACL을 만들고 항목 색인을 생성할 때 사용자 조회를 연기할 수 있습니다.
배포 예시
그림 1은 온프레미스 저장소와 클라우드 저장소를 모두 사용하는 기업을 보여줍니다. 각 저장소는 서로 다른 유형의 외부 ID를 사용합니다.

저장소 1은 SAML을 사용하여 이메일 주소로 사용자를 식별합니다. Google Workspace 또는 Cloud 디렉터리의 기본 이메일 주소를 알고 있으므로 ID 소스가 필요하지 않습니다.
저장소 2는 온프레미스 디렉터리와 통합되며 sAMAccountName로 사용자를 식별합니다. 이 속성을 외부 ID로 사용하므로 ID 소스가 필요합니다.
ID 소스 만들기
ID 소스가 필요한 경우 Cloud Search에서 사용자 ID 매핑을 참고하세요.
콘텐츠 커넥터를 만들기 전에 ID 소스를 만드세요. ACL을 만들고 데이터를 색인하는 데 ID가 필요합니다. ID 소스를 만들면 외부 ID를 저장할 커스텀 사용자 속성도 Google Cloud 디렉터리에 생성됩니다. 속성 이름은 IDENTITY_SOURCE_ID_identity 규칙을 사용합니다.
이 표에는 SAM 계정 이름용 ID 소스와 사용자 ID (uid)용 ID 소스 등 두 개의 ID 소스가 표시되어 있습니다.
| ID 소스 | 사용자 속성 | 외부 ID |
|---|---|---|
id1 |
id1_identity |
sAMAccountName |
id2 |
id2_identity |
uid |
기업에서 사용되는 각 유형의 외부 ID에 대한 ID 소스를 만듭니다.
다음 표에서는 Google 계정과 외부 ID 두 개를 가진 사용자가 Cloud 디렉터리에 어떻게 표시되는지 보여줍니다.
| 사용자 | 이메일 | id1_identity |
id2_identity |
|---|---|---|---|
| 앤 | ann@example.com |
example\ann |
1001 |
색인을 생성하려고 ACL을 작성할 때 이러한 ID를 사용하여 동일한 사용자를 참조할 수 있습니다.
사용자 ACL 작성
getUserPrincipal() 또는 getGroupPrincipal()을 사용하여 외부 ID를 사용하는 주 구성원을 만듭니다.
이 예시에서는 액세스 권한이 있는 사용자를 비롯한 파일 권한을 가져옵니다.
이 스니펫은 externalUserName 속성을 사용하여 소유자의 주 구성원을 만듭니다.
이 스니펫은 리더의 주 구성원을 만듭니다.
리더와 소유자가 있으면 ACL을 만듭니다.
REST API는 identitysources/IDENTITY_SOURCE_ID/users/EXTERNAL_ID 패턴을 사용합니다.
Ann의 id1_identity은 identitysources/id1_identity/users/example/ann으로 확인됩니다. 사용자의 중간 ID입니다.
저장소 ACL 모델링에 대한 자세한 내용은 ACL을 참고하세요.
그룹 매핑
ID 소스는 ACL 그룹의 네임스페이스 역할도 합니다. 보안에만 사용되거나 저장소에 로컬인 그룹을 만들고 매핑하는 데 사용합니다.
Cloud Identity Groups API를 사용하여 그룹을 만들고 멤버십을 관리할 수 있습니다. ID 소스 이름을 네임스페이스로 사용하여 그룹을 ID 소스와 연결합니다.
이 스니펫은 그룹을 만듭니다.
그룹 ACL 만들기
getGroupPrincipal()를 사용하여 외부 ID가 있는 그룹 주 구성원을 만든 다음 ACL을 빌드합니다.
ID 커넥터
사용자는 외부 ID가 Cloud 디렉터리에 있는 Google ID로 확인될 때까지 검색 결과에 항목을 확인할 수 없습니다. 다음 세 가지 방법으로 이를 확인할 수 있습니다.
- 관리 콘솔에서 사용자 프로필을 수동으로 업데이트합니다(테스트에만 권장).
- Directory API를 사용하여 ID를 매핑합니다.
- ID 커넥터 SDK를 사용하여 ID 커넥터를 생성합니다.
ID 커넥터는 기업 ID의 외부 ID를 내부 Google ID에 매핑합니다. ID 소스를 만드는 경우 ID 커넥터도 만들어야 합니다.
Google Cloud 디렉터리 동기화 (GCDS)는 ID 커넥터의 한 가지 예입니다. Active Directory의 사용자 및 그룹 정보를 Cloud 디렉터리에 매핑합니다.
REST API로 ID 동기화
update 메서드를 사용하여 ID를 동기화합니다.
ID 재매핑
ID를 다시 매핑한 후 변경사항을 적용하려면 항목을 다시 색인해야 합니다.
- 사용자 매핑을 삭제하거나 변경하면 색인 생성을 다시 할 때까지 원래 매핑이 유지됩니다.
- 매핑된 그룹을 삭제하고 동일한
groupKey로 새 그룹을 만들면 다시 색인을 생성할 때까지 액세스 권한이 부여되지 않습니다.