AWS クロスアカウントアクセス
毎度の事だけど、聞かれたのでメモを残しとく。
概要
- AWSアカウント間でのアクセスを許可する。
- 最小特権の原則に従い、一部の権限のみをロールで許可できる。
クロスアカウントアクセスの使いどころ
- 管理下のAWS/IAMアカウントから、別のAWSアカウント環境へアクセスできる(ロールの切り替え)
- AWSアカウントの環境毎にIAMアカウントを作成する必要がない
- 逆にほかのAWSアカウントからのアクセスを許可しつつ、ロールで権限を制限することもできる
- 他社AWSアカウントへ権限付与
- 自社AWS環境から、他社に対するIAMアカウント直発行はイリーガル(と聞いた)
- なので自前のAWS環境に他社からアクセスさせたい場合は クロスアカウントアクセス を利用する
- 最小特権の原則に従い必要最低限のポリシーだけ許可する
- 結果ロール管理だけで他社用のアカウント管理などが不要(楽だね)
- 統合請求アカウント配下の管理
- 統合請求アカウントから、紐付けされている他AWSアカウントへのアクセス・リソース管理に使う
他社管理のAWSアカウントの環境に対する権限を貰う場合も、IAMアカウントではなく クロスアカウントアクセス で権限貰うのが正しい。
クロスアカウントアクセス設定手順
- 事前確認
- A社のAWSアカウントID: XXXXXXXXXXXX
- クロスアカウントアクセスを設定する側(=B社からのアクセスを許可する側)
- B社のAWSアカウントID: YYYYYYYYYYYY
- クロスアカウントアクセスを用いて A社 にアクセスする側
- アカウントIDは AWSコンソール > (右上の)サポート > サポートセンター でわかる。
- A社のAWSアカウントID: XXXXXXXXXXXX
- (A社)クロスアカウントアクセスのロール作成
- IAMロールの新規作成
- AWSユーザ > B社のAWSアカウントID(上記)許可
- オプションで 外部IDの使用 と MFAが必要 という条件を付けられる。
- ロールの割り当て (クロスアカウントアクセスで許可したい権限)
- b-company-cross-accounts という名前で保存(名前は任意)
- (B社)クロスアカウントアクセス
- AWSコンソールにログイン
- 右上のアカウントのとこから "ロールの切り替え" を選択
- 切り替えるロールの情報を入力(A社のAWSアカウントID、作成したロール名: b-company-cross-accounts)
一連のスクショは手抜きでクラスメソッドさん見てーみたいな。
https://dev.classmethod.jp/cloud/aws/signin-with-cross-account-access/
以上 c⌒っ゚д゚)っφ メモメモ...