ForgeVision Engineer Blog

フォージビジョン エンジニア ブログ

2023/06/02 更新 aws-portal が廃止されると聞いて久しぶりに単独の AWS アカウントを作ってみた

※ 本ブログをご覧いただいている方が非常に多いため、追記させていただきます。 2023/06/02 現在、こちら のリンクからツールを開くと以下のような画面が表示されるようになっております。当初は 2023/07/06 を待つ必要がありましたが、現在は確認のために設定が変更できるようです。

2023/07/07 現在、ポリシーを新しいアクションに移行するための最終期限が 2023 年 12 月 11 日まで延長されました。

こんにちは。AWS チームの尾谷です。

フォージビジョンでは、毎週火曜日の夕方に社内で 1 週間分の AWS アップデートを追いかける会をやっています。

去る 1 月に開催した「追いかける会」で請求代行サービスに影響する重大なアップデートを見つけまして、チームがざわつきました。

aws.amazon.com

詳細は以下ブログに記載されている通りですが、サービスプレフィックス aws-portal が廃止され細分化されるといった内容です。

aws.amazon.com

もっと平たく書きますと、今まではポータルページを「見せる」か「見せない」の 2 択だったのを、よりきめ細かく決めれるようになったというアップデートです。

コンソールでメッセージが表示されるように

Billing ダッシュボードなどにアクセスすると以下画像のようなメッセージが表示されます。
この画像の赤枠のリンクをクリックすると、今回の仕様変更に該当するポリシーを利用している場合に限り、修正の必要なポリシーが表示されます。

本仕様の対象に含まれるか確認する方法

本仕様の対象アカウントか否かを確認するための、Affected policies (影響を受けるポリシー) ツールがリリースされています。
AWS アカウントにサインインした状態で、以下リンクを踏んでください。

https://us-east-1.console.aws.amazon.com/poliden/home?region=us-east-1#/

例えば、以下のような 廃止が予定されている ポリシーを設定してツールを開くと

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "aws-portal:*",
                "aws-portal:ViewBilling",
                "aws-portal:ModifyBilling",
                "aws-portal:ViewAccount",
                "aws-portal:ModifyAccount",
                "aws-portal:ViewPaymentMethods",
                "aws-portal:ModifyPaymentMethods",
                "aws-portal:ViewUsage",
                "purchase-orders:ViewPurchaseOrders",
                "purchase-orders:ModifyPurchaseOrders"
            ],
            "Resource": "*",
            "Effect": "Deny"
        }
    ]
}

以下のような感じで、対象として表示されます。

本ブログでは、対象のポリシーがリストアップされたアカウントを今後も利用できるように どのようにポリシーを変更すれば良いか? を解説します。
ページを踏んでもポリシーがリストアップされない場合は、対象ではありませんので安心して次のブログにお進みください。
(ご興味あれば、是非最後までお読みください。)

仕様変更に至った経緯

ポータルページの閲覧制限を行いたい場合、これまでは、IAM ポリシーに aws-portal というサービスプレフィックスを指定して「見せる」か「見せない」かが選択できましたが、特定のコスト管理サービスのコンソールページ、例えば Cost Explorer へのアクセスは許可するが、請求ページへのアクセスは拒否したいなどのきめ細かい制御ができませんでした。
そのため、個々のユーザーが役割に応じて特定のサービスにアクセスできるような、分散型のクラウド原価管理モデルを実行することが困難になるケースがありました。

ポータルも一昔前に比べると、Savings Plans や AWS Budgets など便利な機能が増えましたし、細分化のニーズがあったようです。

いつから適用されるか?

3 月 6 日以前に作成したアカウント (AWS Organizations から払い出したアカウントを含む) は 7 月 6 日までは、本仕様変更を確認できません。
3 月 6 日以降に作成したアカウントでは本仕様変更を確認することができます。

つまり、7 月 6 日までは アカウントによってポリシーの挙動が異なる、という期間限定の特殊な状態が継続します。

ポリシーの設定

今回影響のあるポリシーは ブログ に記載されています。
新しく作成されたポリシーや、廃止になるポリシー、更新されるポリシーが列挙されています。

AWS マネジメントコンソールを日本語でご利用の方は、サービスプレフィックス名がピンと来ないかもしれないと思い、ざっと並べてみました。

繰り返しになりますが、本仕様変更に関しては ブログ に書いてありますのでご確認ください。
ただ、ブログ は全てのパターンを網羅する形で説明されているため、冗長的で長いです。
また、今後 7 月 6 日までに記事が更新される可能性もあると考えます。

そのため、一覧などは本ブログでの掲載を控えます。
後半は、より具体的に説明をするため「従来のアカウント」と「新アカウント」の挙動の違いを実際に設定してみた結果をご紹介します。

AWS アカウントを作ってみた

上記の通り、本事象は 3 月 6 日以降に新しく AWS アカウントを作成しないと検証ができませんでした。
しかも、既存の親アカウント (Organizations) で発行するのではなく、単独の AWS アカウントを発行する必要があります。

そのため、3 月 8 日に新しくアカウントを作成しました。

3 年ぶりに自分のクレジットカードを使ってアカウントを作りましたが、アカウント作成に関しては、JAWS DAYS 2022 直前イベント用に作成したハンズオン資料がまだ使えましたのでこちらをご紹介させていただき、本ブログではアカウント作成部分を割愛させていただきます。

otanikohei.github.io

廃止されるサービスプレフィックス aws-portal を試してみた

まず、廃止されるサービスプレフィックスである aws-portal から確認していきます。
分かりやすいように、AdministratorAccess と、インラインポリシーでポータルの拒否ポリシーを追加します。

追加したインラインポリシーは以下です。
非常にシンプルなポリシーで、今回廃止される対象の aws-portal を全拒否します。

{
    "Version": "2012-10-17",
    "Statement":
        {
            "Sid": "DenyPortal",
            "Effect": "Deny",
            "Action": "aws-portal:*",
            "Resource": "*"
        }
}

IAM ポリシーは許可よりも拒否が優先されるため、従来のアカウントだと以下のようにポータルだけ見れない管理者ユーザーができるはずです。
また、新しいアカウントでは、aws-portal が廃止されているので拒否ポリシーは動作しないはずです。

前提として、ルートアカウントで IAM ユーザー/ロールによる請求情報へのアクセス は有効にしています。

上記設定を適用すると、アカウントによって異なる挙動をしました。
想定通りです。

きめ細かいポリシー制限を試してみた

次に、ブログ で紹介されている以下のポリシーを設定してみます。
仕様変更される ce (Cost Explorer) を許可して、新設される tax (課税設定) と、invoicing (請求設定)、仕様変更される billing (請求) を拒否するポリシーです。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "ce:*",
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Deny",
            "Action": [
                "tax:*",
                "billing:*",
                "invoicing:*"
            ],
            "Resource": "*"
        }
    ]
}

前述の全拒否ポリシーとこちらのポリシーを交換したところ、今度は新アカウントの方にてポータルのホーム画面が閲覧できなくなりました。

続いて、新アカウントの方では請求書のページも閲覧できなくなりました。

一方で、支払いのページは従来のアカウントでも新アカウントでも閲覧できました。

これは請求代行サービスでも、お客様のご要望に応じてポータルの見せたい部分だけ提供ができるので、大変便利になったと思います。

まとめ

いかがでしたでしょうか。
今回の変更は単純な内容なのですが、ブログ が分かりづらい (と言いますか、いろんなパターンがあり過ぎて複雑といった方が正確でしょうか。) のと、アカウントによって挙動が変わるため、理解が難しいかと感じました。

僕は自社の「追いかける会」でこのアップデートを知ってから、当初、仕様変更が予定されていた 2023 年 1 月 20 日 以降に試しておりましたが、実は以下のように急きょ 2023 年 3 月 6 日に延期されて、しかも従来のアカウントは 7 月以降でないと確認できないなどの入り組んだ情報がすぐに理解できず、一体何が正解なのかよく分からない状態に混乱していました。

Launch update: The cutover date for new accounts or organizations to use the new IAM actions has been extended to March 6, 2023, from the original January 20, 2023.

本投稿が僕と同じく悩む方のヒントになれば幸いです。

なお、従来のアカウントをご利用の方は、新しい権限が 2023 年 7 月 6 日以降にならないと有効になりませんので、既存のIAMアクションと新しい IAM アクションの両方を保持しておいてください。

以上、最後までお読みくださりありがとうございました。