无法访问tmp目录中的文件

时间:2019-01-02 11:24:17

标签: amazon-web-services amazon-s3 amazon-elastic-beanstalk

我正在尝试使用ebconfig to store private keys on S3访问已下载到/ tmp /目录的.json文件。

files:
  "/tmp/firebaseadminsdk.json" :
    mode: "000400"
    owner: root 
    group: root
    authentication: "S3Auth"
    source: 'source url'

但是它给了我以下错误

Error: EACCES: permission denied, open '/tmp/firebaseadminsdk.json'

文档中有一段显示

The second entry uses the S3Auth authentication method to download the private key from the specified URL and save it to /etc/pki/tls/certs/server.key. The proxy server can then read the private key from this location to terminate HTTPS connections at the instance.

不幸的是,我没有使用任何代理,因为建议不要使用任何代理,如果我将其更改为,它将导致实例的运行状况严重。

我要再次确认IAM帐户对包含该文件的存储桶具有读写访问权限。我还添加了存储桶策略,以使IAM帐户具有与存储桶进行交互的完全访问权限,如下所示 enter image description here

{
    "Version": "2012-10-17",
    "Id": "Policy1546355608026",
    "Statement": [
        {
            "Sid": "Stmt_____",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::______:role/aws-elasticbeanstalk-ec2-role"
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::_____/firebaseadminsdk.json"
        }
    ]
}

我也进入ec2实例,并将S3fullaccess策略添加到实例正在使用的IAM角色中,但是在完成所有这些操作后,错误仍然存​​在。

我也在使用负载均衡器,这可能会引起一些问题?

错误消息

Error: EACCES: permission denied, open '/tmp/firebaseadminsdk.json'
    at Object.openSync (fs.js:436:3)
    at Object.readFileSync (fs.js:341:35)
    at Object.Module._extensions..json (internal/modules/cjs/loader.js:705:20)
    at Module.load (internal/modules/cjs/loader.js:598:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:537:12)
    at Function.Module._load (internal/modules/cjs/loader.js:529:3)
    at Module.require (internal/modules/cjs/loader.js:636:17)
    at require (internal/modules/cjs/helpers.js:20:18)
    at Object.<anonymous> (/var/app/current/index.js:9:22)
    at Module._compile (internal/modules/cjs/loader.js:688:30)
fs.js:115
    throw err;

1 个答案:

答案 0 :(得分:0)

在您用于文件复制的代码中,所有者的更改权限为 400 ,以供所有人 444 阅读。

files:
  "/tmp/firebaseadminsdk.json" :
    mode: "000444"
    owner: root 
    group: root
    authentication: "S3Auth"
    source: 'source url'

每个人对私钥的权限读取可能都不安全。

但是我将其用于应用程序的Alpha版本,并且由于密钥旋转,以后还将实现AWS KMS(密钥管理服务)。