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 | 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 menggunakan
AddTagsToResource. Ini menyebar ke semua instance di cluster untuk evaluasi kebijakan bidang data. - Variabel kunci kondisi
-
-
aws:PrincipalTag/— menyelesaikan nilai tag pada prinsipal pemanggil.TagKey -
aws:ResourceTag/— menyelesaikan nilai tag pada sumber daya Neptunus target.TagKey
-
- 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:
-
Mesin Neptune versi 1.2.0.0 atau yang lebih baru - diperlukan untuk dukungan TBAC bidang data.
-
Otentikasi IAM diaktifkan pada cluster Neptune DB.
-
Tag yang diterapkan ke cluster Neptune DB — tag sumber daya yang akan dievaluasi oleh kebijakan.
-
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:
-
Terapkan Deny-based SCP di level OU yang memblokir
neptune-db:*saat tag tidak cocok. -
Terapkan pernyataan kedua yang menolak akses ke sumber daya yang tidak ditandai.
-
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:
| 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-nameNeptuneAppRole\ --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 membatasi
iam:TagRole,,iam:TagUserrds:AddTagsToResource, danrds:RemoveTagsFromResource. -
Penanganan tag null — Jika prinsipal tidak memiliki tag yang diru
${aws:PrincipalTag/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).Key} -
Beberapa kunci kondisi — Ketika beberapa kunci kondisi muncul di
Conditionblok 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
| 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 |