Невозможно получить доступ к файлам в каталоге tmp - PullRequest
0 голосов
/ 02 января 2019

Я пытаюсь получить доступ к загруженному файлу .json в каталог / tmp /, используя ebconfig для хранения личных ключей на S3 .

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 голосов
/ 03 мая 2019

В вашем коде для копирования файлов разрешения на изменение от владельца прочитайте 400 , чтобы прочитать для всех 444 .

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

Разрешение на чтение для всех с закрытыми ключами может быть небезопасным.

Но я использую его для альфа-версии приложения и позже буду внедрять AWS KMS (служба управления ключами) также из-за ротации ключей.

...