【问题标题】:setting up aws credential in flask在烧瓶中设置 aws 凭证
【发布时间】:2015-07-23 15:33:27
【问题描述】:

我一直在想这个,有没有办法把我的凭证放进去 设置.py。

我的 generator.py 如下

import os
import sys
import collections

import boto
from boto.s3.key import Key
from flask import Flask, render_template, url_for, abort, request 
from  flask.ext.frozen import Freezer
from werkzeug import cached_property
from werkzeug.contrib.atom import AtomFeed
import markdown
import yaml
from string import strip


...

class Blog(object):
    def __init__(self, app, root_dir='',file_ext=None):
        self.root_dir = root_dir
        self.file_ext = file_ext if file_ext is not None else app.config['POSTS_FILE_EXTENSION']
        self._app =app  #_ for private and internal
        self._cache = SortedDict(key = lambda p: p.date, reverse= True)
        self._initialize_cache()

 ...

app =  Flask(__name__)
app.config.from_envvar('SETTINGS_FILE') #configuration file
blog = Blog(app, root_dir= 'posts')
freezer = Freezer(app)
DOMAIN = 'cuboid.example.net'
AWS_ACCESS_KEY_ID = 'ABCDEFGHIJK'
AWS_SECRET_ACCESS_KEY = 'HUIHUGERUGHIUHSIUHH'

目前我无法将凭据放入其中,因为 boto 没有设置。py 你能告诉我是否有办法将 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY 放入设置中。派?

【问题讨论】:

    标签: flask boto


    【解决方案1】:

    创建一个名为settings.py 的文件,将您的密钥放入其中,使用import settings 加载它,然后将它们引用为settings.AWS_ACCESS_KEY_ID

    但是,从安全角度来看,您应该真正改用 IAM 角色。它们会自动为每个 EC2 实例提供临时密钥。

    http://docs.aws.amazon.com/IAM/latest/UserGuide/roles-usingrole-ec2instance.html

    【讨论】:

    • 谢谢,这很有帮助。我想知道这是否会使代码比硬编码到 generator.py 中更安全?
    • 是的。它会。如果您的应用程序遭到入侵,攻击者将无法直接访问持久密钥,从而减少可能造成的损害。
    猜你喜欢
    • 1970-01-01
    • 2012-07-31
    • 1970-01-01
    • 1970-01-01
    • 2018-10-07
    • 2016-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多