我有两个AWS账户:
DEV: 111111111111
PROD: 999999999999我在名为prodRepo的prod帐户中创建了一个代码提交回购。
我想做的是允许DEV和PROD帐户上的一个PROD实例对此回购进行只读访问。所以git clone,git pull等等..。
我可以在我的PROD帐户上使用以下名为codecommit-tester的IAM实例配置文件轻松地完成此操作
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"codecommit:BatchGetRepositories",
"codecommit:Get*",
"codecommit:GitPull",
"codecommit:List*"
],
"Resource": "arn:aws:codecommit:us-east-1:999999999999:prodRepo"
}
]
}信托关系政策是:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "ec2.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
}然后,我使用git配置中的aws凭据帮助程序执行只读git操作,而无需在我的计算机上存储凭据(它从实例元数据中获取代码提交的凭据)。
$ cat ~/.gitconfig
[credential]
helper = !aws codecommit credential-helper $@
UseHttpPath = true我遇到的问题是在DEV帐户上创建一个IAM策略/角色来执行与PROD帐户相同的事情。这是我试过的。
我编辑了PROD帐户上的信任关系,以信任DEV帐户:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "ec2.amazonaws.com"
},
"Action": "sts:AssumeRole"
},
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::111111111111:root"
},
"Action": "sts:AssumeRole"
}
}现在,我认为这意味着DEV帐户可以承担这个角色。在DEV帐户上,我创建了这些附加于角色的IAM策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"codecommit:BatchGetRepositories",
"codecommit:Get*",
"codecommit:GitPull",
"codecommit:List*"
],
"Resource": "arn:aws:codecommit:us-east-1:999999999999:prodRepo"
}
]
}
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "arn:aws:iam::999999999999:role/codecommit-tester"
}
}在使用此IAM实例配置文件启动ec2实例后,我在DEV帐户上使用凭据助手,并且在执行git clone时得到此错误。
$ git clone https://git-codecommit.us-east-1.amazonaws.com/v1/repos/prodRepo
Cloning into 'prodRepo'...
fatal: unable to access 'https://git-codecommit.us-east-1.amazonaws.com/v1/repos/prodRepo/': The requested URL returned error: 403那么,我在DEV上的IAM角色/策略中错过了什么来完成这项工作呢?
发布于 2016-11-03 13:52:18
我认为您不需要在您提到的 DEV 中扮演iam角色(在DEV帐户上,我创建了这些附加于角色的IAM策略).没有尝试过与实例交叉帐户承担角色..。但是,如果您可以在prod帐户中创建新的IAM角色
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "arn:aws:iam::999999999999:role/codecommit-tester"
}
]
}而信任关系就像
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::111111111111:root"
},
"Action": "sts:AssumeRole"
}并在dev ec2角色中假设新的IAM。
https://stackoverflow.com/questions/40388537
复制相似问题