Gui*_*eRZ 5 amazon-web-services aws-code-deploy amazon-kms amazon-lightsail aws-systems-manager
我想在我的 CodeDeploy 管道中使用 AWS 系统管理器存储参数,删除我对 Lightsail 的最后一次提交。
? 1. 我创建了一个 SSM 参数:MySecureString。
参数被设定在SecureString与KMS加密集合上Actual account与alias/aws/ssm作为ID。
我SecureString的设置为:postgres://user:password@endpoint.rds.amazonaws.com:5432/myDatabase
? 2. 我创建了一个供 CodeDeploy 实例使用的 IAM 策略
前往 IAM 并创建了一个附加到的 JSON 策略MySpecificCodeDeployUser:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"ssm:GetParameter"
],
"Resource": [
"arn:aws:kms:*:<accountID>:key/alias/aws/ssm",
"arn:aws:ssm:us-east-1:<accountID>:parameter/MySecureString"
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
? 3.测试MySpecificFCodeDeployUser访问SSM MySecureString:
键入aws configure以登录MySpecificFCodeDeployUser并尝试在我的本地计算机上运行此命令:
aws --region=us-east-1 ssm get-parameter --name MySecureString --with-decryption --query Parameter.Value
RETURN ==> "postgres://user:password@endpoint.rds.amazonaws.com:5432/myDatabase"
Run Code Online (Sandbox Code Playgroud)
请注意,删除 IAM 策略会给我一个未经授权的请求,因此 IAM 策略是正确的。
4. 添加MySecureString到由 CodeDeploy 执行的脚本:
编辑我的AfterInstall脚本appspec.yml以添加:
aws --region=us-east-1 ssm get-parameter --name MySecureString --with-decryption --query Parameter.Value >> .env
Run Code Online (Sandbox Code Playgroud)
给了我一个FAILED Build与stderr:
[stderr] An error occurred (AccessDeniedException) when calling the GetParameter operation: User: arn:aws:sts::<id>:assumed-role/AmazonLightsailInstanceRole/<id> is not authorized to perform: ssm:GetParameter on resource: arn:aws:ssm:us-east-1:<id>:parameter/MySecureString
Run Code Online (Sandbox Code Playgroud)
我看到 Lightsail 实例AWSServiceRoleForLightsail从https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-using-service-linked-roles继承了服务相关角色。
有没有办法向我的 Lightsail 实例添加新策略,因为它似乎不是 CodeDeploy 用户需要它?
有没有办法向我的 lightail 实例添加新策略,因为 CodeDeploy 用户似乎不需要它?
遗憾的是,你不能这样做。要使 Lightsail 实例上的应用程序能够与 AWS 服务交互,您必须自行设置.aws凭证并让您的应用程序使用该凭证(如果您使用 AWS SDK,则会自动完成)。
Lightsail 实例不支持基于用户的实例角色。为此,您需要常规 EC2 实例,如下所述:
| 归档时间: |
|
| 查看次数: |
94 次 |
| 最近记录: |