2017-10-20 120 views
-1

我們正在建立一個SAAS網站。某些功能要求我們用戶的AWS服務通過我們的網站進行操作。 用戶可能會也可能不會選擇這些功能,但如果他們願意,他們應該能夠授予我們某些權限。我們的網站擁有自己的認證機制。從我們的網站集成AWS,服務

問:

1)哪些行業在這些情況下做AWS整合的最佳做法?

2)我們在aws.amazon.com上反駁了這些文章。我們何時使用'IAM用戶的角色'與'角色的身份聯合選項'?

http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html

3)「授予的IAM角色」使用AWS,對我們的產品使用AWS服務之前的步驟是通過我們認爲是用戶體驗的缺點。這是不可避免的嗎?

感謝, 斯利拉姆

+2

我認爲這個問題是太多的東西,你應該聘請一個AWS SA您的問題。 –

+1

這是一個解決的問題。瞭解其他SAAS提供商如何執行此操作,例如:https://support.cloudcheckr.com/cross-account-roles/。 – jarmod

回答

0

1 - 從你的用戶,你需要操作你的SAAS什麼唯一的請求訪問。它降低了您被攻破和您的客戶受到影響的風險。例如,如果您只需要只讀訪問EC2,則只請求只讀訪問。

要運營您的客戶AWS賬戶,您不僅需要創建用戶和角色。要進行API調用,客戶必須生成一個訪問密鑰和密鑰供您使用。那就是你的網站將用它代表他們與AWS通信。這基本上只是一個私鑰,所以就安全最佳實踐而言,您需要像處理任何非常敏感的資源一樣對待它。在s3中存儲這樣的憑據是一個選項和/或DynamoDB。

2 - 爲聯邦 作用爲當有人登錄到使用從外部AWS(SAML/SSO)的外部身份提供憑證AWS。你不需要這個;客戶不會登錄到您的AWS賬戶,也不會登錄他們的賬戶。您需要的角色是可選的。您的客戶可以創建角色,爲其添加權限,然後將角色附加到用戶並將該用戶授予您。他們也可以直接創建用戶並將權限直接授予用戶,但角色方法是更好的做法。 您真正需要了解的是您需要訪問哪些AWS資源以及您想如何處理這些資源。從那裏,有一個該資源所需的權限列表。您必須向您的客戶發送關於如何 創建用戶的指示, 創建角色,附加所需的權限 ,然後生成供您使用的API密鑰。

3 - 角色是沒有必要的,其可選的。您需要的是您的客戶創建一個角色,爲您需要訪問的每個AWS服務授予權限,然後爲您授予訪問權限,然後生成密鑰供您在API調用中使用。但總體而言,用戶體驗仍然相同。如果您的目標客戶是常規的AWS客戶,這對他們來說很容易,但我懷疑經常的AWS客戶需要其他人來管理他們的賬戶。

如果你採取最乾淨的方法,角色分配是不可避免的。

更新

見JamieStarke下面的評論。爲您的客戶提供更簡單的方法,更安全的做法是讓他們爲您的AWS賬戶分配角色,因此不需要密鑰交換。如果您不使用AWS作爲您的核心基礎架構,則可以打開一個帳戶,並讓他們將角色分配給該帳戶。無論採用哪種方法,都不需要與您和客戶交換憑證。

http://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html

+1

*「要操作您的客戶AWS賬戶,您不僅需要創建用戶和角色,還需要更多。」*請證明這一點,並聲明。只有一個角色應該是必要的。當你想在其主持下工作時,你就會假設它。 –

+0

@ Michael-sqlbot我已經在下面的句子中做了。 –

+1

我傾向於同意邁克爾這一點。我在業界看到的最佳做法不是使用長期憑證生成另一個訪問密鑰,而是讓客戶創建一個您認爲的跨賬戶訪問角色,從而爲您提供該角色的權限。我處理任何憑據,讓我可以訪問角色,客戶可以決定該角色可以執行的操作。 –