AWS の IAM ユーザーに請求ダッシュボードへのアクセスを許可する

ルートユーザーではなく、特定の IAM ユーザーに、請求ダッシュボードへのアクセスを許可する方法です。以下の手順の一部はルートユーザーで操作する必要があります。

請求情報への IAM ユーザーアクセスのアクティベート

IAM ユーザーに billing ポリシーを付与する前にこの作業を行う必要があります。まずはアカウントメニューから “My Account” を選択して遷移します。

ページの中から IAM User and Role Access to Billing Information (IAM ユーザーとロールの請求情報へのアクセス) を探して..

Activate IAM Access (IAM アクセスを有効化する)にチェックを入れて更新します。

IAM ユーザーに billing のポリシーを付与する

後は IAM のメニューから billing のポリシーをアタッチするだけです。許可を与えたい IAM ユーザーの詳細を開いて、

既存のポリシーの中から billing ポリシーを検索してアタッチします。

アクセスできました。

CLI からもアクセスしてみます。AWS CLI の API リファレンスはここ。以前はアクセスできませんでしたが、

$ aws ce get-cost-and-usage \
  --granularity MONTHLY \
  --time-period Start=2018-01-01,End=2019-01-01 \
  --metrics BlendedCost

An error occurred (AccessDeniedException) when calling the GetCostAndUsage operation: User: arn:aws:iam::xxxxxxxxxxxx:user/your-cli-user is not authorized to perform: ce:GetCostAndUsage on resource: arn:aws:ce:us-east-1:xxxxxxxxxxxx:/GetCostAndUsage

アクセスできるようになりました。

$ aws ce get-cost-and-usage \
  --granularity MONTHLY \
  --time-period Start=2018-01-01,End=2019-01-01 \
  --metrics BlendedCost
{
    "ResultsByTime": [
        {
            "TimePeriod": {
                "Start": "2018-01-01",
                "End": "2018-02-01"
            },
            "Total": {
                "BlendedCost": {
                    "Amount": "100.0000000000",
                    "Unit": "USD"
                }
            },
            "Groups": [],
            "Estimated": false
        },
        {
            "TimePeriod": {
                "Start": "2018-02-01",
                "End": "2018-03-01"
            },
            "Total": {
                "BlendedCost": {
                    "Amount": "100.0000000000",
                    "Unit": "USD"
                }
            },
            "Groups": [],
            "Estimated": false
        },
        {
            "TimePeriod": {
                "Start": "2018-03-01",
                "End": "2018-04-01"
            },
            "Total": {
                "BlendedCost": {
                    "Amount": "100.0000000000",
                    "Unit": "USD"
                }
            },
            "Groups": [],
            "Estimated": false
        },
        {
            "TimePeriod": {
                "Start": "2018-04-01",
                "End": "2018-05-01"
            },
            "Total": {
                "BlendedCost": {
                    "Amount": "100.0000000000",
                    "Unit": "USD"
                }
            },
            "Groups": [],
            "Estimated": false
        },
        {
            "TimePeriod": {
                "Start": "2018-05-01",
                "End": "2018-06-01"
            },
            "Total": {
                "BlendedCost": {
                    "Amount": "100.0000000000",
                    "Unit": "USD"
                }
            },
            "Groups": [],
            "Estimated": false
        },
        {
            "TimePeriod": {
                "Start": "2018-06-01",
                "End": "2018-07-01"
            },
            "Total": {
                "BlendedCost": {
                    "Amount": "100.0000000000",
                    "Unit": "USD"
                }
            },
            "Groups": [],
            "Estimated": false
        },
        {
            "TimePeriod": {
                "Start": "2018-07-01",
                "End": "2018-08-01"
            },
            "Total": {
                "BlendedCost": {
                    "Amount": "100.0000000000",
                    "Unit": "USD"
                }
            },
            "Groups": [],
            "Estimated": false
        },
        {
            "TimePeriod": {
                "Start": "2018-08-01",
                "End": "2018-09-01"
            },
            "Total": {
                "BlendedCost": {
                    "Amount": "100.0000000000",
                    "Unit": "USD"
                }
            },
            "Groups": [],
            "Estimated": false
        },
        {
            "TimePeriod": {
                "Start": "2018-09-01",
                "End": "2018-10-01"
            },
            "Total": {
                "BlendedCost": {
                    "Amount": "100.0000000000",
                    "Unit": "USD"
                }
            },
            "Groups": [],
            "Estimated": false
        },
        {
            "TimePeriod": {
                "Start": "2018-10-01",
                "End": "2018-11-01"
            },
            "Total": {
                "BlendedCost": {
                    "Amount": "100.0000000000",
                    "Unit": "USD"
                }
            },
            "Groups": [],
            "Estimated": false
        },
        {
            "TimePeriod": {
                "Start": "2018-11-01",
                "End": "2018-12-01"
            },
            "Total": {
                "BlendedCost": {
                    "Amount": "100.0000000000",
                    "Unit": "USD"
                }
            },
            "Groups": [],
            "Estimated": false
        },
        {
            "TimePeriod": {
                "Start": "2018-12-01",
                "End": "2019-01-01"
            },
            "Total": {
                "BlendedCost": {
                    "Amount": "100.0000000000",
                    "Unit": "USD"
                }
            },
            "Groups": [],
            "Estimated": false
        }
    ]
}

やったね!