Amazon Web ServicesCloud

AWS——使用CodeCommit托管代码

 除了我们熟悉的github,各大云厂商也有自己的代码托管服务。本文讲解如何在Amazon的CodeCommit中托管代码。

根账户登录


AWS有两种账户登录界面。

  • IAM账户登录界面
  • 根账户登录界面

我们先使用根账户登录。

IAM

我们需要定义一些IAM(Identity and Access Management)用户,这些用户将可以访问我们的代码库。这些操作可以通过https://console.aws.amazon.com/iam/home访问到。

为了更加贴近实际,我们假设有三种角色:

  • 项目经理,拥有代码库全部权限,名字是Leader
  • 研发工程师,拥有代码的写权限,名字是RD
  • 测试工程师,拥有代码的读权限,名字是QA

新建组


      

我们以“项目经理”为例,创建的组名叫“Managers”。在附加策略页面,我们选择“AWSCodeCommitFullAccess”

然后把组创建出来。

相似的方式,我们把“研发工程师”和“测试工程师”的组创建出来。它们的名字分别是”Developers”和“Testers”,对应的附加策略是“AWSCodeCommitPowerUser”和“AWSCodeCommitReadOnly”。

新建用户


以“项目经理”为例,我们新建一个用户名叫“Leader”,并勾选“AWS管理控制台访问”,并让其自己设置密码。

然后把该用户编到拥有最高权限的“Managers”组中。

可以忽略掉“标签”页,直接创建用户。

最后这个页面非常重要。我们可以把该CSV下载下来,交给名字叫Leader的用户。其中包含了用户名、密码、以及IAM登录的地址。

生成git凭证


在“用户”页点击刚创建的Leader

然后进入“安全证书”页,点击“生成凭证”

然后将生成的凭证下载下来提供给Leader

CodeCommit新建代码库


进入https://console.aws.amazon.com/codesuite/codecommit/repositories。我们创建一个测试代码库“Test”

IAM用户登录


将“新建用户”最后一步生成的文件交给Leader妥善管理。他需要访问Console login link地址(如果你是在和根账户登录的同一台电脑上操作,建议启动一个其他内核的浏览器打开,否则将会把根账户踢出)。Account ID or alias将会被自动填好,只要填写上面文件中的用户名和密码即可。


因为我们让Leader自己设置密码,所以他会进入修改密码界面

此时Leader进入CodeCommit将会看到Test工程

Leader获取Https地址后,使用之前提供的“Git Https 凭证”中的用户名和密码,就可以将代码库clone下来了。

限制权限


目前,我们创建的用户都可以访问CodeCommit中的代码库。但是大部分时候,我们希望部分人不要拥有一些代码权限,包括拉取代码。

为了解决这个问题,我们需要在“策略”中做一些定制。

因为我们是对CodeCommit服务做限制,所以先在“服务”栏选择它。然后在“操作”栏勾选“ListRepositories”。这样可以保证Leader可以看到所有项目。然后添加一个限制策略

这儿我们需要将其切换到“拒绝”状态。

我们在“操作”栏勾选所有操作。然后在“资源”处添加我们要禁止Leader获取的库。

最后一步我们给策略取个名字“DenyAccessTest”。

现在我们只要把该策略绑定到用户上即可。

在没有限制权限之前,Leader查看CodeCommit的页面如下。它显示了下载地址。

而限制了权限之后,我们看到下载地址已经不出现了。

另外


像Leader我们给了他很高的权限,但是像“研发工程师”和“测试工程师”则不需要这么高的权限。我们以“研发工程师”为例,创建用户RD。此时我们只给他“编程访问”权限。

用户添加成功后,我们也不用把该页面的CSV文件提供给他。只要把“安全证书”页面中生成的凭证给他即可。他可以使用其中的用户名和密码拉取代码库。