Trusted Relationship(신뢰 관계)

더쿠·2024년 10월 15일

참고

AWS IAM 역할과 함께 신뢰 정책을 사용하는 방법 | Amazon Web Services

설명

  • Truested Relationship을 설정하여, 생성하거나, 생성한 IAM Role이 맡을 수 있는(사용할 수 있는) 주체(Principal)을 정의할 수 있습니다.
  • Truested Relationship 설정 시 Trust Policy에 의해 역할을 맡을 수 있는 서비스를 정의하고, 정의한 내용을 바탕으로 주체가 Assume Role을 맡아 권한을 수행할 수 있습니다.
  • IAM Role 생성 시 Trust Policy를 필수로 입력해야 합니다.
  • 당연히 Trust Policy에 등록되지 않은 주체(Principal)에서 해당 IAM Role을 맡을 수 없습니다.
    만약 EC2 내부 시스템에서 S3 Bucket에 접속하기 위하여 IAM Role을 생성하였다면, 해당 IAM Role의 Trust Policy에는 Principal로ec2.amazonaws.com 가 등록되어 있어야 합니다.그렇지 않으면 생성한 IAM Role을 EC2 인스턴스에 연결할 수 없습니다.

설정 방법

  • Principal 객체를 설정하여, 사용하여 해당 역할을 맡을 주체를 지정할 수 있습니다.
  • Condition 객체를 설정하여, sts:AssumeRole 작업을 수행할 수 있는 주체의 조건을 지정할 수 있습니다.
    예를 들어 MFA로 인증된 경우, 지정한 IP 대역, 지정한 태그 등 다양한 조건을 지정할 수 있습니다.
  • 해당 방법은 IAM Role 생성 시 Trust Policy를 지정하는 방법입니다.

1. Trust Policy로 등록한 JSON 문서를 작성

tee trust_policy.json << EOF
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "lambda.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {}
    }
  ]
}
EOF



2. IAM Role을 생성

  • IAM Role을 생성시 "1. Trust Policy로 등록한 JSON 문서를 작성" 에서 작성한 JSON 파일을 사용합니다.
aws iam create-role \
--role-name lambda-role \
--assume-role-policy-document file://trust_policy.json



3. 생성한 IAM Role을 확인

aws iam list-roles \
| jq -r '.Roles[] | select(.RoleName == "lambda-role" )| {RoleName, AssumeRolePolicyDocument}'
  • 출력 확인 시 정상적으로 지정한 Trust Policy가 IAM Role에 등록된 것을 확인할 수 있습니다.
    출력
{
  "RoleName": "ec2-role",
  "AssumeRolePolicyDocument": {
    "Version": "2012-10-17",
    "Statement": [
      {
        "Effect": "Allow",
        "Principal": {
          "Service": "lambda.amazonaws.com"
        },
        "Action": "sts:AssumeRole",
        "Condition": {}
      }
    ]
  }
}
profile
궁금한게 많은 사람

0개의 댓글