回答:
答えはイエスです、あります。条件を使用して。たとえば、管理者アカウントの場合:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*",
"Condition":
{
"Null":{"aws:MultiFactorAuthAge":"false"}
}
}
]
}
APIを使用して、パスワード認証とトークンベース認証の両方にMFAを強制します。
少し見て回ると、答えは「種類」であるように見えます。IAMでは、管理者は別のIAMユーザーのMFAを設定できます。仮想MFAを設定している場合、これは少し難しいかもしれませんが、可能です。次に、MFAを更新/削除する権限がユーザーに付与されていない場合、事実上必要です。
拒否する(または単に許可しない)アクションの完全なリストをまだ決定していませんが、この投稿には情報があるようで、テストしたらこの回答を更新します。
[更新]
ユーザーをパワーユーザーとしてセットアップし(それにより、IAM機能へのアクセスを許可しませんが、より詳細にできると確信しています)、それらのMFAを実装できました。この方法を使用すると、彼らはそれを無効にすることができなくなります。
はい。ウェブコンソールとawscli
コマンドラインの両方でIAMアカウントにMFAを要求できます。実際、WebコンソールにMFAを確実に要求する一方で、awscli
コマンドラインにはMFAを要求することはできません。どちらも同じAPIにヒットするためです。複雑なIAMポリシーを使用するawscli
と、WebコンソールにMFAを適用しながら、MFAなしで一部の操作を許可できるため、「信頼できる」と言います。ただし、結果はいくぶん予測不能であり、さらに、IAMキーは保護されていない場合でも同じくらい危険です。私の推奨は、両方にそれを要求し、MFAが絶対に禁忌である特別な用途のために、おそらく保護されていないキーを作成することです。自動化されたプロセスの場合、一般的にはロールの方が適しています。
コマンドラインでのMFA操作を簡単にするために、一連のbashスクリプトと、 vMFAdのアタッチ/デタッチ、およびMFAセッションの開始と管理を容易にする、慎重に作成されたMFA施行ポリシーの例を作成しました。macOSとLinuxのバリアントで動作しますが、Windowsでは動作しない可能性があります(テストされていません)。
Yubikeysを使用するために開発したカスタムツール(https://github.com/kreuzwerker/awsu)のドキュメントに、AWS APIマルチファクター全般に関するいくつかの考慮事項(条件を追加する場所、意味するものなど)を文書化しました。 TOTPトークンのソースとして。これにより、ロールと長期資格情報+セッショントークンの操作が非常に簡単になります。
受け入れられた答えはもはや有効ではありません。AWSは、チュートリアルの記事でこれを行う方法を次のように文書化しました。
https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_users-self-manage-mfa-and-creds.html
新しいAWSアカウントとチームでそれに従いましたが、うまくいきました。