1. 정책 정의 만들기
mkdir -p /etc/docker/policies
nano /etc/docker/policies/authz.rego
- authz.rego 내용
package docker.authz
default allow = false
# GET, HEAD 요청은 허용 (읽기 전용)
allow {
input.RequestMethod == "GET"
}
allow {
input.RequestMethod == "HEAD"
}
2. opa-docker-authz 인증 플러그인 설치
docker plugin install openpolicyagent/opa-docker-authz-v2:0.4 opa-args="-policy-file /opa/policies/authz.rego"
3. 플러그인을 사용하여 인증을 받으려면 Docker 데몬 구성 필요
nano /etc/docker/daemon.json
# daemon.json 내용
{
"authorization-plugins": ["openpolicyagent/opa-docker-authz-v2:0.4"]
}
4. OPA 플러그인은 정책 핫리로드 안 되므로 Docker 재시작 필요
sudo systemctl restart docker
인증 정책 적용이 잘되었다면 아래와 같이 나오는 것을 확인할 수 있음
https://www.openpolicyagent.org/docs/v0.11.0/docker-authorization/
Docker Authorization
Policy-based control for cloud native environments
www.openpolicyagent.org