当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 了解和使用 PowerShell AWS 配置文件

作者:精品下载站 日期:2024-12-14 20:49:35 浏览:13 分类:玩电脑

了解和使用 PowerShell AWS 配置文件


在本教程中,您将学习如何在 PowerShell 中使用 AWS 配置文件。您将了解如何创建和管理配置文件,包括使用默认配置文件、创建您自己的配置文件等等!

在 PowerShell 中使用 AWS 时,您不能只下载所需的 AWSPowerShell PowerShell 模块并立即开始与 AWS 账户中的服务交互。您必须首先向 AWS 进行身份验证,让他们知道您是谁。在 AWS 中,您可以使用 AWS 账户的根用户或 IAM 用户进行身份验证。

为什么在 PowerShell 中需要 AWS 配置文件?

以编程方式进行身份验证(而不是浏览到 AWS 管理控制台)时,您需要拥有访问密钥和秘密密钥。这两个密钥允许您作为特定用户进行身份验证。在 PowerShell 中,此访问密钥和秘密密钥必须以加密方式保存在计算机上的某个位置,以便各种 AWS 命令可以使用它们进行身份验证。

访问密钥和秘密密钥等凭证可以按命令、每个会话或所有会话进行独立管理。您确实可以使用 AWS PowerShell 命令获得相当精细的凭证。我们可以将所有这些对命令或会话的引用保存在保存在本地计算机上的配置文件中。这些配置文件存储您的访问密钥和密钥以供 AWS 命令使用。

使用默认配置文件

您可能定义了一个或多个 PowerShell AWS 配置文件,但最简单的配置是使用单个默认配置文件。如果您只有一个访问密钥并且将始终使用它,则可以使用单个默认配置文件。

可以通过以下两种方式之一设置默认配置文件:

  • 使用名为 default 的配置文件
  • 明确将不同的配置文件设置为默认配置文件

假设您只有一个访问密钥来向 AWS 进行身份验证。您可以使用此单一访问密钥创建默认配置文件。例如,定义默认配置文件的一种方法是使用 Initialize-AWSDefaultConfiguration 命令。运行时,此命令会创建一个名为 default 的配置文件,所有会话中的所有 AWS 命令都会使用该配置文件。

PS51> $accessKey = 'XXXXXXX'
PS51> $secretKey = 'XXXXXXX'
PS51> Initialize-AWSDefaultConfiguration -AccessKey $accessKey -SecretKey $secretKey

此命令创建一个名为 default 的配置文件,然后可以使用用于枚举系统上所有配置文件的 Get-AWSCredential 命令找到该配置文件。

PS51> Get-AWSCredential -ListProfileDetail

ProfileName StoreTypeName         ProfileLocation
----------- -------------         ---------------
default     NetSDKCredentialsFile

此时,您可以运行任何您想要的AWS命令,如果访问密钥和秘密密钥配置正确,它们将正常运行。

但是,也许我已经创建了一个配置文件,或者想要为我的配置文件指定一个比 default 更具描述性的名称。在这种情况下,您可以将现有配置文件设为默认配置文件。

创建个人档案

如果您需要多个配置文件,您可以使用 Set-AWSCredential 命令创建任意数量的配置文件。此命令允许您指定访问密钥和秘密密钥,类似于使用 Initialize-AWSDefaultConfiguration 命令所做的操作。但它不会创建默认配置文件,而是使用您指定的任何名称创建配置文件。

也许我有一个工作帐户和一个个人 AWS 帐户,并且我想创建两个单独的配置文件。我可以做到这一点,如下所示。

PS51> Set-AWSCredential -AccessKey $accessKey -SecretKey $secretKey -StoreAs 'Work'

创建配置文件后,我可以使用 Get-AWSCredential 命令查看它是否存在。

PS51> Get-AWSCredential -ListProfileDetail

ProfileName StoreTypeName         ProfileLocation
----------- -------------         ---------------
default     NetSDKCredentialsFile
Work        NetSDKCredentialsFile

我现在有两个配置文件,但也许我想将我的工作配置文件设置为默认配置文件,以准备删除当前的默认配置文件。而不是创建一个名为“default”的标准配置文件。我也可以将刚刚创建的工作配置文件设置为默认配置文件。

为此,我可以再次使用 Initialize-AWSDefaultConfiguration 命令,这一次,我将使用 ProfileName 参数,而不是指定访问密钥和秘密密钥。

PS51> Initialize-AWSDefaultConfiguration -ProfileName Work

我们的默认配置文件名称现在将是“工作”。

使用配置文件

现在,我们创建了两个配置文件,分别名为 defaultWork,其中 Work 是实际的默认配置文件。您的 AWS 命令将使用哪一个?这取决于。您的默认配置文件(不要与名为default的配置文件混淆)将始终被使用,除非被另一个配置文件覆盖。

例如,也许打开您的 PowerShell 控制台并使用 Get-EC2Instance 获取所有 EC2 实例的列表。为此,您需要按原样运行命令,我的 EC2 实例就会按预期返回。

由于您在运行此命令时没有指定配置文件,因此该命令使用默认配置文件,由于您将默认配置文件设置为Work,因此它使用此配置文件。

如果您想覆盖默认值,可以使用 ProfileName 参数 (Get-EC2Instance -ProfileName Work) 来执行此操作,该参数将执行相同的操作,但使用您之前在该配置文件中定义的访问密钥和秘密密钥。此 ProfileName 参数在所有 AWS cmdlet 中都很常见。

删除配置文件

现在删除名为 default 的配置文件。由于您已将实际的默认配置文件设置为“工作”,因此不再需要此配置文件。

您可以使用 Remove-AWSCredentialProfile 命令删除配置文件。您可以在下面看到我删除名为 default 的配置文件的位置。

PS> Remove-AWSCredentialProfile -ProfileName default

Confirm
Are you sure you want to perform this action?
Performing the operation "Remove-AWSCredentialProfile" on target "default".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): a

每个会话配置文件

到目前为止,您一直在创建所有会话配置文件。这意味着即使跨 PowerShell 会话,配置文件也将保留。虽然不必每次都设置这些内容很方便,但也许您只是暂时需要使用配置文件。在这种情况下,您可以使用每个会话配置文件。

“每会话”凭据不会存储在您的 PowerShell 会话中。相反,它们是临时的,会在会话关闭时被删除。创建每会话配置文件与创建所有会话配置文件几乎相同。您仍将使用相同的 Set-AWSCredential 命令,但这次不使用 StoreAs 参数。您只需运行 Set-AWSCredential -AccessKey $accessKey -SecretKey $secretKey 即可创建临时配置文件。

创建每会话配置文件后,它将覆盖磁盘上存储的默认配置。

概括

在向 AWS 进行身份验证时,AWS 始终建议使用配置文件。它们是一种将凭证传递给 AWS 服务的安全且更易于管理的方式。只需使用几个 PowerShell 命令,您就可以创建和管理任意数量的不同访问密钥/秘密密钥组合,从而为您的身份验证方式提供最大的灵活性。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯