> For the complete documentation index, see [llms.txt](https://docs.cloudeka.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cloudeka.ai/deka-gpu-documentations/panduan-untuk-enterprise/deka-metal/deka-metal-deka-box/bucket-and-group-access-policies.md).

# Kebijakan Akses Bucket dan Grup

Layanan Deka Box di Service Portal Cloudeka menggunakan bahasa kebijakan Amazon Web Services (AWS) untuk mengontrol akses tenant S3 ke bucket dan objek di dalamnya. Sistem ini menerapkan sebagian bahasa kebijakan REST API S3. Kebijakan akses untuk API S3 ditulis dalam format JSON. Format ini memudahkan pengguna mengelola izin dan hak akses secara terstruktur sesuai kebutuhan keamanan dan pengelolaan data pada lingkungan penyimpanan terdistribusi. Terdapat dua jenis kebijakan akses:

1. **Kebijakan bucket** dikonfigurasi menggunakan operasi API S3 `GET Bucket policy`, `PUT Bucket policy`, dan `DELETE Bucket policy`. Kebijakan bucket melekat pada bucket. Kebijakan ini mengontrol akses pengguna dalam akun pemilik bucket atau akun lain ke bucket dan objek di dalamnya. Satu kebijakan bucket hanya berlaku untuk satu bucket, tetapi dapat berlaku untuk beberapa grup.
2. **Kebijakan grup** dikonfigurasi melalui Tenant Manager atau Tenant Manager API. Kebijakan grup melekat pada grup dalam suatu akun. Kebijakan ini memungkinkan grup mengakses sumber daya tertentu yang dimiliki akun tersebut. Satu kebijakan grup hanya berlaku untuk satu grup, tetapi dapat berlaku untuk beberapa bucket.

Setiap kebijakan berisi serangkaian pernyataan kebijakan. Setiap pernyataan memiliki elemen berikut:

1. **Statement ID** adalah elemen opsional untuk memberikan pengenal unik pada setiap pernyataan dalam kebijakan. Pengenal ini memudahkan pelacakan dan referensi saat mengelola kebijakan kompleks. Contoh penggunaan SID pada editor: `"Sid": "Statement1"`.
2. **Effect** menentukan apakah tindakan dalam kebijakan diizinkan atau ditolak. Gunakan `Allow` untuk mengizinkan tindakan atau `Deny` untuk menolaknya. Contoh penggunaan Effect pada editor: `"Effect": "Allow"`.
3. **Principal/NotPrincipal** menentukan pengguna yang dapat melakukan tindakan dalam kebijakan. Nilai `*` pada Principal mengizinkan akses bagi semua pengguna (publik). Untuk mengidentifikasi pengguna tertentu pada Principal, diperlukan Canonical User ID (Con ID). Hubungi kami untuk mengetahui Con ID yang digunakan. **NotPrincipal** merupakan kebalikan dari Principal. Elemen ini menunjukkan entitas yang tidak berwenang mengakses sumber daya dan digunakan untuk mengecualikan entitas tertentu dari kebijakan izin. Berikut contoh penggunaan Principal dan NotPrincipal:

a. Principal: "Principal": "\*"

b. NotPrincipal: "NotPrincipal": { "AWS": "arn:aws:iam::123456789012:user/specificUser"

4. **Resource/NotResource**. Resource menentukan sumber daya yang dilindungi oleh kebijakan. Gunakan ARN (Amazon Resource Name) atau format yang sesuai untuk merujuk ke bucket. NotResource digunakan untuk mengecualikan sumber daya tertentu dari kebijakan. Berikut contoh penggunaan Resource dan NotResource:

a. Resource: "Resource": "arn:aws:s3:::my-bucket"

b. NotResource: "NotResource": "arn:aws:s3:::my-bucket/private/\*"

5. **Action/NotAction**. Action menentukan tindakan spesifik yang diizinkan atau ditolak oleh kebijakan. `s3:GetObject` digunakan untuk mengambil objek, `s3:PutObject` untuk mengunggah objek ke bucket, dan `s3:ListBucket` untuk melihat daftar objek dalam bucket. NotAction digunakan untuk mengecualikan tindakan tertentu dari izin kebijakan. Contohnya, `s3:DeleteObject` digunakan untuk menghapus objek. Berikut contoh penggunaan Action dan NotAction:

a. Action: "Action": \["s3:GetObject", "s3:ListBucket"]

b. NotAction: "NotAction": "s3:DeleteObject"

6. **Condition** (opsional) memungkinkan Anda menentukan kapan kebijakan diterapkan.

Contoh berikut menunjukkan pernyataan kebijakan bucket lengkap. Kebijakan ini menggunakan Effect `Allow` untuk memberikan grup admin `federated-group/admin` dan grup keuangan `federated-group/finance` izin menjalankan Action `s3:ListBucket` pada bucket `mybucket`, serta Action `s3:GetObject` pada seluruh objek dalam bucket.

```json
{
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::27233906934684427525:federated-group/admin",
          "arn:aws:iam::27233906934684427525:federated-group/finance"
        ]
      },
      "Action": [
        "s3:ListBucket",
        "s3:GetObject"
      ],
      "Resource": [
        "arn:aws:iam:s3:::mybucket",
        "arn:aws:iam:s3:::mybucket/*"
      ]
    }
  ]
}
```
