DevOps/Istio
[Istio] AuthorizationPolicy란?
운호(Noah)
2023. 11. 5. 14:37
들어가기 앞서,
- 해당 포스팅에선, Istio의 AuthorizationPolicy에 대해서 다뤄보겠습니다.
AuthorizationPolicy란?
- Istio의 AuthorizationPolicy는 서비스 메시 내에서 네트워크 트래픽에 대한 엑세스 제어를 정의하는 데 사용되는 Kubernetes Custom Resource Definition(CRD) 중 하나입니다.
- AuthorizationPolicy를 사용하면 서비스 간 또는 서비스와 클라이언트 간의 통신을 제한하거나 규제할 수 있습니다.
AuthorizationPolicy 예제 코드
AuthorizationPolicy 리소스는 Terraform을 사용해 정의하겠습니다.
resource "kubernetes_manifest" "example_authorization_policy" { manifest = { apiVersion = "security.istio.io/v1beta1" kind = "AuthorizationPolicy" metadata = { name = "example-auth-policy" namespace = "your-namespace" } spec = { selector = { matchLabels = { app = "your-app-label" # 어떤 서비스에 규칙을 적용할지 설정합니다. } } action = "ALLOW" # 규칙이 일치하는 경우 어떤 동작을 취할지 설정합니다. rules = [ { when = [ { key = "remote.ip" values = ["192.168.1.100"] # 허용할 IP 주소를 지정합니다. } ] } ] } } }
- 이 AuthorizationPolicy는 Istio 서비스 메시 내에서 “your-app-label” Label을 가진 Service에 대한 액세스를 제어하며,
- remote.ip가 “192.168.1.100”인 경우에만 액세스를 허용하게 됩니다.