自社のAWSのアカウントで他社のアカウントも管理する
AWSはクソ高いので自社ではほとんど使わないのですが、お客さんの会社ではAWS導入が多くなってきて管理が大変になってきました。
IAMを各アカウントで作っても良いのですが、IAMのアカウントIDをメモっとくのも大変だしログインURLをブックマークするのもスマートじゃないし、、
あと、AWSはログインページが若干重い印象があり、ログアウトしたりログインするだけでもストレスだったりします。
そんなわけで、何かいい方法ないものかと考えていたのですが、
自社のAWSアカウントにIAMユーザを作り、そのユーザで他社のIAMにログインするっていう便利なワザがあることを発見しました(AWSユーザでは当たり前のことかもしれないけど、、)
このやり方だと、自社のIAMは踏み台にすぎないので、IAMの権限は最小で良くて、万が一社員とか外注さんに渡したIAMアカウントでミスを犯しても、請求されることはないし割りとセキュアです。
目次
手順1. IAMで開発者用のグループを作成する
の新規ユーザごとに共通ルールを適応させるため開発者用のグループを作成します。
アクセス許可のタブで
ポリシーのアタッチ→をアタッチします。
これでログインするだけのミニマム権限のユーザグループができあがりました。
手順2. ユーザを作ってグループに追加します
ユーザを作成して先程作成したグループに追加します。
手順3. 他社AWSアカウントでログインしてロール作成
他社AWSアカウントにログインしてIAM→ロール→別のAWSアカウントを選択します。
自社のアカウントIDを入れて必要なポリシーをアタッチします。
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::1234567812345678:user/user-name" ] } } }
信頼関係を上記のように修正します。
1234567812345678のところに自社のID
user-nameのところに自社のIAMユーザ名を入れます。
手順4. IAM ReadOnlyユーザに権限を与える
上記の手順でヘッダーナビのユーザ名からロール切り替えをすることで、アカウントスイッチできるのですが、最初に作成したGroupはIAM ReadOnlyなのでさらに手順が必要です。
自社のアカウントに戻り、ポリシーを作成します。
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": [ "arn:aws:iam::1111222233334444:role/role-name" ] } }
1111222233334444のところに他社のID、role-nameのところに他社アカウントで作成したロール名(手順3で作成したやつ)
このポリシーを手順1で作成したグループに追加してやればOKです。
今後はヘッダーナビのプルダウン内のロール切り替えから他社のロールに切り替えることができます!
便利!AWSが好きになりました。
最新記事 by まなびん (全て見る)
- 日本最大級セミナーのポータルサイトの開発に関わらせて頂いています - 2019年10月24日
- エンジニアとして求人応募する際に意識してほしいこと - 2019年10月23日
- 受託が忙しく自社サービス開発できないので開発メンバー募集! - 2019年1月28日