AWS 사용자 / 계정을 특정 지역으로 제한 할 수 있습니까? 인스턴스를 시작하고

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이 있습니다. 이는 서비스가 지역적이든 아니든 독립적이므로 모든 서비스에 적용 할 수 있습니다.

AWS 보안 블로그

불행히도 조직의 서비스 제어 정책에서이 정책을 사용하여 전 세계 계정에 적용 할 수 없으며, 특정 지역에 계정을 잠 그려면 모든 단일 보안 주체에 정책을 연결하고 감사해야합니다.


답변

이 글타래에 허용 된 답변이 제공되었습니다 Syntax Error on Policy. 아래는 나를 위해 일했습니다.

{
"Statement": [
    {
        "Sid": "Stmt1375943389569",
        "Action": "ec2:*",
        "Effect": "Allow",
        "Resource": "*",
        "Condition": {
            "StringEquals": {
                "ec2:Region": "eu-central-1"
            }
        }
    }
]

}


답변

EC2 조치 만 요청하면 다른 응답에서 언급 한대로 제한 할 수 있습니다. 다른 서비스라면 할 수 있을지 모르겠습니다. 예를 들어 AWS Lambda는 lambda:region조건에 추가 할 수 있는 것으로 보이지 않습니다 .


답변

AWS IAM에 대한 FAQ에서 :

Q : 사용자를 지역별로 정의 할 수 있습니까? 처음에는 아닙니다. 사용자는 오늘날 AWS 계정과 같은 글로벌 엔터티입니다. 사용자 권한을 정의 할 때 지역을 지정할 필요가 없습니다. 사용자는 모든 지역에서 AWS 서비스를 사용할 수 있습니다.


답변

이 기능이 더 잘 작동하여 (시작 / 중지 / 종료 등) 사용자에게 한 지역에만 완전한 EC2 액세스 권한을 부여했습니다. 다른 모든 지역에서는 액세스 시도 중 오류가 표시됩니다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": "*",
            "Effect": "Allow",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "ec2:Region": "us-east-1"
                }
            }
        }
    ]
}