Резюме

Паролата, ключът или идентификацията са най-широко използваните и са един от най-важните инструменти, използвани от организациите за удостоверяване на приложения и потребители, предоставяйки им чувствителни системи, информация и услуги. Тъй като тайните трябва да се предават сигурно, управлението на тайните трябва да отчита и смекчава рисковете за тези тайни както по време на транзит, така и в покой.

цели

В този урок ще създадем проста ламбда функция,
Ще създадем също екран за регистрационен формуляр, екран за вход с помощта на AWS cognito и api шлюз от AWS. Това приложение ще съдържа жизненоважна информация като JWT токен, който бихме искали да запазим в безопасност и сигурност, за да можем да научим как да управляваме този токен с Doppler

Защо Secret Management

Токените, паролите и ключовете са най-широко използваната форма на удостоверяване за удостоверяване на потребители и други aSync приложения, преди те да имат достъп до която и да е друга услуга на вашето приложение или да съберат чувствителна информация, от която биха се нуждаели. Независимо от това, хакерите са на свобода и търсят системи, които могат да експлоатират от време на време, и за да спасите себе си или организацията, за която работите, малко пари, всички тайни, които засягат вашето приложение, трябва да бъдат сигурно съхранени.

Доплер като тайно решение за управление

Необходими са пароли и други тайни за удостоверяване на комуникация и достъп от приложение към приложение (A2A) и удостоверяване към база данни (A2B). Повечето пъти приложенията и IoT устройствата се доставят и внедряват с твърдо кодирани идентификационни данни, които са лесно кракнати от хакери с проста речникова атака, но с Doppler вече не е нужно да съхранявате тези ключове в тези скриптове, тъй като можете да ги пазите сигурно в Doppler.
Doppler подобри моята производителност само за малко време от използването на платформата. Doppler предоставя на своите потребители лесни начини за създаване на проекти, тъй като тяхната документация е лесна и проста за разбиране.

Нека се потопим направо в този урок и да видим как Доплер може да направи нещата толкова лесни.

Създавайте потребители с помощта на AWS Cognito

Ще създадем потребители на AWS cognito, който има хостван потребителски интерфейс, който потребителите могат да използват, за да се регистрират и да влизат в потребители и това е много проста работа, ако следвате инструкциите. По-долу има изображение на създадения от мен потребител.

Нашата цел да създадем този потребител е да се уверим, че само удостоверени потребители могат да влизат, за да използват услугите на нашето приложение и ние ще постигнем това с помощта на AWS шлюз, който ще ни даде JWT токен, специфичен за всеки потребител и това е токен, който ще искаме да защитим, защото не бихме искали този токен да се показва в интерфейса, защото може да бъде достъпен от всеки и да бъде използван за причиняване на сериозен хаос в нашето приложение.

Създайте ламбда функция

Така че нека създадем ламбда функция, която ще използва api gate-way, който ще ни помогне да получим JWT токен за удостоверяване на нашите потребители.
Няма да получаваме много подробности относно създаването на ламбда функция или добавянето на API шлюза, тъй като основният ни фокус е да добавим нашия JWT токен към Doppler.
По-долу е изображение на ламбда функцията, която създадохме който ще интегрираме с API Gateway малко по-късно.

Добавете API Gateway

Amazon API Gateway е AWS услуга за създаване и защита на REST, HTTP и WebSocket API във всякакъв мащаб. Разработчиците на API могат да създават API, които осъществяват достъп до AWS или други уеб услуги, както и данни, съхранявани в облака на AWS.
В този случай ще създадем HTTP шлюз.

Създайте проект на Доплер

Създаването на проект на Doppler е изключително просто и ясно, всичко, което трябва да направите, е да натиснете иконата плюс, за да създадете нов проект.
Влезте във вашия акаунт на Doppler и създайте нов проект нещо подобно

След като бъде създаден нов проект, се създават три етапа/среди, които са

  • развитие
  • Постановка
  • производство

Тези среди са мястото, където съхраняваме нашите тайни.

Синхронизирайте Doppler с AWS Secret Manager

Преди да можем да синхронизираме нашите тайни с Doppler, ще трябва да интегрираме тайния мениджър на AWS с Doppler и да синхронизираме AWS с Doppler, нека следваме стъпките по-долу

След като създадете проект, щракнете върху интеграции

Когато щракнете върху интеграции, трябва да ни отведе до нова уеб страница, където ще видим списък с различни услуги, с които можем да интегрираме Doppler, но в нашия случай ще използваме Secrets Manager за интеграция.

Щракнете върху Мениджър на тайни и ще бъдем насочени към друга страница, където ще бъдем помолени да дадем идентификатора на ключа и ключа за достъп на нашия мениджър на тайните на AWS. Ако нямате такъв, можете да го получите, докато създавате нов потребител на AWS Amplify, след като натиснете бутона Създаване на потребител, но ако имате такъв, това е начинът за достъп до него.

Go to I AM management console > select users >  Select the current user

Трябва да видите нещо подобно

Това е мястото, където ще намерите вашия ID на ключ за достъп и след това ще трябва да генерирате нов ключ за достъп.
Добавете тези ключове по-горе към Doppler, за да синхронизирате с вашия таен мениджър на AWS.

Doppler изисква разрешения за интегриране с нашия секретен мениджър на AWS и тези правила могат лесно да бъдат добавени във формат JSON.

Ако вече имате съществуващ потребител на IAM и искате да добавите нова политика, това е доста лесно.
Потърсете ключовата дума IAM в полето за търсене на AWS и то ще ви покаже функцията IAM AWS, щракнете върху нея, и след това изберете Потребители.
Първият отворен раздел е разделът с разрешения

Щракнете върху Add Inline Policy, за да създадете персонализирана политика, дайте й име и добавете тези политики във формат JSON

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowSecretsManagerAccess",
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue",
                "secretsmanager:DescribeSecret",
                "secretsmanager:PutSecretValue",
                "secretsmanager:CreateSecret",
                "secretsmanager:DeleteSecret",
                "secretsmanager:TagResource",
                "secretsmanager:UpdateSecret"
            ],
            "Resource": "*"
        }
    ]
}

Освен това, след като добавим нашите ключове за интегриране на Doppler с тайния мениджър на AWS, трябва да конфигурираме Doppler средата.

Изберете конфигурация за синхронизиране, региона на AWS, където моят е US-east-2 и по избор изберете път в Doppler, където ще се съхраняват всички ваши тайни от AWS.

Запазете JWT токена в Doppler

За да получите нашия JWT токен, след като потребителят влезе, погледнете лентата за търсене на браузъра си, ние ще копираме този токен и ще го съхраним на Doppler така

И сега най-интересната част от тази тема е да съхраним този таен токен на Доплер.

След като синхронизирате новия си проект с AWS, отворете новосъздадения проект на таблото за управление на Doppler.

Изберете новия проект, който сте създали и синхронизирали с AWS, аз ще избера

newdopplersecrets

Спомнете си, че избрахте среда, докато синхронизирахте с AWS и в моя случай аз избрах

Production(prd)

Ето защо според горното изображение prd е оцветен в зелено, защото е активен.

Ще щракнем върху активната среда, за да отидем до нова страница, където можем да добавим тайните, които искаме да качим в AWS.

Изображението по-горе трябва да е следващата страница, която ще видим, щракнете върху бутона Add First Secret, за да добавите JWT токена, който копирахме от браузъра по-рано.
Можете да добавите всяко име на ключ и токена като стойност

BASE_URL : https://doppler.com
BEARER_TOKEN : eyJraWQiOiJCUVRvNG9pSHNoK3FodGUrNGwydW9JKzBXZjFsK2tMQkJpckw3dHlXeUFNPSIsImFsZyI6IlJTMjU2In0.eyJhdF9oYXNoIjoiN19fa3VxOG5nV1hiN3ZEZmNTSTJaUSIsInN1YiI6ImU3YjQ0YWRjLTkyYjUtNDZmOS04M2EzLTlkNGMyMDc1ZmM0NiIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJpc3MiOiJodHRwczpcL1wvY29nbml0by1pZHAudXMtZWFzdC0yLmFtYXpvbmF3cy5jb21cL3VzLWVhc3QtMl9KM2ppVmtrbGIiLCJjb2duaXRvOnVzZXJuYW1lIjoiY2xzeWZyaWRheSIsImF1ZCI6IjIzcmRjdTRhZjFxdDc5MzRsMmE5cTZxbXM1IiwiZXZlbnRfaWQiOiJjNzdkZjdjZS1hZGE1LTQ4YmYtODM2YS0yNzJmYjViMmJkYjkiLCJ0b2tlbl91c2UiOiJpZCIsImF1dGhfdGltZSI6MTYzMzE3NDI4NiwiZXhwIjoxNjMzMTc3ODg2LCJpYXQiOjE2MzMxNzQyODYsImp0aSI6IjY5NjhiZjZkLWEwYzAtNDkyZi04ODA0LWQ0ZjE2OTRkMWY4YiIsImVtYWlsIjoiY2xzeWZyaWRheUBnbWFpbC5jb20ifQ.U43PFIzcIJOk0MHmCr1a87WKXE4LIosl7ZvoO6Eo27d_rnxGHeUyrP4r0xH9XUeAH7zQR6e4Uk75hCNI1RgD0wpgbaOrmVfnZGnnrBBJTVN9BKs2ZrcPd_53ky8vwSNKAaTYlqvCNRnzARZim85HCYdL0aJaqz-R0jteyb0_7aEvaum2RMHG6RYJ0aYP46fNv8TaYW9imlvGs774kKzLmnHuIHwfN74iHxs68tcT0HcTHMUWqlo08uIZ3szceLszRqmSc7DjU24-Y1qvcsMh01eHbUDq-pdmZTUqaQ1uVTY1vBs-EhlrYNKOr8P-oBga6CiwXWXTfPmf_BYM2pTtvw
PASSWORD : 0123456789

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

Освен това щракнете върху следващия раздел, озаглавен Интеграции и трябва да видим това

Сега нека щракнем върху текста Управление в най-крайния край, това трябва да ни отведе до нова уеб страница, където можем да натиснете синхронизиране, за да качите всички наши тайни в AWS Secret Manager.

Натиснете текста Синхронизиране и всички наши тайни ще бъдат добавени към диспечера на тайните на AWS.

За да потвърдите, че всичките ни тайни са качени в AWS от Doppler, щракнете върху връзката под раздела DESTINATION точно както на снимката по-горе и трябва да видим името doppler, добавено към името на проекта, който създадохме в AWS.

Ура, току-що запазихме нашите тайни на Doppler и успешно ги прехвърлихме в AWS, където имаме достъп до тях за използване и всеки път, когато актуализираме тайните на Doppler, те се актуализират автоматично на AWS.

Заключение

Стигнахме до края на този урок.
Разгледахме как да използваме AWS Cognito за създаване на потребители, използвайки техния хостван потребителски интерфейс. Научихме също как да създадем ламбда функция и да интегрираме ламбда функцията с API шлюз, който ни помогна да дадем JWT токени на потребителите и разгледахме как да съхраняваме този токен в Doppler.

Първоначално публикувано в https://dev.to на 12 октомври 2021 г.