Skip to main content

AWS身份和访问管理

Introduction to Amazon Web Services AWS | MonndEduneX | Gloewills Enterprises (六月 2026)

Introduction to Amazon Web Services AWS | MonndEduneX | Gloewills Enterprises (六月 2026)
Anonim

2011年,亚马逊宣布推出针对CloudFront的AWS身份和访问管理(IAM)支持。 IAM于2010年推出,包括S3支持。 AWS身份和访问管理(IAM)使您可以在AWS账户中拥有多个用户。如果您使用过Amazon Web Services(AWS),则您知道在AWS中管理内容的唯一方法是提供您的用户名和密码或访问密钥。这对我们大多数人来说是一个真正的安全问题。 IAM消除了共享密码和访问密钥的需要。

当员工离开我们的团队时,不断更改我们的主要AWS密码或生成新密钥只是一个混乱的解决方案。 AWS身份和访问管理(IAM)是一个良好的开端,允许具有单独密钥的个人用户帐户。但是,我们是S3 / CloudFront用户,因此我们一直在关注将CloudFront添加到最终发生的IAM中。

我发现这项服务的文档有点分散。有一些第三方产品为身份和访问管理(IAM)提供了一系列支持。但开发人员通常很节俭,所以我寻求一个免费的解决方案来管理IAM与我们的Amazon S3服务。

本文将介绍设置支持IAM的命令行界面以及设置具有S3访问权限的组/用户的过程。在开始配置身份和访问管理(IAM)之前,您需要设置Amazon AWS S3帐户。我的文章“使用Amazon Simple Storage Service(S3)”将引导您完成设置AWS S3帐户的过程。

以下是在IAM中设置和实现用户所涉及的步骤。这是为Windows编写的,但您可以调整以在Linux,UNIX和/或Mac OSX中使用。

  1. 安装和配置命令行界面(CLI)
  2. 创建一个组
  3. 授予对S3 Bucket和CloudFront的组访问权限
  4. 创建用户并添加到组
  5. 创建登录配置文件和创建密钥
  6. 测试访问

安装和配置命令行界面(CLI)

IAM命令行工具包是Amazon的AWS开发人员工具中提供的Java程序。该工具允许您从shell实用程序(DOS for Windows)执行IAM API命令。

  • 您需要运行Java 1.6或更高版本。您可以从Java.com下载最新版本。要查看Windows系统上安装的版本,请打开命令提示符并键入java -version。这假设java.exe在您的PATH中。
  • 下载IAM CLI工具包并在本地驱动器上的某处解压缩。
  • CLI工具箱的根目录中有2个文件需要更新。
    • AWS-credential.template: 此文件包含您的AWS凭据。添加您的AWSAccessKeyId和您的AWSSecretKey,保存并关闭该文件。
    • 客户config.template:如果需要代理服务器,则只需更新此文件。删除#符号并更新ClientProxyHost,ClientProxyPort,ClientProxyUsername和ClientProxyPassword。保存并关闭文件。
  • 下一步涉及添加环境变量。转到控制面板|系统属性|高级系统设置|环境变量。添加以下变量:
    • AWS_IAM_HOME:将此变量设置为解压缩CLI工具包的目录。如果您正在运行Windows并将其解压缩到C驱动器的根目录,则该变量将为C: IAMCli-1.2.0。
    • JAVA_HOME:将此变量设置为安装Java的目录。这将是java.exe文件的位置。在正常的Windows 7 Java安装中,这将类似于C: Program Files(x86) Java jre6。
    • AWS_CREDENTIAL_FILE:将此变量设置为您在上面更新的aws-credential.template的路径和文件名。如果您运行的是Windows并在C盘的根目录中解压缩,则该变量将为C: IAMCli-1.2.0 aws-credential.template。
    • CLIENT_CONFIG_FILE:如果需要代理服务器,则只需添加此环境变量。如果您正在运行Windows并将其解压缩到C驱动器的根目录,则该变量将为C: IAMCli-1.2.0 client-config.template。除非您需要,否则不要添加此变量。
  • 通过转到命令提示符并输入iam-userlistbypath来测试安装。只要你没有收到错误,你就应该好好去。

可以从命令提示符运行所有IAM命令。所有命令都以“iam-”开头。

创建一个组

每个AWS账户最多可以创建100个组。虽然您可以在用户级别在IAM中设置权限,但使用组将是最佳做法。以下是在IAM中创建组的过程。

  • 创建组的语法是iam-groupcreate -g GROUPNAME -p PATH -v,其中-p和-v是选项。 AWS Docs上提供了有关命令行界面的完整文档。
  • 如果你想创建一个名为“awesomeusers”的组,你可以在命令提示符下输入iam-groupcreate -g awesomeusers。
  • 您可以通过在命令提示符下输入iam-grouplistbypath来检查该组是否已正确创建。如果您只创建了此组,则输出将类似于“arn:aws:iam :: 123456789012:group / awesomeusers”,其中数字是您的AWS账号。

授予对S3 Bucket和CloudFront的组访问权限

策略控制您的组在S3或CloudFront中可以执行的操作。默认情况下,您的组无法访问AWS中的任何内容。我发现关于策略的文档没问题,但是在创建一些策略时,我做了一些试验和错误,以便按照我希望它们工作的方式工作。

您有两种创建策略的选项。一种选择是您可以直接将它们输入命令提示符。由于您可能正在创建策略并对其进行调整,因此对于我来说,将策略添加到文本文件中然后使用命令iam-groupuploadpolicy将文本文件作为参数上载似乎更容易。以下是使用文本文件并上传到IAM的过程。

  • 使用记事本之类的东西并输入以下文本并保存文件:
    • {
    • “声明”:{
    • “效果”:“允许”,
    • “行动”: “S3:*”,
    • “资源”:
    • “阿尔恩:AWS:S3 ::: BUCKETNAME”
    • “阿尔恩:AWS:S3 ::: BUCKETNAME / *”
    • },
    • {
    • “效果”:“允许”,
    • “行动”: “S3:ListAllMyBuckets”
    • “资源”: “阿尔恩:AWS:S3 ::: *”
    • },
    • {
    • “效果”:“允许”,
    • “行动”: “CloudFront的:*”,
    • “资源”: “*”
    • }
    • }
  • 该政策有3个部分。效果用于允许或拒绝某种类型的访问。行动是小组可以做的具体事情。资源将用于访问各个存储桶。
  • 您可以单独限制操作。在此示例中,“Action”:“s3:GetObject”,“s3:ListBucket”,“s3:GetObjectVersion”,该组将能够列出存储桶的内容并下载对象。
  • 第一部分“允许”该组执行存储桶“BUCKETNAME”的所有S3操作。
  • 第二部分“允许”该组列出S3中的所有存储桶。您需要这样,以便在使用AWS Console之类的东西时实际看到存储桶列表。
  • 第三部分为该组提供对CloudFront的完全访问权限。

IAM策略有很多选择。亚马逊有一个非常酷的工具,称为AWS Policy Generator。此工具提供GUI,您可以在其中创建策略并生成实施策略所需的实际代码。您还可以查看使用AWS Identity and Access Management联机文档的“访问策略语言”部分。

创建用户并添加到组

创建新用户并添加到组以提供访问权限的过程涉及几个步骤。

  • 创建用户的语法是iam-usercreate -u USERNAME -p PATH -g GROUPS … -k -v,其中-p,-g,-k和-v是选项。 AWS Docs上提供了有关命令行界面的完整文档。
  • 如果你想创建一个用户“bob”,你可以在命令提示符下输入iam-usercreate -u bob -g awesomeusers。
  • 您可以通过在命令提示符下输入iam-grouplistusers -g awesomeusers来检查用户是否已正确创建。如果您只创建了此用户,则输出将类似于“arn:aws:iam :: 123456789012:user / bob”,其中该数字是您的AWS账号。

创建登录配置文件和创建密钥

此时,您已创建了一个用户,但您需要为他们提供实际添加和删除S3中对象的方法。有两个选项可供您的用户使用IAM访问S3。您可以创建登录配置文件并为用户提供密码。他们可以使用其凭据登录Amazon AWS控制台。另一种选择是为您的用户提供访问密钥和密钥。他们可以在S3 Fox,CloudBerry S3 Explorer或S3 Browser等第三方工具中使用这些键。

创建登录配置文件

为S3用户创建登录配置文件为他们提供了用于登录Amazon AWS Console的用户名和密码。

  • 创建登录配置文件的语法是iam-useraddloginprofile -u USERNAME -p PASSWORD。 AWS Docs上提供了有关命令行界面的完整文档。
  • 如果要为用户“bob”创建登录配置文件,请在命令提示符下输入iam-useraddloginprofile -u bob -p PASSWORD。
  • 您可以通过在命令提示符下输入iam-usergetloginprofile -u bob来检查登录配置文件是否已正确创建。如果您为bob创建了登录配置文件,则输出将类似于“用户bob存在登录配置文件”。

创建密钥

创建AWS秘密访问密钥和相应的AWS Access Key ID将允许您的用户使用前面提到的第三方软件。请记住,作为安全措施,您只能在添加用户配置文件的过程中获取这些密钥。确保复制并粘贴命令提示符中的输出并保存在文本文件中。您可以将文件发送给您的用户。

  • 为用户添加密钥的语法是iam-useraddkey -u USERNAME。 AWS Docs上提供了有关命令行界面的完整文档。
  • 如果要为用户“bob”创建密钥,可以在命令提示符下输入iam-useraddkey -u bob。
  • 该命令将输出看起来像这样的键:
    • AKIACOOB5BQVEXAMPLE
    • BvQW1IpqVzRdbwPUirD3pK6L8ngoX4PTEXAMPLE
    • 第一行是访问密钥ID,第二行是秘密访问密钥。你需要两个第三方软件。

测试访问

现在您已经创建了IAM组/用户并使用策略为组提供了访问权限,您需要测试访问权限。

控制台访问

您的用户可以使用他们的用户名和密码登录AWS控制台。但是,这不是用于主AWS账户的常规控制台登录页面。您可以使用一个特殊的URL,它仅为您的Amazon AWS账户提供登录表单。以下是为您的IAM用户登录S3的URL。

https://AWS-ACCOUNT-NUMBER.signin.aws.amazon.com/console/s3

AWS-ACCOUNT-NUMBER是您的常规AWS账号。您可以登录Amazon Web Service登录表单来获取此信息。登录并单击帐户|帐户活动。您的帐号位于右上角。确保删除破折号。该URL看起来像https://123456789012.signin.aws.amazon.com/console/s3。

使用访问密钥

您可以下载并安装本文中已提到的任何第三方工具。根据第三方工具文档输入您的访问密钥ID和秘密访问密钥。

我强烈建议您创建一个初始用户,让该用户完全测试他们可以在S3中完成他们需要做的所有事情。验证其中一个用户后,您可以继续设置所有S3用户。