समस्या कथन: AWS Secrets Manager में सभी सीक्रेट्स की सूची प्राप्त करने के लिए पायथन में boto3 लाइब्रेरी का उपयोग करें।
समस्या हल करने का दृष्टिकोण/एल्गोरिदम
चरण 1: boto3 और botocore एक्सेप्शन आयात करें ताकि एक्सेप्शन संभाले जा सकें।
चरण 2: यहां कोई पैरामीटर नहीं हैं।
चरण 3: boto3 लाइब्रेरी का उपयोग करके AWS सत्र बनाएं। सुनिश्चित करें कि डिफ़ॉल्ट प्रोफ़ाइल में region_name उल्लिखित है। यदि नहीं, तो सत्र बनाते समय स्पष्ट रूप से region_name पास करें।
चरण 4: secretmanager के लिए AWS क्लाइंट बनाएं।
चरण 5: सभी सीक्रेट्स प्राप्त करने के लिए list_secrets फ़ंक्शन कॉल करें।
चरण 6: यह सभी सीक्रेट्स का मेटाडेटा लौटाता है।
चरण 7: सभी सीक्रेट्स का विवरण प्राप्त करते समय यदि कुछ गलत होता है तो सामान्य एक्सेप्शन को संभालें।
उदाहरण कोड
AWS Secrets Manager में सभी सीक्रेट्स की सूची प्राप्त करने के लिए निम्न कोड का उपयोग करें:
import boto3
from botocore.exceptions import ClientError
def get_all_secrets():
session = boto3.session.Session()
s3_client = session.client('secretmanager')
try:
response = s3_client.list_secrets()
return response
except ClientError as e:
raise Exception("boto3 client error in get_all_secrets: " + e.__str__())
except Exception as e:
raise Exception("Unexpected error in get_all_secrets: " + e.__str__())
a = get_all_secrets()
for details in a['SecretList']:
print(details['Name'])
आउटपुट
tests/secrets tests/aws/secrets tests/aws/users
अतिरिक्त जानकारी
list_secretsपेजिनेटेड परिणाम लौटाता है। डिफ़ॉल्ट रूप से 100 परिणाम प्रति पृष्ठ।बड़ी संख्या में सीक्रेट्स के लिए पेजिनेटर का उपयोग करें:
paginator = client.get_paginator('list_secrets')परिणाम में प्रत्येक सीक्रेट का मेटाडेटा होता है (ARN, नाम, विवरण, टैग, बनाई गई तिथि, आदि) लेकिन सीक्रेट मान नहीं।
सीक्रेट मान प्राप्त करने के लिए
get_secret_valueका उपयोग करें।IAM अनुमति
secretsmanager:ListSecretsआवश्यक है।फिल्टरिंग के लिए
Filtersपैरामीटर का उपयोग करें (नाम, टैग, आदि के आधार पर)।