中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
是時(shí)候展現(xiàn)真正的技術(shù)了!在無(wú)服務(wù)器架構(gòu)下優(yōu)雅解決企業(yè)安全信息管理問(wèn)題



我們需要無(wú)密碼訪問(wèn)數(shù)據(jù)庫(kù)!

在企業(yè)級(jí)應(yīng)用中我們可以看到眾多身份管理體系, AWS 身份授權(quán)管理(IAM)、企業(yè)身份管理、應(yīng)用身份管理體系等等。每個(gè)企業(yè)都試圖去創(chuàng)建一個(gè)統(tǒng)一的身份認(rèn)證平臺(tái),希望借此能夠解決企業(yè)內(nèi)的身份認(rèn)證問(wèn)題難題。

 

然而如此眾多的身份認(rèn)證體系中,居然沒有一個(gè)很優(yōu)雅的辦法解決應(yīng)用在連接數(shù)據(jù)庫(kù)過(guò)程中的密碼管理問(wèn)題!



這個(gè)問(wèn)題在微服務(wù)的場(chǎng)景下會(huì)凸顯出來(lái),想想海量服務(wù)對(duì)應(yīng)海量持久化方案吧。本著 Cloud Native 服務(wù)要無(wú)狀態(tài)的原則,我們這次就來(lái)設(shè)計(jì)一個(gè)“安全信息管理 as a services ”。通過(guò)這個(gè)服務(wù),應(yīng)用在不知曉數(shù)據(jù)庫(kù)的用戶名、密碼甚至數(shù)據(jù)庫(kù)地址的前提下,完成對(duì)數(shù)據(jù)庫(kù)服務(wù)的發(fā)現(xiàn),并授權(quán)連接。


同樣的架構(gòu)除了用來(lái)進(jìn)行數(shù)據(jù)庫(kù)密碼的管理外,也有很多與密碼管理相關(guān)的場(chǎng)景,比如用來(lái)保存密鑰等關(guān)鍵認(rèn)證信息。

 

 安全高效密碼管理服務(wù)

我們先來(lái)回顧一下傳統(tǒng)架構(gòu)中大家是如何來(lái)做身份認(rèn)證的:

 

· 我們會(huì)將身份認(rèn)證分為基礎(chǔ)設(shè)施類的認(rèn)證與應(yīng)用程序類的認(rèn)證兩種主要形式,AD/LDAP 多被用在基礎(chǔ)設(shè)施類身份認(rèn)證上。


·  AWS 平臺(tái)上提供 IAM 服務(wù),實(shí)現(xiàn)基礎(chǔ)設(shè)施類的認(rèn)證。值得一提的是,如果大家用 RDS Mysql/Aurora Mysql 數(shù)據(jù)庫(kù),IAM 已經(jīng)提供了對(duì)數(shù)據(jù)庫(kù)連接的授權(quán)管理。具體可以參照:https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html


· 在應(yīng)用類的認(rèn)證中,有很多單點(diǎn)登錄的方案,也可以與 AD 集成,或者通過(guò) oauth 等其他方式與第三方認(rèn)證服務(wù)集成。


然而,還有一些服務(wù)會(huì)采用提供用戶名、密碼訪問(wèn)的方式,并沒有與企業(yè)的統(tǒng)一身份認(rèn)證進(jìn)行集成 。


為何在這個(gè)領(lǐng)域

已有的技術(shù)手段為何并沒有被廣泛采用?


· 首先集成成本高,企業(yè)內(nèi)部數(shù)據(jù)庫(kù)系統(tǒng)可能有成百上千套,每套系統(tǒng)需單獨(dú)與 AD 集成。


· 即便做了集成管理,在授權(quán)時(shí)仍然要采用用戶名密碼或密鑰的方式,使用過(guò)程依然不安全。


· 因此目前主流方式是通過(guò)配置文件在本地加密保存,再在 Runtime 中由程序解密,過(guò)程非常復(fù)雜。


存在即合理,企業(yè)采用上述方式完成安全信息的保存成為了一種最佳實(shí)踐。

 

那么,在 AWS 上

如何解決和滿足這部分需求呢?

 

如果可以實(shí)現(xiàn)一套安全信息管理服務(wù),無(wú)論哪一層的開發(fā)者都無(wú)需再保存密碼;同時(shí)這些訪問(wèn)請(qǐng)求仍然通過(guò)合理的授權(quán)與認(rèn)證,并提供審計(jì)日志;抽象的服務(wù)本身使得定期更換數(shù)據(jù)庫(kù)密碼這樣的安全策略得以執(zhí)行。這樣,就可以用很小的成本解決企業(yè)中大量存在的安全隱患


在此插播一個(gè)演示

我們數(shù)據(jù)庫(kù)創(chuàng)建程序片段如下:

#!/usr/bin/python

import mysql.connector

from mysql.connector import errorcode

from secureDB import secureconnection

DB_NAME = ‘mydbtest’

cnx = secureconnection()

cursor = cnx.cursor()

def create_database(cursor):

    try:

        cursor.execute(

            'CREATE DATABASE {} DEFAULT CHARACTER SET 'utf8''.format(DB_NAME))

    except mysql.connector.Error as err:

        print('Failed creating database: {}'.format(err))

        exit(1)

 

try:

    cnx.database = DB_NAME

except mysql.connector.Error as err:

    if err.errno == errorcode.ER_BAD_DB_ERROR:

        create_database(cursor)

        cnx.database = DB_NAME

    else:

        print(err)

        exit(1)

 

for name, ddl in TABLES.items():

    try:

        print('Creating table {}: '.format(name), end='')

        cursor.execute(ddl)

    except mysql.connector.Error as err:

        if err.errno == errorcode.ER_TABLE_EXISTS_ERROR:

            print('already exists.')

        else:

            print(err.msg)

    else:

        print('OK')

cursor.close()

cnx.close()

我們提供的 sdk(secureDB.py)如下:

 #!/usr/bin/python

import …

from aws_requests_auth.aws_auth import AWSRequestsAuth

 

def secureconnection():

    client = boto3.client('sts')

 

    response = client.assume_role(

        RoleArn='arn:aws:iam::277052429340:role/sts_616532859444',

        RoleSessionName='test',

        DurationSeconds=1000

    )

    auth = AWSRequestsAuth(aws_access_key = response['Credentials']['AccessKeyId'],

                            aws_secret_access_key = response['Credentials']['SecretAccessKey'],

                            aws_token = response['Credentials']['SessionToken'],

                            aws_host = 'j0kym28ch1.execute-api.ap-northeast-1.amazonaws.com',

                            aws_region = 'ap-northeast-1',

                            aws_service = 'execute-api')

    response = requests.get('https://j0kym28ch1.execute-api.ap-northeast-1.amazonaws.com/Prod/secret/,

                            auth=auth)

    username = response.json()['Item']['username']

    dbname = response.json()['Item']['dbname']

    password = response.json()['Item']['secret']

    return mysql.connector.connect(user=username, password=password,

                              host=dbname)



當(dāng)然我們這里必須要做一些授權(quán)工作:需要給執(zhí)行這段程序的 Amazon EC2 指定一個(gè) Role,簡(jiǎn)單來(lái)講,這個(gè) Role 將授權(quán) SDK 獲取數(shù)據(jù)庫(kù)用戶名密碼。

我們可以看到在客戶端或者 sdk 都沒有記錄用戶名、密碼、數(shù)據(jù)庫(kù)地址的情況下,客戶端程序仍然可以獲得數(shù)據(jù)庫(kù)連接,成功創(chuàng)建表結(jié)構(gòu)。             

如果我們?nèi)∠?Role,客戶端程序則無(wú)法執(zhí)行成功。

熟悉 AWS 的同學(xué)就知道,IAM 確實(shí)可以實(shí)現(xiàn)無(wú)密碼的授權(quán),但是 IAM 并不能獲取服務(wù)內(nèi)部的權(quán)限,例如這里的數(shù)據(jù)庫(kù)內(nèi)部的用戶名、密碼、數(shù)據(jù)庫(kù)地址。那我們?nèi)绾巫龅綄⒎?wù)內(nèi)部的權(quán)限與 IAM 權(quán)限體系進(jìn)行整合呢?


 參考架構(gòu)設(shè)計(jì)藍(lán)圖

理論上安全服務(wù)的后臺(tái)架構(gòu)很少討論,因?yàn)槔锩鏁?huì)透露很多部署與編碼的方式,有可能會(huì)暴露安全隱患;但我們這個(gè)服務(wù)采用了無(wú)服務(wù)器架構(gòu)設(shè)計(jì),這個(gè)設(shè)計(jì)本身暴露在外的都是 AWS 提供的托管服務(wù),這些服務(wù)的安全性 AWS 會(huì)提供保障;而我們這里不會(huì)討論后端代碼。

我們前面演示的后臺(tái)服務(wù)完全采用了無(wú)服務(wù)器的方式:

Amazon API Gateway 進(jìn)行客戶接入與授權(quán)


AWS Lambda 調(diào)度運(yùn)行環(huán)境


Amazon DynamoDB 提供加密存儲(chǔ)


Amazon CloudWatch 提供 Metric 和日志收集


托管的 Amazon ES 服務(wù)提供日志分析與展現(xiàn)


Amazon IAM 模塊提供用戶認(rèn)證與授權(quán)

服務(wù)本身的設(shè)計(jì)也已經(jīng)考慮了多租戶、多服務(wù)、多用戶等授權(quán)場(chǎng)景。


篇幅所限,我們僅描述一下服務(wù)里涉及到的一個(gè)流程。這個(gè)流程中會(huì)涉及到客戶的 AWS 賬戶(A)與安全服務(wù)的 AWS 賬戶(B),通過(guò)這個(gè)流程,客戶應(yīng)用將完成授權(quán)到鏈接的過(guò)程。


 在客戶賬戶 A 中 

1

需要訪問(wèn)數(shù)據(jù)庫(kù)的軟件 APP,通過(guò) SDK 發(fā)起數(shù)據(jù)庫(kù)連接

2

SDK 通過(guò) IAM STS 服務(wù)從安全服務(wù)賬戶 B 中獲取 User Role 對(duì)應(yīng)的 token

3

SDK 將 Token 與查詢信息組合后,對(duì) API Gateway 進(jìn)行加密訪問(wèn)


安全服務(wù)賬戶 B 中 

4

收到 SDK 提交的查詢請(qǐng)求,Amazon API Gateway 首先驗(yàn)證 Token 所對(duì)應(yīng)的 User Role 是否有相關(guān)權(quán)限


5

Amazon API Gateway 檢查無(wú)誤后,會(huì)調(diào)用 Lambda 請(qǐng)求;AWS Lamdba 會(huì)從 Amazon API Gateway 獲取訪問(wèn)的 User Role ,然后在 Amazon DynamoDB 表中找到 User Role 對(duì)應(yīng)的用戶名、密碼、服務(wù)等信息,通過(guò) Amazon API Gateway 并返回給 SDK 。


 在客戶賬戶 A 中 

6


SDK 拿到所需信息,與數(shù)據(jù)庫(kù)服務(wù)創(chuàng)建連接,并返回給用戶代碼 APP


客戶需要進(jìn)行合理的授權(quán)行為,即通過(guò) Role 的方式對(duì) SDK 進(jìn)行授權(quán)。同時(shí)授權(quán)或非法訪問(wèn)日志均會(huì)被 Amazon IAM 與 Amazon API Gateway 記錄并匯總到 Amazon CloudWatch 與 Amazon ES 中,除了審計(jì)外,還可以定義事件流,偵測(cè)非法訪問(wèn)的地址并進(jìn)行屏蔽。


作為安全方案,無(wú)服務(wù)器架構(gòu)有幾個(gè)突出的安全相關(guān)的優(yōu)勢(shì):

·  對(duì)外只暴露受控的 API。


·  運(yùn)行環(huán)境是 Session 獨(dú)占且是及時(shí)銷毀。


·  在持久層 Amazon DynamoDB 也屬于無(wú)服務(wù)器架構(gòu);從存儲(chǔ)數(shù)據(jù)本身的安全性,到服務(wù)的訪問(wèn)控制,再到服務(wù)本身的設(shè)計(jì),Amazon DynamoDB 都采取了大量的安全機(jī)制。


·  無(wú)服務(wù)器架構(gòu)設(shè)計(jì)里面會(huì)使用很多 AWS 提供的托管服務(wù),上面已經(jīng)介紹過(guò) AWS 會(huì)對(duì)這些服務(wù)本身的安全性和可用性提供保障。

 


除了這些明顯的優(yōu)勢(shì)外,我們?cè)谶@里采用 SaaS 服務(wù)的模式。把安全服務(wù)放在一個(gè)單獨(dú) AWS 賬戶中,通過(guò)對(duì)這個(gè)賬戶采用最嚴(yán)格的審計(jì)和控制來(lái)提高服務(wù)的安全性。

 

無(wú)服務(wù)器的架構(gòu)同時(shí)還可以提供良好線性的擴(kuò)展能力,無(wú)論小型企業(yè)還是大型企業(yè),甚至可以用來(lái)提供安全類的 SaaS 服務(wù)。


為了驗(yàn)證我們這個(gè)方案的可擴(kuò)展性,這里進(jìn)行了一個(gè)簡(jiǎn)單的壓力測(cè)試。測(cè)試持續(xù)了 15 分鐘,壓力保持在 800TPS。這個(gè)過(guò)程中 0 異常,并且 99% 的端到端相應(yīng)時(shí)間均小于 1 秒,服務(wù)內(nèi)部的延遲在幾十毫秒。無(wú)服務(wù)器架構(gòu)的服務(wù)擴(kuò)展性非常出色。

任何一個(gè) SaaS 服務(wù)都不能脫離成本考量,安全密碼服務(wù)的使用性質(zhì)決定了服務(wù)很有可能會(huì)長(zhǎng)時(shí)間保持靜默,而在維護(hù)窗口被集中調(diào)用。采用無(wú)服務(wù)器架構(gòu)可以消滅 Idle 的成本,也可以消滅擴(kuò)展的等待窗口。無(wú)論存儲(chǔ)和計(jì)算都是按訪問(wèn)量計(jì)費(fèi),如果未來(lái)考慮做成 SaaS 服務(wù),這樣的特性也非常利于多租戶賬單的生成。

 

另外容易被忽視的成本來(lái)自研發(fā)投資。大量服務(wù)的采用,我們只需要對(duì)服務(wù)進(jìn)行簡(jiǎn)單的配置;AWS 還提供了 Serverless Application Repository,可以在里面找到很多編程范式。剩下只需關(guān)注于業(yè)務(wù)邏輯相關(guān)的代碼,AWS Lambda 保證了我們可以選擇自己擅長(zhǎng)的編程語(yǔ)言。上面的這個(gè)演示僅用了幾個(gè)小時(shí)時(shí)間采用 Node.js 與 Python 實(shí)現(xiàn);而且從 protyping 到 production 我們只需要細(xì)致打磨這個(gè)概念原型,不需要進(jìn)行復(fù)雜的擴(kuò)展性、可靠性、安全性方面的代碼重構(gòu)與優(yōu)化,這些都可以交給無(wú)服務(wù)器架構(gòu)來(lái)解決。


 合作伙伴產(chǎn)品推薦

一般文章講到最后,總是要安利一款產(chǎn)品,然而我們這次要安利不止一款產(chǎn)品。

 

 在 AWS 這個(gè)豐富的技術(shù)生態(tài)下,幾乎所有需求都會(huì)有小伙伴提供相關(guān)服務(wù),我們看到的這個(gè)需求當(dāng)然也不例外。

 

·  AWS Secrets Manager,這是 AWS 的新服務(wù)??蓭椭Wo(hù)訪問(wèn)您的應(yīng)用程序、服務(wù)和 IT 資源所需的私密信息。該服務(wù)使您能夠輕松地跨整個(gè)生命周期輪換、管理和檢索數(shù)據(jù)庫(kù)憑證、API 密鑰和其他密鑰。用戶和應(yīng)用程序通過(guò)調(diào)用 Secrets Manager API 來(lái)檢索密鑰,無(wú)需對(duì)純文本的敏感信息進(jìn)行硬編碼。AWS Secrets Manager 通過(guò)適用于 Amazon RDS for MySQL、PostgreSQL 和 Amazon Aurora 的內(nèi)置集成實(shí)現(xiàn)密鑰輪換。此外,該服務(wù)還可以擴(kuò)展到其他類型的密鑰,包括 API 密鑰和 OAuth 令牌。此外,AWS Secrets Manager 使您可以利用細(xì)粒度的權(quán)限控制對(duì)私密信息的訪問(wèn),并集中審計(jì) AWS Cloud、第三方服務(wù)和本地資源的私密信息輪換。如果您使用的區(qū)域已經(jīng)有 AWS Secret Manager 服務(wù),那么我們強(qiáng)烈建議您嘗試一下這個(gè)由 AWS 提供安全保障的安全服務(wù)。


·  AWS 高級(jí)技術(shù)合作伙伴 Hashicorp 也推出了一款產(chǎn)品 Vault Enterprise,不但可以解決安全信息管理的問(wèn)題,同時(shí)還提供了非常多的高級(jí)功能,包括 Encryption as services、HSM 集成、KMS 集成、MFA、服務(wù)容災(zāi)等等。

本文中的演示將被貢獻(xiàn)給 AWS 創(chuàng)新中心。 AWS 創(chuàng)新中心旨在通過(guò)科技創(chuàng)新的演示,向客戶集中展示 AWS 豐富的工具、服務(wù)和解決方案資源。借助多媒體、高科技的手段模擬現(xiàn)實(shí)環(huán)境,為客戶帶來(lái)全新的 AWS 云計(jì)算體驗(yàn),幫助客戶深入了解如何實(shí)現(xiàn)IT轉(zhuǎn)型及業(yè)務(wù)模式的創(chuàng)新,并取得成功。


目前 AWS 創(chuàng)新中心北京/上海/成都分中心均已開放。很多有創(chuàng)意的演示,例如:面部識(shí)別、合理規(guī)劃配置云實(shí)例、數(shù)據(jù)湖、數(shù)據(jù)庫(kù)遷移工具等。您可以聯(lián)系與您對(duì)接的 AWS 業(yè)務(wù)代表來(lái)參觀創(chuàng)新中心,期待您的光臨。


本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
云,要安全
AWS核心服務(wù)概覽
【AWS征文】AWS 數(shù)據(jù)分析新服務(wù)
亞馬遜大變身:云服務(wù)背后的創(chuàng)新
亞馬遜式創(chuàng)新
一個(gè)經(jīng)典的100%無(wú)服務(wù)器架構(gòu)在AWS上是什么樣?
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服