由於在公司每個 team 都擁有自己的 AWS Account 去管理,by team 管理可以方便出帳,但帳號一多就會出現管理上的議題
對於多 AWS Account 可以用 switch Role 的方式,由一個統一 Portal AWS Account 登入之後用 switch Role 選擇你要 switch 的 account。
在 Portal AWS Account 內你只需要替每個 User 開啟 IAM User,在要被登入的 AWS Account 裡面加入一個 Role
- Role Type = Provide access between AWS accounts you own
- Account ID = Portal AWS Account ID
建立起來的 Role trust policy 應該會像這樣
{“Version”: “2012-10-17”,“Statement”: [{“Effect”: “Allow”,“Principal”: {“AWS”: “arn:aws:iam::0123456789:root”},“Action”: “sts:AssumeRole”}]}
概念就是讓 Portal AWS Account 可以 Assume 到這個 Role 做事,但很可惜的是 Principal 不能加入不是 identity 的 Group 與 Managed policy
IAM Policy Elements Reference 文件清楚的提到:
You specify a principal using the Amazon Resource Name (ARN) of the AWS account, IAM user, IAM role, federated user, or assumed-role user. You cannot specify IAM groups as principals
所以你無法在 Portal AWS Account 這邊在做權限切分,如果 Role Principal User,當人員組織異動要修改 Role 又很麻煩
如果想要更好的管理方式,或許用 HashiCorp 的 Terraform 會是一個不錯的選擇。