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

Boto3を使ってAWS Secrets Managerのシークレットからタグを削除する方法


課題:Pythonのboto3ライブラリを使用して、AWS Secrets Managerに保存されたシークレットからタグを削除します。

解決のためのアプローチと手順

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

  • ステップ2:この関数にはsecret_location(シークレットのARNまたは名前)とtags_list(削除対象のタグキーのリスト)という2つのパラメータが必要です。tags_listには、削除したいタグのキー名をリスト形式で指定します。

  • ステップ3:boto3を使用してAWSセッションを作成します。デフォルトプロファイルにregion_nameが設定されていることを確認してください。設定されていない場合は、セッション作成時に明示的にregion_nameを渡す必要があります。

  • ステップ4:secretmanager用のAWSクライアントを作成します。

  • ステップ5:untag_resource関数を呼び出し、secret_locationSecretIdパラメータとして、tags_listTagKeysパラメータとして渡します。

  • ステップ6:この操作によりレスポンスメタデータが返され、指定したタグがリソースから削除されます。

  • ステップ7:タグの削除中に問題が発生した場合に備えて、汎用的な例外処理を実装しておきます。

サンプルコード

以下のコードを使用してタグを削除できます。

import boto3
from botocore.exceptions import ClientError

def remove_tags_in_resource(secret_location, tags_list):
    session = boto3.session.Session()
    client = session.client('secretmanager')
    try:
        response = client.untag_resource(SecretId=secret_location, TagKeys=tags_list)
        return response
    except ClientError as e:
        raise Exception("boto3 client error in remove_tags_in_resource: " + e.__str__())
    except Exception as e:
        raise Exception("Unexpected error in remove_tags_in_resource: " + e.__str__())

tags_dict = ["secret-test"]
print(remove_tags_in_resource("secrets/aws", tags_dict))

実行結果

{'ResponseMetadata': {'RequestId': 'c9f418b0-***************-fb96', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Fri, 02 Apr 2021 08:04:54 GMT', 'content-type': 'application/x-amz-json-1.1', 'content-length': '27', 'connection': 'keep-alive', 'x-amzn-requestid': 'c9f418b0-******************-fb96'}, 'RetryAttempts': 0}}

HTTPステータスコード200が返されていれば、タグの削除は正常に完了しています。なお、実際の運用では認証情報の管理にIAMロールや環境変数を利用し、コード内に直接クレデンシャルを記述しないことが推奨されます。

  1. Boto3を使ってAWS Glueデータカタログからデータベースを削除する方法

    課題Pythonのboto3ライブラリを使用して、自分のAWSアカウント内に作成されたデータベースを削除します。例 − アカウントに作成された「Portfolio」というデータベースを削除します。解決のためのアプローチとアルゴリズムステップ1 − 例外をハンドリングするために、boto3とbotocoreの例外モジュールをインポートします。ステップ2 − AWS Glue Catalogから削除したいデータベース名を database_name パラメータとして渡します。ステップ3 − boto3ライブラリを使ってAWSセッションを作成します。デフォルトプロファイルに region_name

  2. Boto3を使ってAWS Glueデータカタログからクローラーを削除する方法

    本記事では、Pythonのboto3ライブラリを使用して、AWSアカウント内に作成されたGlueクローラーを削除する手順を解説します。AWS Glueのクローラーは、S3などのデータソースをスキャンしてデータカタログにテーブル定義を作成する重要なコンポーネントですが、不要になったクローラーは適切に削除することでリソースを整理できます。 課題 − Pythonのboto3ライブラリを使って、自分のアカウントに作成されたクローラーを削除する。 例 − アカウントに作成された「Portfolio」という名前のクローラーを削除する。 問題解決のアプローチとアルゴリズム ステップ1 − 例外処理のため