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

Cách sử dụng Boto3 để cập nhật khóa bí mật từ một vị trí cụ thể trong AWS Secret Manager

Tuyên bố sự cố: Sử dụng boto3 thư viện bằng Python để cập nhật khóa bí mật từ vị trí cụ thể 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à các tham số bắt buộc. Đảm bảo rằng secret_key_pair được viết là chuỗi , không phải là dict .

  • 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 update_secret và vượt qua secret_stored_location dưới dạng SecretId secret_key_pair dưới dạng SecretString.

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

  • Bước 7: Xử lý ngoại lệ chung nếu xảy ra sự cố trong khi cập nhật bí mật.

Mã mẫu

Sử dụng mã sau để cập nhật bí mật trong Trình quản lý bí mật AWS -

import boto3
from botocore.exceptions import ClientError

def update_secret_details(secret_stored_location, secret_key_pair):
   session = boto3.session.Session()
   s3_client = session.client('secretmanager')
   try:
   response = s3_client.update_secret(SecretId=secret_stored_location,SecretString = secret_key_pair)
   return response
   except ClientError as e:
      raise Exception("boto3 client error in update_secret_details: " + e.__str__())
   except Exception as e:
      raise Exception("Unexpected error in update_secret_details: " + e.__str__())

a = update_secret_details('/secrets/aws', '{"user_test1":"test"}')
print(a)

Đầu ra

{'ARN': 'arn:aws:secretsmanager:us-east-1:***************:secret:/secrets/aws-wr1Aj6', 'Name': '/secrets/aws', 'VersionId': 'f5308bed-7c23-4d47-a32b-8f2a5f044e53',  '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}}