本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
為公用子網路部署預防性屬性型存取控制
由喬爾·阿爾弗雷多·努涅斯·岡薩雷斯(AWS)和塞繆爾·奧爾特加桑喬(AWS)創建
環境:PoC 或試點 | 技術:安全性、身分識別、合規性;網路;內容交付 | AWS 服務:AWS Organizations;AWS Identity and Access Management |
Summary
在集中式網路架構中,檢查和邊緣虛擬私有雲 (VPC) 會集中所有入站和輸出流量,例如進出網際網路的流量。不過,這可能會造成瓶頸,或導致達到 AWS 服務配額的限制。與較常見的集中式方法相比,將網路邊緣安全性與 VPC 中的工作負載一起部署,可提供前所未有的擴充性。這稱為分散式邊緣架構。
雖然在工作負載帳戶中部署公有子網路可以帶來好處,但它也會帶來新的安全風險,因為它會增加攻擊面。建議您只在這些 VPC 的公用子網路中部署 Elastic Load Balancing (ELB) 資源,例如應用程式負載平衡器或 NAT 閘道。在專用公有子網路中使用負載平衡器和 NAT 閘道,可協助您對輸入和輸出流量實作精細控制。
以屬性為基礎的存取控制 (ABAC) 是根據使用者屬性 (例如部門、工作角色和專案團隊名稱) 建立精細權限的做法。如需詳細資訊,請參閱適用於 AWS 的 ABAC
此模式描述如何透過 AWS Organizations 中的服務控制政策 (SCP) 實作 ABAC,以及 AWS 身分與存取管理 (IAM) 中的政策來協助保護公有子網路的安全。您可以將 SCP 套用至組織的成員帳戶或組織單位 (OU)。這些 ABAC 政策允許使用者在目標子網路中部署 NAT 閘道,並防止他們部署其他 Amazon Elastic Compute Cloud (Amazon EC2) 資源,例如 EC2 執行個體和彈性網路界面。
先決條件和限制
先決條件
AWS Organizations 中的組織
AWS Organizations 根帳戶的管理存取權
在組織中,用於測試 SCP 的作用中成員帳戶或 OU
限制
此解決方案中的 SCP 無法防止使用服務連結角色的 AWS 服務在目標子網路中部署資源。這些服務的範例包括 Elastic Load Balancing (ELB)、Amazon Elastic Container Service (Amazon ECS) 和 Amazon Relational Database Service 服務 (Amazon RDS)。如需詳細資訊,請參閱 AWS Organizations 文件中的 SCP 對許可的影響。實施安全控制以檢測這些異常。
架構
目標技術堆疊
SCP 適用於 AWS 帳戶或 AWS Organizations 中的 OU
下列 IAM 角色:
AutomationAdminRole
— 用於在實施 SCP 後修改子網路標籤和建立 VPC 資源TestAdminRole
— 用於測試 SCP 是否阻止其他 IAM 主體 (包括具有管理存取權的主體) 執行保留給AutomationAdminRole
目標架構
![這些標籤可防止使用者在公用子網路中部署 NAT 閘道以外的資源](images/pattern-img/25f22f67-5bb6-42ac-8fd6-836e00c436f1/images/4fd445a2-e00a-41d8-ad23-5729d3d895f1.png)
您可以在目標帳戶中建立
AutomationAdminRole
IAM 角色。此角色具有管理網路資源的權限。請注意下列此角色專屬的權限:此角色可以建立 VPC 和公用子網路。
此角色可修改目標子網路的標籤指派。
此角色可以管理自己的權限。
在 AWS Organizations 中,您可以將 SCP 套用到目標 AWS 帳戶或 OU。如需原則範例,請參閱此模式中的其他資訊。
CI/CD 管線中的使用者或工具可以擔任將標籤套用至目
SubnetType
標子網路的AutomationAdminRole
角色。透過假設其他 IAM 角色,您組織中已授權的 IAM 主體可以管理目標子網路中的 NAT 閘道,以及 AWS 帳戶中其他允許的聯網資源,例如路由表。使用 IAM 政策授予這些許可。如需詳細資訊,請參閱 Amazon VPC 的身分識別和存取管理。
自動化和規模
為協助保護公有子網路,必須套用對應的 AWS 標籤。套用 SCP 之後,NAT 閘道是授權使用者可以在具有標籤的子網路中建立的唯一 Amazon EC2 資源類型。SubnetType:IFA
(IFA
指面向網際網路的資產。) SCP 可防止建立其他 Amazon EC2 資源,例如執行個體和彈性網路界面。 我們建議您使用具有AutomationAdminRole
角色的 CI/CD 管線來建立 VPC 資源,以便將這些標籤正確套用至公用子網路。
工具
AWS 服務
AWS Identity and Access Management (IAM) 可透過控制誰經過身份驗證和授權使用 AWS 資源,協助您安全地管理對 AWS 資源的存取。
AWS Organizations Organization 是一種帳戶管理服務,可協助您將多個 AWS 帳戶合併到您建立並集中管理的組織中。在 AWS Organizations 中,您可以實作服務控制政策 (SCP),這是一種可用來管理組織中許可的政策類型。
Amazon Virtual Private Cloud (Amazon VPC) 可協助您在已定義的虛擬網路中啟動 AWS 資源。這個虛擬網路類似於您在自己的資料中心中操作的傳統網路,並具有使用 AWS 可擴展基礎設施的好處。
史诗
任務 | 描述 | 所需技能 |
---|---|---|
建立測試管理員角色。 | 建立在目標 AWS 帳戶 | AWS 管理員 |
建立自動化管理員角色。 |
以下是可用來測試
| AWS 管理員 |
建立並附加 SCP。 |
| AWS 管理員 |
任務 | 描述 | 所需技能 |
---|---|---|
建立 VPC 或子網路。 |
| AWS 管理員 |
管理標籤。 |
| AWS 管理員 |
在目標子網路中部署資源。 |
| AWS 管理員 |
管理 AutomationAdminRole 角色。 |
| AWS 管理員 |
相關資源
AWS 文件
其他 AWS 參考資料
使用 AWS Organizations 中的服務控制政策保護用於授權的資源標籤
(AWS 部落格文章)
其他資訊
下列服務控制原則是您可以在組織中測試此方法的範例。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyVPCActions", "Effect": "Deny", "Action": [ "ec2:CreateVPC", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateInternetGateway", "ec2:DeleteVPC", "ec2:DeleteRoute", "ec2:DeleteSubnet", "ec2:DeleteInternetGateway" ], "Resource": [ "arn:aws:ec2:*:*:*" ], "Condition": { "StringNotLike": { "aws:PrincipalARN": ["arn:aws:iam::*:role/AutomationAdminRole"] } } }, { "Sid": "AllowNATGWOnIFASubnet", "Effect": "Deny", "NotAction": [ "ec2:CreateNatGateway", "ec2:DeleteNatGateway" ], "Resource": [ "arn:aws:ec2:*:*:subnet/*" ], "Condition": { "ForAnyValue:StringEqualsIfExists": { "aws:ResourceTag/SubnetType": "IFA" }, "StringNotLike": { "aws:PrincipalARN": ["arn:aws:iam::*:role/AutomationAdminRole"] } } }, { "Sid": "DenyChangesToAdminRole", "Effect": "Deny", "NotAction": [ "iam:GetContextKeysForPrincipalPolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListInstanceProfilesForRole", "iam:ListRolePolicies", "iam:ListRoleTags" ], "Resource": [ "arn:aws:iam::*:role/AutomationAdminRole" ], "Condition": { "StringNotLike": { "aws:PrincipalARN": ["arn:aws:iam::*:role/AutomationAdminRole"] } } }, { "Sid": "allowbydefault", "Effect": "Allow", "Action": "*", "Resource": "*" } ] }