
거의 모든 aws 지역에 대한 모든 사용자 액세스를 차단하고 싶습니다. 기본적으로 활성화된 지역은 "비활성화"할 수 없습니다. 또한 계정 수준의 권한이 있고 지역적으로 제한될 수 없다는 것을 알고 있습니다.
모든 사용자/역할/그룹에 이와 같은 정책을 추가하고 싶지 않습니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:RequestedRegion": [
"eu-west-1",
"eu-west-2",
"eu-west-3"
]
}
}
}
]
}
그룹을 중첩할 수 없습니다. 따라서 이 정책이 있는 다른 모든 그룹을 포함하는 최상위 그룹을 가질 수 없습니다.
그룹에는 역할을 추가할 수 없습니다. 그래서 내SAM 템플릿내 서버리스 앱의 경우 모든 앱에 이 정책을 추가해야 합니까? 그들은 각 앱에 대해 고유한 역할과 정책을 동적으로 생성합니다(저는 그렇게 유지하고 싶습니다).
계정의 모든 사용자와 역할에 대해 정책을 시행할 수 있는 방법이 있습니까? 관리하기에는 피타처럼 보이기 때문에 뭔가 빠진 것 같습니다.
Active Directory에서는 OU/도메인/사이트/등 수준에서 쉽게 정책을 적용할 수 있습니다. 보안 및 ID 플랫폼의 기본 기능처럼 느껴집니다.
내 AWS 조직 수준에서 이 정책을 적용할 수 있는 방법이 있습니까?
답변1
서비스 제어 정책은 귀하가 요청한 작업을 정확하게 수행합니다. 지역을 차단할 수 있지만 일부 서비스는 글로벌이므로 화이트리스트에 추가해야 합니다. 예를 들어 IAM, WAF, Route53, CloudFront, S3의 일부 부분은 허용된 지역 외부에서 실행되도록 화이트리스트에 추가해야 합니다.
그만큼AWS 서비스 제어 정책 예제 페이지이는 SCP의 가장 일반적인 사용 사례이므로 첫 번째 예입니다. 이 정책은 나열된 두 지역 이외의 지역을 거부하므로 쉽게 변경할 수 있습니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DenyAllOutsideEU",
"Effect": "Deny",
"NotAction": [
"a4b:*",
"acm:*",
"aws-marketplace-management:*",
"aws-marketplace:*",
"aws-portal:*",
"awsbillingconsole:*",
"budgets:*",
"ce:*",
"chime:*",
"cloudfront:*",
"config:*",
"cur:*",
"directconnect:*",
"ec2:DescribeRegions",
"ec2:DescribeTransitGateways",
"ec2:DescribeVpnGateways",
"fms:*",
"globalaccelerator:*",
"health:*",
"iam:*",
"importexport:*",
"kms:*",
"mobileanalytics:*",
"networkmanager:*",
"organizations:*",
"pricing:*",
"route53:*",
"route53domains:*",
"s3:GetAccountPublic*",
"s3:ListAllMyBuckets",
"s3:PutAccountPublic*",
"shield:*",
"sts:*",
"support:*",
"trustedadvisor:*",
"waf-regional:*",
"waf:*",
"wafv2:*",
"wellarchitected:*"
],
"Resource": "*",
"Condition": {
"StringNotEquals": {
"aws:RequestedRegion": [
"eu-central-1",
"eu-west-1"
]
},
"ArnNotLike": {
"aws:PrincipalARN": [
"arn:aws:iam::*:role/Role1AllowedToBypassThisSCP",
"arn:aws:iam::*:role/Role2AllowedToBypassThisSCP"
]
}
}
}
]
}