好的,这是一个场景。
我在AWS中有一个Jenkins奴隶,我在其中附加了一个角色,允许它创建EC2资源。我通过Packer github问题列表找到了这个角色。这是角色
我的封隔器项目试图建立在奴隶的基础上。当构建开始时,它将失败:
[1;31 31mBuild‘amazon’错误: NoCredentialProviders:链中没有有效的提供者。不赞成。有关详细消息传递,请参见aws.Config.CredentialsChainVerboseErrors[0m ] ==>有些构建没有成功完成,并且有错误:->amazon: NoCredentialProviders:没有有效的提供程序。不赞成。有关详细消息传递,请参见aws.Config.CredentialsChainVerboseErrors
如果我运行aws配置并输入真正的凭据,这显然是有效的,但我试图避免这种情况。我已经证实,实例具有适当的附加角色。我还验证了我可以通过命令行正确地切换到这个角色。
我似乎缺少的是,在与实例和packer关联的角色中,指定角色时使用:'iam_instance_profile‘--为什么这会继续失败。
有什么想法吗?
发布于 2016-04-01 21:08:14
因此,在Castaglia提供了大量帮助之后,我才得以使其发挥作用。我所创造的角色似乎出了问题。我删除了它,并用相同的名称和相同的策略重新创建了它。从那以后一切都很顺利。
请注意,我相信封隔器指令有错误。它们列出了该角色所需的以下内容:
{
"Statement": [{
"Effect": "Allow",
"Action" : [
"ec2:AttachVolume",
"ec2:CreateVolume",
"ec2:DeleteVolume",
"ec2:CreateKeypair",
"ec2:DeleteKeypair",
"ec2:DescribeSubnets",
"ec2:CreateSecurityGroup",
"ec2:DeleteSecurityGroup",
"ec2:AuthorizeSecurityGroupIngress",
"ec2:CreateImage",
"ec2:CopyImage",
"ec2:RunInstances",
"ec2:TerminateInstances",
"ec2:StopInstances",
"ec2:DescribeVolumes",
"ec2:DetachVolume",
"ec2:DescribeInstances",
"ec2:CreateSnapshot",
"ec2:DeleteSnapshot",
"ec2:DescribeSnapshots",
"ec2:DescribeImages",
"ec2:RegisterImage",
"ec2:CreateTags",
"ec2:ModifyImageAttribute"
],
"Resource" : "*"
}]
}但我相信你还需要一块:
{
"Sid": "PackerIAMPassRole",
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": [
"*"
]
}这样做可以让我承担起我所需要的角色并建立起我所需要的。
https://stackoverflow.com/questions/36360607
复制相似问题