DynamoDB - Kontrol Akses

DynamoDB menggunakan kredensial yang Anda berikan untuk mengautentikasi permintaan. Kredensial ini diperlukan dan harus menyertakan izin untuk akses sumber daya AWS. Izin ini menjangkau hampir setiap aspek DynamoDB hingga fitur minor dari suatu operasi atau fungsionalitas.

Jenis Izin

Di bagian ini, kita akan membahas mengenai berbagai izin dan akses sumber daya di DynamoDB.

Mengautentikasi Pengguna

Saat mendaftar, Anda memberikan kata sandi dan email, yang berfungsi sebagai kredensial root. DynamoDB mengaitkan data ini dengan akun AWS Anda, dan menggunakannya untuk memberikan akses lengkap ke semua sumber daya.

AWS merekomendasikan Anda menggunakan kredensial root Anda hanya untuk pembuatan akun administrasi. Ini memungkinkan Anda membuat akun / pengguna IAM dengan lebih sedikit hak istimewa. Pengguna IAM adalah akun lain yang dibuat dengan layanan IAM. Izin akses / hak istimewa mereka termasuk akses ke halaman aman dan izin khusus tertentu seperti modifikasi tabel.

Kunci akses memberikan opsi lain untuk akun dan akses tambahan. Gunakan mereka untuk memberikan akses, dan juga untuk menghindari pemberian akses secara manual dalam situasi tertentu. Pengguna federasi memberikan opsi lain dengan mengizinkan akses melalui penyedia identitas.

Administrasi

Sumber daya AWS tetap berada di bawah kepemilikan akun. Kebijakan izin mengatur izin yang diberikan untuk menelurkan atau mengakses sumber daya. Administrator mengaitkan kebijakan izin dengan identitas IAM, artinya peran, grup, pengguna, dan layanan. Mereka juga melampirkan izin ke sumber daya.

Izin menentukan pengguna, sumber daya, dan tindakan. Catatan administrator hanyalah akun dengan hak administrator.

Operasi dan Sumber Daya

Tabel tetap menjadi sumber daya utama di DynamoDB. Sub-sumber berfungsi sebagai sumber daya tambahan, misalnya, aliran dan indeks. Sumber daya ini menggunakan nama unik, beberapa di antaranya disebutkan dalam tabel berikut -

Tipe ARN (Nama Sumber Daya Amazon)
Aliran arn: aws: dynamodb: region: account-id: table / table-name / stream / stream-label
Indeks arn: aws: dynamodb: region: account-id: table / table-name / index / index-name
Meja arn: aws: dynamodb: region: account-id: table / table-name

Kepemilikan

Pemilik sumber daya didefinisikan sebagai akun AWS yang melahirkan sumber daya, atau akun entitas utama yang bertanggung jawab untuk meminta otentikasi dalam pembuatan sumber daya. Pertimbangkan bagaimana ini berfungsi dalam lingkungan DynamoDB -

  • Dalam menggunakan kredensial root untuk membuat tabel, akun Anda tetap menjadi pemilik sumber daya.

  • Dalam membuat pengguna IAM dan memberikan izin kepada pengguna untuk membuat tabel, akun Anda tetap menjadi pemilik sumber daya.

  • Dalam membuat pengguna IAM dan memberikan pengguna, dan siapa pun yang mampu mengambil peran, izin untuk membuat tabel, akun Anda tetap menjadi pemilik sumber daya.

Kelola Akses Sumber Daya

Manajemen akses terutama membutuhkan perhatian pada kebijakan perizinan yang menjelaskan pengguna dan akses sumber daya. Anda mengaitkan kebijakan dengan identitas atau sumber daya IAM. Namun, DynamoDB hanya mendukung IAM / kebijakan identitas.

Kebijakan berbasis identitas (IAM) memungkinkan Anda memberikan hak istimewa dengan cara berikut -

  • Lampirkan izin untuk pengguna atau grup.
  • Lampirkan izin ke peran untuk izin lintas akun.

AWS lainnya mengizinkan kebijakan berbasis sumber daya. Kebijakan ini mengizinkan akses ke hal-hal seperti bucket S3.

Elemen Kebijakan

Kebijakan menentukan tindakan, efek, sumber daya, dan prinsipal; dan memberikan izin untuk melakukan operasi ini.

Note - Operasi API mungkin memerlukan izin untuk beberapa tindakan.

Perhatikan lebih dekat elemen kebijakan berikut -

  • Resource - ARN mengidentifikasi ini.

  • Action - Kata kunci mengidentifikasi operasi sumber daya ini, dan apakah mengizinkan atau menolak.

  • Effect - Ini menentukan efek untuk permintaan pengguna untuk suatu tindakan, yang berarti mengizinkan atau menolak dengan penolakan sebagai default.

  • Principal - Ini mengidentifikasi pengguna yang melekat pada kebijakan.

Kondisi

Dalam memberikan izin, Anda dapat menentukan kondisi kapan kebijakan menjadi aktif seperti pada tanggal tertentu. Ekspresikan kondisi dengan kunci kondisi, yang mencakup kunci seluruh sistem AWS dan kunci DynamoDB. Kunci-kunci ini dibahas secara rinci nanti di tutorial.

Izin Konsol

Seorang pengguna membutuhkan izin dasar tertentu untuk menggunakan konsol. Mereka juga memerlukan izin untuk konsol di layanan standar lainnya -

  • CloudWatch
  • Pipa Data
  • Identitas dan Manajemen Akses
  • Layanan Pemberitahuan
  • Lambda

Jika kebijakan IAM terbukti terlalu terbatas, pengguna tidak dapat menggunakan konsol secara efektif. Selain itu, Anda tidak perlu khawatir tentang izin pengguna untuk mereka yang hanya memanggil CLI atau API.

Kebijakan Iam Penggunaan Umum

AWS mencakup operasi umum dalam izin dengan kebijakan yang dikelola IAM mandiri. Mereka memberikan izin utama yang memungkinkan Anda menghindari penyelidikan mendalam tentang apa yang harus Anda berikan.

Beberapa di antaranya adalah sebagai berikut -

  • AmazonDynamoDBReadOnlyAccess - Ini memberikan akses hanya-baca melalui konsol.

  • AmazonDynamoDBFullAccess - Ini memberikan akses penuh melalui konsol.

  • AmazonDynamoDBFullAccesswithDataPipeline - Memberi akses penuh melalui konsol dan mengizinkan ekspor / impor dengan Data Pipeline.

Anda juga dapat membuat kebijakan khusus.

Memberikan Hak Istimewa: Menggunakan Shell

Anda dapat memberikan izin dengan Javascript shell. Program berikut menunjukkan kebijakan izin yang khas -

{ 
   "Version": "2016-05-22", 
   "Statement": [ 
      { 
         "Sid": "DescribeQueryScanToolsTable", 
         "Effect": "Deny", 
         
         "Action": [ 
            "dynamodb:DescribeTable", 
            "dynamodb:Query", 
            "dynamodb:Scan" 
         ], 
         "Resource": "arn:aws:dynamodb:us-west-2:account-id:table/Tools" 
      } 
   ] 
}

Anda dapat meninjau ketiga contoh tersebut sebagai berikut -

Block the user from executing any table action.

{ 
   "Version": "2016-05-23", 
   "Statement": [ 
      { 
         "Sid": "AllAPIActionsOnTools", 
         "Effect": "Deny", 
         "Action": "dynamodb:*", 
         "Resource": "arn:aws:dynamodb:us-west-2:155556789012:table/Tools" 
      } 
   ] 
}

Block access to a table and its indices.

{ 
   "Version": "2016-05-23", 
   "Statement": [ 
      { 
         "Sid": "AccessAllIndexesOnTools", 
         "Effect": "Deny", 
         "Action": [
            "dynamodb:*" 
         ], 
         "Resource": [ 
            "arn:aws:dynamodb:us-west-2:155556789012:table/Tools", 
            "arn:aws:dynamodb:us-west-2:155556789012:table/Tools/index/*" 
         ] 
      } 
   ] 
}

Block a user from making a reserved capacity offering purchase.

{ 
   "Version": "2016-05-23", 
   "Statement": [ 
      { 
         "Sid": "BlockReservedCapacityPurchases", 
         "Effect": "Deny", 
         "Action": "dynamodb:PurchaseReservedCapacityOfferings", 
         "Resource": "arn:aws:dynamodb:us-west-2:155556789012:*" 
      } 
   ] 
}

Memberikan Hak Istimewa: Menggunakan Konsol GUI

Anda juga dapat menggunakan konsol GUI untuk membuat kebijakan IAM. Untuk memulai, pilihTablesdari panel navigasi. Dalam daftar tabel, pilih tabel target dan ikuti langkah-langkah berikut.

Step 1 - Pilih Access control tab.

Step 2- Pilih penyedia identitas, tindakan, dan atribut kebijakan. PilihCreate policy setelah memasukkan semua pengaturan.

Step 3 - Pilih Attach policy instructions, dan selesaikan setiap langkah yang diperlukan untuk mengaitkan kebijakan dengan peran IAM yang sesuai.