S3 Cross-Account Access
AWS Organizations
這篇首先前半段是跟 S3 比較沒有直接相關的部分,不過因為為了後面要分享 S3 權限給其他帳號,所以必須先設定 Organization 才有辦法完成。
另外文中的主帳號為 m0761005
,分享的帳號為 chester.tang
這隻帳號(寫在前頭方便觀看這篇圖例中現在的角色關係)
首先,要分享權限給其他人,可以透過兩種方式進入到 AWS Organizations
:
- 點選右上方帳號
My Organization
Management & Governance / AWS Organizations
進入到頁面後,點選 Create organization
按鈕來建立組織吧!
完成後可以看到,目前的使用者前面有個星號,而我們要透過點選 Add account
來新增使用者
選擇要 Invite account
按鈕,並輸入 Email 帳戶或 account ID
來寄送邀請 Mail
收到信件後,切換帳號到剛剛寄送的 AWS 帳號,並 Accept
邀請後就可以加入了!
然後裡面就會出現現在擁有的成員~
Lab - Sharing S3 Buckets Across Accounts
3 differents ways to share S3 buckets across accounts
- Using Bucket Policies & IAM (applies across the entire bucket). Programmatic Access Only.
- Using Bucket ACLs & IAM (individual objects). Programmatic Access Only.
- Cross-Account IAM Roles. Programmatic AND Console access.
IAM
完成上述的 AWS Organizations 之後,可以看到目前組織的畫面,接下來我們來 Cross-Account Access
給其他帳戶
在 Sharing S3 Buckets Across Accounts
給其他帳號之前,我們先來了解一下整個的流程,如果底下內容有點忘記是什麼了可以參考之前的這篇文章 IAM,流程大致如下:
m0761005
帳號需要建立一個Roles
(輸入要給權限的 AWS Account ID),並且選取擁有的Policy
(e.g. AmazonS3FullAccess),完成後會有個專屬連結來給分享的帳號做登入chester.tang
帳號需要建立一個Users
來切換身份來知道我現在登入的是m0761005
開出來的登入權限,因此選取擁有的Policy
(e.g. AdminstrationAccess),使得帳號可以Switch Role
首先,在 m0761005
帳戶的 IAM
中先建立 Roles
因為是要分享給另一個帳號,所以選取 Another AWS account
來 Create role
,不過首先要知道另一個帳號的 Account ID 才有辦法進行
這個部分應該就滿好懂的,我給這個帳戶要開啟什麼權限,能做什麼操作,都可以透過 policy
來達成,這邊就直接以 S3 ( AmazonS3FullAccess
) 來做範例
今天我們分享這個權限給其他人不會每次都需要上面的步驟,我們可以設定一個 Role name
專門在分享某一個權限給特定的人,這樣就不用一直選取要給的權限。
好比我現在想分享 S3 的權限給我的同事們,我就直接把這個 Role name
叫做 S3_Cross_Account_Access
直接清楚明瞭,也方便之後知道這個 Role
裡面擁有的 Policy
是什麼…
到這個步驟就完成了上述流程的一半步驟,我們 m0761005
帳戶就有可以給其他帳戶 S3
權限的 Role
圖中的
Give this link to users who can switch roles in the console
此段後的連結可以先存起來,此段為其他帳號要Switch Roles
的連結
接下來,我們來切換帳戶到 Chester.tang
。如果上段的 AWS Organizations
有完成的話,會看到目前帳號的是在哪個 Organizations
下,並且會有個 ID
Chester.tang
的帳戶中,如上述的流程,我們先要來建立一個 Users
來跟 m0761005
連結,並且方便我們切換角色
點選 Add user
後,首先先取一個 User name
的名字(記住這個名字將會是日後登入 AWS 的帳戶名稱),並且自己設定密碼
當然地,這邊擁有的 Policy
就是登入了~跟之前 m0761005
在建立 Roles
是相同的
完成後可以再次確認一下前面所選取的項目
到這邊完成後,我們就登出並再登入剛剛建立的帳戶名稱,這時候就會看到有 Switch Roles
的按鈕可以選取,然後來設定 Role
還記得在
m0761005
在建立Roles
的時候有的Give this link to users who can switch roles in the console
後存起來的連結嗎?這邊也可以直接貼那段連結就會挑轉到這個頁面了
完成後,就可以看到目前的 Role
並且還有其他資訊
總結
- Always enable multi-factor authentication on root account
- Always using a strong and complex password on root account
- Paying account should be used for billing purposes only. Do not deploy resources into the paying payment.
- Enable/Disable AWS services using Service Control Policies(SCP) either on OU or on individual accounts.