我现在正在接近aws。
我正在尝试将参数存储在我的EC2实例的参数存储中,我会将它们放入Codedeploy的AfterInstall步骤中的环境变量中。 部署有效,但无论如何我都无法获得参数。
我创建了策略“ParameterStorePolicy”,如下所示:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssm:DescribeParameters"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"ssm:GetParameters"
],
"Resource": [
"arn:aws:ssm:us-east-2:<myId>:parameter/MySecureSQLPassword"
]
},
{
"Effect": "Allow",
"Action": [
"kms:Decrypt"
],
"Resource": "arn:aws:kms:us-east-2:<myId>:alias/aws/ssm"
}
]}
我将策略附加到“CodeDeployServiceRole”,它还附加了“AWSCodeDeployRole”。
最后在我的脚本“Afterinstall.sh”中,我编写了以下代码:
cd /home/ubuntu/pypi
export PIPPO=$(aws ssm get-parameters --region us-east-2 --names
MySecureSQLPassword --with-decryption --query Parameters[0].Value)
echo $PIPPO >testPippo.txt
结果是一个void testPippo.txt文件。
谁能说我错了?
谢谢
答案 0 :(得分:2)
检查“ ParameterStorePolicy” IAM策略是否已附加到要部署到的实例的EC2实例配置文件。
要确认实例是否具有正确的权限,可以执行以下任一操作:
aws ssm get-parameters --region us-east-2 --names MySecureSQLPassword --with-decryption --query Parameters [0] .Value
答案 1 :(得分:0)
您可以尝试一件事,就是直接从实例获取GetParameters而不运行CodeDeploy(可能只是直接从实例运行Afterinstall脚本)。如果你能够获得,那么它意味着与运行用户的CodeDeploy相关的东西,否则它应该是参数设置的问题。
谢谢, 摈摈