A versão 5 (V5) do Ferramentas da AWS para PowerShell foi lançada!
Para obter informações sobre mudanças significativas e migrar seus aplicativos, consulte o tópico de migração.
As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Autenticando o com Ferramentas da AWS para PowerShellAWS
Você deve estabelecer como seu código é autenticado AWS ao desenvolver com Serviços da AWS. Há diferentes maneiras de configurar o acesso programático aos AWS recursos, dependendo do ambiente e do AWS acesso disponível para você.
Para ver vários métodos de autenticação do Tools for PowerShell, consulte Autenticação e acesso no Guia de referência de ferramentas AWS SDKs e ferramentas.
Este tópico pressupõe que um novo usuário esteja se desenvolvendo localmente, não tenha recebido um método de autenticação do empregador e o usará AWS IAM Identity Center para obter credenciais temporárias. Se seu ambiente não se enquadra nessas suposições, algumas das informações neste tópico podem não se aplicar a você ou algumas das informações podem já ter sido fornecidas.
A configuração desse ambiente requer várias etapas, que são resumidas da seguinte forma:
Faça login usando as credenciais do console
Você pode usar suas credenciais de login existentes do AWS Management Console para acesso programático a. Serviços da AWS Depois de um fluxo de autenticação baseado em navegador, Ferramentas da AWS para PowerShell gera credenciais temporárias que funcionam em ferramentas de desenvolvimento locais, como, e. AWS SDKs Ferramentas da AWS para PowerShell AWS CLI Esse recurso simplifica o processo de configuração e gerenciamento de credenciais de CLI, especialmente se você preferir a autenticação interativa em vez de gerenciar chaves de acesso de longo prazo.
Com esse processo, você pode se autenticar usando credenciais raiz criadas durante a configuração inicial da conta, um usuário do IAM ou uma identidade federada do seu provedor de identidade, e o Tools for gerencia PowerShell automaticamente as credenciais temporárias para você. Essa abordagem aprimora a segurança ao eliminar a necessidade de armazenar credenciais de longo prazo localmente.
Ao executar o Invoke-AWSLogin cmdlet, você pode selecionar entre suas sessões ativas do console ou entrar por meio do fluxo de autenticação baseado em navegador e isso gerará automaticamente credenciais temporárias. Ferramentas da AWS para PowerShell atualizará automaticamente essas credenciais por até 12 horas.
Depois de configurada, sua sessão pode ser usada em Ferramentas da AWS para PowerShell todas AWS SDKs as outras ferramentas.
Faça login AWS com o Cmdlet Invoke- AWSLogin
Execute o Invoke-AWSLogin cmdlet para autenticar usando suas credenciais existentes do AWS Management Console. Se você não configurou um perfil anteriormente, você será solicitado a fornecer informações adicionais.
Para entrar ou configurar um perfil, siga as etapas abaixo.
-
Certifique-se de ter importado o módulo correto que você instalou no guia de instalação.
nota
Temos três módulos diferentes para PowerShell -
AWS.Tools,AWSPowerShell.NetCoreAWSPowerShelle. Consulte O que é o Ferramentas da AWS para PowerShell? para obter mais informações.-
No seu PowerShell terminal, execute o cmdlet. Isso usará o
defaultperfil.PS > Invoke-AWSLogin -
Para entrar em um perfil nomeado ou criar um novo, use o
-ProfileNameparâmetro.PS > Invoke-AWSLogin -ProfileName 'my-dev-profile' -
Se esse for um novo perfil ou se nenhum Região da AWS tiver sido especificado ou configurado em qualquer uma das profiles/environment variáveis anteriores, o cmdlet solicitará que você forneça uma região.
Press Ctrl+C to cancel the following login prompts. Specify AWS Region No AWS region has been configured. The AWS region is the geographic location of your AWS resources. If you've used AWS before and already have resources in your account, tell us which region they were created in. If you haven't created resources in your account before, you can pick the region closest to you: https://docs.aws.amazon.com/global-infrastructure/latest/regions/aws-regions.html AWS Region:
-
-
As Ferramentas da AWS para PowerShell tentativas de abrir seu navegador padrão para o processo de login da sua AWS conta.
Using region 'us-west-2' Attempting to open the login page for 'us-west-2' in your default browser. If the browser does not open, use the following URL to complete your login: https://signin.us-west-2.amazonaws.com/authorize?<abbreviated> If you cannot connect to this URL, make sure that you have specified a valid region.-
Se o dispositivo usado Ferramentas da AWS para PowerShell não tiver um navegador, você poderá usar o
-Remoteparâmetro para fornecer uma URL para você abrir em um dispositivo habilitado para navegador.PS > Invoke-AWSLogin -Remote -
Se você usou o
-Remoteparâmetro, as instruções para iniciar manualmente o processo de login serão exibidas com base no tipo de autorização que você está usando. O URL exibido é um URL exclusivo que começa com: https://signin.us-east-1.amazonaws.com /authorize. Depois de concluir o login do navegador, você precisará copiar e colar o código de autorização resultante de volta no terminal.Press Ctrl+C to cancel the following login prompts. Using region 'us-west-2' determined by profile/environment defaults. To override, specify '-Region' parameter. Please complete the login workflow via the following URL: https://us-west-2.signin.aws.amazon.com/v1/authorize?<abbrievated> Please enter the authorization code displayed in the browser:
-
-
No navegador, selecione suas credenciais para usar na lista exibida e, em seguida, retorne ao seu terminal.
-
Se o perfil que você está configurando tiver uma sessão de login configurada anteriormente que não corresponda à sua nova sessão, ele Ferramentas da AWS para PowerShell solicitará que você confirme que está trocando a sessão que corresponde ao perfil existente.
WARNING: Previously profile default was configured for arn:aws:iam::0123456789012:user/ReadOnly, and is now being updated to arn:aws:iam::0123456789012:user/Admin. Do you wish to change the identity that default is associated with? (y/n)
-
-
Uma mensagem final descreve a configuração do perfil concluída.
Login completed successfully for profile 'my-dev-profile'.O token de autenticação é armazenado em cache no disco sob o. aws/login/cachediretório com um nome de arquivo hash baseado no perfil resolvido.
Arquivo de configuração gerado
Essas etapas resultam na criação do perfil padrão ou especificado no arquivo de configuração que se parece com o seguinte:
[default] login_session = arn:aws:iam::0123456789012:user/username region = us-east-1 [my-dev-profile] login_session = arn:aws:iam::0123456789012:user/username region = us-east-1
Execute um comando com seu perfil
Depois de fazer login, você pode usar suas credenciais para invocar o Tools for PowerShell cmdlets com o perfil associado. O exemplo a seguir chama o Get-STSCallerIdentity cmdlet usando o perfil padrão:
PS > Get-STSCallerIdentity
Para verificar uma sessão específica, use o -ProfileName parâmetro.
PS > Get-STSCallerIdentity -ProfileName 'my-dev-profile'
O token de credencial temporário expirará em 15 minutos, mas o Ferramentas da AWS para PowerShell SDKs atualizará automaticamente quando necessário durante suas solicitações. A sessão geral será válida por até 12 horas, após as quais você deverá executar o Invoke-AWSLogin cmdlet novamente.
Sair da sua sessão usando o Invoke-AWSLogout cmdlet
Ao terminar sua sessão, você pode deixar suas credenciais expirarem ou executar o Invoke-AWSLogout cmdlet para excluir suas credenciais em cache. Se nenhum perfil for especificado na CLI ou na variável de AWS_PROFILE ambiente, o comando desconectará você do seu perfil padrão. O exemplo a seguir desconecta você do seu perfil padrão.
PS > Invoke-AWSLogout
Para sair de uma sessão de perfil específica, use o -ProfileName parâmetro.
PS > Invoke-AWSLogout -ProfileName 'my-dev-profile'
Para sair de todas as sessões de perfil em que você fez login, use o -All parâmetro.
PS > Invoke-AWSLogout -All
Credenciais em cache
As credenciais temporárias em cache, bem como os metadados necessários para atualizá-las, são armazenados por padrão %USERPROFILE%\.aws\login\cache no Windows ou no ~/.aws/login/cache Linux e no macOS.
Você pode substituir esse local definindo a variável de AWS_LOGIN_CACHE_DIRECTORY ambiente.
Habilitar e configurar o Centro de Identidade do IAM
Para ser usado AWS IAM Identity Center, ele deve primeiro ser ativado e configurado. Para ver detalhes sobre como fazer isso PowerShell, consulte a Etapa 1 no tópico sobre autenticação do IAM Identity Center no Guia de referência de ferramentas AWS SDKs e ferramentas. Especificamente, siga todas as instruções necessárias em Não estabeleci acesso por meio do Centro de Identidade do IAM.
Configure as ferramentas PowerShell para usar o IAM Identity Center.
nota
A partir da versão 4.1.538 do Tools for PowerShell, o método recomendado para configurar as credenciais de SSO e iniciar uma sessão do portal de AWS acesso é usar os Invoke-AWSSSOLogincmdlets Initialize-AWSSSOConfiguratione, conforme descrito neste tópico. Se você não tiver acesso a essa versão do Tools for PowerShell (ou posterior) ou não puder usar esses cmdlets, ainda poderá executar essas tarefas usando o. AWS CLI Para saber como, consulteUse o AWS CLI para login no portal.
O procedimento a seguir atualiza o AWS config arquivo compartilhado com as informações de SSO que o Tools for PowerShell usa para obter credenciais temporárias. Como consequência desse procedimento, uma sessão do portal de AWS acesso também é iniciada. Se o config arquivo compartilhado já tiver informações de SSO e você quiser apenas saber como iniciar uma sessão do portal de acesso usando as Ferramentas para PowerShell, consulte a próxima seção neste tópico,Iniciar uma sessão do portal de AWS acesso.
-
Se você ainda não tiver feito isso, abra PowerShell e instale o Ferramentas da AWS para PowerShell conforme apropriado para seu sistema operacional e ambiente, incluindo os cmdlets comuns. Para obter informações sobre como fazer isso, consulte Comece com o Ferramentas da AWS para PowerShell.
Por exemplo, ao instalar a versão modularizada do Tools for PowerShell no Windows, você provavelmente executaria comandos semelhantes aos seguintes:
Install-Module -Name AWS.Tools.Installer Install-AWSToolsModule AWS.Tools.Common -
Execute o comando a seguir. Substitua os valores de propriedade de exemplo por valores da configuração do IAM Identity Center. Para obter informações sobre essas propriedades e como encontrá-las, consulte as configurações do provedor de credenciais do IAM Identity Center no Guia AWS SDKs de referência de ferramentas.
$params = @{ ProfileName = 'my-sso-profile' AccountId = '111122223333' RoleName = 'SamplePermissionSet' SessionName = 'my-sso-session' StartUrl = 'https://provided-domain.awsapps.com/start' SSORegion = 'us-west-2' RegistrationScopes = 'sso:account:access' }; Initialize-AWSSSOConfiguration @paramsComo alternativa, você pode simplesmente usar o cmdlet sozinho e o Tools for PowerShell solicitará os valores da propriedade.
Initialize-AWSSSOConfigurationConsiderações sobre determinados valores de propriedade:
-
Se você simplesmente seguiu as instruções para ativar e configurar o IAM Identity Center, o valor para
-RoleNamepode serPowerUserAccess. Mas se você criou um conjunto de permissões do IAM Identity Center especificamente para o PowerShell trabalho, use-o em vez disso. -
Certifique-se de usar o Região da AWS local em que você configurou o IAM Identity Center.
-
-
Nesse ponto, o AWS
configarquivo compartilhado contém um perfil chamadomy-sso-profilecom um conjunto de valores de configuração que podem ser referenciados nas Ferramentas para PowerShell. Para encontrar a localização desse arquivo, consulte Localização dos arquivos compartilhados no Guia de referência de ferramentas AWS SDKs e ferramentas.O Tools for PowerShell usa o provedor de token SSO do perfil para adquirir credenciais antes de enviar solicitações para. AWS O
sso_role_namevalor, que é uma função do IAM conectada a um conjunto de permissões do IAM Identity Center, deve permitir o acesso ao Serviços da AWS usado em seu aplicativo.O exemplo a seguir mostra o perfil que foi criado usando o comando mostrado acima. Alguns dos valores da propriedade e sua ordem podem ser diferentes em seu perfil real. A
sso-sessionpropriedade do perfil se refere à seção chamadamy-sso-session, que contém configurações para iniciar uma sessão do portal de AWS acesso.[profile my-sso-profile] sso_account_id=111122223333sso_role_name=SamplePermissionSetsso_session=my-sso-session [sso-session my-sso-session] sso_region=us-west-2sso_registration_scopes=sso:account:access sso_start_url=https://provided-domain.awsapps.com/start/ -
Se você já tiver uma sessão ativa do portal de AWS acesso, as Ferramentas para PowerShell informam que você já está logado.
Se não for esse o caso, use as Ferramentas para PowerShell tentar abrir automaticamente a página de autorização de SSO em seu navegador padrão. Siga as instruções no seu navegador, que podem incluir um código de autorização de SSO, nome de usuário e senha, além de permissão para acessar AWS IAM Identity Center contas e conjuntos de permissões.
O Tools for PowerShell informa que o login com SSO foi bem-sucedido.
Iniciar uma sessão do portal de AWS acesso
Antes de executar os comandos que acessam Serviços da AWS, você precisa de uma sessão ativa do portal de AWS acesso para que o Tools for PowerShell possa usar a autenticação do IAM Identity Center para resolver as credenciais. Para entrar no portal de AWS acesso, execute o seguinte comando em PowerShell, onde -ProfileName my-sso-profile está o nome do perfil que foi criado no config arquivo compartilhado quando você seguiu o procedimento na seção anterior deste tópico.
Invoke-AWSSSOLogin -ProfileName my-sso-profile
Se você já tiver uma sessão ativa do portal de AWS acesso, as Ferramentas para PowerShell informam que você já está logado.
Se não for esse o caso, use as Ferramentas para PowerShell tentar abrir automaticamente a página de autorização de SSO em seu navegador padrão. Siga as instruções no seu navegador, que podem incluir um código de autorização de SSO, nome de usuário e senha, além de permissão para acessar AWS IAM Identity Center contas e conjuntos de permissões.
O Tools for PowerShell informa que o login com SSO foi bem-sucedido.
Para testar se você já tem uma sessão ativa, execute o comando a seguir após instalar ou importar o AWS.Tools.SecurityToken módulo conforme necessário.
Get-STSCallerIdentity -ProfileName my-sso-profile
A resposta ao Get-STSCallerIdentity cmdlet relata a conta do IAM Identity Center e o conjunto de permissões configurados no arquivo compartilhadoconfig.
Exemplo
Veja a seguir um exemplo de como usar o IAM Identity Center com as Ferramentas para PowerShell. Ele presume o seguinte:
-
Você habilitou Centro de Identidade do IAM e o configurou conforme descrito anteriormente neste tópico. As propriedades de SSO estão no
my-sso-profileperfil, que foi configurado anteriormente neste tópico. -
Quando você faz login por meio dos
Invoke-AWSSSOLogincmdletsInitialize-AWSSSOConfigurationou, o usuário tem pelo menos permissões de somente leitura para o Amazon S3. -
Alguns buckets do S3 estão disponíveis para esse usuário visualizar.
Instale ou importe o AWS.Tools.S3 módulo conforme necessário e, em seguida, use o PowerShell comando a seguir para exibir uma lista dos buckets do S3.
Get-S3Bucket -ProfileName my-sso-profile
Mais informações
-
Para obter mais opções de autenticação para o Tools for PowerShell, como o uso de perfis e variáveis de ambiente, consulte o capítulo de configuração AWS SDKs e o Guia de referência de ferramentas.
Alguns comandos exigem que uma AWS região seja especificada. Há várias maneiras de fazer isso, incluindo a opção de
-Regioncmdlet, o[default]perfil e a variável deAWS_REGIONambiente. Para obter mais informações, consulte Especifique a AWS região para o Ferramentas da AWS para PowerShell neste guia e a AWS região no Guia de referência de ferramentas AWS SDKs e ferramentas.-
Para saber mais sobre as práticas recomendadas, consulte Práticas recomendadas de segurança no IAM no Guia do usuário do IAM.
-
Para criar AWS credenciais de curto prazo, consulte Credenciais de segurança temporárias no Guia do usuário do IAM.
-
Para saber mais sobre outros provedores de credenciais, consulte Provedores de credenciais padronizados no Guia de Referência de Ferramentas AWS SDKs e Ferramentas.