AWS 서비스사용을 위한 ECS, Lambda 실행권한 설정
이전 포스트에서 EC2 인스턴스에 인스턴스 프로파일을 적용해 해당 인스턴스에서 AWS SDK 를 이용해 실행되는 애플리케이션에서 access key 등의 정보를 사용하지 않고 다른 AWS 서비스를 이용할 수 있다는 것을 확인했다. 마찬가지로 ECS 와 Lambda 에서도 실행권한 role 을 지정해서 접근 정보없이 다른 서비스에 접근할 수 있다. 예를 들면 S3와 같은 서비스에 파일을 업로드할 수 있게 된다.
ECS Task 는 태스크 역할과 작업 실행 역할을 각각 지정할 수 있다. 이 때 SDK 에서 다른 AWS 서비스에 접근할 때 부여되는 역할은 태스크 역할과 관련이 있다. 예를 들면 이 태스크 역할에 S3 에 접근할 수 있는 정책을 부여해주면 아래와 같이 access key 등의 정보를 별도로 제공하지 않아도 된다.
const AWS = require('aws-sdk');
const s3 = new AWS.S3({
region: process.env.S3_REGION,
});
Lambda 경우는 실행 역할에 S3 등에 접근할 수 있는 정책을 부여해주면 된다.