請求関連のIAMポリシーのアップデートについて
挨拶
こんにちは、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日までに、新しい権限を検証して適切な権限設定に更新できるように、忘れず準備していきましょう。