Después de que pude agregar el soporte para MFA, el siguiente problema que tuve que resolver fue dar permiso para utilizar CodeCommit con SSH y poder clonar repositorios sin necesidad de MFA, por que desde la linea de comando no se puede.
Para el siguiente truco es necesario agregar "codecommit:*"
a la lista de acciones dentro de "Sid": "DenyAllExceptListedIfNoMFA"
, y además agregar una condición extra al final:
"Null": {
"kms:ViaService": true
}
Al final queda de la siguiente forma:
{
"Sid": "DenyAllExceptListedIfNoMFA",
"Effect": "Deny",
"NotAction": [
"iam:CreateVirtualMFADevice",
"iam:EnableMFADevice",
"iam:GetUser",
"iam:ListMFADevices",
"iam:ListVirtualMFADevices",
"iam:ResyncMFADevice",
"sts:GetSessionToken",
"iam:ChangePassword",
- "iam:CreateLoginProfile"
+ "iam:CreateLoginProfile",
+ "codecommit:*"
],
"Resource": "*",
"Condition": {
"BoolIfExists": {
"aws:MultiFactorAuthPresent": "false"
+ },
+ "Null": {
+ "kms:ViaService": true
}
}
}
Con esto si el usuario ya tiene su SSH key ID configurada, ya puede clonar y utilizar el repositorio por medio de SSH.
He actualizado el gist por si quieren el archivo completo.