View a markdown version of this page

Tag-based kontrol akses untuk operasi pesawat data Amazon Neptune - Amazon Neptune

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

Tag-based kontrol akses untuk operasi pesawat data Amazon Neptune

Tag-based kontrol akses (TBAC) memungkinkan Anda menggunakan tag AWS sumber daya dan tag utama IAM sebagai kondisi dalam kebijakan IAM dan Kebijakan Kontrol Layanan (SCP) untuk mengontrol akses ke operasi bidang data Amazon Neptune. Dengan TBAC, Anda dapat menerapkan bahwa hanya prinsipal yang tagnya cocok dengan tag pada cluster Neptune DB yang dapat melakukan neptune-db:* tindakan terhadap cluster tersebut, tanpa menyebutkan nama sumber daya Amazon (ARN) cluster tertentu di setiap kebijakan.

TBAC dibangun di atas model keamanan Neptunus yang ada dan melengkapi tindakan bidang data kontrol akses berbasis tindakan.

Bagaimana TBAC cocok dengan lapisan keamanan Neptunus

Neptunus melindungi data Anda melalui beberapa mekanisme keamanan yang tumpang tindih. TBAC menambahkan lapisan otorisasi berbasis atribut yang bekerja bersama semuanya:

Lapisan keamanan Neptunus dan bagaimana TBAC melengkapinya
Lapisan Mekanisme Lingkup
Isolasi jaringan Cloud pribadi virtual (VPC), grup keamanan, titik akhir VPC () PrivateLink Mengontrol host mana yang dapat mencapai titik akhir Neptunus
Enkripsi Transport Layer Security (TLS) 1.3 dalam transit; enkripsi yang AWS KMS dikelola saat diam Melindungi kerahasiaan data
Autentikasi IAM AWS Permintaan yang ditandatangani Signature Version 4 (SIGv4) ke titik akhir data Neptunus Mengotentikasi penelepon
Action-based kontrol akses neptune-db:tindakan (ReadDataViaQuery,WriteDataViaQuery, dll.) Mengontrol operasi apa yang dapat dilakukan kepala sekolah
Kunci syarat neptune-db:QueryLanguage, kunci konteks global Menambahkan batasan kontekstual ke kebijakan
TBAC aws:ResourceTag/${TagKey}dievaluasi terhadap aws:PrincipalTag/${TagKey} Membatasi akses berdasarkan penyelarasan tag antara prinsip dan sumber daya
Akses berbasis tag administratif aws:ResourceTag,rds:cluster-tag, dll. tentang tindakan bidang manajemen Mengontrol siapa yang dapat mengelola infrastruktur Neptunus

Konsep utama TBAC

Tag utama

Tag yang dilampirkan ke pengguna IAM, peran, atau prinsipal sesi federasi. Anda dapat mengatur ini melalui pemetaan atribut IAM console, AWS CLI, atau penyedia identitas (IdP) Security Assertion Markup Language (SAML)/OpenID Connect (OIDC).

Tag sumber daya

Tag yang dilampirkan ke cluster Neptunus DB menggunakanAddTagsToResource. Ini menyebar ke semua instance di cluster untuk evaluasi kebijakan bidang data.

Variabel kunci kondisi
  • aws:PrincipalTag/TagKey— menyelesaikan nilai tag pada prinsipal pemanggil.

  • aws:ResourceTag/TagKey— menyelesaikan nilai tag pada sumber daya Neptunus target.

Jenis kebijakan yang didukung
  • Kebijakan identitas IAM — dilampirkan ke pengguna, grup, atau peran.

  • SCP — diterapkan pada unit AWS organisasi Organisasi (OU) atau tingkat akun untuk menetapkan pagar pembatas izin.

Prasyarat untuk menggunakan TBAC

Sebelum Anda dapat menggunakan TBAC dengan operasi bidang data Neptunus, Anda harus memiliki yang berikut:

  1. Mesin Neptune versi 1.2.0.0 atau yang lebih baru - diperlukan untuk dukungan TBAC bidang data.

  2. Otentikasi IAM diaktifkan pada cluster Neptune DB.

  3. Tag yang diterapkan ke cluster Neptune DB — tag sumber daya yang akan dievaluasi oleh kebijakan.

  4. Tag yang diterapkan pada prinsipal IAM — tag utama yang akan dibandingkan dengan tag sumber daya.

Pola kebijakan TBAC

Pola berikut menunjukkan cara umum untuk menggunakan TBAC dalam kebijakan IAM untuk operasi bidang data Neptunus.

Tolak akses saat tag utama dan sumber daya tidak cocok

Ini adalah pola TBAC yang paling umum. Ini menyangkal semua tindakan bidang data Neptunus kecuali tag kepala sekolah cocok dengan tag sumber daya. Anda dapat menerapkan ini sebagai SCP untuk penegakan di seluruh organisasi atau sebagai kebijakan IAM untuk kontrol yang ditargetkan.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyNeptuneProjectMismatch", "Effect": "Deny", "Action": "neptune-db:*", "Resource": "*", "Condition": { "StringNotEquals": { "aws:ResourceTag/Project": "${aws:PrincipalTag/Project}" } } }, { "Sid": "DenyNeptuneDepartmentMismatch", "Effect": "Deny", "Action": "neptune-db:*", "Resource": "*", "Condition": { "StringNotEquals": { "aws:ResourceTag/Department": "${aws:PrincipalTag/Department}" } } } ] }

Cara kerjanya: Setiap pernyataan menggunakan StringNotEquals kondisi terpisah untuk satu kunci tag. Deny dipicu secara independen untuk setiap tag—jika Project tag sumber daya tidak cocok dengan Project tag kepala sekolah, akses ditolak terlepas dari tag. Department Ini memastikan prinsipal yang ditandai hanya Project=FraudDetection dapat mengakses cluster Neptunus yang juga ditandaiProject=FraudDetection, dan serupa untukDepartment.

Tolak akses saat tag sumber daya yang diperlukan hilang

Pola ini mencegah akses ke cluster Neptunus yang belum diberi tag dengan benar, memastikan semua cluster terdaftar dalam skema TBAC:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyNeptuneMissingProjectTag", "Effect": "Deny", "Action": "neptune-db:*", "Resource": "*", "Condition": { "Null": { "aws:ResourceTag/Project": "true" } } }, { "Sid": "DenyNeptuneMissingDepartmentTag", "Effect": "Deny", "Action": "neptune-db:*", "Resource": "*", "Condition": { "Null": { "aws:ResourceTag/Department": "true" } } } ] }

Cara kerjanya: Null Kondisi dievaluasi menjadi true ketika kunci tag yang ditentukan tidak ada pada sumber daya. Ini memaksa semua cluster Neptunus untuk membawa tag klasifikasi yang diperlukan sebelum kepala sekolah dapat mengaksesnya.

Menggabungkan TBAC dengan kontrol akses berbasis tindakan

TBAC dapat digabungkan dengan neptune-db: tindakan spesifik untuk membuat kebijakan yang tepat dan sadar tag:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowReadOnlyForMatchingTags", "Effect": "Allow", "Action": [ "neptune-db:ReadDataViaQuery", "neptune-db:GetQueryStatus", "neptune-db:GetEngineStatus" ], "Resource": "arn:aws:neptune-db:*:*:*/*", "Condition": { "StringEquals": { "aws:ResourceTag/Project": "${aws:PrincipalTag/Project}" } } } ] }

Pembatasan bahasa kueri dengan TBAC

Gabungkan TBAC dengan kunci neptune-db:QueryLanguage kondisi untuk membatasi cluster mana yang dapat diakses oleh kepala sekolah dan bahasa kueri mana yang dapat mereka gunakan:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowOpenCypherOnlyForMatchingProject", "Effect": "Allow", "Action": [ "neptune-db:ReadDataViaQuery", "neptune-db:WriteDataViaQuery" ], "Resource": "arn:aws:neptune-db:*:*:*/*", "Condition": { "StringEquals": { "aws:ResourceTag/Project": "${aws:PrincipalTag/Project}", "neptune-db:QueryLanguage": "OpenCypher" } } } ] }

Menggunakan TBAC dengan kebijakan kontrol layanan

SCP ideal untuk menegakkan TBAC karena mereka menetapkan batas izin di seluruh unit organisasi (OU) atau akun tanpa memerlukan perubahan pada kebijakan IAM individu.

Kami merekomendasikan strategi SCP berikut:

  1. Terapkan Deny-based SCP di level OU yang memblokir neptune-db:* saat tag tidak cocok.

  2. Terapkan pernyataan kedua yang menolak akses ke sumber daya yang tidak ditandai.

  3. Akun individu Anda dapat mempertahankan kebijakan Izinkan mereka untuk tindakan tertentu neptune-db: —SCP bertindak sebagai pagar pembatas.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyNeptuneProjectMismatch", "Effect": "Deny", "Action": "neptune-db:*", "Resource": "*", "Condition": { "StringNotEquals": { "aws:ResourceTag/Project": "${aws:PrincipalTag/Project}" } } }, { "Sid": "DenyNeptuneDepartmentMismatch", "Effect": "Deny", "Action": "neptune-db:*", "Resource": "*", "Condition": { "StringNotEquals": { "aws:ResourceTag/Department": "${aws:PrincipalTag/Department}" } } }, { "Sid": "DenyNeptuneMissingProjectTag", "Effect": "Deny", "Action": "neptune-db:*", "Resource": "*", "Condition": { "Null": { "aws:ResourceTag/Project": "true" } } }, { "Sid": "DenyNeptuneMissingDepartmentTag", "Effect": "Deny", "Action": "neptune-db:*", "Resource": "*", "Condition": { "Null": { "aws:ResourceTag/Department": "true" } } } ] }

Menerapkan TBAC untuk Neptunus

Langkah 1: Tentukan taksonomi tag

Pilih kunci tag yang mewakili batas-batas organisasi Anda. Pola umum:

Contoh taksonomi tag
Tombol tanda Tujuan Contoh nilai
Project Pengidentifikasi aplikasi atau beban kerja FraudDetection, RecommendationEngine
Department Unit bisnis atau pusat biaya Engineering, Finance, Analytics
Environment Tahap penyebaran production, staging, development
Team Memiliki tim graph-platform, data-science

Langkah 2: Tandai cluster DB Neptunus Anda

Gunakan AWS CLI untuk menambahkan tag klasifikasi yang diperlukan ke cluster Neptune DB Anda:

aws neptune add-tags-to-resource \ --resource-name arn:aws:rds:us-east-1:123456789012:cluster:my-neptune-cluster \ --tags Key=Project,Value=FraudDetection Key=Department,Value=Engineering

Langkah 3: Tandai prinsipal IAM Anda

Gunakan AWS CLI untuk menandai peran IAM dengan kunci dan nilai yang sama yang digunakan pada cluster Neptunus Anda. Untuk peran IAM:

aws iam tag-role \ --role-name NeptuneAppRole \ --tags Key=Project,Value=FraudDetection Key=Department,Value=Engineering

Untuk pengguna federasi, berikan tag melalui tag SAML/OIDC sesi menggunakan aws:PrincipalTag atribut dari penyedia identitas Anda.

Langkah 4: Terapkan kebijakan TBAC

Lampirkan sebagai SCP untuk penegakan di seluruh organisasi, atau sebagai kebijakan IAM untuk kontrol yang ditargetkan.

Langkah 5: Lindungi integritas tag

Batasi siapa yang dapat memodifikasi tag pada sumber daya Neptunus dan prinsipal IAM:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyTagModification", "Effect": "Deny", "Action": [ "rds:AddTagsToResource", "rds:RemoveTagsFromResource" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": ["Project", "Department"] } } } ] }

Pertimbangan penting untuk TBAC

  • Penundaan propagasi — Perubahan kebijakan IAM membutuhkan waktu hingga 10 menit untuk diterapkan ke sumber daya Neptunus. Perubahan pada tag cluster (menambahkan, memodifikasi, atau menghapus tag) membutuhkan waktu sekitar 5 menit untuk disebarkan ke evaluasi kebijakan bidang data. Rencanakan penundaan ini saat memperbarui tag pada cluster aktif.

  • Cluster-level granularitas — Anda menerapkan tag ke cluster Neptune DB di tingkat cluster. Semua instans dalam cluster berbagi evaluasi kebijakan yang sama. TBAC tidak menyediakan kontrol akses sub-grafik atau vertex/edge -level.

  • Diperlukan otentikasi IAM — TBAC hanya berlaku ketika otentikasi IAM diaktifkan pada cluster. Koneksi tanpa autentikasi IAM melewati kebijakan ini sepenuhnya.

  • Imutability tag — Amankan operasi penandaan Anda. Jika kepala sekolah dapat memodifikasi tag mereka sendiri atau tag sumber daya, mereka dapat melewati kontrol TBAC. Gunakan SCP atau batas izin untuk membatasiiam:TagRole,, iam:TagUserrds:AddTagsToResource, danrds:RemoveTagsFromResource.

  • Penanganan tag null — Jika prinsipal tidak memiliki tag yang diru ${aws:PrincipalTag/Key} juk kebijakan, variabel diselesaikan ke string kosong. Rancang kebijakan Anda untuk menangani kasus ini (pola penolakan “tag hilang” di atas membahas ini untuk tag sumber daya).

  • Beberapa kunci kondisi — Ketika beberapa kunci kondisi muncul di Condition blok yang sama, mereka dievaluasi dengan logika AND. UntukStringNotEquals, Deny hanya memicu ketika semua kondisi yang ditentukan benar secara bersamaan. Untuk menolak ketidakcoco kan tag tunggal, gunakan pernyataan kebijakan terpisah untuk setiap kunci tag (seperti yang ditunjukkan pada pola di atas).

Hubungan dengan fitur keamanan Neptunus yang ada

Bagaimana TBAC melengkapi fitur keamanan Neptunus yang ada
Fitur yang ada Apa yang dikendalikannya Bagaimana TBAC melengkapinya
VPC/Grup Keamanan Network-level akses ke port 8182 TBAC menambahkan otorisasi sadar identitas di atas kontrol jaringan
Otentikasi IAM (SIGv4) Memverifikasi identitas pemanggil TBAC menggunakan tag identitas yang diautentikasi untuk keputusan otorisasi
Action-based kontrol akses Operasi (read/write/delete/load) mana yang dapat dilakukan kepala sekolah TBAC menambahkan cluster mana yang dapat ditargetkan oleh prinsipal, berdasarkan penyelarasan tag
Kunci syarat neptune-db:QueryLanguage Bahasa kueri mana (Gremlin, OpenCypher, SPARQL) yang diizinkan Dapat digabungkan dengan TBAC dalam pernyataan kebijakan yang sama
Akses berbasis tag administratif (rds:*tindakan) Siapa yang dapat mengelola infrastruktur Neptunus TBAC memperluas pola berbasis tag yang sama ke tindakan data-plane () neptune-db:*
AWS KMS enkripsi Kerahasiaan data saat istirahat Ortogonal—TBAC mengontrol otorisasi, bukan enkripsi