IAM Policy SourceIP Access 제한 관련한 건
S3에서 `kms:decrypt` 권한이 광고되지 않은 이유를 파악하고 IP 정책 설정 문제를 해결합니다.
개요
권한을 가지고 있음에도 S3에서 kms:decrypt
explict denied가 발생했던 건입니다.
<Message>User: arn:aws:sts::....:assumed-role/Smileshark-sysadmin/smileshark_bjchoi is not authorized to perform: kms:Decrypt on resource: arn:aws:kms:ap-northeast-2:.....:key/0a0f650c-8736-491b-8cc8-2d248f57e1cb with an explicit deny in an identity-based policy</Message>
{
"eventVersion": "1.11",
"userIdentity": {
....
},
"invokedBy": "AWS Internal"
},
...
"eventType": "AwsApiCall",
"managementEvent": true,
"eventCategory": "Management",
"sessionCredentialFromConsole": "true"
}
InvokedBy
를 확인해보면 AWS Internal이 호출 했다는 것을 확인할 수 있습니다. 하지만 IP 권한 정책을 설정하는 과정에서 AWS를 경유하여 들어오는 경우 사용자 정책 상의 소스IP와 일치되지 않아 차단될 수 있습니다.
"Bool": {
"aws:ViaAWSService": "false"
}
따라서 ViaAWSService
를 false
로 설정하여 해당 요청이 AWS를 경유할 경우 요청이 차단되지 않도록 설정합니다.
즉, AWS 서비스 경유가 아닌 요청에 대해서만 IP를 적용하는 것입니다.