समस्या कथन: boto3 . का उपयोग करें एडब्ल्यूएस सीक्रेट मैनेजर में सादे पाठ के रूप में एक गुप्त कुंजी बनाने के लिए पायथन में पुस्तकालय
इस समस्या को हल करने के लिए दृष्टिकोण/एल्गोरिदम
-
चरण 1: आयात करें boto3 और बोटोकोर अपवादों को संभालने के लिए अपवाद।
-
चरण 2: गुप्त_संग्रहीत_स्थान और secret_key_pair आवश्यक पैरामीटर है। यह एक ऐसी जगह है जहां दिए गए की-पेयर वैल्यू के साथ सीक्रेट्स को सेव किया जाता है। सुनिश्चित करें कि secret_key_pair स्ट्रिंग . के रूप में लिखा जाता है , तानाशाही . के रूप में नहीं . उदाहरण के लिए:'{key:pair}'
-
चरण 3: boto3 lib . का उपयोग करके AWS सत्र बनाएं . सुनिश्चित करें कि क्षेत्र_नाम डिफ़ॉल्ट प्रोफ़ाइल में उल्लेख किया गया है। यदि इसका उल्लेख नहीं है, तो स्पष्ट रूप से region_name . पास करें सत्र बनाते समय।
-
चरण 4: गुप्त प्रबंधक . के लिए AWS क्लाइंट बनाएं ।
-
चरण 5: कॉल करें create_secret और secret_stored_location . पास करें नाम और secret_key_pair . के रूप में SecretString . के रूप में पैरामीटर
-
चरण 6: यह अतिरिक्त रहस्य का मेटाडेटा लौटाता है।
-
चरण 7: गुप्त बनाते समय कुछ गलत होने पर सामान्य अपवाद को संभालें।
उदाहरण कोड
AWS सीक्रेट मैनेजर में रहस्य बनाने के लिए निम्नलिखित कोड का उपयोग करें -
import boto3 from botocore.exceptions import ClientError def create_secret_details(secret_stored_location, secret_key_pair:str): session = boto3.session.Session() s3_client = session.client('secretmanager') try: response = s3_client.create_secret(Name=secret_stored_location,SecretString = secret_key_pair) return response except ClientError as e: raise Exception("boto3 client error in create_secret_details: " + e.__str__()) except Exception as e: raise Exception("Unexpected error in create_secret_details: " + e.__str__()) details = '{"user_test":"test"}' a = get_decrypted_secret_details('/secrets/aws', details) print(a)
आउटपुट
{'ARN': 'arn:aws:secretsmanager:us-east-1:***************:secret:/secrets/aws-wr1Aj6', 'Name': '/secrets/aws', 'VersionId': 'fcdc1b5b-2a35-4d12-9d84-65d529651d2e', 'ResponseMetadata': {'RequestId': 'b32fe48d**************ab', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Sat, 03 Apr 2021 09:40:48 GMT', 'content-type': 'application/x-amz-json-1.1', 'content-length': '197', 'connection': 'keep-alive', 'x-amzn-requestid': *********************************}, 'RetryAttempts': 0}}