【Security Hub修復手順】[IAM.21] 作成する IAM カスタマーマネージドポリシーにはサービスのワイルドカードアクションを許可してはいけません

AWS SecurityHub 基礎セキュリティのベストプラクティスコントロール修復手順をご紹介します。
2023.01.28

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、AWS事業本部@福岡オフィスのべこみん(@beco_minn)です。

皆さん、お使いのAWS環境のセキュリティチェックはしていますか?

当エントリでは、AWS Security HubによるAWS環境のセキュリティ状況スコアリングに該当する項目についての修復手順をご紹介します。

本記事の対象コントロール

[IAM.21] 作成する IAM カスタマーマネージドポリシーにはサービスのワイルドカードアクションを許可してはいけません

[IAM.21] IAM customer managed policies that you create should not allow wildcard actions for services

前提条件

本記事はAWS Security Hubで「AWS基礎セキュリティのベストプラクティススタンダード」を利用されている方向けの内容となります。 AWS Security Hubの詳細についてはこちらのブログをご覧ください。

修復手順

1. 是正対象のリソースを特定する

まずAWS Security HubのコンソールからIAM.21のチェック結果を確認します。是正対象のIAMポリシーを確認することが出来ます。

東京リージョンの場合、下記リンクで上図の画面を確認可能です。

https://ap-northeast-1.console.aws.amazon.com/securityhub/home?region=ap-northeast-1#/standards/aws-foundational-security-best-practices-1.0.0/IAM.21

2. ステークホルダーに確認

次にステークホルダー(リソースの作成者や管理している部署などの関係者)に以下を確認します。

  • 対象のIAMポリシーを現在使っているかどうか
    • もし使用されていないポリシーの場合はデタッチ/削除を検討します。
    • ※IAMポリシーを削除する形で是正する場合、Security Hubに反映されるまでに少し時間を要する場合があります。
  • 対象のIAMポリシーが現在も使用されている場合、どのような意図のIAMポリシーなのか
    • 対象のIAMポリシーは許可されているアクション範囲が広すぎるため、必要最低限のアクションのみに範囲を絞ってあげる必要があります。以降のステップに進み、IAMポリシーの権限を見直します。

3. 対象のIAMポリシーの権限を再設定する

今回是正対象となっているポリシーのJSONは下記です。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "ngWildCardPolicy",
            "Effect": "Allow",
            "Action": "ec2:*",
            "Resource": "*"
        }
    ]
}

本コントロールでは "Effect": "Allow""Action: "ec2:*" のように "Action": "Service:*" という記述がポリシーステートメントに含まれる場合に失敗となります。

そのため、"Action": "ec2:*" の代わりに上述の手順2で確認した必要最低限のアクションを指定し、IAMポリシーを再設定します。

EC2のアクションであれば、下記公式ドキュメントでどのようなアクションが存在するかを確認することが出来ます。

Amazon EC2 のアクション、リソース、および条件キー - サービス認証リファレンス

  • Describe
  • Create
  • Modify
  • Delete

などのprefixで目的のアクションを検索してみて下さい。

4. 動作を確認する

IAMポリシーを再設定したら、元々このIAMポリシーを使っていたアプリケーション等で動作確認を行います。

想定していた通りの権限が与えられていることを確認したら、今回の作業は完了です。お疲れ様でした。

ちなみに

本コントロールではワイルドカードの使用が一律で禁止されているわけではありません。

例えば、EC2のアクションには DescribeFlowLogsDescribeAvailabilityZones など、Describe~ というprefixを持つアクションがいくつか存在します。

そのようなアクションをまとめて指定するために下記のようにワイルドカードを使用することも可能です。

"Action": "ec2:Describe*",

上記の場合もワイルドカードを使ってはいますが、全てのアクションを指定しているわけではないので本コントロールのチェックは失敗しません。

最後に

今回は、AWS Security HubによるAWS環境のセキュリティ状況スコアリングに該当する項目についての修正手順をご紹介しました。

コントロールを修正して、お使いのAWS環境のセキュリティをパワーアップさせましょう!

最後までお読みいただきありがとうございました!どなたかのお役に立てれば幸いです。

以上、べこみんでした。

クラスメソッドメンバーズをご契約の皆さまに

AWS Security Hub 「基礎セキュリティのベストプラクティス」の各チェック項目(コントロール)に対する弊社としての推奨対応やコメントを記載しているClassmethod Cloud Guidebookを提供しています。 クラスメソッドメンバーズポータルの「お役立ち情報」→「組織的な AWS 活用のためのノウハウ」からご参照ください。