ヤマムギ

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認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。

「AWS教科書 AWS認定デベロッパーアソシエイト テキスト&問題集 」という本を書きました。

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

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

 - AWS , , , , ,

  関連記事

AWS Network Firewallの入門

公式のGetting started with AWS Network Fire …

Amazon Kinesis Data StreamsにTwitter検索データを送信する

Kinesis Data Streamsの作成 ストリーム名とシャード数を決定す …

DynamoDB IAMポリシーで特定項目だけを許可する

検証記録です。 対象テーブル 書籍のサンプルで作ったこちらです。 所属バンドの楽 …

RDSインスタンス作成時にEC2に接続設定するオプション

EC2 インスタンスと RDS データベース を自動的に接続するの動作を確認した …

WordPressのwp-login.php , xmlrpc.phpへのアクセスをAWS WAFで接続元IPアドレスを制限する

AWS CloudWatch LogsエージェントでAmazon EC2上のNg …

WordPress(EC2)の画像のS3へのオフロードをMedia Cloudで

タイトル通りですが、画像をwebサーバー(EC2)からではなく、S3バケットから …

Mountpoint for Amazon S3を試しました

このブログでは、画像などの配信にS3を使用しています。 WordPressのプラ …

API GatewayをトリガーにしたときのLambdaリソースベースポリシー

先日、SwaggerからAPI Gatewayを作ったときに、API Gatew …

Amazon VPCでIPv6を使用する

VPCのIPv6を設定してみました。 設定 [Amazon 提供の IPv6 C …

AWS Control TowerにOUを追加する

AWS Control TowerにOUを追加する 管理アカウントでAWS Co …