AWS SCP로 조직 관리

AWS는 조직을 구성하고, 조직 내 멤버 계정을 제어할 수 있도록 하는 SCP(Service Control Policy)가 있다.

우선, SCP를 사용하려면 Organizations의 ‘모든 기능 활성화’가 이루어져 있어야 하며,
SCP를 작성할 줄 알아야 한다. 물론, 최대한 작성하기 편하게 작성기가 마련되어 있지만, 각각을 이해하기 위해서는 공부가 필요하다.
예를 들면, “Allow 정책을 만들 수는 있으나, 조건(Conditions)을 달아서는 안된다” 같이 어떤 식으로 작성해야 할지, 생각을 많이 하게 된다.

이번에 SCP를 여러 가지 작성해봤는데, Support Plan 변경과 임의로 조직 탈퇴 제한을 해보았다.
또, 조직 내 특정 멤버 계정에 대해서 Cost Explorer 접근 허용도 만들어봤다.

1. Support Plan 변경
현재의 상태 표시가 안됨은 물론, 변경을 위한 버튼이 비활성화되는 것을 확인했다.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Statement1",
      "Effect": "Deny",
      "Action": [
        "supportplans:GetSupportPlan"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}

2. 조직 탈퇴 제한
조직 탈퇴 버튼을 누르면, 권한이 없다는 메시지가 출력되는 것을 확인했다.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "organizations:LeaveOrganization"
      ],
      "Resource": "*"
    }
  ]
}

3. 특정 멤버만 Cost Explorer 접근 허용
여기서는 명시적으로 접근을 허용할 멤버와 그렇지 않은 계정에 대해, 각각 다른 정책을 부여해야 한다.
1. 가장 최상위(ROOT)에서는 FullAWSAccess를 부여함.
2. OU를 만들고, Cost Explororer를 거부하는 SCP 적용.

OU에 속하지 않은 멤버는 Cost Explororer에 접근할 수 있다.
실제로는 위와 반대로, OU에는 허용 정책 적용 / OU에 속하지 않은 멤버에게는 Cost Explororer를 거부하는 SCP 적용하는 방법으로 했으나, OU안에서 서비스를 거부하는 것이 훨씬 나아 보인다.