长话短说,我正在使用 s3cmd 来操作 S3 存储桶,并将访问凭据复制到我的 environment.yaml 的新“smlamazon”部分下,但这在引导时失败,并拒绝访问:
mitchy$ s3cmd ls
2013-11-08 18:49 s3://sml-juju
2012-11-27 14:38 s3://sml-public
2013-05-27 15:45 s3://sml-website-backups
mitchy$ juju bootstrap --constraints "cpu-power=0 mem=512M" -v
verbose is deprecated with the current meaning, use show-log
2013-11-08 18:53:53 INFO juju.environs open.go:156 environment info already exists; using New not Prepare
2013-11-08 18:53:53 INFO juju.provider.ec2 ec2.go:193 opening environment "smlamazon"
2013-11-08 18:53:54 ERROR juju supercommand.go:282 Access Denied
我基本上复制了“amazon”块并将其重命名为“smlamazon”,并更新了它的访问和密钥(以及 s3 和管理密钥)。
我错过了什么?
答案1
Juju 需要访问才能控制 S3 存储桶和 EC2 实例。如果您的访问凭证是从 AWS IAM 生成的密钥,则可能意味着您没有将正确的访问组策略添加到安全凭证中。可以采取以下步骤来授予此访问密钥对以配置您的 AWS 基础设施:
访问 IAM 控制面板
获取访问密钥和秘密访问密钥
选择用户并设置策略模板
选择 EC2 完全访问和 S3 完全访问 笔记- 如果您在公司环境中,这可能会违反访问策略。如果您需要对特定可用区或自定义访问级别进行分段权限,则应咨询管理员。这可以由您的管理员生成,也可以按照 AWS IAM 策略教程生成。