Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 在ebextensions文件中使用环境变量_Amazon Web Services_Amazon S3_Environment Variables_Ebextensions - Fatal编程技术网

Amazon web services 在ebextensions文件中使用环境变量

Amazon web services 在ebextensions文件中使用环境变量,amazon-web-services,amazon-s3,environment-variables,ebextensions,Amazon Web Services,Amazon S3,Environment Variables,Ebextensions,我有三个AWS账户。我已经将我的SSL证书文件存储在其中一个AWS帐户(比如AWS1)的S3中。我创建了一个IAM角色,该角色授予对AWS1中S3存储桶的“GetObject”访问权。然后,我为在另一个AWS帐户(比如AWS2)中运行的单实例应用程序配置了一个ebextensions文件,以使用我在AWS1中创建的IAM角色的AccessKey和Secret从AWS1中的S3存储桶下载SSL证书 以下是.ebextensions中我的http-single-instance.config文件的一

我有三个AWS账户。我已经将我的SSL证书文件存储在其中一个AWS帐户(比如AWS1)的S3中。我创建了一个IAM角色,该角色授予对AWS1中S3存储桶的“GetObject”访问权。然后,我为在另一个AWS帐户(比如AWS2)中运行的单实例应用程序配置了一个ebextensions文件,以使用我在AWS1中创建的IAM角色的AccessKey和Secret从AWS1中的S3存储桶下载SSL证书

以下是.ebextensions中我的http-single-instance.config文件的一部分,用于我在AWS2中的应用程序

Resources:
AWSEBAutoScalingGroup:
Metadata:
  AWS::CloudFormation::Authentication:
    S3Auth:
      type: "s3"
      buckets: ["aws1-bucket"]
      accessKeyId: "AWS1IAMACCESSKEY"
      secretKey: "AWS1IAMSECRET"
但正如您所看到的,我必须将AWS1 IAM秘密值直接放入AWS2中应用程序的源代码中,以使其正常工作。与将accessKeyId和secretKey的值放入实际的源代码中不同,是否可以从环境变量或S3加载这些值?所以最后,如果我能得到

Resources:
AWSEBAutoScalingGroup:
Metadata:
  AWS::CloudFormation::Authentication:
    S3Auth:
      type: "s3"
      buckets: ["aws1-bucket"]
      accessKeyId: {AWS2ENVACCESSKEYID}
      secretKey: {AWS2ENVSECRETKEY}
对于在同一AWS帐户中运行的应用程序,我已遵循本文档中提供的说明- 这是完美的。我目前的解决方案还可以根据需要下载SSL证书,但我只想知道是否有更安全的方法


非常感谢您的帮助。谢谢

请注意,S3可以使用ACL授予对其他帐户的访问权,因此只要授予跨帐户访问权,它们不在同一AWS帐户下就不会有问题

将其与IAM角色结合使用仍应支持您的用例,而无需在代码中放置非旋转键


有关如何授予跨帐户访问权限的信息,请参见此处:

为什么不使用跨帐户S3权限?让帐户2和3访问帐户1 S3。这样你就不需要分享任何秘密了