Aws-cli: Suporte U2F

Criado em 26 set. 2018  ·  45Comentários  ·  Fonte: aws/aws-cli

De acordo com o blog da AWS, U2F agora é compatível com login do console:
https://aws.amazon.com/blogs/security/use-yubikey-security-key-sign-into-aws-management-console/

É especialmente importante que haja um caminho para oferecer suporte a isso no aws-cli, para que possamos tocar para executar comandos em vez de ter tokens de longa duração no disco / memória.

feature-request v2

Comentários muito úteis

Pelo que eu entendo esse problema, o STS / IAM terá que obter suporte de API para chaves de segurança como tokens MFA antes de prosseguir com isso.

Alguém pode esclarecer isto? Certamente, se ainda não houver suporte, ele está ao virar da esquina ...?

EDITAR:

Por favor, não deixe que isso se torne um daqueles casos ridículos em que uma empresa assume que nenhum de seus clientes se preocupa com um recurso, porque implementou a versão não muito útil e ninguém a usou.

Eu nunca uso a interface do usuário da web para fazer login no console da Amazon. Para mim, tudo é baseado na CLI, porque tenho várias contas com as quais preciso lidar (etc.). E mesmo se eu _disse_ a interface do usuário da web para fazer login, então, do jeito que está, eu precisaria me preocupar com _duplicar contas_ de todas as minhas contas existentes para usar com U2F, porque eu ainda precisaria usar meu antigo Google / LastPass / qualquer autenticador para todas as coisas de aws-cli .

Então ... O suporte U2F da AWS tem o _potencial_ para se tornar algo que eu estaria _realmente_ entusiasmado, mas sem o suporte CLI ainda não vale a pena tocar. Imagino que muitas pessoas estejam no mesmo barco.

Todos 45 comentários

AFAIK, U2F geralmente só funciona em um navegador da web. Como você espera que ele seja usado na CLI? Abrir um navegador?

@JensRantil Não, qualquer tipo de aplicativo pode interagir com um token U2F.

Fonte: Eu mantenho libu2f-* e pam-u2f no Debian;)

Parece que o U2F ainda não é compatível com o acesso à API:

Você não pode usar o acesso à API protegido por MFA com chaves de segurança U2F.

Dito isso, definitivamente passei esse feedback para a equipe de serviço. Minha própria experiência mostra que o U2F é 100.000 vezes mais utilizável do que qualquer outro fator secundário, então adoraria vê-lo, mesmo para meu próprio uso.

A única ressalva é que isso precisaria ser um recurso V2, já que tenho quase certeza de que precisamos incluir dependências c para interagir com o token u2f.

@JordonPhillips FYI, há uma biblioteca de host Python U2F de Yubico; é 100% Python, mas depende de hidapi , que IIRC usa libusb e libudev .
OTOH, já está disponível em todas as principais distros, então isso não deve ser um grande negócio?

Também exigiria (como qualquer uso de U2F) que o usuário pudesse interagir com o dispositivo U2F; Yubico mantém upstreams de regras udev em libu2f-host , que enviei no Debian como libu2f-udev (para que possam ser instalados sem puxar a biblioteca C), que é uma dependência de task-desktop (começando no Debian 10 “buster”), então a maioria dos usuários o terá instalado imediatamente; em stretch (o Debian estável atual), distribuímos as regras do udev para U2F no pacote udev , então está disponível lá também.
TL; DR: O Debian deve ter as permissões corretas para dispositivos U2F no jessie em diante (lançado há mais de um ano), assim como todos os derivados do Debian (a menos que eles se esforcem para quebrar o U2F ...)

Isso seria extremamente útil para mim. Tirar meu telefone de 10 a 20 vezes por dia para copiar TOTPs não é divertido. 😅 Se eu pudesse apenas tocar no meu Yubikey, minha experiência aws-cli seria _tão_ muito mais agradável.

@nbraud parece que a interface python que eles usam não fornece rodas linux, então a instalação exigiria que o usuário tivesse um compilador instalado. Atualmente, não é um requisito para instalar o cli, portanto, adicionar essa biblioteca seria uma alteração importante para muitos usuários.

@JordonPhillips Com relação à introdução de uma mudança significativa ... Posso imaginar algumas abordagens que permitiriam aos usuários entusiasmados se beneficiarem disso desde o início, sem quebrar as coisas para usuários menos aventureiros:

  1. Torne-o uma dependência opcional na v1, e então as pessoas que realmente se importam com ele podem compilar com um sinalizador especial para habilitá-lo. Dessa forma, eles optam por "visualizar" o que eventualmente fará parte do cliente v2 por padrão.

  2. Divida a parte U2F em um binário separado e detecte sua presença no tempo de execução. Em seguida, os usuários que tentam usar o AWS CLI com U2F seriam informados "instale esta outra ferramenta" para fazê-la funcionar. Então, no Mac, por exemplo, eu estaria a brew install aws-cli-u2f distância do êxtase. 😃

Sim, ficaria mais do que feliz em instalar um módulo opcional de compilação do código-fonte para obter essa funcionalidade. Ele só seria necessário em máquinas de desenvolvedor - que quase sempre já teriam um compilador - e não em servidores de qualquer maneira.

Uma alternativa para python-u2f-host seria python-fido2, que o

Vou prender a respiração por isso 👍

Pelo que eu entendo esse problema, o STS / IAM terá que obter suporte de API para chaves de segurança como tokens MFA antes de prosseguir com isso.

Pelo que eu entendo esse problema, o STS / IAM terá que obter suporte de API para chaves de segurança como tokens MFA antes de prosseguir com isso.

Alguém pode esclarecer isto? Certamente, se ainda não houver suporte, ele está ao virar da esquina ...?

EDITAR:

Por favor, não deixe que isso se torne um daqueles casos ridículos em que uma empresa assume que nenhum de seus clientes se preocupa com um recurso, porque implementou a versão não muito útil e ninguém a usou.

Eu nunca uso a interface do usuário da web para fazer login no console da Amazon. Para mim, tudo é baseado na CLI, porque tenho várias contas com as quais preciso lidar (etc.). E mesmo se eu _disse_ a interface do usuário da web para fazer login, então, do jeito que está, eu precisaria me preocupar com _duplicar contas_ de todas as minhas contas existentes para usar com U2F, porque eu ainda precisaria usar meu antigo Google / LastPass / qualquer autenticador para todas as coisas de aws-cli .

Então ... O suporte U2F da AWS tem o _potencial_ para se tornar algo que eu estaria _realmente_ entusiasmado, mas sem o suporte CLI ainda não vale a pena tocar. Imagino que muitas pessoas estejam no mesmo barco.

@jeffparsons concorda totalmente com U2F MFA para CLI / SDK é realmente necessário. Aposto que eles resistiriam em fazer a abordagem libusb / python-fido, pois não mapeia bem para fazê-lo nos SDKs ect ruby ​​/ java. U2F com uma resposta de desafio de um toque seria bem universal.

btw, você pode alternar entre contas no console da web muito facilmente, assumindo uma função na outra conta
gostar:
https://signin.aws.amazon.com/switchrole?roleName=SomeAdminRole&account=YourAccountNumberOrAlias
Vejo:
https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html

Você pode ver o alternador de função na lista suspensa de usuário / conta no canto superior direito da página

também esse cara pode estar descobrindo algo ... https://gist.github.com/woowa-hsw0/caa3340e2a7b390dbde81894f73e379d

Aqui também está uma solução muito boa https://github.com/kreuzwerker/awsu

Trabalhar com várias configurações de contas múltiplas, todas com um idp separado, usando o mesmo U2F com todas elas, seria um grande alívio para mim.
Eu também não teria problemas para instalar / compilar uma dependência adicional para obter isso na v1 como uma visualização.

Algum movimento nas questões do lado errado das coisas?

Pelo que vale a pena, aws-vault parece estar bastante perto de se fundir no suporte U2F: https://github.com/99designs/aws-vault/pull/316

Dito isso, sou absolutamente a favor de adicionar suporte nativo a U2F à ferramenta oficial AWS CLI.

Pelo que vale a pena, aws-vault parece estar bastante perto de se fundir no suporte U2F: 99designs / aws-vault # 316

Não, isso é apenas criar tokens TOTP usando o Yubikey. É uma solução alternativa que permite que você use seu Yubikey, mas não é U2F.

(Parece que é o mesmo que awsu faz.)

Todo o MFA em awscli é difícil de configurar e a falta de suporte yubikey não ajuda.
O MFA em 2019 não deve ser um recurso de vanguarda.

Algum progresso nisso?

apenas topei com isso. Remova o suporte para Yubikey do console da web se você não planeja oferecer suporte no cli. É uma grande perda de tempo ter que pesquisar essas coisas no Google e descobrir que a AWS não oferece suporte ao que anuncia

É ridículo que esse problema esteja aberto há 440 dias e ainda não tenha sido resolvido.

O suporte CLI seria, como afirmado anteriormente, altamente apreciado

Olá, gostaríamos de aplicar o MFA a todos os usuários humanos com https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_users-self-manage-mfa-and-creds.html (pela falta de um melhor solução), mas agora descobrimos que temos que:

a) desistir totalmente da ideia, ou
b) forçar todos a fazer o downgrade de U2F para TOTP.

O fato de o IAM não suportar vários dispositivos MFA também é uma piada de mau gosto ...

É quase o ano de 2020. A solução MFA conveniente e segura (leia-se: U2F) é uma obrigação, não um luxo, na minha opinião. Especialmente em áreas onde atores mal-intencionados podem causar sérios danos financeiros.

AWS, por favor, por favor, trabalhe em conjunto e trabalhe no aprimoramento de seu suporte de MFA em todo o seu ecossistema (CLI, aplicativos móveis, AWS SSO - que também não oferece suporte a U2F!)

O fato de o IAM não suportar vários dispositivos MFA também é uma piada de mau gosto ...

Isso é realmente constrangedor. Registrar apenas um dispositivo é uma prática muito ruim, então venha para a Amazon, conserte isso o mais rápido possível!

É ridículo que esse problema esteja aberto há 440 dias e ainda não tenha sido resolvido.

É pior do que isso. Em 2013, alguém da Amazon escreveu:

Infelizmente, no momento, só é possível ter um único MFA por conta.
No entanto, levantei isso com nossa equipe de desenvolvimento para ser considerado um recurso para desenvolvimento futuro.
https://forums.aws.amazon.com/thread.jspa?threadID=137055

Eu entenderia que a equipe pode estar ocupada ou não, mas o fato de que ninguém se dá ao trabalho de responder a esta questão é o que me preocupa. Este não é um projeto de código aberto com falta de pessoal e mal pago, onde isso pode ser desculpado, mas a própria AWS.

491 dias, vamos abrir um champanhe no 500! : champagne:: confetti_ball:

Presumo que a Amazônia esteja realmente focada nos projetos GOV onde o $ está. Este tópico é um exemplo de porque geralmente não recomendo a ninguém o uso da AWS.
Claro, houve um tempo em que eles eram vanguardistas, mas hoje em dia ... faltam apenas os recursos básicos. Eu sei que está fora do tópico, mas outro exemplo é o Route 53 ainda não oferece suporte a DNSSEC, então aqui está. Ah, sim, e MFA deve ser chamado de SFA porque não há "Multi" na implementação da AWS.

Desculpe pelo discurso retórico, mas provavelmente ninguém assiste a este tópico, exceto pelo pessoal de segurança que realmente deseja o recurso.
Só alguns dias até chegarmos a 500 :)!

Eu realmente gostaria que isso fosse adicionado. Acho os telefones celulares uma grande distração e prefiro não ter que puxar meu telefone várias vezes por hora quando estou interagindo com os serviços da AWS.

Isso foi atualizado há alguns dias - https://aws.amazon.com/premiumsupport/knowledge-center/authenticate-mfa-cli/

Isso ajuda alguém?

Isso ajuda alguém?

Infelizmente não. IMHO esse é outro problema que a AWS precisa de alguns scripts complexos para usar até mesmo o código de token. Eu uso o módulo PyPi de script de terceiros aws-mfa python para contornar isso.
Mas obrigado pelo pensamento @ chris-bateman!

Isso foi atualizado há alguns dias - https://aws.amazon.com/premiumsupport/knowledge-center/authenticate-mfa-cli/

Há um botão "Há algo que podemos melhorar? Informe-nos" na parte inferior desse artigo, que com certeza pressionarei.

Eu fiz a minha parte e deixei um comentário na seção "conte para a gente". Eu também ficaria muito animado se esse recurso fosse implementado.

mesmo obrigado por postar @steinybot

Adicionando um comentário triste de que ainda não foi implementado
why

Aniversário de dois anos chegando em menos de 2 meses. Deve estar perto agora, certo? Direito?

Boas notícias: se você não usa o aws-vault, deveria. Eles acabaram de introduzir o suporte ao Yubikey. Se você tiver um yubikey compatível com TOTP, poderá adicionar o código MFA dentro dele. Embora o ideal seja esperar isso da Amazon, todos podemos concordar que eles simplesmente não se importam enquanto Jeff está ficando mais rico.
Tem um ótimo suporte para funções e tal, parte de mim está triste por se tratar de uma ferramenta de terceiros, mas é isso que eu amo no código aberto: você tem opções.
link: https://github.com/99designs/aws-vault/blob/master/USAGE.md#using -a-yubikey

Embora o aws-vault seja ótimo, ele suporta TOTP, não U2F.

depois de muito tempo esperando por isso, agora uso https://github.com/kreuzwerker/awsu

@nbraud parece que a interface python que eles usam não fornece rodas linux, então a instalação exigiria que o usuário tivesse um compilador instalado. Atualmente, não é um requisito para instalar o cli, portanto, adicionar essa biblioteca seria uma alteração importante para muitos usuários.

Embora @jeffparsons tenha apontado algumas soluções alternativas razoáveis ​​se você usar uma das outras bibliotecas maiores com mais dependências, também destacarei que há uma biblioteca Python menor que deve ser considerada: pyu2f . Ele também depende de bibliotecas HID USB nativas para se comunicar com chaves U2F, mas tem apenas uma dependência Python: six . Ele empacota seus próprios vínculos baseados em ctypes para chamadas de OS HID compatíveis com MacOS, Linux e Windows e provavelmente cobriria casos de uso "suficientes".

Ainda temos alguém trabalhando nisso? A equipe aws-cli aceitaria um patch para qualquer protótipo desta funcionalidade?

EDITAR: depois de ler mais no guia do usuário do aws-cli compatível com a autenticação de token U2F interativo, não se parece com GetSessionToken e AssumeRole apoiam isto neste ponto (conforme citado abaixo):

É importante compreender os seguintes aspectos da proteção MFA para operações de API:

  • A proteção MFA está disponível apenas com credenciais de segurança temporárias, que devem ser obtidas com AssumeRole ou GetSessionToken.
  • Você não pode usar o acesso à API protegido por MFA com chaves de segurança U2F.

Além disso, em relação ao comentário social de @kiwimato :

Embora o ideal seja esperar isso da Amazon, todos podemos concordar que eles simplesmente não se importam enquanto Jeff está ficando mais rico.

Por favor, perceba que este é um tópico de desenvolvimento de software, não um fórum de debate sobre o capitalismo. As equipes da AWS consistem em humanos genuínos que, em minha experiência, foram bastante receptivos ao consertar coisas em botocore . Se algo o está incomodando, perceba que a natureza de código aberto de grande parte disso significa que você pode ajudar a contribuir com uma correção ou pelo menos a pensar em algumas opções.

No entanto, embora a API da AWS subjacente em si não pareça oferecer suporte a nada além de TOTP para MFA, parece que esse problema pode ser um problema maior do que aws-cli simplesmente não oferecer suporte à funcionalidade do cliente. Esperançosamente, a AWS pode superar esse tíquete assim que a API suportar U2F para que possamos obter suporte ao cliente em andamento.

Pelo menos uma solução como esta ajudará na mudança de contexto entre sua máquina e seu telefone
https://authy.com/

Existe algum HEC sobre isso? É muito preocupante que aparentemente ninguém no mundo esteja usando boas práticas de MFA para o uso de cli da AWS.

É muito preocupante que aparentemente ninguém no mundo esteja usando boas práticas de MFA para o uso de cli da AWS.

@james-callahan isso não é verdade. Restringimos o acesso às funções apenas para aqueles que se autenticaram no MFA. Por exemplo:

AssumeRolePolicyDocument:
  Version: '2012-10-17'
  Statement:
    - Effect: Allow
      Principal:
        AWS: !Sub
          - arn:aws:iam::${Account}:root
      Action:
        - sts:AssumeRole
      Condition:
        Bool:
          aws:MultiFactorAuthPresent: 'true'

Em seguida, usamos uma ferramenta chamada aws-mfa para gerenciar a obtenção de creds temporários do STS e atualizar nossos arquivos de credenciais da AWS. Existem outras maneiras de gerenciar a interação com o STS para o mesmo objetivo.

Este tíquete se concentra em adicionar suporte especificamente para U2F.

@james-callahan isso não é verdade. Restringimos o acesso às funções apenas para aqueles que se autenticaram no MFA.

Isso só funciona com TOTP; o que não deve ser considerado um segundo fator de alta qualidade devido à facilidade de credenciais de TOTP de phishing etc.
Isso é piorado pelo fato de que a AWS não permite que você inscreva um dispositivo U2F e um TOTP para um único usuário IAM, portanto, se quiser usar U2F para acesso à IU, você não pode usar nenhum MFA do cli.

Para os usuários que precisam, criamos duas contas:

  1. usuário para console, onde habilitam U2F ou não podem acessar nada.
  2. usuário para acesso cli, onde adiciona chaves de acesso e habilita MFA ou não pode acessar nada.

Muito difícil de phish TOTP de uma conta de acesso apenas CLI.

@craighurley
Isso parece um pouco exagerado para uma solução alternativa da OMI. Você deve manter 2 contas para gerenciamento de segurança de uma organização AWS apenas para ter U2F no console.
Não vejo isso como uma solução razoável para nenhuma empresa que queira usar o U2F.

Esta página foi útil?
0 / 5 - 0 avaliações