AWS 서비스에 권한을 부여하는 가장 좋은 방법
예를 들어:
여기서 IAM 역할인 첫 번째 옵션을 보여드리겠습니다!
1. EC2 인스턴스 생성
여기에서는 Amazon Linux 2를 AMI로 사용하여 CLI를 통해 EC2 인스턴스를 생성하고 나머지는 그대로 기본값을 사용하도록 둡니다. 그 전에 키 페어도 가져오겠습니다.
$ aws ec2 import-key-pair --key-name "ec2-user" --public-key-material fileb://home/nurulramadhona/.ssh/id_rsa.pub
$ aws ec2 run-instances --image-id ami-021fb2b73ff1efc96 --count 1 --instance-type t3.micro --key-name ec2-user
$ aws ec2 describe-instances --query 'Reservations[].Instances[].{PublicIP:PublicIpAddress, ID:InstanceId}'
[
{
"PublicIP": "108.136.45.150",
"ID": "i-0f3df2b1eb51bc6a1"
}
]
2. IAM 역할 생성 및 정책 연결
신탁 문서:
$ cat ec2-role.json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "ec2.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
$ aws iam create-role --role-name ec2-role --assume-role-policy-document file://ec2-role.json
$ aws iam attach-role-policy --role-name ec2-role --policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess
3. 인스턴스 프로필 생성 및 역할 추가
인스턴스 프로필은 인스턴스가 시작될 때 EC2 인스턴스에 역할 정보를 전달하는 데 사용할 수 있는 IAM 역할의 컨테이너입니다. 인스턴스 프로파일당 하나의 역할만 가질 수 있다는 점에 유의하십시오.
$ aws iam create-instance-profile --instance-profile-name ec2-profile
$ aws iam add-role-to-instance-profile --role-name ec2-role --instance-profile-name ec2-profile
4. 인스턴스 프로필을 EC2 인스턴스에 연결
aws ec2 associate-iam-instance-profile --instance-id i-0f3df2b1eb51bc6a1 --iam-instance-profile Name=ec2-profile
aws ec2 describe-iam-instance-profile-associations
점검 해보자!
전에:
$ ssh [email protected]
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-2/
4 package(s) needed for security, out of 5 available
Run "sudo yum update" to apply all updates.
[ec2-user@ip-172-31-0-125 ~]$ aws s3 ls
Unable to locate credentials. You can configure credentials by running "aws configure".
후에:
[ec2-user@ip-172-31-0-125 ~]$ aws s3 ls
[ec2-user@ip-172-31-0-125 ~]$ aws s3 mb s3://bucket-ec2-role
make_bucket failed: s3://bucket-ec2-role An error occurred (AccessDenied) when calling the CreateBucket operation: Access Denied
5. 최소 권한 액세스
위에서 볼 수 있듯이 버킷(현재 비어 있음)을 나열할 수 있지만 오류
Access Denied
가 있는 버킷을 생성할 수 없습니다. 정말 필요한 경우 IAM 역할에 정책을 하나 더 연결할 수 있습니다. 이것은 필요에 따라 권한을 부여하는 것을 의미합니다. 자, 해보자!$ aws iam attach-role-policy --role-name ec2-role --policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess
[ec2-user@ip-172-31-0-125 ~]$ aws s3 mb s3://bucket-ec2-role
make_bucket: bucket-ec2-role
[ec2-user@ip-172-31-0-125 ~]$ aws s3 ls
2022-05-26 02:43:47 bucket-ec2-role
그런 다음 정책이 더 이상 필요하지 않으면 분리할 수도 있습니다.
$ aws iam detach-role-policy --role-name ec2-role --policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess
[ec2-user@ip-172-31-0-125 ~]$ aws s3 mb s3://bucket-ec2-role2
make_bucket failed: s3://bucket-ec2-role2 An error occurred (AccessDenied) when calling the CreateBucket operation: Access Denied
추가의:
IAM 역할을 삭제하려는 경우 다음이 있는지 확인하십시오.
그게 다야! 와주셔서 감사합니다. 귀하의 의견을 기다리겠습니다. 내 새 게시물이 게시될 때 알림을 받으려면 나를 팔로우하세요!
Reference
이 문제에 관하여(AWS 서비스에 권한을 부여하는 가장 좋은 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aws-builders/best-way-for-giving-permission-to-aws-services-286m텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)