Supported configurations for using passkeys and security keys
You can use FIDO2 device-bound passkeys, also known as security keys, as a multi-factor authentication (MFA) method with IAM using currently supported configurations. These include FIDO2 devices supported by IAM and browsers that support FIDO2. Before you register your FIDO2 device, check that you’re using the latest browser and operating system (OS) version. Features may behave differently across different browsers, authenticators, and OS clients. If your device registration fails on one browser, you can try to register with another browser.
FIDO2 is an open authentication standard and an extension of FIDO U2F, offering the same
high level of security based on public key cryptography. FIDO2 consists of the W3C Web
Authentication specification (WebAuthn API) and the FIDO Alliance Client-to-Authenticator
Protocol (CTAP), an application layer protocol. CTAP enables communication between client or
platform, like a browser or operating system, with an external authenticator. When you
enable a FIDO Certified authenticator in AWS, the security key creates a new key pair for
use with only AWS. First, you enter your credentials. When prompted, you tap the security
key, which responds to the authentication challenge issued by AWS. To learn more about the
FIDO2 standard, see the FIDO2
Project
FIDO2 devices supported by AWS
IAM supports FIDO2 security devices that connect to your devices through USB,
Bluetooth, or NFC. IAM also
supports
platform authenticators such as TouchID or FaceID. IAM does not support local passkey
registration for Windows Hello. To create and use passkeys, Windows users should use
cross-device authentication
Note
AWS requires access to the physical USB port on your computer to verify your FIDO2 device. Security keys will not work with a virtual machine, a remote connection, or a browser's incognito mode.
The FIDO Alliance maintains a list of all FIDO2
products
Browsers that support FIDO2
The availability of FIDO2 security devices that run in a web browser depends on the combination of browser and operating system. The following browsers currently support the use of security keys:
Web browser | macOS 10.15+ | Windows 10 | Linux | iOS 14.5+ | Android 7+ |
---|---|---|---|---|---|
Chrome | Yes | Yes | Yes | Yes | No |
Safari | Yes | No | No | Yes | No |
Edge | Yes | Yes | No | Yes | No |
Firefox | Yes | Yes | No | Yes | No |
Note
Most Firefox versions that currently support FIDO2 don't enable support by default. For instructions on enabling FIDO2 support in Firefox, see Troubleshoot FIDO security keys.
For more information about browser support for a FIDO2-Certified device like YubiKey,
see Operating system and web browser support for FIDO2 and U2F
Browser plugins
AWS supports only browsers that natively support FIDO2. AWS doesn't support using plugins to add FIDO2 browser support. Some browser plugins are incompatible with the FIDO2 standard and can cause unexpected results with FIDO2 security keys.
For information on disabling browser plugins and other troubleshooting tips, see I can't enable my FIDO security key.
Device certifications
We capture and assign device-related certifications, such as FIPS validation and FIDO
certification level, only during the registration of a security key. Your device
certification is retrieved from the FIDO
Alliance Metadata Service (MDS)
AWS provides the following certification types as condition keys during device registration, obtained from the FIDO MDS: FIPS-140-2, FIPS-140-3, and FIDO certification levels. You have the ability to specify the registration of specific authenticators in their IAM policies, based on your preferred certification type and level. For more information, see the policies below.
Example policies for device certifications
The following use cases show sample policies that allow you to register MFA devices with FIPS certifications.
Topics
- Use case 1: Allow registering only devices that have FIPS-140-2 L2 certifications
- Use case 2: Allow registering devices that have FIPS-140-2 L2 and FIDO L1 certifications
- Use case 3: Allow registering devices that have either FIPS-140-2 L2 or FIPS-140-3 L2 certifications
- Use case 4: Allow registering devices that have FIPS-140-2 L2 certification and support other MFA types like virtual authenticators and hardware TOTP
Use case 1: Allow registering only devices that have FIPS-140-2 L2 certifications
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:EnableMFADevice", "Resource": "*", "Condition": { "StringEquals": { "iam:RegisterSecurityKey" : "Create" } } }, { "Effect": "Allow", "Action": "iam:EnableMFADevice", "Resource": "*", "Condition": { "StringEquals": { "iam:RegisterSecurityKey" : "Activate", "iam:FIDO-FIPS-140-2-certification": "L2" } } } ] }
Use case 2: Allow registering devices that have FIPS-140-2 L2 and FIDO L1 certifications
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:EnableMFADevice", "Resource": "*", "Condition": { "StringEquals": { "iam:RegisterSecurityKey" : "Create" } } }, { "Effect": "Allow", "Action": "iam:EnableMFADevice", "Resource": "*", "Condition": { "StringEquals": { "iam:RegisterSecurityKey" : "Activate", "iam:FIDO-FIPS-140-2-certification": "L2", "iam:FIDO-certification": "L1" } } } ] }
Use case 3: Allow registering devices that have either FIPS-140-2 L2 or FIPS-140-3 L2 certifications
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:EnableMFADevice", "Resource": "*", "Condition": { "StringEquals": { "iam:RegisterSecurityKey" : "Create" } } }, { "Effect": "Allow", "Action": "iam:EnableMFADevice", "Resource": "*", "Condition": { "StringEquals": { "iam:RegisterSecurityKey" : "Activate", "iam:FIDO-FIPS-140-2-certification": "L2" } } }, { "Effect": "Allow", "Action": "iam:EnableMFADevice", "Resource": "*", "Condition": { "StringEquals": { "iam:RegisterSecurityKey" : "Activate", "iam:FIDO-FIPS-140-3-certification": "L2" } } } ] }
Use case 4: Allow registering devices that have FIPS-140-2 L2 certification and support other MFA types like virtual authenticators and hardware TOTP
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:EnableMFADevice", "Resource": "*", "Condition": { "StringEquals": { "iam:RegisterSecurityKey": "Create" } } }, { "Effect": "Allow", "Action": "iam:EnableMFADevice", "Resource": "*", "Condition": { "StringEquals": { "iam:RegisterSecurityKey": "Activate", "iam:FIPS-140-2-certification": "L2" } } }, { "Effect": "Allow", "Action": "iam:EnableMFADevice", "Resource": "*", "Condition": { "Null": { "iam:RegisterSecurityKey": "true" } } } ] }
AWS CLI and AWS API
AWS supports using passkeys and security keys only in the AWS Management Console. Using passkeys
and security keys for MFA is not supported in the AWS CLI and AWS API
Additional resources
-
For more information on using passkeys and security keys in AWS, see Assign a passkey or security key in the AWS Management Console.
-
For help with troubleshooting passkeys and security keys in AWS, see Troubleshoot FIDO security keys.
-
For general industry information on FIDO2 support, see FIDO2 Project
.