AWS

請求関連のIAMポリシーのアップデートについて

yuhan

挨拶

こんにちは、1月に2度目のコロナウイルスに感染し、いろいろなイベントへの参加を逃したyuhanです。
AWSのアップデートにより、請求に関するIAMポリシーの記述の仕方が変わります。
シンプルな記述ゆえに細かい権限制御ができなかった請求関連の権限ですが、このアップデートによって、以前はできなかった細やかな権限の制御が可能になっています。
マネージドポリシーを利用している場合は特に修正などの対応は不要ですが、カスタムポリシーを利用している場合は、新しい記述を追加する等の対応が必要になる可能性があります。
具体的にどのような変更があったのか、どのように対応する必要があるか、一緒に確認していきましょう。

請求に関連した権限

まず、アップデート前の請求に関連した権限を見ていきましょう。
IAMポリシーで制御できる各権限については、下記の表の通りになっています。

アクセス許可名 概要
aws-portal:ViewBilling 請求情報とコスト管理コンソールへのアクセス権限です。こちらの権限だけ付与しても、各種設定の変更はできません。
aws-portal:ModifyBilling 予算、一括請求、請求設定、クレジット、税金設定、支払い方法、発注書、Cost Allocation Tagsの変更権限です。aws-portal:ViewBilling と両方を許可することで、請求関連の各種設定を変更できるようになります。
aws-portal:ViewAccount アカウント設定へのアクセス権限です。こちらの権限だけ付与しても、設定の変更はできません。
aws-portal:ModifyAccount アカウント設定の変更権限です。aws-portal:ViewAccount と両方を許可することで、アカウント設定を変更できるようになります。
aws-portal:ViewPaymentMethods 支払い方法へのアクセス権限です。こちらの権限だけ付与しても、設定の変更はできません。
aws-portal:ModifyPaymentMethods 支払い方法の変更権限です。aws-portal:ViewPaymentMethods と両方を許可することで、支払い方法の設定を変更できるようになります。
billing:ListBillingViews 見積もりの請求グループの請求情報のアクセス権限です。
sustainability:GetCarbonFootprintSummary AWS Customer Carbon Footprint Tool とデータへのアクセス権限です。
cur:DescribeReportDefinitions AWS コストと使用状況レポートへのアクセス権限です。こちらの権限のみを付与してもレポートの作成や削除などはできません。
cur:PutReportDefinition AWS コストと使用状況レポートを作成する権限です。
cur:DeleteReportDefinition AWS コストと使用状況レポートを削除する権限です。
cur:ModifyReportDefinition AWS コストと使用状況レポートを変更する権限です。
ce:CreateCostCategoryDefinition コストカテゴリを作成する権限です。
ce:DeleteCostCategoryDefinition コストカテゴリを削除する権限です。
ce:DescribeCostCategoryDefinition コストカテゴリを表示する権限です。
ce:ListCostCategoryDefinitions コストカテゴリを一覧表示する権限です。
ce:UpdateCostCategoryDefinition コストカテゴリを更新する権限です。
aws-portal:ViewUsage AWS 使用状況レポートを表示する権限です。aws-portal:ViewBilling と両方を許可することで、使用状況レポートを表示することができます。
pricing:DescribeServices AWS サービスの製品と価格を AWS Price List サービス API で表示する権限です。pricing:GetAttributeValues、および pricing:GetProducts と合わせて許可することで、AWS Price List サービス API が使えるようになります。
pricing:GetAttributeValues AWS サービスの製品と価格を AWS Price List サービス API で表示する権限です。pricing:DescribeServices、および pricing:GetProducts と合わせて許可することで、AWS Price List サービス API が使えるようになります。
pricing:GetProducts AWS サービスの製品と価格を AWS Price List サービス API で表示する権限です。pricing:DescribeServices、および pricing:GetAttributeValues と合わせて許可することで、AWS Price List サービス API が使えるようになります。
purchase-orders:ViewPurchaseOrders 発注書を表示する権限です。
purchase-orders:ModifyPurchaseOrders 発注書を変更する権限です。
tax:GetExemptions 税金コンソールごとに免除と免除タイプを表示するための読み取り専用権限です。
tax:UpdateExemptions 米国の免税コンソールに免税申請をアップロードする権限です。
support:CreateCase サポートケースを提出する権限です。免税コンソールから免税申請をアップロードする必要があります。
support:AddAttachmentsToSet 免税コンソールに免税証明書をアップロードするために必要なサポートケースにドキュメントを添付できるようにする権限です。

参考:https://docs.aws.amazon.com/ja_jp/awsaccountbilling/latest/aboutv2/billing-permissions-ref.html

アップデート内容

廃止になる記述

廃止になる記述は下記の通りです。
2023 年 7 月 6 日以降利用できなくなるため、これらのアクションを記述したIAMポリシーを作成している場合は、対応が必要です。

  • aws-portal:ViewAccount
  • aws-portal:ViewBilling
  • aws-portal:ViewPaymentMethods
  • aws-portal:ViewUsage
  • aws-portal:ModifyAccount
  • aws-portal:ModifyBilling
  • aws-portal:ModifyPaymentMethods
  • purchase-orders:ViewPurchaseOrders
  • purchase-orders:ModifyPurchaseOrders

新しい記述

アップデートにより、新しいサービスプレフィックス4つと、既存の 5 つのサービスプレフィックス、 billing, accounts, cur, purchase-orders, taxの配下に新しい権限が追加されました。

新しいサービスプレフィックス

  • consolidated billing サービスプレフィックス
    アカウントロールなどの一括請求機能に関連した権限を提供します。
アクセス許可名 概要
consolidatedbilling:GetAccountBillingRole アカウントロール(支払人、リンク済み、レギュラー)を取得する権限です。
consolidatedbilling:ListLinkedAccounts メンバー/連結アカウントのリストを取得する権限です。
  • freetier サービスプレフィックス
    AWS 請求コンソールの無料利用枠機能に関連した権限を提供します。
アクセス許可名 概要
freetier:GetFreeTierAlertPreference 無料利用枠アラート設定を取得する権限です。
freetier:GetFreeTierUsage 無料利用枠と MTD の使用状況を取得する権限です。
freetier:PutFreeTierAlertPreference 無料利用枠アラート設定を設定する権限です。
  • invoicing サービスプレフィックス
    AWS 請求コンソールの請求リソースへに関連した権限を提供します。
アクセス許可名 概要
invoicing:GetInvoiceEmailDeliveryPreferences 請求書の E メール配信設定を取得する権限です。
invoicing:GetInvoicePDF 請求書 PDF を取得する権限です。
invoicing:ListInvoiceSummaries アカウントまたは連結アカウントの請求書概要情報を取得する権限です。
invoicing:PutInvoiceEmailDeliveryPreferences 請求書の E メール配信設定を配置する権限です。
  • payments サービスプレフィックス
    AWS 請求コンソールの支払いと支払い方法に関連した権限を提供します。
アクセス許可名 概要
payments:CreatePaymentInstrument 支払い方法を作成する権限です。
payments:DeletePaymentInstrument 支払い方法を削除する権限です。
payments:GetPaymentInstrument 支払い方法に関する情報を取得する権限です。
payments:GetPaymentStatus 請求書の支払い状況を取得する権限です。
payments:ListPaymentPreferences 支払い設定(優先支払い通貨、優先支払い方法など)を取得する権限です。
payments:MakePayment 支払い、支払いの認証、支払い方法の検証、および前払いの資金請求書類の作成を行う権限です。
payments:UpdatePaymentPreferences 支払い設定(優先支払い通貨、優先支払い方法など)を更新する権限です。

新しい権限

既存の権限も含めて、各プレフィックスで指定できる権限を下記にまとめてみました。

  • billing
    AWS 請求コンソールの 請求機能 (ホーム、請求書、クレジット、請求設定) に関連したアクセス権限を提供します。
アクセス許可名 概要
billing:GetBillingData 請求情報に関するクエリを実行する権限です。
billing:GetBillingDetails 詳細な項目の請求情報を表示する権限です。
billing:GetBillingNotifications アカウントの請求情報に関連して AWS によって送信された通知を表示する権限です。
billing:GetBillingPreferences リザーブドインスタンス、Savings Plans、クレジット共有などの請求設定を表示する権限です。
billing:GetContractInformation 契約番号、エンドユーザーの組織名、PO 番号、アカウントが公共機関の顧客へのサービスに使用されているかどうかなど、アカウントの契約情報を表示する権限です。
billing:GetCredits 引き換えられたクレジットを表示する権限です。
billing:GetIAMAccessPreference 請求設定の「IAM アクセス許可を付与する」状態を取得する権限です。
billing:GetSellerOfRecord アカウントのデフォルトの登録販売者を取得する権限です。
billing:ListBillingViews 見積もりの請求グループの請求情報を取得する権限です。
billing:PutContractInformation アカウントの契約情報、エンドユーザーの組織名、およびアカウントが公共部門の顧客にサービスを提供するために使用されるかどうかを設定する権限です。
billing:RedeemCredits AWS クレジットを引き換える権限です。
billing:UpdateBillingPreferences リザーブドインスタンス、Savings Plans、クレジット共有などの請求設定を更新する権限です。
billing:UpdateIAMAccessPreference 請求設定の「IAM アクセス許可を付与する」状態を更新する権限です。
  • account
    AWS Account Management リソースへに関連したアクセス権限を提供します。
アクセス許可名 概要
account:CloseAccount アカウント情報を閉じる権限です。
account:DeleteAlternateContact アカウントの代替連絡先を削除する権限です。
account:DisableRegion リージョンを無効にする権限です。
account:EnableRegion リージョンを有効にする権限です。
account:GetAccountInformation アカウントのアカウント情報を取得する権限です。
account:GetAlternateContact アカウントの代替連絡先を取得する権限です。
account:GetChallengeQuestions アカウントのチャレンジ質問を取得する権限です。
account:GetContactInformation アカウントの主な連絡先情報を取得する権限です。
account:ListRegions 利用可能なリージョンを一覧表示する権限です。
account:PutAlternateContact アカウントの代替連絡先を変更する権限です。
account:PutChallengeQuestions アカウントのチャレンジ質問を取変更する権限です。
account:PutContactInformation アカウントの主な連絡先情報を更新する権限です。
  • cur
    AWS 請求コンソールの コストと使用状況レポートに関連したアクセス権限を提供します。
アクセス許可名 概要
cur:DeleteReportDefinition コストと使用状況レポート定義を削除する権限です。
cur:DescribeReportDefinitions コストと使用状況レポート定義を取得する権限です。
cur:GetClassicReport 請求書 CSV レポートを取得する権限です。
cur:GetClassicReportPreferences 使用状況レポートのクラシックレポート有効化ステータスを取得する権限です。
cur:GetUsageReport 使用状況レポートワークフローの AWS サービス、使用タイプ、および操作のリストを取得する権限です。 使用状況レポートのダウンロードもできます。
cur:ModifyReportDefinition コストと使用状況レポート定義を変更する権限です。
cur:PutClassicReportPreferences クラシックレポートを有効にする権限です。
cur:PutReportDefinition コストと使用状況レポート定義を書き込む権限です。
cur:ValidateReportDestination CUR 配信のための適切なアクセス許可を持つ s3 バケットが存在するかどうかを検証する権限です。
  • purchase-orders
    AWS 請求コンソールの 発注書 機能に関連したアクセス権限を提供します。
アクセス許可名 概要
purchase-orders:AddPurchaseOrder 新しい発注書を追加する権限です。
purchase-orders:DeletePurchaseOrder 新しい発注書を削除する権限です。
purchase-orders:GetPurchaseOrder 発注書を取得する権限です。
purchase-orders:ListPurchaseOrderInvoices 発注書を一覧表示する権限です。
purchase-orders:ListPurchaseOrders すべての使用可能な発注書を取得する権限です。
purchase-orders:ModifyPurchaseOrders 発詳細および詳細を変更する権限です。
purchase-orders:UpdatePurchaseOrder 既存の発注書を更新する権限です。
purchase-orders:UpdatePurchaseOrderStatus 発注書を設定する権限です。
purchase-orders:ViewPurchaseOrders 発注書および詳細を表示する権限です。
  • tax
    AWS 請求コンソールの 課税設定 に関連したアクセス権限を提供します。
アクセス許可名 概要
tax:BatchPutTaxRegistration 税登録をバッチ更新する権限です。
tax:DeleteTaxRegistration 税登録データを削除する権限です。
tax:GetExemptions 免税データを表示する権限です。
tax:GetTaxInheritance 税の継承ステータスを表示する権限です。
tax:GetTaxInterview Tax Interview データを取得する権限です。
tax:GetTaxRegistration 税登録データを表示する権限です。
tax:GetTaxRegistrationDocument 税登録ドキュメントをダウンロードする権限です。
tax:ListTaxRegistrations 税登録を表示する権限です。
tax:PutTaxInheritance 税の継承を設定する権限です。
tax:PutTaxInterview Tax Interview データを更新する権限です。
tax:PutTaxRegistration 税登録データを更新する権限です。
tax:UpdateExemptions 免税データを更新する権限です。

変更例

例として、下記のようにAWS 請求とコスト管理コンソール全体での参照を全て許可する権限を設定していた場合、どのような変更が必要になるのか、見ていきましょう。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowBilling",
            "Effect": "Allow",
            "Action": "aws-portal:ViewBilling",
            "Resource": "*"
        }
    ]
}

後ほど詳しく説明しますが、2023年3月7日以前に作成されたAWSアカウントの場合、移行期間中は、下記のように新しい権限と古い権限の両方を記述する必要があります。
今までは、aws-portal:ViewBilling を利用して一括で請求関連へのアクセスを許可することができましたが、記述項目が増えて細かい機能単位で制御できるようになっていることがよくわかりますね。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowBillingNewPermission",
            "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": "AllowBillingOldPermission",
            "Effect": "Allow",
            "Action": "aws-portal:ViewBilling",
            "Resource": "*"
        }
    ]
}

これにより、担当者に合わせてどの権限が必要で、どの権限が不要か、精査して適切な権限を設定することができます。
予め必要な操作のみを許可していれば、不必要な操作をしてしまうリスクも軽減されて、より安全にAWSを利用できるようになりますね。

注意点

最後に、変更例で少し触れた注意点について書かせていただきます。

アカウントが 2023 年 3 月 7 日 午前 4 時 (日本標準時) より前に作成された場合、または 2023 年 3 月 7 日 午前 4 時 (日本標準時) より前に作成された 管理アカウント が持つAWS Organizations 組織に所属している場合は、移行期間は 6 か月です。その間、AWS がaws-portalの IAM アクションを廃止する 2023 年 7 月 6 日まで、既存のaws-portalIAM アクションを引き続き使用できます。AWS では、AWS 請求、コスト管理、アカウントコンソールへのアクセスを維持するために、影響を受けるすべてのポリシーを 2023 年 7 月 6 日までに更新できるように、新しいきめ細かなアクセス権限の追加を早急に開始することをお勧めします。新しい権限は 2023 年 7 月 6 日以降まで有効にならないため、既存の IAM アクションと新しい IAM アクションの両方を維持してください。
引用元:https://aws.amazon.com/jp/blogs/news/changes-to-aws-billing-cost-management-and-account-consoles-permissions/

2023年3月7日以前に作成されたAWSアカウント(もしくは2023年3月7日以前に作成された管理アカウントが持つAWS>2023年3月7日以前に作成されたAWSアカウント(もしくは2023年3月7日以前に作成された管理アカウントが持つAWS Organizationsに所属している)の場合、移行期間の間は、新しい権限は有効になりません。
事前に書き換えて切り替えておくといった対応はできないため、2023 年 7 月 6 日までは廃止になる権限と新しい権限の両方を記述する必要があります
新しい権限の有効後には、不要な記述は削除することを忘れないようにしておきましょう。

2023/03/30追記

事前に書き換えて切り替えておくといった対応はできないため、2023 年 7 月 6 日までは廃止になる権限と新しい権限の両方を記述する必要があります

上記のように記載したのですが、AWSにて更新があり、2023 年 7 月 6 日 までは、新しい権限と古い権限の使用を切り替えることができるようになったようです。

詳しくは こちら をご参照ください。

新しいIAM権限を設定して、目的の権限設定を行うことができるか事前検証を行うことができますね!
7月6日までに、新しい権限を検証して適切な権限設定に更新できるように、忘れず準備していきましょう。

AUTHOR
yuhan
yuhan
記事URLをコピーしました