ヤマムギ

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

  関連記事

AWS License ManagerでAMIからインスタンスの起動を制御

EC2 Image BuilderでRocket.ChatのAMIを作って起動テ …

Route 53 の加重ラウンドロビンルーティングでロードバランサー

Route 53の加重ラウンドロビンで両方1に設定してみました。 上図はイメージ …

S3リクエストメトリクスをプレフィックスを指定して有効化

検証でどのリクエストがどれぐらい発生しているのか、さっと知りたくなったので、特定 …

Amazon Location Service入門ワークショップ-ルート計算

Amazon Location Service入門ワークショップのアプリで、ルー …

JAWS-UG関西「AI で人を笑わせてみよう!ハンズオン」に参加しました

AI で人を笑わせてみよう!ハンズオン 灼熱の7月最終日にJAWS-UG関西のオ …

AWS Savings Plansを検討しました

今、個人でAWSアカウントを7つ使っています。 Savings Plansが使え …

Redmineの添付ファイルをS3に同期する

RedmineをAWS上で構築するデザインを考えていて、せっかくなので冗長化しよ …

CloudWatchアラームをAWS CLIでテスト

CloudWatchアラームをテストするコマンドです。 –state …

AWS CodPipelineの実行モードの動作確認しました

AWS CodePipelineの3つの実行モード(SUPERSEDED(優先済 …

Well-Architected Tool レンズヴァージョンアップ

当ブログのWell-Architectedレビューを久しぶりにやろうと思い、We …