AWS WAF, AWS Firewall Manager 및 AWS Shield Advanced
개발자 가이드 (API 버전 2015-08-24)

AWS WAF 리소스에 대한 액세스 권한 관리 개요

모든 AWS 리소스는 AWS 계정의 소유이고, 리소스 생성 또는 리소스 액세스 권한은 권한 정책에 따라 결정됩니다. 계정 관리자는 IAM 자격 증명(즉, 사용자, 그룹, 역할)에 권한 정책을 연결할 수 있고, 일부 서비스에서는 리소스에 대한 권한 정책 연결도 지원합니다.

참고

계정 관리자 또는 관리자 사용자는 관리자 권한이 있는 사용자입니다. 자세한 내용은 IAM 사용 설명서에서 IAM 모범 사례를 참조하십시오.

권한을 부여하려면 권한을 부여 받을 사용자, 권한 대상이 되는 리소스, 해당 리소스에 허용되는 특정 작업을 결정합니다.

주제

AWS WAF 리소스 및 작업

AWS WAF에서 리소스는 웹 ACL규칙입니다. 또한 AWS WAF는 바이트 일치, IP 일치크기 제약과 같은 조건을 지원합니다.

다음 표와 같이 이러한 리소스와 조건에는 고유한 Amazon 리소스 이름(ARN)이 연결되어 있습니다.

WAF 콘솔의 이름 WAF SDK/CLI의 이름 ARN 형식
웹 ACL WebACL

arn:aws:waf::account:webacl/ID

규칙 Rule

arn:aws:waf::account:rule/ID

문자열 일치 조건 ByteMatchSet

arn:aws:waf::account:bytematchset/ID

SQL 명령어 주입 일치 조건 SqlInjectionMatchSet arn:aws:waf::account:sqlinjectionset/ID
크기 제약 조건 SizeConstraintSet arn:aws:waf::account:sizeconstraintset/ID
IP 일치 조건 IPSet arn:aws:waf::account:ipset/ID
교차 사이트 스크립팅 일치 조건 XssMatchSet arn:aws:waf::account:xssmatchset/ID

AWS WAF 리소스의 하위 집합에 대한 액세스를 허용하거나 거부하려면 리소스의 ARN을 정책의 resource 요소에 포함시킵니다. AWS WAF의 ARN에는 다음과 같은 형식이 있습니다.

arn:aws:waf::account:resource/ID

account, resourceID 변수를 유효한 값으로 대체합니다. 유효한 값은 다음과 같습니다.

  • account: AWS 계정의 ID입니다. 값을 지정해야 합니다.

  • 리소스: AWS WAF 리소스의 유형입니다.

  • ID: 지정된 AWS 계정과 연결되어 있는 지정된 유형의 모든 리소스를 나타내는 AWS WAF 리소스의 ID 또는 와일드 카드(*)입니다.

예를 들어, 다음 ARN은 계정 111122223333에 대한 모든 웹 ACL을 지정합니다.

arn:aws:waf::111122223333:webacl/*

자세한 내용은 IAM 사용 설명서리소스 단원을 참조하십시오.

AWS WAF는 AWS WAF 리소스를 처리하기 위한 일련의 작업을 제공합니다. 사용 가능한 작업 목록은 작업 단원을 참조하십시오.

리소스 소유권 이해

리소스 소유자는 리소스를 생성하는 AWS 계정입니다. 즉, 리소스 소유자는 리소스를 생성하는 요청을 인증하는 보안 주체 엔터티(루트 계정, IAM 사용자 또는 IAM 역할)의 AWS 계정입니다. 다음 예에서는 이 계정의 작동 방식을 설명합니다.

  • AWS 계정의 루트 계정 자격 증명을 사용하여 AWS WAF 리소스를 생성하면 해당 AWS 계정은 리소스의 소유자가 됩니다.

  • AWS 계정에서 IAM 사용자를 생성하고 AWS WAF 리소스를 생성할 수 있는 권한을 해당 사용자에게 부여하면 해당 사용자는 AWS WAF 리소스를 생성할 수 있습니다. 하지만 해당 사용자가 속한 AWS 계정이 AWS WAF 리소스를 소유합니다.

  • AWS 계정에서 AWS WAF 리소스를 생성할 권한이 있는 IAM 역할을 생성하면 해당 역할을 수임할 수 있는 사람은 누구나 AWS WAF 리소스를 생성할 수 있습니다. 이 경우 역할이 속한 AWS 계정이 AWS WAF 리소스를 소유합니다.

리소스 액세스 관리

권한 정책은 누가 무엇에 액세스 할 수 있는지를 나타냅니다. 다음 단원에서는 권한 정책을 만드는 데 사용 가능한 옵션에 대해 설명합니다.

참고

이 단원에서는 AWS WAF의 맥락에서 IAM을 사용하는 방법에 대해 설명하며, IAM 서비스에 대한 자세한 내용은 다루지 않습니다. 전체 IAM 설명서는 IAM 사용 설명서IAM이란 무엇인가?를 참조하십시오. IAM 정책 구문과 설명에 대한 자세한 내용은 IAM 사용 설명서AWS IAM Policy Reference 단원을 참조하십시오.

IAM 자격 증명에 연결된 정책은 자격 증명 기반 정책이라고 알려져 있으며 리소스에 연결된 정책은 리소스 기반 정책이라고 알려져 있습니다. AWS WAF는 자격 증명 기반 정책만 지원합니다.

주제

자격 증명 기반 정책(IAM 정책)

정책을 IAM 자격 증명에 연결할 수 있습니다. 예를 들면,

  • 계정 내 사용자 또는 그룹에 권한 정책 연결 – 계정 관리자는 특정 사용자에 연결된 권한 정책을 사용하여 해당 사용자에게 AWS WAF 리소스 생성 권한을 부여할 수 있습니다.

  • 역할에 권한 정책 연결(교차 계정 권한 부여) – 자격 증명 기반 권한 정책을 IAM 역할에 연결하여 교차 계정 권한을 부여할 수 있습니다. 예를 들어, 계정 A의 관리자는 다음과 같이 다른 AWS 계정(예: 계정 B) 또는 AWS 서비스에 교차 계정 권한을 부여할 역할을 생성할 수 있습니다.

    1. 계정 A 관리자는 IAM 역할을 생성하고 계정 A의 리소스에 대한 권한을 부여하는 역할에 권한 정책을 연결합니다.

    2. 계정 A 관리자는 계정 B를 역할을 수임할 보안 주체로 식별하는 역할에 신뢰 정책을 연결합니다.

    3. 계정 B 관리자는 계정 B의 사용자에게 역할을 수임할 권한을 위임할 수 있습니다. 그러면 계정 B의 사용자가 계정 A에서 리소스를 생성하거나 액세스할 수 있습니다. AWS 서비스에 역할 수임 권한을 부여할 경우 신뢰 정책의 보안 주체가 AWS 서비스 보안 주체이기도 합니다.

    IAM을 사용하여 권한을 위임하는 방법에 대한 자세한 내용은 IAM 사용 설명서액세스 관리를 참조하십시오.

다음은 모든 리소스의 waf:ListRules 작업에 대한 권한을 부여하는 정책의 예시입니다. 현재 구현에서 AWS WAF는 일부 API 작업에 리소스 ARN(리소스 수준 권한이라고도 함)을 사용하여 특정 리소스를 식별하는 작업을 지원하지 않으므로 와일드카드 문자(*)를 지정해야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ListRules", "Effect": "Allow", "Action": [ "waf:ListRules" ], "Resource": "*" } ] }

AWS WAF에서 자격 증명 기반 정책을 사용하는 방법에 대한 자세한 내용은 AWS WAF에 대한 자격 증명 기반 정책(IAM 정책) 사용 단원을 참조하십시오. 사용자, 그룹, 역할 및 권한에 대한 자세한 내용은 IAM 사용 설명서자격 증명(사용자, 그룹 및 역할)을 참조하십시오.

리소스 기반 정책

Amazon S3와 같은 다른 서비스도 리소스 기반 권한 정책을 지원합니다. 예를 들어, 정책을 S3 버킷에 연결하여 해당 버킷에 대한 액세스 권한을 관리할 수 있습니다. AWS WAF는 리소스 기반 정책을 지원하지 않습니다.

정책 요소 지정: 작업, 효과, 리소스, 보안 주체

각 AWS WAF 리소스(AWS WAF 리소스 및 작업 단원 참조)에서 이 서비스는 API 작업을 정의합니다(AWS WAF API 권한: 작업, 리소스 및 조건 참조 단원 참조). 이러한 API 작업에 대한 권한을 부여하기 위해 AWS WAF에서는 정책에서 지정할 수 있는 작업을 정의합니다. API 작업을 수행하려면 둘 이상의 작업에 대한 권한이 필요할 수 있습니다. 특정 작업에 대한 권한을 부여할 때 해당 작업이 허용되거나 거부되는 리소스도 식별합니다.

다음은 가장 기본적인 정책 요소입니다.

  • 리소스 – 정책에서 Amazon 리소스 이름(ARN)을 사용하여 정책을 적용할 리소스를 식별합니다. 자세한 내용은 AWS WAF 리소스 및 작업 단원을 참조하십시오.

  • 작업 – 작업 키워드를 사용하여 허용 또는 거부할 리소스 작업을 식별합니다. 예를 들어, waf:CreateRule 권한은 사용자에게 AWS WAF CreateRule 작업 수행 권한을 허용합니다.

  • 효과 – 사용자가 특정 작업을 요청할 때 결과를 지정합니다. 이 값은 허용 또는 거부일 수 있습니다. 리소스를 허용하기 위한 액세스 권한을 명시적으로 부여하지 않으면 액세스가 암시적으로 거부됩니다. 또한 다른 정책에서 액세스 권한을 부여하더라도 사용자가 해당 리소스에 액세스할 수 없도록 하기 위해 리소스에 대한 액세스 권한을 명시적으로 거부할 수 있습니다.

  • 보안 주체 – 자격 증명 기반 정책(IAM 정책)에서 정책이 연결되는 사용자는 암시적인 보안 주체입니다. AWS WAF는 리소스 기반 정책을 지원하지 않습니다.

IAM 정책 구문과 설명에 대한 자세한 내용은 IAM 사용 설명서AWS IAM Policy Reference 단원을 참조하십시오.

모든 AWS WAF API 작업과 해당 작업이 적용되는 리소스를 보여주는 표는 AWS WAF API 권한: 작업, 리소스 및 조건 참조 단원을 참조하십시오.

정책에서 조건 지정

권한을 부여할 때 IAM 정책 언어를 사용하여 정책이 적용되는 조건을 지정할 수 있습니다. 예를 들어, 특정 날짜 이후에만 정책을 적용할 수 있습니다. 정책 언어에서의 조건 지정에 관한 자세한 내용은 IAM 사용 설명서조건 단원을 참조하십시오.

조건을 표시하려면 미리 정의된 조건 키를 사용합니다. AWS WAF에만 해당되는 특정한 조건 키는 없습니다. 하지만 적절하게 사용할 수 있는 AWS 차원의 조건 키가 있습니다. AWS 차원 키의 전체 목록은 IAM 사용 설명서사용 가능한 조건 키 단원을 참조하십시오.