eu-west-1 리전에서 여러 AWS 서비스를 운영하고 있습니다. 불행히도 임시 리소스를 생성해야하는 많은 개발자와 다른 직원은 AWS의 이러한 측면을 잊어 버리고 EC2 인스턴스를 시작하고 S3 버킷을 생성하기 전에이 리전을 선택하지 않는 것 같습니다. AWS가 항상 사용하는 기본값 인 것처럼 보이므로 us-east-1 리전입니다.
IAM (또는 다른 방법)을 통해 특정 지역 내에서만 항목을 시작 / 만들도록 사용자 계정을 제한하는 방법이 있습니까?
답변
불행히도 전 세계적 으로이 작업을 수행 할 수 없습니다. 그러나이를 지원하는 각 AWS 제품에 대해 일반적으로 특정 리전으로의 액세스를 제한 할 수 있습니다 .
예를 들어 EC2의 경우 다음을 수행 할 수 있습니다.
{
"Statement":[{
"Effect":"allow",
"Action":"RunInstances",
"Resource":"*",
"Condition":{
"StringEquals":{
"ec2:Region":"us-west-1"
}
}
}
]
}
물론, 당신은 발행해야합니다 deny
적절한 규칙 .
위의 문서는 다음과 같습니다 .
답변
이런 식으로 사용하십시오. 이 예에서는 두 AWS 리전으로의 액세스를 제한합니다. 필요에 따라 수정하십시오.
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Deny",
"Action": "*",
"Resource": "*",
"Condition": {
"StringNotEquals": {
"aws:RequestedRegion": [
"eu-central-1",
"eu-west-1"
]
}
}
}]
}
답변
2018 년 4 월 25 일부터 AWS에는 사용자가 요청을 보낼 수있는 리전을 제한하는 데 사용할 수있는 전역 리소스 aws : RequestedRegion이 있습니다. 이는 서비스가 지역적이든 아니든 독립적이므로 모든 서비스에 적용 할 수 있습니다.
불행히도 조직의 서비스 제어 정책에서이 정책을 사용하여 전 세계 계정에 적용 할 수 없으며, 특정 지역에 계정을 잠 그려면 모든 단일 보안 주체에 정책을 연결하고 감사해야합니다.
답변
이 글타래에 허용 된 답변이 제공되었습니다 Syntax Error on Policy
. 아래는 나를 위해 일했습니다.
{
"Statement": [
{
"Sid": "Stmt1375943389569",
"Action": "ec2:*",
"Effect": "Allow",
"Resource": "*",
"Condition": {
"StringEquals": {
"ec2:Region": "eu-central-1"
}
}
}
]
}
답변
EC2 조치 만 요청하면 다른 응답에서 언급 한대로 제한 할 수 있습니다. 다른 서비스라면 할 수 있을지 모르겠습니다. 예를 들어 AWS Lambda는 lambda:region
조건에 추가 할 수 있는 것으로 보이지 않습니다 .
답변
Q : 사용자를 지역별로 정의 할 수 있습니까? 처음에는 아닙니다. 사용자는 오늘날 AWS 계정과 같은 글로벌 엔터티입니다. 사용자 권한을 정의 할 때 지역을 지정할 필요가 없습니다. 사용자는 모든 지역에서 AWS 서비스를 사용할 수 있습니다.
답변
이 기능이 더 잘 작동하여 (시작 / 중지 / 종료 등) 사용자에게 한 지역에만 완전한 EC2 액세스 권한을 부여했습니다. 다른 모든 지역에서는 액세스 시도 중 오류가 표시됩니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "*",
"Effect": "Allow",
"Resource": "*",
"Condition": {
"StringEquals": {
"ec2:Region": "us-east-1"
}
}
}
]
}