logo
기술 블로그
logo
[K8S 보안 2탄] K8S 사용자 관리
Kubernetes를 설치하면, kubeconfig 라는 Kubernetes 접근에 대한 설정이 Home Directory 및 .kube라는 Directory 및에 config란 이름으로 저장되어 있는 것을 발견 할 수 있습니다.kubeadm 으로 Kubernetes를 설치한 후 아래와 같은 메시지를 확인하실 수 있습니다.config 파일을 보면, 아래와 같은 정보로 구성되어 있습니다.kubectl 이란 CLI는 Kube API Server에 접속하는 Client 입니다. 통상 K8S API Server는 통상 Private CA를 구성하여 사용함으로, Client에게 Private CA(K8S CA)정보와 Client가 사용할 Client인증서/Key정보를 전달해 주는 것 입니다.좀더 자세히 탐색해 보겠습니다. Client 인증서에는 Client가 누구인지를 나타내는 항목이 있습니다. K8S는 인증서의 Subject(인증대상) 중 CN항목을 User, O항목을 Group으로 판단합니다.config 파일의 client-certificate-data 의 값을 Decoding하면 다음과 같은 Subject를 가지고 있습니다.이름만 봐도, Admin 권한인 것을 유추 할 수 있습니다. 탐색해 보는 김에 K8S의 ClutserRoleBinding과 ClusterRole을 확인합니다. 뒤에 말씀드리겠지만, K8S는 RBAC를 제공합니다. ClusterRole이란 권한이고, ClusterRoleBinding은 권한과 특정 대상과의 Mapping을 정의 한 것 입니다.먼저 ClusterRoleBinding을 탐색해 봅시다. 아래와 같이 kubectl client가 속한 group인 kubeadm:cluster-admins이 cluster-admin이라는 ClusterRole를 갖습니다.그럼 cluster-admin 이란 ClusterRole이 어떤 권한을 갖는지 알아봅시다.모든 자원에 대한 모든 권한을 가진 Role 입니다. 우리가 추측했듯이 Admin(Super User)권한입니다.우리는 이번 탐험으로 K8S는 X509 인증서 기준 상호인증을 제공하고, User/Group별 RBAC을 제공하는 것을 확인 했습니다. 그렇다면 User/Group은 어떻게 관리해야 할 까요? user별 config 파일은 누가 어떻게 전달해야 할 까요?조금 찾아 보니 K8S 자체는 User, Group이란 자원을 별도로 관리하지 않습니다. 뭘 어찌하라는 것 일까요?본 기고를 통해 차근차근 알아보도록 하겠습니다.Kubernetes 사용자 관리에 대해서 알아 가기전에 Kubernetes의 구조에 대해서 복습해 보겠습니다.아래는 간단하게 도식화된 Kubernetes의 구조 입니다. Kubernetes는 API Server를 통해 Resource를 변경하는 시스템입니다. 즉 공용 게시판에 할일을 적으면 그림의 스폰츠밥(Client)들이 알아서 할일을 하고, 일을 마무리한 후, 작업명세서(리소스)의 상태를 변화 시키는 것 입니다. 결국은 어떤 Task를 행한다는 건 결국 중앙의
SK텔레콤
·
2일 전
logo
테크 리더의 진화: AI를 활용한 비즈니스 혁신
이 글은 IDG의 아티클을 전재하여 제공합니다. [원문보기] : https://www.cio.com/article/2088578 보험 기업 내셔널 라이프그룹(National Life Group)의 수석부사장이자 최고 정보 및 전략 책임자(Chief Information and Strategy Officer)인 니메쉬 메타는 소셜 미디어에서 수백만 명의 팔로워를 보유하지는 않지만, 스스로를 ‘인플루언서’라고 표현합니다. 회사에서 그만큼 강력한 영향을 줄 수 있는 위치에 서 있기 때문입니다. 니메쉬는 수년간 보험회사를 현대화하기 위한 기술 로드맵을 실행해 왔습니다. 최근에는 조직의 비즈니스 전략 수립을 돕고 175년 역사를 지닌 내셔널 라이프를 디지털 선구자로 재탄생시키기 위한 방향을 주도하는 역할도 함께 맡고 있습니다. 니메쉬 같은 IT 리더에게는 IT 외에도 비즈니스를 올바르게 이끄는 것이 중요합니다. 실제로 니메쉬를 비롯한 많은 CIO가 비즈니스팀이 요구하는 사항을 수동적으로 실행하는 것을 넘어 유망한 전략적 이니셔티브로 조직을 이끄는 일에 더 깊이 관여하고 있습니다. 덕분에 오늘날의 IT 리더는 더 넓은 시야를 가지고 더 큰 영향력을 행사하고 있습니다. 예를 들어, 니메쉬는 현재 내셔널 라이프의 3개년 기업 전략을 개발하고 있습니다. 니메쉬는 과거에 CIO는 가능한 것에 대해 조언만 해주고 최종 결정은 비즈니스 부서가 내렸지만, 이제 CIO는 변화를 주도하는 영향력 있는 리더가 되었으며, 기술뿐만 아니라 비즈니스에 변화를 가져와야 한다고 강조합니다. IT 미디어 CIO닷컴이 공개한 2024 CIO 현황 보고서에 따르면, IT 리더는 비즈니스 영역에서 더욱 중요해지고 있는 것으로 나타났습니다. 875명의 IT 리더와 251명의 핵심 부서(line of business, LOB) 담당자를 대상으로 실시한 이 설문조사에 따르면, 많은 CIO가 전통적인 IT 지원 및 혁신 추진 업무를 수행하지만, 최근에는 비즈니스 전략을 개선하고 변화를 주도하는 일도 적극 맡고 있었습니다. 데이터, 분석, 새로운 AI 기술의 융합으로 비즈니스가 변화하는 상황을 대비하는 의무가 생긴 것입니다. 2024 CIO 현황 보고서 응답자의 35%는 현재 자신을 전략적 CIO라고 묘사했으며, 절반 가까이(49%)가 3~5년간 전략 구상 역할을 수행할 것으로 예상했습니다. 전반적으로 CIO는 비즈니스 전략 조언자로서 위상이 계속 높아지고 있으며, IT 리더의 4분의 3과 LOB 응답자의 78%가 CIO가 대규모 조직에서 존재감 높아졌다고 답했습니다. IT 리더의 약 절반(48%)과 LOB 응답자의 41%가 기술 및 공급업체 추천뿐만 아니라 비즈니스 기회를 선제적으로 파악하기 위해 CIO를 찾고 있다고 답했습니다. 소수의 응답자(IT 리더 중 16%, LOB 중 11%)는 위험 관리 또는 거버넌스 렌즈를 사용하여 선택 사항을 평가하고 조언을 구하기 위해 CIO의 컨설팅을 구한다고 답했습니다.또한 이번 보고서에선 IT 조직 전체가 비즈니스 중심으로 재편되고 있는 상황을 엿볼
삼성SDS
·
2일 전
logo
AI를 활용한 손쉬운 음성 테스트 데이터 생성
Python에서 음성 파일을 만들고 작성하는 것은 재미있고 유용한 기술이 될 수 있습니다.특히 오디오 피드백이 필요한 앱을 구축하거나 프로젝트의 접근성을 높이는 데 더욱 그렇습니다.이를 달성하는 가장 쉬운 방법 중 하나는 gTTS(Google Text-to-Speech) 라이브러리를 사용하는 것입니다.수행 방법에 대한 초보자 친화적인 가이드는 다음과 같습니다.파이썬이 설치되어 있다는 가정하에, 먼저 gTTS 라이브러리를 설치해야 합니다. 터미널이나 명령 프롬프트를 열고 다음 명령을 입력하십시오.이제 텍스트를 음성으로 변환하고 MP3 파일로 저장하는 간단한 스크립트를 작성해 보겠습니다.함수를 이용하려면 아래와 같이 작성합니다.• None gTTS 가져오기: gtts 모듈에서 gTTS 클래스를 가져오는 것부터 시작합니다. 을 넣지 않으면 외국인이 한국말을 하는 것처럼 들리니 반드시 추가해야 합니다.• None 함수 정의: 함수는 ** **와 ** **을 인수로 사용합니다. 입력된 텍스트는 음성으로 변환됩니다.• None 음성 생성 및 저장: 함수 내에서 텍스트를 전달하여 gTTS 인스턴스를 생성합니다. 그런 다음 메소드를 사용하여 ** **으로 지정된 MP3 파일로 음성을 출력합니다.IDE를 통해 또는 터미널에서 다음을 입력하여 Python 스크립트를 실행합니다.이렇게 하면 스크립트에 작성한 텍스트를 재생하는 MP3 파일이 디렉토리에 생성됩니다.이러한 단계를 통해 Python 및 gTTS를 사용하여 간단한 텍스트 음성 변환 애플리케이션을 만들었습니다.이는 텍스트 파일 읽기 또는 다른 응용 프로그램과의 통합과 같은 더 복잡한 기능으로 확장될 수 있습니다.다음에는 5분이상 길이의 스크립트를 음성으로 만든다면 어떻게 해야 할까요?기존에는 웹스크랩핑으로 텍스트를 긁어와서 파일을 만들었다면 이제는 ChatGPT에게 요청하여 만들 수 있습니다.ChatGPT를 이용하면 스크립트의 주제나 내용을 구체적으로 요청할 수 있는 장점이 있습니다.요청에 결과는 아래처럼 파일로 작성되었습니다. (버전 4로 만든내용입니다.)이제 만들어진 'Shampoo_Advertisement_Conversation.txt' 파일을 읽어서 mp3로 만들어봅니다.Python에서 MP3 파일을 재생하려면 'playsound' 모듈을 사용하면 됩니다.이는 오디오 재생을 처리하는 간단하고 직접적인 방법입니다. 방법은 다음과 같습니다.만약 설치할때 오류가 발생한다면 아래 2개도 함께 설치합니다.위의 코드에 playsound를 추가합니다.이렇게 하면 음성파일을 만들어서 매번 만들어졌는지 실행할 필요없이 바로 확인이 가능합니다.play를 종료하고자 한다면 실행 터미널에서 crtl +C 를 누릅니다.chatGPT를 이용하여 다시 코드로 복귀하는 불편함은 바로 api key를 이용하여 openai api 를 사용할 수 있습니다.그런데 chatgpt 비용과 platform 비용이 별도라 비용이 두배로 든다는 것은 참고해야 합니다.이렇게 하면 바로 mp3 파일이 생성되고 실행도 됩니다. 여기에 스크립트
SK텔레콤
·
5일 전
logo
데이터 엔지니어의 Airflow 데이터 파이프라인 CI 테스트 개선기
버즈빌의 ML 플랫폼 Buzzflow (1) - 모델을 개발하고 관리하기들어가며 안녕하세요, 버즈빌에서 MLOps 엔지니어로 일하고 있는 BK입니다. 버즈빌 광고 플랫폼 팀은 광고 성과 최적화를 위해서 다양한 머신러닝 모델을 활용하고 있습니다. 앞으로 두 편의 글을 통해 모델을 개발, 관리, …
버즈빌
·
5일 전
logo
마이크로서비스 설계를 잘 할 수 있게 해주는 기법, 도메인 주도 설계에 대해 알아보기
오늘 제가 풀어볼 주제는 마이크로서비스에 대해 공부하다 한번쯤은 들어보셨을 도메인 주도 설계(DDD, Domain-Driven Design)입니다.먼저 당연한 얘기지만 어떤 소프트웨어가 좋은 소프트웨어인지 한번 짚고 넘어가겠습니다.소프트웨어의 본질은 소프트웨어는 현실 세계의 복잡한 프로세스를 자동화 하거나, 비즈니스의 어렵고 복잡한 문제를 시스템을 통해 쉽게 할 수 있게 하는데 있습니다.당연한 얘기를 어렵게 적은 것 같네요. ^^이런 복잡하고 어려운 비즈니스 도메인을 소프트웨어로 구현하기 위해서는 도메인을 바르게 이해하는게 중요합니다.따라서, 도메인 전문가, 개발자 등 프로젝트에 참여한 모든 구성원들은 도메인을 잘 이해하는데 많은 노력을 해야 합니다.다시말해, 우리는 도메인의 이해와 도메인 중심의 사고를 바탕으로 소프트웨어를 만들어야 한다라는 거죠.이게 도메인 주도 설계가 필요한 이유입니다.도메인 주도 설계는?도메인 주도 설계는 도메인의 가치를 최우선시하는 모델링 기법으로 개발자들도 분석과 설계자와 함께 회의에 참석하고,코드를 구현하기에 앞서 도메인과 도메인 모델을 명확히 이해하고 또 완전한 이해를 강조하고 있습니다.즉, 도메인 주도 설계는 크고 복잡한 도메인을 이해하고 탐구하는 활동을 하고,이를 통해 발견된 다양하고 많은 도메인의 문제들을 해결하기 위한 소프트웨어 개발의 철학이라고 할 수 있습니다.많은 소프트웨어 개발 프로젝트를 수행하는 것을 보면, 특히 소프트웨어를 설계할 때 흔히 벌어지는 일이 있습니다. 소프트웨어 설계는 처음에는 중요한 것들부터 작게 설계가 시작됩니다.설계가 계속 진행되면서 팀원들은 본인이 담당하는 업무와 관련된 다양한 내용을 설계에 계속 추가하게 됩니다.복잡한 도메인에 대한 이해와 탐구가 부족한 상태에서 각각의 담당 업무와 관련된 내용을 계속해서 식별하고 추가를 하게 됩니다.이런 것들이 설계가 진행되는 내내 발생되고 반복되면서 비즈니스 상 중요한 것과 덜 중요한, 어쩌면 중요하지 않은 것들이 아래 그림처럼 하나의 큰 덩어리로 얽히게 됩니다.이렇게 만들어진 설계를 기반으로 구현된 코드는 가독성이 떨어지고, 또 많은 기능이 하나로 엮여 새로운 기능의 추가나 개선 등의 유지보수를 어려워지게 만드는 문제가 있습니다.이런 문제를 방지하거나 최소화할 수 있는 설계 기법이 도메인 주도 설계입니다.도메인 주도 설계에서는 전체 비즈니스가 한 덩이로 된 위의 그림과 같은 소프트웨어를아래 그림처럼 비즈니스 상 중요도에 따라 서브 도메인들로 나누고, 또 나눠진 것들을 하나씩 해결해 나갈 수 있게 합니다.도메인 주도 설계에서는 서비스의 설계를 2개 단계로 정의하고 있습니다.서비스를 식별하는 설계를 전략적 설계, 서비스 내부 구조를 상세하게 정의하고 비즈니스의 고유한 활동을 모델링하는 것을 전술적 설계라고 합니다.그럼 전략적 설계와 전술적 설계를 알아보겠습니다.전략적 설계는 하나의 큰 비즈니스 도메인에서 마이크로서비스를 식별하는 것으로, 첫 번째로 유비쿼터스 언어를 정의하는 것입니다.유비쿼터스 언어는 소프트웨어를 개발하는 팀 안에서 사용
SK텔레콤
·
6일 전
logo
인공 일반 지능(AGI)이란? 개념, 적용 기술, 그리고 인간 삶에 미칠 영향
올해 3월 열린 엔비디아의 개발자 연례 행사 ‘GTC (GPU Technology Conference) 2024’에서 CEO 젠슨 황은 중요한 예견을 공개적으로 밝혔습니다. 바로 인공 일반 지능(Artificial General Intelligence, 이하 AGI) 시대가 5년 남았다는 공언이었습니다. 인공지능의 발전은 복잡한 작업은 물론 우리의 일상, 일하는 방식, 인간이 세계를 인식하는 방식 등에 근본적인 변화를 가져오고 있습니다. 그 중심에는 AGI가 자리 잡고 있으며, AGI는 단순한 기계적 학습을 넘어서 인간의 지능을 전방위적으로 모방하고자 하는 목표를 가지고 있습니다. AGI는 복잡한 문제 해결부터 창의적 작업에 이르기까지 인간과 유사한 수준의 이해와 처리 능력을 발휘할 수 있는 시스템을 지향하고 있습니다. AGI에 대한 논의는 이제 단순한 기술적 문제를 뛰어 넘어 인간의 지능 자체에 대한 고민과 함께 AGI가 가져올 편리함과 위험성 등 다양한 주제를 포함하고 있습니다. 이에 본 리포트는 AGI의 이론적 정의와 목표, 핵심 기술 및 응용 분야, 향후 발전 방향 등을 살펴보겠습니다. 역사적으로 인공지능 학자들의 초기 목표는 인간의 지능과 비교할 수 있는 수준의 지적 능력을 가진 기계 혹은 시스템을 구축하는 것이었습니다. 예를 들어 의사결정론 및 인지심리학의 권위자인 허버트 사이먼 (Herbert Simon)은 1965년 그의 저서 에서 "기계가 20년 내에 인간이 할 수 있는 어떤 일이든 할 수 있게 될 것"이라고 예측했습니다. MIT 인공지능 연구소 설립자로 유명한 마빈 민스키 (Marvin Minsky)는 1970년에 "3년에서 8년 사이에 우리는 평균적인 인간의 지능 수준을 가진 기계를 갖게 될 것입니다. 셰익스피어를 읽고, 차에 기름을 채우고, 정치를 하고, 농담을 하고, 싸움을 할 수 있는 기계를 말합니다."라고 예측했습니다. AGI를 이해하기 위해서는 ‘특정 목적 인공지능’에 대한 이해가 먼저 필요합니다. 특정 목적만을 수행하기 위해 개발된 ‘특정 목적 인공지능’은 주어진 특정 분야나 한정된 작업에 대해 인간 수준 혹은 그 이상의 성능을 보여주는 인공지능을 일컫습니다. 그래서 영어로 좁다는 뜻의 Narrow AI라는 이름으로도 불립니다. 인간의 역량으로 수행하기 어려운 방대한 양의 데이터 분석, 반복적이고 복잡한 수학적 연산 등을 컴퓨터에게 맡겨 에러가 적은 우수한 인공지능 모델을 만들어내는 것이 ‘특정 목적 인공지능’의 일반적인 목표입니다. 반면 AGI는 다양한 분야에서 인간과 유사한 학습, 이해, 추론 능력을 지닌 지능의 형태를 지향합니다. 이런 뜻에서 AGI는 Full AI 혹은 Strong AI라고도 불립니다. 사람은 언어 학습, 문제 해결, 예술 창작 등 다양한 분야에서 일정 수준의 능력을 발휘할 수 있는데, AGI의 목표는 이러한 인간의 일반적 지능을 컴퓨터에서 재현하는 것입니다. 이는 궁극적으로 컴퓨터가 인간과 동등한 수준의 창의적 사고와 문제 해결 능력을 유연하게 가지게 하는 것을 포함합니다.
삼성SDS
·
7일 전
기술 블로그 더 보기
Copyright © 2024. Codenary All Rights Reserved.