پوشش داده های ساده شده در AWS Lambda با Powertool

سلام Devs
آنها میگویند: «دادهها روغن جدید هستند،» اما در مراقبتهای بهداشتی و مالی، بیشتر شبیه نیتروگلیسیرین است – بسیار ارزشمند است، اما در صورت سوء استفاده، انفجاری خطرناک است.
من اخیراً در رسانه های اجتماعی به اشتراک گذاشتم که به صنعت مراقبت های بهداشتی پیوسته ام. این نشان دهنده تغییر در زمینه من در تجارت الکترونیک و امور مالی است. در طول مدتی که در امور مالی بودم، به طور گسترده با دادههای بسیار حساس مانند صورتحسابهای بانکی، اطلاعات KYC، جزئیات شناسایی شخصی و سایر سوابق مالی سروکار داشتم. من به وضوح درک این موضوع را به خاطر می آورم که حتی یک خطای جزئی در رسیدگی به داده ها می تواند عواقب شدیدی داشته باشد: نقض، جریمه، و مهمتر از همه، از دست دادن اعتماد عمومی. همین سطح از حساسیت داده ها در مراقبت های بهداشتی وجود دارد، جایی که هر بخش از اطلاعات بیمار بسیار مهم است و توسط مقرراتی مانند GDPR و HIPAA محافظت می شود. برای رعایت این قوانین و مقررات مشابه در سراسر جهان، پوشاندن داده ها ضروری شده است. در این وبلاگ، Powertools چیست، چگونه می توان از آن برای پوشاندن داده در AWS Lambda استفاده کرد و چرا برای دامنه هایی مانند امور مالی و بهداشت و درمان حیاتی است، توضیح خواهم داد. در حالی که Powertools برای AWS Lambda برای دات نت و تایپ اسکریپت وجود داشت، انتشار پشتیبانی پایتون در ماه مه 2024 یک تقویت بزرگ بود و آن را برای مخاطبان بسیار گستردهتری در دسترس قرار داد. بیایید به Powertools برای AWS Lambda بپردازیم.
Powertools برای AWS Lambda چیست؟
فکر کن ابزارهای برقی برای AWS Lambda به عنوان یک چاقوی ارتش سوئیس برای برنامه های بدون سرور. این یک کتابخانه منبع باز است که به شما کمک می کند کدهای بهتر، ایمن تر و قابل نگهداری تر بنویسید. به جای اختراع مجدد چرخ هر بار که نیاز به پنهان کردن داده ها، ورود ایمن یا مدیریت مجدد دارید، Powertools ابزارهای آماده برای استفاده را ارائه می دهد.
ویژگی های کلیدی Powertools برای AWS Lambda
Powertools مجموعه ای قوی از ویژگی ها را برای ساده سازی توسعه بدون سرور ارائه می دهد:
-
ردیاب
-
چوبگیر
-
معیارها
-
مدیریت رویداد
-
پارامترها
-
پردازش دسته ای
-
تایپ کردن
-
اعتبار سنجی
-
کلاس های داده منبع رویداد
-
تجزیه کننده (Pydantic)
-
ناتوانی
-
پوشش داده ها (تمرکز این وبلاگ)
-
پرچم های ویژگی
-
پخش جریانی
-
کارخانه میان افزار
-
توابع JMESPath
-
منابع سفارشی CloudFormation
در این وبلاگ قصد داریم به بررسی آن بپردازیم پوشش داده ها استفاده در جزئیات برای پوشش داده ها، Powertools تضمین می کند که فقط داده های ضروری در گزارش های شما ظاهر می شود.
تصویر از وب سایت رسمی گرفته شده است.
چرا پوشش داده در AWS Lambda مهم است؟
هنگام سر و کار با عملکردهای بدون سرور، به ویژه در صنایعی مانند مراقبت های بهداشتی و مالی:
-
گزارشها اغلب به سیستمهایی مانند CloudWatch ارسال میشوند.
-
اطلاعات حساس (مانند SSN ها، شماره کارت اعتباری، یا شناسه های پزشکی) می توانند به راحتی در سیاهه های متن ساده قرار گیرند.
-
استانداردهای انطباق (HIPAA برای مراقبت های بهداشتی، PCI-DSS برای امور مالی) افشای چنین داده هایی را به شدت ممنوع می کند.
اینجاست که ابزارهای برقی برای AWS Lambda وارد بازی می شود.
نحوه استفاده از Powertools برای AWS Lambda برای پوشش داده
بیایید این را مرحله به مرحله تجزیه کنیم. من در اینجا پایتون را مثال می زنم زیرا به طور گسترده استفاده می شود و من از آن در فعالیت های روزانه خود استفاده می کردم.
1. Powertools را نصب کنید
pip install aws-lambda-powertools // use pip3 for Python3
pip install jsonpath_ng // if you get issue for jsonpath_ng. This mostly require for below example
pip install ply // if you get issue for ply. This mostly require for below example
2. از ابزار Logger برای پوشش استفاده کنید (پاک کردن، رمزگذاری، رمزگشایی).
در این مثال ما استفاده می کنیم erase
روشی برای پنهان کردن داده ها Powertools برای AWS Lambda سه عملکرد اصلی را برای پوشش داده ارائه می دهد:
-
پاک کردن: فیلدهای داده حساس را به طور کامل حذف می کند.
-
رمزگذاری: فیلدهای داده حساس را رمزگذاری می کند.
-
رمزگشایی: فیلدهای رمزگذاری شده قبلی را رمزگشایی می کند.
from __future__ import annotations
from aws_lambda_powertools import Logger
from aws_lambda_powertools.utilities.data_masking import DataMasking
from aws_lambda_powertools.utilities.typing import LambdaContext
logger = Logger()
data_masker = DataMasking()
@logger.inject_lambda_context
def lambda_handler(event: dict, context: LambdaContext) -> dict:
data: dict = event.get("body", {})
logger.info("Erasing fields email, address.street, and company_address")
erased = data_masker.erase(data, fields=["email", "address.street", "company_address", "aadhar", "diagnosis","blod_group"])
return erased
در این مثال، دادههای حساسی مانند Aadhar، گروه خونی، تشخیص پنهان میشوند و در عین حال به لاگها اجازه میدهد برای اشکالزدایی مفید باشند.
Response:
{
"id": 1,
"name": "Avinash Dalvi",
"age": 30,
"email": "*****",
"address": {
"street": "*****",
"city": "Bengaluru",
"state": "KA",
"zip": "211311"
},
"diagnosis": "*****",
"blod_group": "*****",
"aadhar": "*****",
"company_address": "*****"
}
برای استفاده encrypt
روش ارجاع به این اسناد رسمی https://docs.powertools.aws.dev/lambda/python/latest/utilities/data_masking/#encrypting-data و برای decrypt
روش استفاده از این https://docs.powertools.aws.dev/lambda/python/latest/utilities/data_masking/#encrypting-data
به این ترتیب ما میتوانیم مطابقت با Powertools را تأیید کنیم و نه تنها دادهها را پنهان میکند، بلکه به معیارها و ردیابی برای اطمینان از انطباق با استانداردهای صنعتی مانند GDPR یا HIPPA کمک میکند.
مورد استفاده در دنیای واقعی: گزارش های برنامه مراقبت های بهداشتی
یک تابع لامبدا مراقبت های بهداشتی را تصور کنید که ادعاهای بیمه را پردازش می کند. بدون پوشش، گزارشها ممکن است نشان دهند:
INFO: Processing claim for Patient: Avinash Dalvi, Aadhar ID : 1233-2432-2233, Blood Group : O+
با ابزارهای برقی:
INFO: Processing claim for Patient: Avinash Dalvi, Aadhar ID : *****, Blood Group : *****
یک تغییر کوچک، اما تغییری که می تواند میلیون ها نفر را در جریمه های احتمالی صرفه جویی کند و مهمتر از آن، از زندگی محافظت کند.
چگونه بر مراقبت های بهداشتی و مالی تأثیر می گذارد
-
بهداشت و درمان: با جلوگیری از نشت PHI (اطلاعات بهداشتی محافظت شده) انطباق با HIPAA را تضمین می کند.
-
امور مالی: برای جلوگیری از افشای جزئیات پرداخت، با دستورالعمل های PCI-DSS مطابقت دارد.
-
آمادگی حسابرسی: گزارشهای ماسکشده در عین حفظ شفافیت برای اشکالزدایی، ممیزی پسند هستند.
در دنیای در حال رشد سریع معماریهای بدون سرور، Powertools برای AWS Lambda فقط یک ابزار نیست – این یک سپر است که از ما محافظت میکند و آن را سازگار میکند. این که آیا سوابق پزشکی، تراکنشهای مالی یا دادههای شخصی کاربر را مدیریت میکنید و Powertools را یکپارچه میکنید، تضمین میکند که نه تنها از آن پیروی میکنید، بلکه مسئول نیز هستید.
همانطور که من به ساخت راه حل ها در فضای مراقبت های بهداشتی ادامه می دهم، Powertools به همراه من تبدیل شده است و موارد استفاده حیاتی را آسان تر، ایمن تر و مقیاس پذیرتر می کند.
آیا در سفر بدون سرور خود با چالش های مشابهی روبرو شده اید؟ نظرات خود را در زیر به اشتراک بگذارید و بیایید با هم به ساختن برنامه های کاربردی ایمن و مسئولانه ادامه دهیم.
امیدوارم این وبلاگ به شما در یادگیری کمک کند. با خیال راحت از طریق توییتر من @avinashdalvi_ با من تماس بگیرید یا در وبلاگ نظر بدهید. برای یادگیری بیشتر در مورد پوشش داده ها با استفاده از Powertools با ما همراه باشید.
مراجع: