상세 컨텐츠

본문 제목

[aws] lightsail, secrets manager 연동하는 법(feat.. 쉬벌 .. 개어렵다...)

DevOps 연구 노트/아마존 웹 서비스

by bydawn25 2024. 11. 23. 20:34

본문

내가 생각을 하기 실헝서 그런건가? 이거 왤케 어려움 ㅋㅋㅋㅋ 진짜 헛웃음만 나온다.

아직 php codeignter에서 민감한 정보 .env에서 불러오기가 되지 않았기 때문에(되면 2편에 공유) 이 점 참고 해서 아래 튜토리얼 참고하기

 

1. AWS parameter store

db password같은 민감한 정보 어디에 저장하면 좋을까하다가 aws secret manage -> application -> parameter store이 10,000개까지 무료 저장이 된다고 해서 사용하기로 결정

 

 

 

 

파라미터 생성 튼 클릭 후

 

 

 

 

 

 

해당하는 부분 입력하고 저장.

 

 

 

 

2. IAM 설정

아니 ㅋㅋㅋ AWS톡방에 들어와있는데 요금이 3억이 나왔다는 이야기를 들었다 ㅎㄷㄷ... 급하게 보안점검했음 겁나 무서운 사람들..

 

안전을 위해 IAM에서 Policy와 User를 설정.

 

 

 

 

Policy는 아래것을 사용

{ "Version": "2012-10-17",
    "Statement": [
        { "Effect": "Allow",
        "Action": [ "ssm:DescribeParameters" ],
        "Resource": "자기 parameter 주소(arn)" },
        { "Effect": "Allow",
    "Action": [
       "ssm:GetParameters", "ssm:GetParameter", "ssm:GetParametersByPath" ],
       "Resource": "자기 parameter 주소(arn)" }
] }

 

 

 

 

User는 아까만든 policy직접 넣어서 설정

 

 

 

 

아까만든 유저에 들어가서 key랑 seceret key만들기, 만들다가 나와져도 ㄱㅊ 다시만들면됨

 

 

 

 

3. linux 환경 lightsail로 이동

아 여러분 window는 모릅니다 ㅎ 터미널 바보는 터미널이 편해와요..


aws configure

이때 key, seceret key,region, json순서로 차례대로 입력

 

aws configure이 작동하지 않는다면 sudo yum install -y aws-cli으로 설치해주기

 

 

 

 

aws ssm get-parameter --name "내 parameter store 이름" --with-decryption

여기서 제대로 뜨면 성공한것임

 

만약 여기서 안되면 parameter store 이름이 backslash( / )와 제대로 설정되어있는지 확인하기!! 계속 연결 안되던게 이름문제였다.

 

 

 

 

 

4. php 코드 구현

composer require aws/aws-sdk-php                              --php 전용 sdk 라이브러리 다운로드
use Aws\Ssm\SsmClient;

위쪽에 라이브러리 삽입

 

 

 

 

 

$client = new SsmClient([
    'version' => 'latest',
    'region' => '여기수정',
    'credentials' => [
            'key'    => '여기수정',     
            'secret' => '여기수정',
        ],
]);

 

aws-credential이용해 부르기 도전중. 이거 하는데 너무 오래걸려서 지금 힘이 없음 ㅎ..

 

 

 

 

$result = $client->getParameter([
    'Name' => '여기수정',
    'WithDecryption' => true,
]);

여기서 불러가지고 이제 쓰면된다. 보통 필요한건 parameter밑에 있어서 거서 가져오면 됨! 

 

 

 

 

 

 

credential 밖에서 불러오기 성공하면 다시 만나요 여러분

관련글 더보기