Python
 Computer >> コンピューター >  >> プログラミング >> Python

Boto3を使用して、AWSSecretManagerでバイナリ/暗号化形式からプレーンテキストとしてシークレットキーを取得する方法


問題の説明: boto3を使用する Pythonのライブラリを使用して、AWSSecretManagerに存在するバイナリ/暗号化形式からプレーンテキストとしてシークレットキーを取得します

この問題を解決するためのアプローチ/アルゴリズム

  • ステップ1: boto3をインポートします およびbotocore 例外を処理するための例外。

  • ステップ2: secret_stored_location 必須パラメータです。秘密が保存される場所です。

  • ステップ3: boto3 libを使用してAWSセッションを作成します 。 region_nameを確認してください デフォルトのプロファイルに記載されています。言及されていない場合は、 region_nameを明示的に渡します セッションの作成中。

  • ステップ4: secretmanagerの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データカタログから1つまたは複数の指定されたクローラーのメトリックを取得するにはどうすればよいですか?

    問題の説明 − Pythonでboto3ライブラリを使用して、指定したクローラーのメトリックを取得します。 例 −指定されたクローラーcrawler_for_s3_file_jobのメトリックを取得します。 この問題を解決するためのアプローチ/アルゴリズム ステップ1 −例外を処理するためにboto3およびbotocore例外をインポートします。 ステップ2 − crawler_names は必須パラメータです。これはリストであるため、ユーザーは一度に1つまたは複数のクローラー名を送信してメトリックをフェッチできます。 ステップ3 −boto3ライブラリを使用してAWSセッションを

  2. Boto3を使用して移行操作のステータスを取得するにはどうすればよいですか?

    問題の説明 − Pythonでboto3ライブラリを使用して、移行操作のステータスを取得します。 例 −アカウントの移行操作のステータスを取得します。 この問題を解決するためのアプローチ/アルゴリズム ステップ1 −例外を処理するためにboto3およびbotocore例外をインポートします。 ステップ2 −移行ステータスを確認する必要のあるパラメータcatalog_idを渡します。ただし、これはオプションのパラメーターです。提供されていない場合、デフォルトでは、移行が進行中か完了しているかどうか、ログインしているユーザーアカウントをチェックします。 catalog_idは、ユーザーアカウ