こんにちはますのです。
AWSアカウントを作成した後、マイ請求ダッシュボードを見る機会が無く、今更知ったことがあります。
※英語表記だと「Billing & Cost Management」の箇所
作成したIAMユーザに閲覧権限無いやんけ
正確にはIAMポリシーの「AdministratorAccess」付ければ見れるものとばかり思っていたのですよ。
明示的に有効化設定しないとrootアカウントでしか見ることが出来ないのですね…。AWSのチュートリアルもあるようなので、そちらを参考に設定していきたいと思います。
参考:IAM チュートリアル: 請求コンソールへのアクセス権限の委任
設定の流れ
- 作成したIAMユーザ/ロールによる請求データへのアクセスを有効化する
- 請求データにアクセス権限を付与する IAM ポリシーを作成する
- 請求ポリシーをグループにアタッチする
前提条件:IAMユーザ&グループ
事前にIAMユーザとIAMグループは作成済となります。
今回は「BillingFullAccessGroup」に所属しているユーザに権限を付与する内容となります。
・ユーザ名:FinanceManager
・グループ:BillingFullAccessGroup
IAMユーザに「Billing and Cost Managementコンソール」の権限を付与する
ステップ1の設定をしていないとroot以外はアクセス「マイアカウント」等にアクセスしても閲覧不可となります。
ステップ1:作成したIAMユーザ/ロールによる請求データへのアクセスを有効化する
参考:Billing and Cost Management コンソールへのアクセスのアクティベート
- AWS管理アカウント(ルートユーザー)でAWS管理コンソールにサインインする
- 画面右上の「ルートユーザ名」をクリック>「マイアカウント」をクリックする
- スクロールして「IAMユーザー/ロールによる請求情報へのアクセス」の「編集」をクリックする
- 「IAMアクセスのアクティブ化」にチェック>「更新」をクリックする
IAMユーザに「AdministratorAccess」が付与されていれば、この時点でアクセス可能となるのであります。
ステップ2以降はIAMユーザに対して「AdministratorAccess」が付与出来ない場合に設定する項目となります。
ステップ2:請求データにアクセス権限を付与する IAM ポリシーを作成する
今回はフルアクセス権限を付与するIAMポリシーを作成します。
読み取り専用のIAMポリシーはAWS側で既に登録されているため、読み取り専用としたい方はステップ3へ進んでOKです。
- IAMコンソールを開く>ポリシー>「ポリシーの作成」をクリック
- 以下を選択して「ポリシーの確認」をクリック
→サービス:Billing
→手動のアクション:すべてのBillingアクション - [Name (名前)] の横に「BillingFullAccess」と入力し、[ポリシーの作成] を選択して保存して作成完了です。
ただ、ReadOnlyに関してはAWS側で既にポリシーが用意されているため、わざわざ作成する必要はなさそうです。必要に応じてカスタマイズする形になりますね。
ステップ3:請求ポリシーをグループにアタッチする
最後に、先ほどステップ2で作成したポリシーを、IAMグループにアタッチします。
- IAMコンソールを開く>グループ>「BillingFullAccessGroup」(対象となるIAMグループ)をクリック
- タブ:アクセス許可>「ポリシーのアタッチ」をクリック
- ステップ2で作成したポリシー「BillingFullAccess」を選択>「ポリシーのアタッチ」をクリックして完了です。
AWSのチュートリアルだと読み取り専用も作成になってましたが、あるなら言ってくださいなぁという気持ちになりましたです。
動作確認
では早速。
FinanceManagerでAWS管理コンソールへアクセスし、画面右上の「アカウント名」>「マイ請求ダッシュボード」をクリックします。
請求情報とコスト管理ダッシュボードで内容が表示されればOKです!
そしたら権限無いものだからびっくりしちゃいました。インスタンス立ち上げっぱなしだったりで知らないうちに費用が発生してる場合もあるので、このあたりはAWSアカウント作成後にすぐやったほうが良さそうです。