

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Menyiapkan otentikasi akun layanan untuk Google Drive
<a name="kb-managed-googledrive-service-account-setup"></a>

Autentikasi akun layanan (`SERVICE_ACCOUNT`) adalah metode yang disarankan untuk sumber data Google Drive. Akun layanan Google Cloud melakukan autentikasi dengan kunci pribadi, lalu menyamar sebagai pengguna admin Google Workspace untuk merayapi konten Drive untuk setiap pengguna di domain Anda. Ini adalah satu-satunya metode yang mendukung kontrol akses tingkat dokumen (ACL).

**Diperlukan akses administratif**  
Penyiapan ini memerlukan administrator Google Workspace untuk mengaktifkan API, membuat akun layanan, mengonfigurasi delegasi seluruh domain, dan membuat pengguna admin yang didelegasikan. AWS Sisi membutuhkan akses administrator ke AWS Secrets Manager dan IAM.

## Langkah 1: Buat proyek Google Cloud
<a name="kb-managed-googledrive-sa-step1"></a>

1. Buka [konsol Google Cloud](https://console.cloud.google.com/).

1. Dari pemilih proyek di bagian atas halaman, pilih **Proyek Baru**.

1. Masukkan nama proyek, dan pilih **Buat**.

1. Setelah proyek dibuat, beralihlah dari pemilih proyek.

## Langkah 2: Aktifkan API yang diperlukan
<a name="kb-managed-googledrive-sa-step2"></a>

1. Di menu navigasi konsol Google Cloud, pilih **API & Layanan**, lalu **Perpustakaan**.

1. Cari dan aktifkan masing-masing API berikut:
   + **Google Drive API**
   + **API Aktivitas Google Drive**
   + **Admin SDK API**

## Langkah 3: Buat akun layanan
<a name="kb-managed-googledrive-sa-step3"></a>

1. Pada menu navigasi, pilih **API & Services**, lalu **Credentials**.

1. Pilih **Buat Kredensyal**, lalu Akun **layanan**.

1. Masukkan nama (misalnya,`bedrock-google-drive-connector`) dan deskripsi opsional, dan pilih **Selesai**.

1. Pada halaman **Kredensial**, pilih akun layanan yang baru saja Anda buat.

1. Pada tab **Detail**, salin **ID Unik**. Anda menggunakan ini di Langkah 5 untuk memberikan delegasi seluruh domain.

## Langkah 4: Buat kunci pribadi
<a name="kb-managed-googledrive-sa-step4"></a>

1. Pada halaman detail akun layanan, pilih tab **Tombol**.

1. Pilih **Tambah Kunci**, lalu **Buat kunci baru**.

1. Pilih **JSON** dan pilih **Buat**. Browser Anda mengunduh file JSON yang berisi akun layanan `client_email` dan`private_key`. Simpan file dengan aman.

**catatan**  
Jika Anda menerima kesalahan yang menyatakan bahwa pembuatan kunci akun layanan dinonaktifkan oleh kebijakan organisasi, Anda harus mengganti `iam.disableServiceAccountKeyCreation` batasan untuk proyek Anda. Untuk detailnya, lihat [Membatasi penggunaan akun layanan](https://cloud.google.com/resource-manager/docs/organization-policy/restricting-service-accounts) di dokumentasi Google Cloud.

## Langkah 5: Konfigurasikan delegasi seluruh domain
<a name="kb-managed-googledrive-sa-step5"></a>

Domain-wide delegasi memungkinkan akun layanan bertindak atas nama pengguna di Google Workspace Anda.

1. Masuk ke [Konsol Admin Google Workspace](https://admin.google.com/) sebagai administrator Google Workspace.

1. Di panel navigasi, pilih **Keamanan**, **Akses, dan kontrol data, kontrol** **API**.

1. Pilih **Kelola Delegasi Luas Domain**, lalu **Tambahkan baru**.

1. Untuk **ID Klien**, masukkan ID Unik akun layanan dari Langkah 3.

1. Untuk **cakupan OAuth**, masukkan nilai yang dipisahkan koma berikut:

   ```
   https://www.googleapis.com/auth/drive.readonly,
   https://www.googleapis.com/auth/drive.metadata.readonly,
   https://www.googleapis.com/auth/admin.directory.user.readonly,
   https://www.googleapis.com/auth/admin.directory.group.readonly,
   https://www.googleapis.com/auth/cloud-platform,
   https://www.googleapis.com/auth/forms.body.readonly
   ```

1. Pilih **Izinkan**.

## Langkah 6: Buat pengguna admin yang didelegasikan
<a name="kb-managed-googledrive-sa-step6"></a>

Akun layanan meniru pengguna admin Google Workspace saat merayapi konten. Sebaiknya buat pengguna admin khusus untuk tujuan ini dengan peran minimum yang diperlukan.

1. Di Konsol Admin Google Workspace, pilih **Direktori**, lalu **Pengguna**.

1. Pilih **Tambahkan pengguna baru**, masukkan nama depan, nama belakang, dan alamat email utama, lalu pilih **Tambahkan pengguna baru**.

1. Dari daftar pengguna, buka pengguna yang Anda buat.

1. Perluas bagian **peran dan hak istimewa Admin**, dan tetapkan peran berikut:
   + **Pembaca Grup**
   + **Admin Manajemen Pengguna**
   + **Admin Penyimpanan**

1. Pilih **Simpan**. Rekam alamat email pengguna ini; Anda menyimpannya dalam rahasia sebagai`adminAccountEmail`.

## Langkah 7: Buat rahasia Secrets Manager
<a name="kb-managed-googledrive-sa-step7"></a>

Simpan kredensialnya secara AWS Secrets Manager rahasia dengan pasangan kunci-nilai berikut. Salin `clientEmail` dan `privateKey` dari file kunci JSON yang Anda unduh di Langkah 4 (gunakan `client_email` dan `private_key` nilai).

```
{
    "adminAccountEmail": "{{admin@your-domain.com}}",
    "clientEmail": "{{your-service-account@your-project.iam.gserviceaccount.com}}",
    "privateKey": "{{your-private-key-from-the-json-key-file}}"
}
```

Buat rahasia dengan AWS Command Line Interface:

```
aws secretsmanager create-secret \
  --name {{bedrock-google-drive-sa-creds}} \
  --secret-string file://secret.json
```

Rekam rahasia ARN dari tanggapannya. Anda menggunakannya sebagai sumber data`secretArn`.

**catatan**  
`privateKey`Nilai berisi urutan `\n` escape literal dari file kunci JSON. Simpan mereka apa adanya saat menyalin nilai ke dalam rahasia.

## Langkah selanjutnya
<a name="kb-managed-googledrive-sa-next"></a>

Setelah Anda menyimpan rahasia, buat sumber data dengan `authType` set to`SERVICE_ACCOUNT`. Lihat [Connect sumber data Google Drive](kb-managed-ds-googledrive-connect.md). Untuk memfilter hasil kueri berdasarkan izin pengguna, lihat[Document-level kontrol akses](kb-managed-ds-googledrive-acl.md).