MFA 認証の有効期限を設定する方法を教えてください

MFA 認証の有効期限を設定する方法を教えてください

Clock Icon2025.03.08

困っていること

AWS のセキュリティを強化するために MFA 認証を強制しているものの、弊社の運用要件として MFA 認証後の有効期限を設定しなければなりません。実現するためのポリシー例を教えてください。

どう対応すればいいの?

aws:MultiFactorAuthAge 条件キーを使用することで、MFA認証後の有効期限を設定可能です。

https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html

存在 aws:MultiFactorAuthPresent ユーザーが MFA を使って認証されたことを単に確認するには、 条件で True キーが Bool であることを確認します。ユーザーが短期的な認証情報で認証した場合に限りキーが表示されます。アクセスキーのような長期的な認証情報に、このキーは含まれません。
期間 - MFA 認証後、指定された期間内のみアクセス権を与える場合、数値条件タイプを使用して aws:MultiFactorAuthAge キーの有効期間を値 (3600 秒など) と比較します。MFA が使用されなかった場合、aws:MultiFactorAuthAge キーは存在しません。

https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-multifactorauthage

このキーを使用して、リクエスト元のプリンシパルが MFA を使用して認可されてからの秒数と、ポリシーで指定した数値を比較します。
(中略)
可用性 – このキーは、プリンシパルが一時的なセキュリティ認証情報を使用してリクエストを行う場合にのみ、リクエストコンテキストに含まれます。MFA 条件を指定したポリシーは、次にアタッチすることができます。
・IAM ユーザーまたはグループ
・Amazon S3 バケット、Amazon SQS キュー、または Amazon SNS トピックなどのリソース
・ユーザーが引き受けることのできる IAM ロールの信頼ポリシー

ポリシー例

EC2 サービスの全アクションに対して、MFA 認証から 1 時間(3600秒)以内に限定して許可するポリシー例です。

{
    "Version": "2012-10-17",
    "Statement": {
        "Effect": "Allow",
        "Action": ["ec2:*"],
        "Resource": "*",
        "Condition": {
            "NumericLessThan": {
                "aws:MultiFactorAuthAge": "3600"
            },
            "Bool": {
                "aws:MultiFactorAuthPresent": "true"
            }
        }
    }
}

参考資料

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.