security(8)
-
IAM과 RBAC 차이: AWS, Azure, GCP 기준으로 이해하기
"개발자에게 S3 읽기 권한을 주려면 IAM으로 해야 하나요, RBAC로 해야 하나요?" — 이 질문 자체가 두 개념의 관계를 혼동하고 있다는 신호입니다. IAM은 접근 제어 시스템 전체를 가리키고, RBAC는 그 안에서 권한을 부여하는 방식 중 하나입니다.핵심 요약IAM(Identity and Access Management)은 "누가, 무엇에, 어떤 작업을 할 수 있는가"를 관리하는 시스템 전체를 의미합니다.RBAC(Role-Based Access Control)는 역할(Role)을 기준으로 권한을 묶어서 부여하는 접근 제어 모델입니다.AWS는 IAM 안에서 Policy 기반(ABAC/PBAC)과 Role 기반(RBAC)을 혼합하여 사용합니다.Azure는 IAM 계층 안에서 RBAC를 명시적으로 분리..
2026.06.08 -
OIDC 기반 인증 설계: GitHub Actions, EKS, Cloud Provider 연동
GitHub Actions에서 AWS에 배포할 때 Access Key를 Repository Secret에 저장하고 있다면, 그 Key는 누가 마지막으로 교체했는지, 어떤 권한이 붙어 있는지 확인해볼 필요가 있습니다. 팀원이 퇴사해도 Key는 남아 있고, 유출되면 교체할 때까지 무제한으로 사용됩니다. OIDC(OpenID Connect)는 이 문제를 구조적으로 해결합니다. 장기 자격 증명을 저장하지 않고, 실행 시점에 단기 토큰을 발급받아 사용하는 방식입니다.핵심 요약OIDC 기반 인증은 장기 자격 증명(Access Key, Service Account Key) 자체를 제거하여 유출 위험을 구조적으로 줄입니다.GitHub Actions, EKS Pod, GKE Pod 모두 동일한 원리로 동작합니다: 워크로..
2026.06.08 -
Kubernetes Secret을 안전하게 관리하는 방법: etcd 암호화부터 외부 Secret 관리 도구까지
Kubernetes Secret은 민감 데이터를 저장하는 기본 메커니즘이지만, 기본 설정만으로는 안전하지 않습니다. Base64 인코딩은 암호화가 아니며, etcd에 평문으로 저장될 수 있습니다. 운영 환경에서는 암호화, 접근 제어, 외부 Secret 관리 도구를 조합하여 보안을 강화해야 합니다.핵심 요약Kubernetes Secret은 Base64 인코딩만 적용됩니다. 이는 난독화일 뿐 암호화가 아닙니다.기본 설정에서 Secret은 etcd에 평문으로 저장됩니다. EncryptionConfiguration을 통해 저장 시 암호화(Encryption at Rest)를 활성화해야 합니다.RBAC로 Secret 접근을 최소화하고, 감사 로그로 접근 이력을 추적합니다.운영 환경에서는 외부 Secret 관리 도..
2026.06.08 -
Azure Key Vault란 무엇인가: Secret, Key, Certificate 관리
Azure Key Vault는 애플리케이션에서 사용하는 비밀(Secret), 암호화 키(Key), 인증서(Certificate)를 중앙에서 안전하게 저장하고 관리하는 서비스입니다. 코드나 설정 파일에 민감 정보를 직접 넣는 대신, Key Vault에 저장하고 접근 권한을 통제하는 것이 핵심 패턴입니다.핵심 요약Azure Key Vault는 Secret, Key, Certificate 세 종류의 객체를 관리하는 보안 서비스입니다.접근 제어는 RBAC(data plane)과 Management Plane(control plane)으로 분리됩니다.Standard 티어는 소프트웨어 기반 키를, Premium 티어는 HSM(하드웨어 보안 모듈) 기반 키를 지원합니다.Soft Delete(기본 활성화)로 실수로 삭..
2026.06.08 -
GitHub Actions에서 Secret을 안전하게 관리하는 방법
GitHub Actions 워크플로우에 AWS Access Key를 하드코딩해서 Push한 적이 있다면, 이미 한 번은 위험에 노출된 적이 있습니다. 워크플로우 파일은 Git 히스토리에 남고, Fork된 저장소에서도 보입니다. 이 글에서는 CI/CD 파이프라인에서 인증 정보를 안전하게 다루는 방법을 단계별로 정리합니다.핵심 요약GitHub Actions Secret은 저장 시 libsodium sealed box로 암호화되며, 로그에 출력되면 자동으로 ***로 마스킹됩니다.Secret의 범위는 Repository, Environment, Organization 3단계로 나뉘며, 최소 권한 원칙에 따라 가장 좁은 범위를 선택해야 합니다.Environment Secret에 보호 규칙(Required Revi..
2026.06.06 -
Kubernetes RBAC란 무엇인가: Role, ClusterRole, Binding으로 권한 설계하기
Kubernetes RBAC(Role-Based Access Control)는 "누가, 어떤 리소스에, 어떤 작업을 할 수 있는가"를 정의하는 권한 제어 시스템입니다. 클러스터 내 모든 API 요청은 RBAC 정책을 통과해야 실행됩니다.핵심 요약RBAC는 Kubernetes API Server의 인가(Authorization) 단계에서 동작합니다. 인증(Authentication)을 통과한 요청이 허용된 작업인지 판단합니다.4개의 핵심 오브젝트로 구성됩니다: Role, ClusterRole, RoleBinding, ClusterRoleBinding.Role은 "무엇을 할 수 있는가"를 정의하고, Binding은 "누구에게 부여할 것인가"를 연결합니다.네임스페이스 범위(Role/RoleBinding)와 클..
2026.06.01