【AWS】AWS請求ポリシーの更新に対応する

#### 今回のお話  
AWSの請求関連のポリシーについて、今年(2023年)7月6日より適用される新しいポリシーに更新する方法  
  
#### 詳細について   
AWSで請求関連の情報(請求書/支払いの閲覧など、基本ルートユーザーやAWS Organizations(以下「AWS Org」)のマスターアカウントでしか扱えない情報)を扱うIAMポリシーについて、今年の1月10日に新しいものがローンチされ、いくつかのポリシーが追加/廃止されます。  
    
参考(AWS公式ブログ)：https://aws.amazon.com/jp/blogs/news/changes-to-aws-billing-cost-management-and-account-consoles-permissions/
    
これらの新しいポリシーは今年の7月6日より適用されるので、それまでに新しいIAMポリシーを適用する必要があります。  
  
実はAWS公式からもこの案内がメールが来ているんですが、リンク先の公式ブログが全て英語なので「さっぱりわからん」「日本語でおk」と思われた人もいるのでは？と思います。(ちなみに「参考」のリンクは日本語訳されたものになっています)  
  
そこで、今回はこの新しいポリシーの適用方法を説明したいと思います。
  
#### 前提  
請求情報の閲覧において、下記を適用している場合は、特に対処は不要です。(下記の場合には、ポリシー更新が自動で反映されます)  
  
- ルートユーザーでのみ閲覧している(=ほかのユーザに閲覧権限を付与していない)
- 閲覧ポリシーとして「Billing」(=AWSマネージドポリシー)をアタッチしている  
  
もしカスタムポリシーを適用している場合のみ、処理が必要です。  
  
また、以降の内容にある  
  
- 新ポリシーは7月6日より適用
- 旧ポリシーも7月5日までは有効  
  
の記載は「2023年3月7日 午前4時(=日本時間)より前に作成されたアカウント」に対するものです。(ほとんどどはこれに該当すると思います)  
  
2023年3月7日 午前4時(=日本時間)以降に作成されたアカウントについては、**<span style="color: #ff0000">新ポリシーを即座に反映する必要があります</span>**。(旧ポリシーの延長申請は出せるようです)  
  
#### IAMポリシー/SCPの更新  
ポリシーの更新ですが、とりあえず新ポリシーに対応するだけなら、公式ブログの下記ポリシーを適用すればよいです。(設定をカスタマイズしたい場合はその都度設定してください)
   
```json
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "ThesePermissionsWillHaveNoEffectTillEndOfMigration",
            "Effect": "Allow",
            "Action": [
                "ce:Get*",
                "ce:Describe*",
                "ce:List*",
                "account:GetAccountInformation",
                "billing:Get*",
                "payments:List*",
                "payments:Get*",
                "tax:List*",
                "tax:Get*",
                "consolidatedbilling:Get*",
                "consolidatedbilling:List*",
                "invoicing:List*",
                "invoicing:Get*",
                "cur:Get*",
                "cur:Validate*",
                "freetier:Get*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "ThisPermissionWillContinueProvidingAccessAsNormal",
            "Effect": "Allow",
            "Action": "aws-portal:ViewBilling",
            "Resource": "*"
        }
    ]
}
```
  
大きな変更点としては下表の通りなので、これに対応できればOKです。(各サービスプレフィックスの用途については、公式ブログを参照)   
  
|変更内容|サービスプレフィックス|アクション|備考|
|:---|:---|:---|:---|
|追加|consolidatedbilling|全アクション||
|追加|freetier|全アクション||
|追加|invoicing|全アクション||
|追加|payments|全アクション||
|削除|aws-portal|全アクション||
|削除|purchase-orders|ViewPurchaseOrdersおよびModifyPurchaseOrders|これ以外のアクションは引き続き継続|
  
    
なお注意点として、    
  
- 廃止アクションも廃止までは今まで通りのアクセス許可を提供する
- 新アクションは廃止ポリシーを削除しないと有効にならない  
 
というのがあります。  
  
なので新ポリシーをテストしつつ請求情報へのアクセス権限が失われないように、期限が来るまでは新旧両方のポリシーを設定しておくのがいいのではないかと思います。  
  
なお上記はIAMポリシー前提で記載しましたが、AWS Orgを使用してサービスコントロールポリシー(SCP)を使用している場合、SCPでも同様の対応も必要です。  
  
#### 影響を受けるポリシーを確認する  
なお「更新が必要かどうか」を確認するためのツールとして、「Affected Policies」というツールが新たに用意されています。  
  
このツールはマネジメントコンソールから「請求」のホーム画面に移動し、左のリストの最下段にある「アクセス許可 - Affected Policies」から開けます。  
![billing2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/181341/eba88faa-42b8-16e0-f2ff-6202ad4ab3d6.png)
  

詳細な操作手順は公式ブログで丁寧に説明されているので、ここでは省略しますが、下表の操作が可能なようです  
![billing.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/181341/2d3dbedc-40b6-bd2f-110c-cef008dc9ee1.png)  
  
|項目|説明|備考|
|:---|:---|:---|
|新しい IAM アクションを管理|新ポリシーを即座に反映したり、旧ポリシーに戻したりできる|AWS Orgを使用している場合、対象アカウントを選択可能|
|更新するポリシー|更新が必要なポリシーがある場合、該当ポリシーが表示される|更新自体はリンク先のIAMマネジメントコンソールから行う|
  
#### まとめ  
以上、AWSの請求ポリシー更新についてでした。  
  
AWS公式ブログが和訳されたのもあって、だいぶ原文よりは理解しやすくなりましたが、それでもちょっとややこしい部分ではあるので、理解の助けになればと思います。  
  
あと、ポリシー更新は忘れずに行ってください。(忘れると7/6以降、請求情報が閲覧不可になってしまうので...)  
  
#### 告知  
少し先ですが、2023/6/24(土) 開催の「Reject Day 2023」（主催：JAWS-UG＆AWS Startup Community）において、「Mobageの監視環境をAWSで構築する話」という内容でお話しさせて頂くことになりました。  
  
https://connpass.com/event/282843/
  
内容ですが、YAPC::Kyoto 2023でお話しした内容をベースに、もう少し開発者よりな話をしたいと思いますので、よろしくお願いします。  
  
それでは、今回はこの辺で。