단일 값 컨텍스트 키 사용 예시

단일 값 컨텍스트 키 사용 예시

조건 키가 요청 컨텍스트에서 단일 값을 가질 때 Condition 요소를 쓰는 예시를 보여 주는 페이지예요. IP 주소, 프린시펄 ARN, 프린시펄 태그 같은 단일 값 키를 다뤄요.

출처: 문서

본문

여기서 다루는 컨텍스트 키는 요청 컨텍스트에서 단일 값을 가져요. 즉 요청을 평가할 때 키에 해당하는 값은 하나예요. 단일 값 키는 StringEquals, Bool, IpAddress 같은 일반 비교 연산자로 검사하면 돼요.

예시: 특정 IP 주소에서만 요청 허용

요청이 특정 CIDR 범위에서 온 경우에만 동작을 허용하는 정책이에요.

{
    "Version":"2012-10-17",
    "Statement": {
        "Effect": "Allow",
        "Action": [
            "ec2:DescribeInstances"
        ],
        "Resource": "*",
        "Condition": {
            "IpAddress": {
                "aws:SourceIp": "203.0.113.0/24"
            }
        }
    }
}

aws:SourceIp는 요청이 시작된 IP 주소 하나를 나타내는 단일 값 키예요.

예시: 특정 역할(ARN)만 허용

aws:PrincipalArn 조건 키로 요청을 보낸 프린시펄의 ARN을 검사해요.

{
    "Version":"2012-10-17",
    "Statement": {
        "Effect": "Allow",
        "Action": "s3:GetObject",
        "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
        "Condition": {
            "ArnEquals": {
                "aws:PrincipalArn": "arn:aws:iam::111122223333:role/read-only-role"
            }
        }
    }
}

예시: MFA로 로그인한 사용자만 허용

aws:MultiFactorAuthPresent 부울 키를 검사해 MFA로 인증한 요청만 허용해요.

{
    "Version":"2012-10-17",
    "Statement": {
        "Effect": "Allow",
        "Action": "iam:ChangePassword",
        "Resource": "arn:aws:iam::*:user/${aws:username}",
        "Condition": {
            "Bool": {
                "aws:MultiFactorAuthPresent": "true"
            }
        }
    }
}

예시: 프린시펄 태그로만 허용

aws:PrincipalTag/job-category 키로 사용자나 역할에 연결된 태그 값을 검사해요.

{
    "Version":"2012-10-17",
    "Statement": {
        "Effect": "Allow",
        "Action": "iam:*AccessKey*",
        "Resource": "arn:aws:iam::111122223333:user/*",
        "Condition": {
            "StringEquals": {
                "aws:PrincipalTag/job-category": "iamuser-admin"
            }
        }
    }
}

조건 연산자 전체 목록은 조건 연산자를 참고하세요.

더 알아보기 (Learn more)