Installing the CloudWatch agent
IAM role이 장착된 인스턴스에 CloudWatchAgentSerPolicy가 장착되어 있어야 함.
IAM role을 생성해서 EC2 인스턴스에 붙어야 하는 이유는 인스턴스로 부터 정보를 읽고 CloudWatch에 기록하기 위해선 권한이 필요하기 때문.
이후 CloudWatchAgent 설정파일을 만든다. 설정파일을 Systems Manager Parameter Store에 저장하면 다른 서버도 이를 사용 할 수 있고 Parameter Store에 쓸 수 있는 권한 또한 제공한다(저장하면 권한을 제공한다?)
AWS에 IAM을 설정하는 이유는 AWS의 여러 자원에 대해 권한을 설정함으로써 자원 접근에 대한 유무를 결정하기 위함이다.
User groups
그룹을 생성, 이후 필요한 인가을 해당 그룹에 부여, 인가를 부여 할 때 사용자가 만든 Policy 또는 AWS에서 제공하는 Policy 모두 부여할 수 있다. 해당 그룹에 사용자 추가 시 해당 그룹에 속한 사용자는 그룹에 세팅한 모든 권한을 모두 갖게 된다. 사용자를 만든 후 해당 그룹에 추가시켜 주기만 하면 된다. 사용자는 단일 혹은 다수의 그룹에 속할 수 있다.
Users
사용자 또는 서비스를 특정하여 네이밍한다. 각 유저 또는 서비스는 AWS 자원에 접근할 수 있는 고유의 이름과 credential이 있다. Access keys를 설정해주면 AWS CLI에서 AWS를 호출할 수 있다고 한다.
Role
Policies와 다른 점은 AWS 서비스와 계정에 인가를 부여하는 것이다. Policy 그 자체는 말그대로 정책이어서 어떤 대상에 인가를 부여하는 개념은 아니다. 여기서 인가는 Policies에서 설정한 사용자정의 Policy와 AWS 단일 Policy를 통칭한다. 단일 또는 다수의 Policy를 특정한 Role을 부여한다. 즉 Role은 Policy의 묶음으로 볼 수 있다.
Role :: Bundle of Policies
# Download the CloudWatch agent package
sudo wget https://s3.amazonaws.com/amazoncloudwatch-agent/ubuntu/amd64/latest/amazon-cloudwatch-agent.deb
# Install the package
sudo dpkg -i -E ./amazon-cloudwatch-agent.deb
# start the CloudWatch agent
sudo /etc/init.d/amazon-cloudwatch-agent start
IAM 사용자에는 아래 정책을 추가시켜 주었다.
Role 에는 2개의 정책을 추가시켜 주었다.
sudo apt-get update
sudo apt-get install awscli
aws ec2 describe-instances --region ap-northeast-2
aws configure -> Access Key and Secret Key
user role AmazonEC2FullAccess 추가
user role IAMFullAccess 추가
# Instance에 Role 부여
aws ec2 associate-iam-instance-profile --instance-id "i-0a638adaf17f12a30" \
--iam-instance-profile Name="CloudWatchAgentServerRole"
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard