Computer >> Máy Tính >  >> Lập trình >> Python

Cách sử dụng Boto3 để tạo khóa bí mật dưới dạng văn bản thuần túy trong AWS Secret Manager

Tuyên bố sự cố: Sử dụng boto3 thư viện bằng Python để tạo khóa bí mật dưới dạng văn bản thuần túy trong AWS Secret Manager

Phương pháp tiếp cận / Thuật toán để giải quyết vấn đề này

  • Bước 1: Nhập boto3 botocore các ngoại lệ để xử lý các ngoại lệ.

  • Bước 2: secret_stored_location secret_key_pair là tham số bắt buộc. Đó là nơi lưu các bí mật với giá trị cặp khóa nhất định. Đảm bảo rằng secret_key_pair được viết là chuỗi , không phải là dict . Ví dụ: '{key:pair}'

  • Bước 3: Tạo phiên AWS bằng boto3 lib . Đảm bảo rằng region_name được đề cập trong hồ sơ mặc định. Nếu nó không được đề cập, thì hãy chuyển region_name một cách rõ ràng trong khi tạo phiên.

  • Bước 4: Tạo ứng dụng AWS cho người quản lý thư ký .

  • Bước 5: Gọi cho create_secret và vượt qua secret_stored_location dưới dạng Tên và secret_key_pair dưới dạng Chuỗi bí mật tham số

  • Bước 6: Nó trả về siêu dữ liệu của bí mật đã thêm.

  • Bước 7: Xử lý ngoại lệ chung nếu có sự cố trong khi tạo bí mật.

Mã mẫu

Sử dụng mã sau để tạo bí mật trong AWS Secret Manager -

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)

Đầu ra

{'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}}