ヤマムギ

growing hard days.

*

IAMユーザーのマネジメントコンソールログインパスワードを変更してDynamoDBに記録するLambda(Python)

      2020/01/19

やりたいこと

IAMユーザーのマネジメントコンソールへのサインインパスワードを動的に変更したくて、上記のアーキテクチャにしました。
Lambda(Python3.8)で実行しています。

  • SecretsManagerでランダムパスワードを生成します。
  • IAMユーザーのログインプロファイルをアップデートします。
  • 結果をDynamoDBに書きこみます。

AWS複数アカウントのリソースをLambda(Python)から一括操作したくてのLambda関数に追加して呼び出してます。

SecretsManagerでのランダムパスワードの生成

boto3 SecretsManagerのクライアントAPIで、get_random_passwordを使ってパスワードを生成しています。

  • PasswordLength パスワードの長さ。
  • ExcludeCharacters 除外する文字。見分けがつきにくい文字を除外しました。
  • ExcludeNumbers 数字を除外するか。含めるのでFalseにしてます。
  • ExcludePunctuation 記号を除外するか。含めるのでFalseにしてます。
  • ExcludeUppercase 大文字を除外するか。含めるのでFalseにしてます。
  • ExcludeLowercase 小文字を除外するか。含めるのでFalseにしてます。
  • IncludeSpace スペースを含めるか。含めないのでFalseにしてます。
  • RequireEachIncludedType すべての文字種を1つ以上含めるか。含めるのでTrueにしてます。

IAMユーザーのログインプロファイルをアップデート

IAMのリソースAPIで指定したユーザーのログインプロファイルが操作できました。
updateにパスワードを含めます。
ログイン時にユーザーへのパスワード変更は、今回の要件では必要ないので、PasswordResetRequired=False としてます。

結果をDynamoDBへの書き込み

今回は1アイテムしか扱いませんので、batch_writerは使わずに、put_itemで書き込んでます。
DynamoDBのパーティションキーはaccount_id、ソートキーは iam_userで、課金方式はたまに書き込むだけなので オンデマンド方式です。

できました!


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS , , , ,

  関連記事

Amazon Glacierでボールトロックポリシーの作成開始をしてみました

Glacierを単体で使用することもそうそうないので、確認しました。 まずボール …

AWSエンコードされたエラーメッセージをデコードするコマンドのメモ

Stdout: couldn’t create ENI: Unaut …

AWS東京リージョンのAZ(apne1-az1)障害時の当ブログで発生していたことの記録

日本時間2/19 23:01頃より、東京リージョン、特定AZの1つでEC2インス …

Feedlyのフィードを自動でSlackへ投稿する(AWS Lambda , Amazon DynamoDB)

やりたいこと Feedlyで共有したいフィードに特定のタグを付けます。 特定のタ …

「Label Training Data for Machine Learning」チュートリアルの記録

Label Training Data for Machine Learning …

Kinesis Data Analyticsの検索結果をKinesis Data FirehoseからS3バケットに保存する

Kinesis Data AnalyticsをKinesis Data Stre …

Amazon API GatewayをLambda(Python)で削除する

やりたいこと 特定のAWSアカウント、特定のリージョン内のAPI Gateway …

ParquetフォーマットのデータにS3 Select SQLを実行する

RDSスナップショットのS3エクスポート結果確認で出力したデータが、S3にPar …

Amazon VPCのAmazonProvidedDNSとほかメモ

VPCユーザーガイドのAmazon DNS について理解するの記載内容について実 …

AWSアカウントのルートユーザーのセキュリティ認証情報

アカウント作成時にはMFA設定するためにIAMダッシュボードからアクセスするので …