Post Syndicated from BeardedTinker original https://www.youtube.com/watch?v=6FzdJknJTiU
[$] RVKMS and Rust KMS bindings
Post Syndicated from jake original https://lwn.net/Articles/997850/
At the 2024 X.Org Developers
Conference (XDC), Lyude Paul gave a talk on the work she has been doing
as part of the Nova
project, which is an effort build an NVIDIA
GPU driver in Rust. She wanted to provide an introduction to RVKMS, which
is being used to develop Rust kernel mode setting (KMS)
bindings; RVKMS is a port of the virtual KMS (VKMS)
driver to Rust. In addition, she wanted to give her opinion on Rust, and why she
thinks it is
a “game-changer for the kernel
“, noting that the reasons are not
related to the oft-mentioned, “headline” feature of the language: memory
safety.
Blender 4.3 released
Post Syndicated from corbet original https://lwn.net/Articles/998863/
Version 4.3 of
the Blender animation system has been released. “Brush assets, faster
“
sculpting, a revolutionized Grease Pencil, and more. Blender 4.3 got you
covered.
Plans for CHICKEN 6
Post Syndicated from daroc original https://lwn.net/Articles/998856/
CHICKEN Scheme, a portable Scheme compiler, is gearing up for its next major release. Maintainer Felix Winkelmann has
shared
an article about what changes to expect in version 6 of the language, including better Unicode support and support for the
R7RS (small) Scheme standard.
Every major release is a chance of fixing long-standing problems with the codebase and address bad design decisions. CHICKEN is now nearly 25 years old and we had many major overhauls of the system. Sometimes these caused a lot of pain, but still we always try to improve things and hopefully make it more enjoyable and practical for our users. There are places in the code that are messy, too complex, or that require cleanup or rewrite, always sitting there waiting to be addressed. On the other hand CHICKEN has been relatively stable compared to many other language implementations and has a priceless community of users that help us improving it. Our users never stop reminding us of what could be better, where the shortcomings are, where things are hard to use or inefficient.
Rapid7 Extends AWS Support to Include Coverage for Newly-Launched Resource Control Policies (RCPs)
Post Syndicated from Ryan Blanchard original https://blog.rapid7.com/2024/11/20/rapid7-extends-aws-support-to-include-coverage-for-newly-launched-resource-control-policies-rcps/

In today’s cloud-first world, security and innovation go hand-in-hand. Rapid7 is excited to announce our support for Amazon Web Services’ (AWS) new Resource Control Policies (RCPs), a powerful tool designed to bolster security controls for organizations using AWS infrastructure. As a launch partner for this feature, Rapid7’s Exposure Command now extends its capabilities even further, helping organizations set precise, scalable guardrails within their AWS environments.
The need for strong guardrails in the Ciscloud
Cloud platforms like AWS have transformed business agility by enabling rapid development, fast deployments, and real-time scalability. Yet, as organizations increase their reliance on cloud infrastructure, they face a heightened risk landscape. Rapid development cycles and AI-driven cloud services often result in more identities, permissions, and resources—all of which can lead to excessive access and increased risk.
The need for stringent guardrails has never been more urgent. Without them, organizations risk unintentionally exposing data or resources as they rapidly scale operations.
AWS addresses this challenge with two main types of policies:
- Service Control Policies (SCPs): Manage access at the principal level (such as IAM users and roles), setting maximum permissions across the organization.
- Resource Control Policies (RCPs): Limit access directly at the resource level, with special utility for restricting external access across the AWS environment.
Building on broad and deep AWS coverage with support for RCPs
Exposure Command supports AWS RCPs through features that enhance security posture and operational insight by providing a centralized view of RCP use within the organization, enabling teams to monitor usage and governance of these policies. Cloud and Security teams can easily search, inspect, and understand RCP impacts on cloud resources, allowing for proactive adjustments with best practice recommendations that guide users through best practices in adopting RCPs.
This RCP support further extends the robust identity analysis capabilities offered by Exposure Command and InsightCloudSec, enabling organizations to automatically refine permissions organization-wide, uncovering and addressing overly permissive roles or unused access. By doing so, security teams are able to implement and effectively scale LPA adherence across AWS resources, enhancing security without compromising agility.
Exposure Command and InsightCloudSec support broad AWS coverage that extends well beyond RCPs and SCPs, encompassing a suite of tools to secure AWS cloud resources:
- Real-Time Visibility into AWS accounts, services, and resources.
- Vulnerability Management for proactive scanning, identification, and remediation across cloud assets.
- Context-Driven Risk Prioritization to address the highest-impact vulnerabilities based on risk, exploitability, and blast radius.
- Automated Remediation for rapid policy updates and resource configurations.
- Extensive and rapidly-expanding support for foundational AI/ML services from AWS to securely configure and track AI services usage with support for services including AWS Bedrock, SageMaker, Kendra, Comprehend, Polly and more.
Ready to Take Command of your AWS security?
As organizations embrace the cloud’s full potential, maintaining robust security while supporting rapid growth is critical. Rapid7’s Exposure Command, now with AWS RCP support, empowers security teams to adopt a zero-trust approach while maintaining the agility and flexibility that cloud environments demand. Together with AWS, we’re committed to helping organizations reduce risk, ensure compliance, and innovate confidently in the cloud.
Interested in learning more about RCPs and our expanded AWS support? Be sure to swing by booth #697 at AWS Re:Invent to chat and see the Command Platform in action!
За къпането и хигиената в България и в Западна Европа – без комплекси
Post Syndicated from Светла Енчева original https://www.toest.bg/za-kupaneto-i-higienata-v-bulgaria-i-v-zapadna-evropa-bez-kompleksi/

Страстите около пиесата на Джордж Бърнард Шоу от 1894 г. „Оръжията и човекът“, поставена от Джон Малкович в Народния театър, започнаха да поотшумяват. Един от поводите за протест срещу постановката беше представянето на българите в нея като къпещи се веднъж в седмицата (ако изобщо). И следва да признаем, че макар кампанията срещу „Оръжията и човекът“ да беше резултат от грижливо подготвено активно мероприятие, доста хора искрено се възмутиха от иронизирането на хигиената на сънародниците ни отпреди век и 30 години. Затова е време за една трезва ретроспекция на къпането и хигиената – не само в България.
Възмущението е старо, колкото пиесата
Критики към шегата на тема хигиена в „Оръжията и човекът“ се отправят скоро след поставянето на пиесата за първи път, разказва историкът Стефан Дечев. Според него „Шоу не е много убедителен“, когато твърди, че всъщност е иронизирал британците, а не българите, понеже поради мръсния въздух в големите градове сънародниците му трябвало да се къпят по-често. Шоу казва и че
ни най-малко не е имал намерение да внуши, че българският майор, който се мие веднъж седмично заради социалното си положение, или неговият баща, който не се е къпал през живота си, са нечистоплътни хора.
Също така провалянето на премиерата през 2024 г. в София не е прецедент. Звучи, като да се е случило век по-късно, но през 20-те години на ХХ век ВМРО проваля опит за поставянето на спектакъла в Петрич, а през 1921 г. български студенти протестират срещу него във Виена. И макар най-пиперливите пасажи да са премахнати от текста, пиесата е свалена след четири дни.
Накрая обиденият писател решава, че българите нямат чувство за хумор и самоирония. А това според него е белег на недостатъчно цивилизована култура. Той не поставя под въпрос собствената си позиция на привилегирован представител на висш социален слой на доминираща политически и културно държава.
За първи път „Оръжията и човекът“ (под заглавието „Шоколадовият войник“) се играе на българска сцена чак 101 години след създаването ѝ – през 1995 г. във Враца. След това – през 2000 г. в Русе. И двата пъти поставянето на пиесата минава без скандали.
Етнологически поглед към къпането
Допускането, че в края на XIX век българите се къпят веднъж седмично, впрочем е твърде оптимистично. Дечев се позовава на свидетелства и изследвания, според които някои са били къпани само по време на кръщене, след като умрат или ако ги навали дъжд. Други са отивали на баня по Великден и по Коледа.
И няма как да е било иначе. Не можем да очакваме хората да се къпят всеки ден, ако нямат съответните условия в дома си.
Никой няма да тръгне да се къпе, когато няма вода, а сложните заплитания на момите изискват много време. Това е излишно хабене на ресурс, на време,
казва етноложката Виолета Коцева пред Нова телевизия, която е авторка на книгата „Честита баня“.
В 300-те ѝ страници са представени изследванията ѝ върху хигиената на българите след 1878 г.
Къпането в неделя, обяснява Коцева, не е било свързано с хигиената, а се е правело (доколкото изобщо се е правело) по-скоро по религиозни съображения – да отидеш на църква „чист духовно и физически“. Разбирането, че има връзка между чистотата и здравето, не се е радвало на особена популярност. По-скоро хората са се страхували да не настинат на течение. Оттам и „разпространеното мнение, че от некъпане никой не е умрял, но от настинки гробищата са пълни“.
Хигиена и културно превъзходство
Британските протестантски мисионери, дошли по българските земи по време на Възраждането, схващат себе си, подобно на Бърнард Шоу, като носители на цивилизационно и културно превъзходство. Него те предават и на българските пастори, които обучават.
За отбелязване е, че първата работа на евангелските работници е била да обучат населението на най-елементарни познания по хигиена: да се мият, да си режат косите, да си готвят храната, да се обличат,
се казва в сборника „Вестители на истината. История на евангелските църкви в България“ под редакцията на Кристо Куличев.
Цитираният в сборника пастор Димитър Фурнаджиев пък разказва, че когато пастор Никола Бояджиев пристигнал в Ямбол през 1874 г.,
намерил хората да спят на земята, върху пръстта и влагата, да ядат седешком на земята с дебели дървени лъжици, които не всеки ден виждали вода за измиване. […] Една от първите му работи била да научи хората да живеят като възпитани и разумни хора […], изобщо да се отучат да живеят „така, както е останало от баба и дядо.
Хигиена и статусни различия
Фактът, че едни българи се опитват да „цивилизоват“ други българи, навежда на мисълта, че отношението към хигиената не е въпрос толкова на националност, колкото на начин на живот и социален статус.
В студията си „Психология на военната дисциплина“, включена в „Оптимистична теория за нашия народ“, Иван Хаджийски описва два основни типа войници в периода преди Втората световна война в България. Единият, когото Хаджийски самоиронично нарича Иван, е от средите на градската буржоазия. Тренчо пък е от село и не се е докосвал много-много до цивилизацията. Иван притежава развита индивидуалност, която животът в казармата пречупва. При Тренчо няма нищо за пречупване – него казармата по-скоро го изгражда и окултурява.
За Иван например, който е свикнал да си чете сутрешния вестник в домашната тоалетна, липсата на лично пространство в казармения клозет е мъчение. Докато Тренчо се чувства „като финландец в банята си. Бави се, води оживени разговори, пуща шеги, забавлява се и се чуди защо го карат да мие нужниците и да ги варосва. Най-сетне роптае, че му забраняват да прави своите излияния, където намери за по-удобно и по-близо: до дърво или в някое кьоше“.
По същия начин, докато казармената хигиена е крайно недостатъчна за Иван, на Тренчо трябва „всеки ден да проверяват врата, ръцете и ноктите, за да се види дали ги е докоснал до тази безцветна и безсмислена течност, наречена „вода“. Толкова борба трябва да се води, за да го накарат да не плюе по пода, да се пере и си сменя гащите, ризата, да си мие краката, да си пере миризливите вълнени чорапи, да иде на баня“.
Социалистическо и постсоциалистическо къпане
По времето на социализма протича процес на урбанизация – повече хора се преселват от селата в градовете. В градовете пък се строят жилищни блокове, в които вътрешната баня и тоалетна стават подразбиращ се стандарт. Същевременно немалка част от населението продължава да живее в къщи, много от които са без баня, често с външна тоалетна, а топла вода тече само през проточния бойлер „Юнга“ в кухнята.
Затова обществените бани (в населените места, в които ги има) се посещават масово чак до 90-те години. Неделята продължава да бъде „ден за баня“, но вече не по религиозни съображения, а по традиция и най-вече защото е почивен и неучебен ден.
Макар социалистическата пропаганда да призовава към хигиенни навици, посланията ѝ са доста по-различни от днешните представи за хигиена. От социалистическия човек се очаква сутрин не да си тегли душ, а да си измие лицето с вода. А в книга с наставления за правилния начин на живот може да прочетем следното:
Личното бельо не трябва да се преносва повече от една седмица, а при усилена работа – повече от четири дни.
Културата има свойството да се променя по-бавно от условията за живот. От наличието на баня у дома не следва, че обитателите на съответния дом автоматично ще започнат да я използват всекидневно. Ако са свикнали, че човек се къпе веднъж седмично – в неделя, те с голяма вероятност ще продължат да го правят. И нищо чудно да твърдят, че всекидневната баня е вредна.
Нерядко промяната настъпва чак при следващите поколения, чиито представители имат баня вкъщи, откакто се помнят, и са изложени на повече внушения, представящи честото къпане като нещо естествено и правилно. Затова не е учудващ отговорът на възрастния мъж в репортажа на Нова телевизия за етноложката Виолета Коцева, който казва, че се къпе веднъж на 4–5 дни.
По данни на НСИ 11,5% от съвременните жилища в България не разполагат с вътрешна тоалетна, а близо 7% са без баня. В селата вътрешна тоалетна нямат 20% от домакинствата. Делът на хората без тоалетна и/или баня със сигурност е в пъти по-голям от този на жилищата и домакинствата – по данни от последното преброяване едно градско домакинство се състои средно от 2,2 членове, а селското – от 2,4. Освен това едно жилище може да се обитава от повече домакинства.
Поздрави от Наполеон
Връщам се след три дни. Не се къпи,
гласи известно писмо на Наполеон до съпругата му Жозефин.
От съвременна гледна точка тази заръка звучи, меко казано, странно. Но допреди някой и друг век не само по българските земи, а и в Западна Европа естествената телесна миризма не се възприема като гнусна, а може дори да е възбуждаща.
В книгата си „Относно процеса на цивилизация“ немският социолог Норберт Елиас изследва прехода от средновековно към модерно общество. Противно на разпространеното мнение за рестриктивното Средновековие, Елиас привежда доказателства, че срамът от собственото тяло и естествените потребности и изобщо способността да се самоконтролираш и самопринуждаваш са плод на Ренесанса и Просвещението и все повече се усилват през модерността.
При това връзката на самоконтрола с хигиената е много късна „опера“ – чак от XIX век нататък. Преди това тялото става по-скоро обект на срам, а този срам може и да е в противоречие с хигиената. През 1558 г. например Джовани дела Каза, архиепископ на Беневент, съветва:
Когато се връща от отходното място, [човек] не си измива ръцете пред отбрано общество, ако причината, поради която се мие, ще накара людете да си представят някаква гнусота.
По времето на индустриалната революция къпането става белег на социален статус. Градовете се препълват с нископлатени работници, живеещи сред мръсотия и без достъп до чиста вода. За разлика от тях, представителите на висшите класи толкова се привързват към своите бани, че дори си имат вани за пътуване. Бедността се възприема не само като недостойна, а и като смрадлива.
Хигиената впрочем става част от модерната култура не поради някакви възвишени съображения, а по необходимост. Лошите условия, в които живеят и се трудят работниците през XIX век, води до серия епидемии от холера. Междувременно Луи Пастьор открива връзка между микробите и болестите. И така, втората половина на XIX век във Великобритания става време на опити за реформиране на общественото здраве, за прокарване на водопроводи и канализация, изграждане на тоалетни, контрол на чистотата в кланици и магазини.
А през ХХ и XXI век?
И все пак и през миналото столетие всекидневното къпане не е повсеместно разпространено не само в страни като България, а и в Западна Европа, защото и там в немалко домове е липсвала баня. И за хората, които са ги обитавали, както и за българите, обичайният вариант е бил ходене на баня веднъж седмично.
По-рядкото къпане в не толкова далечното минало в сравнение с наши дни се иронизира в някои германски сериали. Действието в „Берлински Вавилон“ например се развива от края на 20-те до края на 30-те години на ХХ век. Още в първия епизод виждаме как Шарлоте Ритер, главната героиня, небрежно се позамива с вода от леген след дълга нощ на сексуален труд. В един от следващите сезони инспектор Гереон Рат не заварва Шарлоте вкъщи, защото „днес ѝ е ден за баня“.
Действието в друг сериал – „Ku’damm 56“ – се развива през 50-те години на ХХ век в престижен район на Берлин. След като майката на една от героините продължава да се опитва да я сватоса с мъж, който я е изнасилил, младата жена споделя, че се чувства мръсна. „Ами изкъпи се! Нищо че днес е сряда“ – отговаря майката, правейки се, че не разбира.
Впрочем би било наивно да допускаме, че и през XXI век на Запад всички се къпят поне по веднъж ден. Не само защото и там не всички разполагат със съответните условия. А и защото някои съзнателно избират да не се къпят толкова редовно – било защото принадлежат към определена субкултура, било по здравословни съображения – защото смятат, че твърде честото миене разрушава естествения микробиом на кожата и прави организма по-податлив на инфекции.
Като погледнем на къпането в по-широка перспектива, виждаме, че всъщност нямаме никакво основание да се обиждаме. Дори ако Бърнард Шоу, а след него и Джон Малкович гледат на българите от позицията на някакво културно и цивилизационно превъзходство. Защото общество, в което всички се къпят всеки ден, не е съществувало нито в края на XIX век, нито има такова днес. Модерната цивилизация е повече шарена, отколкото чиста. И понякога понамирисва.
This is the Microsoft Azure HBv5 and AMD MI300C
Post Syndicated from Patrick Kennedy original https://www.servethehome.com/this-is-the-microsoft-azure-hbv5-and-amd-mi300c-nvidia/
At SC24 we saw the custom 96 core AMD MI300C HBM3 CPU and four-socket system powering the Microsoft Azure HBv5 instances
The post This is the Microsoft Azure HBv5 and AMD MI300C appeared first on ServeTheHome.
Security updates for Wednesday
Post Syndicated from daroc original https://lwn.net/Articles/998854/
Security updates have been issued by Debian (guix, libmodule-scandeps-perl, needrestart, and thunderbird), SUSE (gh), and Ubuntu (kernel, linux, linux-aws, linux-aws-hwe, linux-azure, linux-azure-4.15, linux-gcp,
linux-gcp-4.15, linux-hwe, linux-kvm, linux-oracle, linux, linux-aws, linux-gcp, linux-gcp-6.8, linux-gke, linux-hwe-6.8,
linux-ibm, linux-nvidia, linux-nvidia-6.8, linux-nvidia-lowlatency,
linux-oem-6.8, linux-oracle, linux-raspi, linux-iot, linux-lowlatency, linux-lowlatency-hwe-6.8, needrestart, python2.7, python3.10, python3.12, python3.8, and Waitress).
How do I land? Adventure in an F-86
Post Syndicated from The History Guy: History Deserves to Be Remembered original https://www.youtube.com/watch?v=-GOb_TgbpBA
Monitoring VMware vSphere with Zabbix
Post Syndicated from Mateusz Romaniuk original https://blog.zabbix.com/monitoring-vmware-vsphere-with-zabbix/29193/
Zabbix is an open-source monitoring tool designed to oversee multiple IT infrastructure components, including networks, servers, virtual machines, and cloud services. It operates using both agent-based and agentless monitoring methods. Agents can be installed on monitored devices to collect performance data and report back to a centralized Zabbix server.
Zabbix provides comprehensive integration capabilities for monitoring VMware environments, including ESXi hypervisors, vCenter servers, and virtual machines (VMs). This integration allows administrators to effectively track performance metrics and resource usage across their VMware infrastructure.
In this post, I will show you how to set up Zabbix monitoring with a VMware vSphere infrastructure.
Table of Contents
Requirements:
- Zabbix server
- Access to the VMware vCenter Server
Step one: Create a Zabbix service user in the vCenter
First things first, let’s create a service user on the vCenter that will be used by the Zabbix server to collect data. To make life easier, in my lab setup the user [email protected] will have full Administrator privileges. Read-only permissions should be enough, however.
1. In the vSphere Client, choose Menu -> Administration -> Users and Groups. From the Users tab, select Domain vsphere.local, and click the ADD button to add a new user.
2. Type a username and password. Click ADD to create a new user.
3. Change the tab to Groups and select the Administrators group.
4. Find a new user zabbix, click on it and save. The user is added to the Administrators group.
5. From the Host and Clusters view, choose vCenter name and go to the Permissions tab. Click the Add button.
6. Choose a proper domain (vsphere.local), find the user zabbix, set the role to Administrator, and check Propagate to children. Click OK to give those permissions.
Step two: Make changes on the Zabbix server
Next, we need to edit zabbix_server.conf. In this file we need to enable the vmware collector process. It’s necessary to start VMware monitoring. FYI, I have installed Zabbix server in version 7.0.4.
1. Edit a configuration file zabbix_server.conf
vim /etc/zabbix/zabbix_server.conf
2. Find the StartVMwareCollectors parameter, delete “#” before it and change the value from 0 to at least 2. Save the file and exit.
Except for StartVMwareCollectors which is mandatory, it’s possible to enable and modify additional VMware parameters. You can find more details about them HERE.
VMwareCacheSize
VMwareFrequency
VMwarePerfFrequency
VMwareTimeout
3. Restart the zabbix-server service.
systemctl restart zabbix-server
Step three: Configure the VMware template on Zabbix
1.Log in to the Zabbix server via GUI – http://zabbix_server/zabbix. Go to the Hosts section under the Monitoring tab.
2. Create a new “Host.” Click Create Host in the right upper corner.
3. In the Host tab provide the following details:
Host name – type the name of the system that we want to monitor – here it is VMware Infrastructure.
Templates – type/find template name “VMware”, more info about VMware template you can find HERE.
Host groups – find/type “VMware(new)” host group.
At this point, go to the Macros tab.
4. In the Macros tab you need to provide 3 values/macros. These macros describes data that is needed to connect Zabbix to the VMware vCenter:
{$VMWARE.URL} – VMware service (vCenter or ESXi hypervisor) SDK URL (https://servername/sdk) that we want to connect.
{$VMWARE.USERNAME} – VMware service username created in the 1 section.
{$VMWARE.PASSWORD} – VMware service user password created in the 1 section.
Click the Add button.
5. A new Host was created and data collection is in progress.
6. Depending on the size of the infrastructure, data collection takes different amounts of time. Once configured, Zabbix will automatically discover VMs and begin collecting performance data. You can find an overview of the latest data in the Dashboard screen.
7. More specific and detailed data can be found in Latest data under the Monitoring tab.
In Host groups or Hosts choose the name of the item you are looking for (you can also click the “Select” button). Select the name of the ESXi host, the virtual machine, the vCenter name, the datastore, or all VMware information.
Zabbix can collect multiple metrics from VMware using its built-in templates. These metrics include:
– CPU usage
– Memory consumption
– Disk I/O statistics
– Network traffic
– Datastore capacity
In conclusion
Integrating Zabbix with VMware provides a robust solution for monitoring virtualized environments and enhancing visibility into system performance and resource utilization, while enabling timely alerts and responses to operational issues.
The post Monitoring VMware vSphere with Zabbix appeared first on Zabbix Blog.
Cursed Candy?
Post Syndicated from The History Guy: History Deserves to Be Remembered original https://www.youtube.com/watch?v=kDkkyMvy-Ik
Rocky Linux 9.5 released
Post Syndicated from corbet original https://lwn.net/Articles/998809/
Version
9.5 of the Rocky Linux distribution is out. As with the AlmaLinux 9.5
release, Rocky Linux 9.5 tracks the changes in upstream RHEL 9.5. See the release notes
for details.
Comic for 2024.11.20 – Bathroom
Post Syndicated from Explosm.net original https://explosm.net/comics/bathroom
New Cyanide and Happiness Comic
Arizona Chess
Post Syndicated from xkcd.com original https://xkcd.com/3014/

FreeCAD 1.0 released
Post Syndicated from corbet original https://lwn.net/Articles/998807/
It took more than 20 years, but the FreeCAD computer-aided design project
has just made
its 1.0 release.
Since the very beginnings, the FreeCAD community had a clear view
of what 1.0 represented for us. What we wanted in it. FreeCAD
matured over the years, and that list narrowed down to just two
major remaining pieces: fixing the toponaming problem, and having a
built-in assembly module.Well, I’m very proud to say those two issues are now solved.
re:Invent 2024: Your Amazon SES and AWS End User Messaging guide to AWS’s biggest event
Post Syndicated from Will Quillin original https://aws.amazon.com/blogs/messaging-and-targeting/reinvent-2024-your-amazon-ses-aws-end-user-messaging-guide-to-awss-biggest-event/
On December 2, AWS re:Invent conference returns to Las Vegas for our 13th year. With the conference approaching, our tailored sessions for Amazon SES and AWS End User Messaging will make your re:Invent experience worthwhile.
Discover new ideas and reaffirm your AWS skills
BIZ205: Simplify your email with Amazon SES and Amazon Q*
Monday, Dec 2nd| 12:00 PM–2:00 PM PST
- Leverage public information and Amazon Q to evaluate your company’s entire email presence.
- Build a managed email infrastructure that extends beyond inboxes and into all email applications across networks.
*Note: This session’s title is out of date in the re:Invent catalog.
BIZ209: Unlock higher email deliverability rates with Amazon SES
Monday, Dec 2nd| 10:00 AM–11:00 AM PST
- Learn to identify and resolve common email deliverability issues using Amazon Simple Email Service (SES) and Virtual Deliverability Manager.
- Solve real-world scenarios using diagnostic tools.
- Get step-by-step guidance to improve email delivery rates and ensure messages reach their intended recipients.
BIZ206: Implementing resilient omni-channel notifications with AWS
Monday, Dec 2nd| 8:00 AM–10:00 AM PST
- Learn how to build a resilient omni-channel notification system with fallback options.
- Discover how to use AWS services like Amazon API Gateway, AWS Lambda, AWS End User Messaging, and Amazon SES to create a solution that monitors message delivery and automatically creates channel fallback options.
BIZ311: Send high-volume one-time passwords via SMS and email
Wednesday, Dec 4th| 9:00 AM–10:00 AM PST
- Set up one-time passwords (OTPs) for multi-factor authentication, payment verification, and account recovery.
- Gain insights into configuring SMS and email for high-volume, international, and resilient OTP sending.
BIZ301: Integrating SMS capabilities with AWS End User Messaging
Monday, Dec 2nd| 2:30 PM–3:30 PM PST
Wednesday, Dec 4th| 4:00 PM–5:00 PM PST
- Designed for developers and technical individuals looking to add SMS sending to their applications.
- Learn the fundamentals of SMS and how to set up AWS End User Messaging.
If you have signed up for re:Invent, you can directly reserve your spot in the sessions here (login required).
Map out your schedule with re:Invent attendee guides
With sessions up and down the Las Vegas Strip, planning your agenda is critical to make the most of your time at re:Invent. Find specific attendee guides below:
- Telecom attendee guide
- Retail and consumer goods attendee guide
- First time attendees attendee guide
- Generative AI attendee guide
Explore the session catalog to see available sessions, including chalk talks, workshops, builders’ sessions, and more.
Can’t make it in-person? Join the virtual re:Invent 2024 experience
If you’re unable to travel to Vegas this year, you can still watch remotely! All keynotes and leadership sessions will be livestreamed and available on demand. After the event, breakout sessions will be available to stream; closed captioning is available as well. There will also be other livestreamed events, like behind-the-scenes programming, commentary from special guests, and more.
Register now to take your AWS knowledge to the next level. Plan your time in Las Vegas to make the most of the available sessions, get inspired by the global cloud community, and learn the latest from AWS.
Check out the FAQs for answers to all your re:Invent questions.
See you at re:Invent 2024!
Harper Steele | Will & Harper | Talks at Google
Post Syndicated from Talks at Google original https://www.youtube.com/watch?v=X_TB4VxPjPo
Build a Secure One-Time Password Architecture with AWS
Post Syndicated from Bruno Giorgini original https://aws.amazon.com/blogs/messaging-and-targeting/build-a-secure-one-time-password-architecture-with-aws/
In today’s digital landscape, where cyberattacks continue to grow more sophisticated, the need for robust security measures has never been more paramount. One-Time Passwords (OTPs) have long been a crucial component of multi-factor authentication. They provide an additional layer of security to protect user accounts from unauthorized access.
The landscape of OTP delivery is evolving rapidly. While organizations increasingly favor more secure, phishing-resistant methods like passwordless solutions and hardware security keys, many still rely on SMS-based OTPs or require time to transition to newer technologies.
For organizations already leveraging Okta as their identity provider, AWS offers a comprehensive guidance on implementing phone-based multi-factor authentication. The “AWS Guidance for Okta Phone-Based Multi-Factor Authentication on AWS” provides a detailed reference architecture and implementation steps for integrating Okta with AWS services to deliver OTPs via SMS or voice calls.
This blog post offers a comprehensive guide for implementing a reliable, multi-channel OTP solution using AWS services including Amazon DynamoDB, Amazon Simple Email Service (SES), and AWS End User Messaging.
By the end of this blog, you’ll understand how to generate, store, and deliver OTPs via email, SMS, and voice. You’ll also learn best practices for secure OTP implementation. This solution serves organizations that need to maintain SMS-based OTP capabilities.
Let’s explore how to build a secure, multi-channel OTP solution on AWS.
AWS End User Messaging is the new name for Amazon Pinpoint’s SMS, MMS, push, WhatsApp, and text to voice messaging capabilities.
The authentication flow
Let’s imagine a hypothetical scenario where a bank customer want’s to access his online account:
Alex, a customer of the XYZ financial institution, needed to access their online account. They initiated the login process and requested an OTP from the mobile or web application provided by the bank. Upon receiving the request, the bank’s server created a user-specific session to handle the OTP generation and verification. A unique one-time password was then generated and sent to Alex’s registered mobile number via SMS. Alex received the OTP on their phone and had three attempts to enter the correct code within a 10-minute timeframe. This security measure prevented unauthorized access to their account. If Alex couldn’t receive the SMS, they had another option. They could request the bank to send the same OTP to their registered email address, if they had one on file. If Alex entered the correct OTP, the login process would be successful, and they would be granted access to their online banking services. However, if they exceeded the three attempts in the 10-minute time limit, their ability to login to the account would be temporarily suspended for security reasons and Alex would have to call the bank to lift the suspension or wait 2 hours to retry again. The bank implements this multi-factor authentication process with an alternative email-based OTP delivery. This approach safeguards Alex’s sensitive financial information and enhances the security of digital banking services. It also provides a backup option if the primary SMS channel is unavailable.

Prerequisites
To use the code examples provided in this blog post, you’ll need to have the following AWS resources in place:
- AWS Account: Sign up for an AWS account at AWS website if you don’t have one.
- Verified Email Address in Amazon SES: Enable email delivery of OTPs by verifying an email address in Amazon SES service.
- AWS End User Messaging Configuration: You’ll need to configure the necessary origination identity in the AWS End User Messaging service to deliver the OTPs via SMS or voice.
With these prerequisites in place, you’ll be ready to use the code examples provided in the following sections to implement your secure OTP solution.
Architecture:

Flow Explained:
- The user initiates the process by requesting an OTP.
- The request is sent through Amazon API Gateway.
- AWS Lambda receives the request and processes it.
- AWS KMS is used to encrypt the OTP for secure storage.
- The encrypted OTP and related information are stored in Amazon DynamoDB.
- AWS End User Messaging is used to send the OTP to the user via SMS, email, or voice, Amazon SES is used to send the OTP over email.
- When the user receives the OTP, they enter it in the portal for verification. The verification process encrypts the value with the key from AWS KMS and goes through the same flow (API Gateway -> Lambda)
- The Lambda decrypts the OTP for verification using KMS and compares it with the stored value in DynamoDB, which is also decrypted using the same KMS key.
Typical architecture for a secure one-time password (OTP) solution would involve the following components:
- Front-end Application: The OTP functionality is typically exposed through a web or mobile application, which serves as the user-facing interface.
- API Gateway: The front-end application interacts with the OTP solution through an API Gateway. This gateway serves as the entry point, providing scalable and secure access to underlying services.
- AWS Lambda: The business logic for generating, storing, and verifying the OTPs is handled by one or more AWS Lambda functions. These serverless functions are responsible for the core OTP-related operations.
- AWS KMS: Encrypts the OTP submitted for verification by the customer on the client side. AWS Lambda then decrypts it before verifying it against the OTP stored in Amazon DynamoDB.
- Amazon DynamoDB: The generated OTP encrypted and associated metadata, such as creation timestamp and expiration, are securely stored in an Amazon DynamoDB table.
- AWS End User Messaging: Used to deliver the OTPs to the users through various communication channels, such as SMS, and voice.
- Amazon SES: Deliver the OTPs to the users via email.
In a production environment, it’s also important to consider the following security measures:
- AWS WAF (Web Application Firewall): To protect the API Gateway from common web-based attacks, such as SQL injection and cross-site scripting (XSS).
- Authentication and Authorization Services: Ensuring that the front-end application and users are properly authenticated and authorized before accessing the OTP-related functionality. Visit Control and manage access to REST APIs in API Gateway to view the available methods of managing access to Amazon API Gateway.
This architecture enables organizations to build a comprehensive and secure one-time password solution. It protects users’ sensitive information and offers a seamless authentication experience.
Generating OTPs
To generate the OTPs, the server used the pyotp (link) library in Python. This library provides a secure random number generator to create unique, hexadecimal-encoded tokens. The server-side generation ensures that the OTPs are truly random and unpredictable, a crucial requirement for effective one-time password authentication.
The server generates a 6-character hexadecimal OTP, creating approximately 16.8 million possible unique combinations. This approach keeps codes short and easy for users to enter while maintaining security. After generation, the server securely stores the OTP and sends it to the user through the chosen delivery channel (SMS, email, or voice).
Sample Code:
import secrets
import pyotp
def generate_otp():
"""
Generates a secure one-time password using the pyotp library.
Returns:
str: The generated one-time password.
"""
# Generate a random base32 secret - https://pyauth.github.io/pyotp/
totp = pyotp.TOTP(pyotp.random_base32())
# Use the Time-based One-Time Password (TOTP) algorithm to generate a 6-digit OTP
return totp.now()
It’s important to note that the generated OTP values should be encrypted on the client-side before being sent to the server for storage. This can be achieved by using AWS Key Management Service (KMS) to securely encrypt the OTP values.
By encrypting the OTP values before storing them in the DynamoDB table, you can further enhance the security of the solution and protect against potential data breaches. The encrypted values ensure that even if the database is compromised, the raw OTP values are not directly accessible.
Next, the encrypted OTP values are stored in the DynamoDB table, along with necessary metadata to manage the OTP lifecycle. This metadata includes creation timestamp, expiration, and verification attempts. The specifics of this storage process are covered in the ‘Securely Storing OTPs’ section.
Securely Storing OTPs
Once generated, the OTPs will be stored in an Amazon DynamoDB table. DynamoDB is a fully managed NoSQL database service that provides reliable, high-performance data storage and retrieval, making it an ideal choice for our secure OTP solution. To store the OTPs, you’ll create a DynamoDB table with the user_id as the primary key. This approach ensures that the same user can’t generate multiple OTPs. The put_item() operation will fail if it encounters a duplicate user_id value. Depending your use case, you can change this to be a random id or a concatenation of the user id and a random id.
Once generated, the OTPs are stored in an Amazon DynamoDB table. DynamoDB, a fully managed NoSQL database service, provides reliable, high-performance data storage and retrieval, making it ideal for our secure OTP solution.
To store the OTPs, create a DynamoDB table with the user_id as the primary key. This approach allows for efficient retrieval of a user’s current OTP. When storing a new OTP for a user:
- If no existing entry is found for the user_id, a new item is created.
- If an entry already exists, it’s updated with the new OTP, effectively overwriting the old one.
This method ensures that each user has only one active OTP at a time, while still allowing users to request new OTPs when needed (for example, if the previous one expired).
Depending on your use case, you can modify the primary key to be a random id or a concatenation of the user id and a random id for additional security.
In addition to the user_id and otp_code, we’ll also include the following attributes:
-
creation_timestamp: The timestamp indicating when the OTP was generated. This is compared with the timestamp of each attempt to ensure all attempts fall within the allowed time window.ttl: The Unix timestamp representing the time-to-live (TTL) for the OTP, after which the DynamoDB item will be automatically deleted. Set this value to 24 hours from the creation time. This allows for a reasonable cleanup period while ensuring expired OTPs are removed from the database.attempts: The number of remaining verification attempts for the OTP.verified: A boolean flag indicating whether the OTP has been successfully verified.locked: A boolean flag indicating whether the user’s account has been locked due to exhausted verification attempts.
Sample Code:
import time
import boto3
from datetime import datetime, timedelta
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('otp_main')
def store_otp(user_id, otp_code):
"""
Stores the generated one-time password in an Amazon DynamoDB table with a creation timestamp, TTL, and remaining attempts.
Args:
user_id (str): The unique identifier for the user.
otp_code (str): The generated one-time password.
Returns:
dict: The response from the DynamoDB put_item operation.
"""
# Get the current timestamp
creation_timestamp = datetime.now().isoformat()
# Calculate the expiration time for the OTP (10 minutes from now)
expiration_time = datetime.now() + timedelta(minutes=10)
# Convert the expiration time to a Unix timestamp for the DynamoDB TTL
ttl_value = int(time.mktime(expiration_time.timetuple()))
# Store the OTP, creation timestamp, TTL, remaining attempts, and verification status in the DynamoDB table
response = table.put_item(
Item={
'user_id': user_id,
'otp_code': otp_code,
'creation_timestamp': creation_timestamp,
'ttl': ttl_value,
'attempts': 3,
'verified': False,
'locked': False
}
)
return response
We use the user_id as the primary key and store creation timestamp, TTL, remaining attempts, verification status, and account lock status. This approach ensures a secure and efficient OTP storage and retrieval process. This approach also allows for precise management of OTP expiration and account locking, as demonstrated in the Verifying OTPs section.
The encrypted OTP values are stored in the otp_code attribute. Encryption is performed on the client-side using a secure key management solution, like the AWS KMS client-side library. This ensures that the raw OTP values are never transmitted or stored in plain text, further enhancing the security of the solution.
Note: As an optional enhancement, you could use Amazon SQS with a visibility timeout set to the OTP validity period. A payload containing the user_id is sent to a Lambda function. After the visibility timeout, the function processes the SQS message and deletes the corresponding DynamoDB item. This approach provides greater precision compared to relying solely on DynamoDB TTL, though it adds complexity to the implementation. The current solution compares each verification attempt’s timestamp with the creation timestamp, ensuring that no attempts occur after the OTP has expired.
Delivering OTPs via Multiple Channels
Now that we have a secure way to generate and store the OTPs, it’s time to focus on delivering them to your users. Our solution leverages the AWS End User Messaging capabilities to provide a seamless and redundant OTP delivery experience across multiple communication channels.
Sending OTPs via SMS and Voice
AWS End User Messaging offers a versatile platform for OTP delivery across multiple channels, including email, SMS, voice calls, push notifications, and WhatsApp. This provides a redundant and convenient authentication experience for your users, ensuring they can receive their one-time passwords via their preferred method.
Sample Code:
import boto3
def send_otp_sms(mobile_number, otp_code, user_id, region_name):
"""
Sends an OTP code to the user's mobile number using AWS End User Messaging SMS.
Args:
mobile_number (str): The phone number to send the OTP to.
otp_code (str): The one-time password to be sent.
user_id (str): The unique identifier for the user.
region_name (str): The AWS region to use for the SESv2 client.
Returns:
dict: The response from the End User Messaging SMS send_text_message operation.
"""
# Construct the SMS message with the OTP code
message = f"""
This is an AWS End User Messaging OTP message.
Your one-time password is: {otp_code}.
"""
try:
# Create a new SMS-Voice v2 client
aws_sms = boto3.client('pinpoint-sms-voice-v2')
# Use the End User Messaging SMS client to send the SMS message
response = aws_sms.send_text_message(
DestinationPhoneNumber=mobile_number,
MessageBody=message,
MessageType='TRANSACTIONAL'
)
return {'StatusCode': 200, 'Response': response['MessageId']}
except ClientError as e:
error_message = e.response['Error']['Message']
return {'StatusCode': 500, 'Response': error_message}
Sending OTPs via Email
To deliver OTPs via email, we’ll use the Amazon SES (Simple Email Service) SendEmail API. SES is a highly scalable and cost-effective email service. It can send notifications, alerts, and in our case, one-time passwords to users.
Sample Code:
import boto3
from botocore.exceptions import ClientError
def send_otp_email(user_id, email_address, otp_code, region_name):
"""
Sends an OTP code to the user's email address using Amazon SESv2.
Args:
user_id (str): The unique identifier for the user.
email_address (str): The email address to send the OTP to.
otp_code (str): The one-time password to be sent.
region_name (str): The AWS region to use for the SESv2 client.
Returns:
dict: The response from the SESv2 send_email operation.
"""
try:
# Create a new SESv2 client
ses = boto3.client('sesv2', region_name=region_name)
# Construct the email message with the OTP code
message = "<p>Your one-time password is: </p> {otp_code}"
html_body = message.format(otp_code=otp_code)
# Use the SESv2 client to send the email
response = aws_email.send_email(
FromEmailAddress='[email protected]',
Destination={
'ToAddresses': [
email_address,
]
},
Content={
'Simple': {
'Subject': {
'Charset': 'UTF-8',
'Data': 'Your AWS OTP code'
},
'Body': {
'Html': {
'Charset': 'UTF-8',
'Data': html_body
}
}
}
}
)
return {'StatusCode': 200, 'Response': response['MessageId']}
except ClientError as e:
error_message = e.response['Error']['Message']
return {'StatusCode': 500, 'Response': error_message}
Verifying OTPs
The final piece of our secure OTP solution is the process of verifying the one-time passwords entered by your users. This is a crucial step in the authentication flow, as it ensures that only legitimate users are granted access to your applications or services.
The OTP verification logic is handled by a Lambda function that interacts directly with the DynamoDB table where the OTPs are stored. This Lambda function performs the following steps:
- Retrieve the stored OTP and its associated metadata from the DynamoDB table, using the
user_idas the primary key. This metadata includes the creation timestamp and the number of remaining attempts. - Decrypt the retrieved OTP value using the KMS client-side library, as the OTP was encrypted on the client side before being stored.
- Compare the unencrypted OTP value with the one entered by the user.
- Verify that the OTP has not expired by comparing the creation timestamp with the current time.
- If the OTP is valid and not expired, update the verification status in the DynamoDB table and delete the corresponding item.
- If the OTP is invalid or expired, deduct an attempt from the remaining attempts count stored in the DynamoDB table.
- If the remaining attempts count reaches zero, lock the user’s account and return an appropriate response.
Sample Code:
import boto3
from boto3.dynamodb.conditions import Key
from datetime import datetime, timedelta
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('otp_main')
def verify_otp(otp_entered, user_id):
"""
Verifies the one-time password entered by the user against the stored OTP in DynamoDB.
Args:
otp_entered (str): The one-time password entered by the user.
user_id (str): The unique identifier for the user.
Returns:
dict: The result of the OTP verification, containing the verification status and the OTP code.
"""
try:
# Query the DynamoDB table to find the stored OTP for the given user
response = table.query(
KeyConditionExpression=Key('user_id').eq(user_id)
)
if 'Items' in response and response['Items']:
for item in response['Items']:
# decrypt the retrieved OTP value using the KMS client-side library
if str(otp_entered) == decrypt_otp(item['otp_code'], user_id):
# Check if the OTP has expired
creation_timestamp = datetime.fromisoformat(item['creation_timestamp'])
if datetime.now() - creation_timestamp < timedelta(minutes=10):
# Update the verification status and delete the DynamoDB item
update_item = table.update_item(
Key={'user_id': user_id},
UpdateExpression='SET verified = :verified',
ExpressionAttributeValues={':verified': True}
)
table.delete_item(Key={'user_id': user_id})
return {'result': True, 'otp': item['otp_code']}
else:
# Deduct an attempt from the remaining attempts count
update_item = table.update_item(
Key={'user_id': user_id},
UpdateExpression='SET attempts = attempts - :1',
ExpressionAttributeValues={':1': 1}
)
if item['attempts'] <= 0:
# Lock the account if the attempts are exhausted
update_item = table.update_item(
Key={'user_id': user_id},
UpdateExpression='SET locked = :locked',
ExpressionAttributeValues={':locked': True}
)
return {'result': False, 'otp': item['otp_code']}
else:
# Handle invalid OTPs
pass
# If the OTP is not found or does not match, return a failure result
return {'result': False, 'otp': None}
except Exception as e:
error_message = str(e)
return {'result': False, 'error': error_message}
def decrypt_otp(encrypted_otp, user_id):
"""
decryptes the OTP value using the KMS client-side library.
Args:
encrypted_otp (str): The encrypted OTP value stored in DynamoDB.
user_id (str): The unique identifier for the user.
Returns:
str: The unencrypted OTP value.
"""
# decrypt the OTP value using the KMS client-side library
return decrypt_using_kms(encrypted_otp, user_id)
In this implementation, a Lambda function handles the OTP verification logic. This ensures sensitive operations like OTP decryption and managing expiration and attempt counts occur in a secure, serverless environment.
Best Practices
As you implement a secure one-time password solution, it’s important to consider the following best practices:
OTP Message Best Practices
When delivering OTPs via email, SMS, or voice, clearly specify the sender and the content of the message. For example, the email subject and body, as well as the SMS or voice message, should include information like:
“This is a one-time password from [Company Name] for payment confirmation of your flight ABC123.”
Security Reminder in OTP Messages
Include a security reminder in the OTP message to encourage users to report any unauthorized access attempts. For example:
“If you did not request this OTP, please call [phone number] to report it.”
This helps raise user awareness and provides a clear course of action if they suspect their account has been compromised.
Configuration Set / Originating Identity
Include appropriate configuration sets and Context or EmailTags when using AWS End User Messaging services to deliver OTPs. This records message delivery events and traces them to your organization. Read more about Amazon SES and AWS End User Messaging configuration sets.
For example, in the send_otp_sms() and send_otp_email() functions, you should include the following parameters:
response = aws_sms.send_text_message(
DestinationPhoneNumber=mobile_number,
MessageBody=message,
MessageType='TRANSACTIONAL',
ConfigurationSetName='otp-config-set',
OriginationNumber='+12345678901',
Context={
'user_id': user_id
}
)
response = ses.send_email(
FromEmailAddress='[email protected]',
Destination={'ToAddresses': [email_address]},
Content={
# ...
},
ConfigurationSetName='otp-config-set',
EmailTags=[
{
'Name': 'user_id',
'Value': user_id
}
]
)
Deleting OTPs After Verification
After a successful OTP verification, it’s recommended to delete the corresponding DynamoDB item. This helps maintain a clean and up-to-date database, reducing the risk of unauthorized access or potential data breaches.
Tracking Verification Attempts
Consider adding a column in the DynamoDB table to track the number of verification attempts for each OTP. This can help you implement rate-limiting and other security measures to prevent brute-force attacks.
Encrypting OTPs on the Client-side
As mentioned earlier, the OTP values should be encrypted on the client-side using a secure key management solution, such as the AWS KMS client-side library. This ensures that the raw OTP values are never transmitted or stored in plain text, further enhancing the security of the solution.
Following these best practices ensures your one-time password solution is secure and user-friendly. It also maintains necessary controls and traceability for production use cases.
Conclusion
In this guide, we’ve demonstrated a secure, multi-channel One-Time Password (OTP) solution using AWS services. You can now generate, store, and deliver OTPs via email, SMS, and voice channels using Amazon DynamoDB, Amazon SES, and AWS End User Messaging.
We’ve covered several important points throughout this process. We discussed using a secure random number generator and encrypting algorithms to generate and store OTPs. This ensures strong protection for your users’ sensitive information. By integrating with Amazon SES and AWS End User Messaging, you provide users with a convenient, redundant authentication experience through multiple channels.
This guide equips you with tools to maintain SMS-based OTP capabilities. However, it’s important to note the industry’s shift towards more secure, phishing-resistant authentication methods. These include passwordless solutions and hardware security keys. We encourage you to explore and implement these newer technologies as you develop your OTP solution.
Looking ahead, consider potential enhancements to this solution. Integrating support for standards like FIDO2 WebAuthn and Passkeys could allow seamless authentication without traditional OTPs. Keep these options as backup or alternative methods. Also, consider incorporating a mechanism to escalate users to live support for authentication issues.
Implement the secure OTP solution outlined in this guide and continuously update your authentication strategies. This approach ensures your organization remains equipped to protect users and assets from evolving digital threats.
Expanded resource awareness in Amazon Q Developer
Post Syndicated from Brendan Jenkins original https://aws.amazon.com/blogs/devops/expanded-resource-awareness-in-amazon-q-developer/
Recently, Amazon Q Developer announced expanded support for account resource awareness with Amazon Q in the AWS Management Console along with the general availability of Amazon Q Developer in AWS Chatbot, enabling you to ask questions from Microsoft Teams or Slack. Additionally, Amazon Q will now provide context-aware assistance for your questions about resources in your account depending on where you are in the console. Amazon Q in the console gives you the ability to use natural language with the Amazon Q Developer chat capability to list resources in your AWS account, get specific resource details, and ask about related resources, launched in preview on April 30, 2024.
In this blog, I will highlight the new expanded functionality of this feature in Amazon Q Developer including understanding relationships between account resources, context-awareness, and the general availability of the AWS Chatbot integration with Microsoft Teams and Slack.
Expanded account resource awareness with Amazon Q Developer
Prior to the launch of the expanded support, you could ask Amazon Q Developer to list resources in your AWS Account with prompts such as “List all my EC2 instances in us-east-1” and the service would list all your Amazon Elastic Compute Cloud (Amazon EC2) instances. Now, with the expanded support, you can ask more complex questions about your AWS account resources. I will show a few examples in this section of this post.
For our first example, imagine that you’re a developer who is responsible for maintaining code as a part of the software development lifecycle (SDLC) and you frequently use AWS Lambda for development and Amazon Relational Database Service (RDS) in the backend as a part of your development process. With this new update, a developer could open a new Q chat in the AWS Management Console, and enter a prompt such as: “Which RDS clusters are due for an update?”

Figure 1: Amazon Q Developer listing RDS clusters needing an update
As a result, the Amazon Q Developer console chat will return a list of all your Amazon RDS clusters that have available updates as shown in Figure 1 above.
Now, for another example, you want to update any Lambda functions in your AWS account that had a Simple Notification Service (SNS) topic as a trigger due to moving to a new SNS topic you recently created. To identify which SNS topics are still being used, you could enter a prompt such as “List all the SNS topics that trigger a lambda function.”

Figure 2: Amazon Q listing SNS topics that are lambda triggers
As shown in the prior example, Amazon Q Developer was able to identify any SNS topics in the form of Amazon resource name (ARN) that was set to trigger a lambda function in the AWS account as intended.
Additionally, you can ask a follow up question in the same chat to investigate more. You can send a prompt such as “Which lambda function uses the arn:aws:sns:us-east-1:76859XXXX:FailoverHealthcheck SNS topic?”

Figure 3: Asking Q Developer a follow up question about a resource
From Figure 3 above, you can see that there is a Lambda function/endpoint associated with the SNS topic resource that Amazon Q Developer was able to identify.
Outside of the examples above, here are some other prompts/examples that can be explored for the expanded support:
– “Do I have any ECS clusters with pending tasks?”
– “Are there any ECS clusters in my account with services in DRAINING status?”
Amazon Q Developer understands where you are in the console
Amazon Q Developer in the AWS Management Console now provides context-aware assistance for your questions about resources in your account. This feature allows you to ask questions directly related to the console page you’re viewing, eliminating the need to specify the service or resource in your query. Q Developer uses the current page as additional context to provide more accurate and relevant responses, streamlining your interaction with AWS services and resources.
Prior to the update, a user would have to prompt, “What is the public IPv4 address of my instance i-08ccXXXXXX?” Now, if you are viewing an EC2 instance in the console and prompt Amazon Q, “What is the public IPv4 address of my instance?” you will not need to specify the instance you are referring to.

Figure 4: Asking Amazon Q about an EC2 instance being viewed
In figure 4 above, Amazon Q’s console chat was able to use its context-awareness to pick up on what the IPv4 address was on the console page where I was currently working, despite me not specifying which instance I was referring to.
AWS ChatBot can now answer questions about AWS resources in Microsoft Teams and Slack
Recently, we announced the general availability of Amazon Q Developer in AWS Chatbot, which provides answers to customers’ AWS resource related queries in Microsoft Teams and Slack. This gives teams the ability to quickly find relevant resources to troubleshoot issues using natural language queries in the chat channels of Microsoft Teams or Slack.
For example, you could integrate the AWS Chatbot Service with Amazon Q Developer to allow you to enter a prompt in Slack such as “@aws show EC2 instances in running state in us-east-1”.
Figure 5: Amazon Q listing all EC2 resources in Slack
As shown in figure 5 above, Amazon Q was able to list all the EC2 resources and place them into a slack channel showing an example of the functionality in action.
Conclusion
Amazon Q Developer has enhanced its cloud resource management capabilities, enabling more intuitive and intelligent interactions with AWS resources. The new features allow developers to ask complex, context-aware questions about their cloud infrastructure directly through the AWS Management Console, Microsoft Teams, and Slack. Users can now easily discover new details about specific resources with natural language queries that provide precise, contextual information. These improvements represent a significant step forward in simplifying cloud resource management, making it faster and more user-friendly for development teams to understand, track, and maintain their AWS environments. To learn more about chatting with your AWS resources, check out Console documentation and AWS Chatbot documentation.
About the authors
The Right Engine Came Off.
Post Syndicated from The History Guy: History Deserves to Be Remembered original https://www.youtube.com/watch?v=lswsI9hxTuI




















