Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

AWS सीक्रेट मैनेजर में बाइनरी/एन्क्रिप्टेड फॉर्मेट से सीक्रेट कीज को प्लेन टेक्स्ट के रूप में प्राप्त करने के लिए Boto3 का उपयोग कैसे करें

समस्या कथन: boto3 . का उपयोग करें एडब्ल्यूएस सीक्रेट मैनेजर में मौजूद बाइनरी/एन्क्रिप्टेड प्रारूप से सादे पाठ के रूप में गुप्त कुंजी प्राप्त करने के लिए पायथन में पुस्तकालय

इस समस्या को हल करने के लिए दृष्टिकोण/एल्गोरिदम

  • चरण 1: आयात करें boto3 और बोटोकोर अपवादों को संभालने के लिए अपवाद।

  • चरण 2: गुप्त_संग्रहीत_स्थान आवश्यक पैरामीटर है। यह एक ऐसी जगह है जहां रहस्य सहेजे जाते हैं।

  • चरण 3: boto3 lib . का उपयोग करके AWS सत्र बनाएं . सुनिश्चित करें कि क्षेत्र_नाम डिफ़ॉल्ट प्रोफ़ाइल में उल्लेख किया गया है। यदि इसका उल्लेख नहीं है, तो स्पष्ट रूप से region_name . पास करें सत्र बनाते समय।

  • चरण 4: गुप्त प्रबंधक . के लिए AWS क्लाइंट बनाएं ।

  • चरण 5: get_secret_value पर कॉल करें और secret_stored_location . पास करें SecretId . के रूप में ।

  • चरण 6: जांचें कि यह सादा पाठ है या एन्क्रिप्ट किया गया है।

  • चरण 7: यदि यह एन्क्रिप्टेड है, तो base64.b64decode का उपयोग करके बाइनरी मानों को डीकोड करने के लिए फ़ंक्शन को कॉल करें।

  • चरण 8: यह सभी रहस्यों को डिक्रिप्टेड मोड के रूप में लौटाता है, यानी दिए गए स्थान पर सादा पाठ।

  • चरण 9: मूल्यों को पुनर्प्राप्त करते समय कुछ गलत होने पर सामान्य अपवाद को संभालें।

उदाहरण कोड

AWS सीक्रेट मैनेजर से डिक्रिप्टेड प्लेन टेक्स्ट सीक्रेट प्राप्त करने के लिए निम्नलिखित कोड का उपयोग करें -

import boto3
from botocore.exceptions import ClientError

def get_decrypted_secret_details(secret_stored_location):
   session = boto3.session.Session()
   s3_client = session.client('secretmanager')
   try:
   response = s3_client.get_secret_value(SecretId=secret_stored_location)
   if not ('SecretString' in response):
      decoded_secret_values = base64.b64decode(response['SecretBinary'])
   return decoded_secret_values
      except ClientError as e:
         raise Exception("boto3 client error in get_decrypted_secret_details: " + e.__str__())
      except Exception as e:
         raise Exception("Unexpected error in get_decrypted_secret_details: " + e.__str__())

a = get_decrypted_secret_details('/secrets/aws')
print(a)

आउटपुट

{"user":"SERVICE_USER","accesskey":"I**************"}

  1. एडब्ल्यूएस गोंद डेटा कैटलॉग से कनेक्शन का विवरण प्राप्त करने के लिए Boto3 का उपयोग कैसे करें?

    समस्या का विवरण - AWS Glue Data कैटलॉग में मौजूद कनेक्शन का विवरण प्राप्त करने के लिए Python में boto3 लाइब्रेरी का उपयोग करें। उदाहरण - एक कनेक्शन परिभाषा, अरोड़ा-परीक्षण का विवरण प्राप्त करें। इस समस्या को हल करने के लिए दृष्टिकोण/एल्गोरिदम चरण 1 - अपवादों को संभालने के लिए boto3 और botocore अपव

  1. एडब्ल्यूएस गोंद डेटा कैटलॉग से क्लासिफायरियर का विवरण प्राप्त करने के लिए Boto3 का उपयोग कैसे करें?

    समस्या का विवरण - एडब्ल्यूएस ग्लू डेटा कैटलॉग से क्लासिफायरियर का विवरण प्राप्त करने के लिए पायथन में boto3 लाइब्रेरी का उपयोग करें। उदाहरण के लिए, एक क्लासिफायरियर - xml-test का विवरण प्राप्त करें। इस समस्या को हल करने के लिए दृष्टिकोण/एल्गोरिदम चरण 1 - अपवादों को संभालने के लिए boto3 और botocore

  1. माइग्रेशन ऑपरेशन की स्थिति प्राप्त करने के लिए Boto3 का उपयोग कैसे करें?

    समस्या का विवरण - माइग्रेट ऑपरेशन की स्थिति प्राप्त करने के लिए पायथन में boto3 लाइब्रेरी का उपयोग करें। उदाहरण - किसी खाते में माइग्रेशन संचालन की स्थिति प्राप्त करें। इस समस्या को हल करने के लिए दृष्टिकोण/एल्गोरिदम चरण 1 - अपवादों को संभालने के लिए boto3 और botocore अपवाद आयात करें। चरण 2 - पैर