ヤマムギ

growing hard days.

*

AWS複数アカウントのリソースをLambda(Python)から一括操作したくて

      2020/01/16

AWSの複数アカウント(30ちょい)のリソースをまとめて自動処理したくて。
とりあえず、上記のようなアーキテクチャにしました。

操作をする人は、少なくとも次のような人の予定なので問題ないはず。
* マネジメントコンソールにログインして、StepFunctionsステートマシンの実行ができる。
* Jsonを嫌がらない。

AWS StepFunctionsの動的並列処理が可能になってましたので、使いました。
超便利じゃないですか。

StepFunctions ステートマシン

TypeはMapにするとのこと。
InputPathでこのステートに渡す情報、というのは他のステートと同じですね。
配列処理するの対象がItemsPathですね。
Iteratorに配列処理をするStatesを書いていきます。
他に使ってませんが、MaxConcurrencyというのがあって、この配列処理の同時実行数を制御できます。
今回は最大でも30そこそこなので、一気にやってもらいます。

ステートマシン開始時の入力には、アカウントの配列を渡します。

出来ました。

Lambda関数

こちら[Lambdaでクロスアカウント] Lambda 関数で AssumeRole して他の AWS アカウントのリソースにアクセスするでやりたいことがそのまま過不足なく実現できましたので、参考というよりそのまま使わせていただきました。

  • ランタイム : Python 3.8

IAMロールのポリシーはstsのAssumeRoleを許可してます。
対象のアカウントは変動するかもなのでワイルドカードにしています。
これと、いつものAWS管理ポリシーの「AWSLambdaBasicExecutionRole」もCloudWatchLogsにログを出力するためにアタッチしています。

対象のアカウントのロール側の信頼ポリシーでは、Lamda関数を実行するアカウントを許可しています。

ソースコード
繰り返しますが、[Lambdaでクロスアカウント] Lambda 関数で AssumeRole して他の AWS アカウントのリソースにアクセスするをそのまま使っております。

スイッチロールした結果として、そのアカウントの1つ目のバケット名を返すようにしています。

出来ました〜!
さて、これで各アカウントでやりたい処理をやりたい放題です!


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

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

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

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

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

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

 - AWS , , , , ,

ad

ad

  関連記事

ヤマムギ vol.24 API GatewayでREST API作成と直接DynamoDB登録のデモをしました

2週間ぶりのヤマムギ勉強会デモなのでなんだか久しぶりな気がしました。 今日はポケ …

API Gatewayで顧客レベルの使用量プランを設定する

API GatewayのAPIキーを使って使用量プランでのスロットリングも設定し …

Amazon Linux 2023からAWS CLIをアンインストールする

AWS CLIのない検証用EC2 Linuxが欲しかったのでアンインストールしま …

特定AWSアカウント特定リージョンのSQSキューを削除するLambda(Python)

やりたいこと 特定アカウント内特定リージョン内のSQSキューを全部削除したいです …

AWS Systems Manager Session ManagerでLinuxインスタンスのRun Asサポートを有効にする

AWS Systems Manager Session Managerの設定画面 …

CloudWatch Logs機密データ保護を設定しました

Amazon CloudWatch Logs を使用して機密データを保護するがリ …

ヤマムギvol.26 Amazon DynamoDBのデモをしました

今日はAWS認定クラウドプラクティショナー対策本(緑本)に関係するデモをしました …

AWS Firewall Managerを設定して結果を確認

CloudFront対応のポリシーとして作成したかったので、Globalを選択し …

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

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

T2.microからT3.nanoに変更(メモリエラーも対応)

このブログのEC2インスタンスをT2.micro 1インスタンスからT3.nan …