Существует ли локальный режим разработки для AWS SSM? - PullRequest
0 голосов
/ 30 мая 2018

Абсолютный SSM noob здесь, в настоящее время мы используем SSM в нашей лямбда-функции, и чтобы использовать его, мы просто импортируем класс SSM и создаем экземпляр экземпляра, конструктор делает инъекции env var.

from aws_ssm import SSM
ssm = SSM()

Хотя это работает, как и ожидалось, при работе на AWS Lambda, но не работает на нашем локальном компьютере, обычно наши локальные учетные записи не настроены с SSM.

Для того, чтобыОбойдя SSM и загрузив переменные из существующих уже существующих env-переменных, мне нужно будет добавить переключатель:

if not os.environ.get('NO_SSM'):
    from aws_ssm import SSM
    ssm = SSM()

И мне это кажется хаком (особенно ложное условие, чтобы исправить это), яМне просто интересно, есть ли правильный способ сделать это для локальной разработки?

Просто подумав еще раз, было бы лучше изменить ситуацию изначально, чтобы использовать SSM, только когда определено USE_SSM env:

if os.environ.get('USE_SSM'):
    from aws_ssm import SSM
    ssm = SSM()

1 Ответ

0 голосов
/ 31 августа 2018

Просто создайте политику, подобную приведенной ниже, и предоставьте своему пользователю, чем вы можете продолжать использовать ту же стратегию, локальную или лямбда-версию.

PS: я здесь проверил, и она работает как шарм!

Вы также можете проверить мой PoC Lambda SSM проект.В этом проекте я использую serverless для разработки лямбды, и он работает, вызывая локально, используя invoke local -f hello_ssm.

Policy

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "ssm:GetParameter"
            ],
            "Resource": [
                "arn:aws:ssm:us-east-1:139486740103:parameter/my-secure-param"
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:139486740103:key/alias/aws/ssm"
            ],
            "Effect": "Allow"
        }
    ]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...