서비스 연결 역할 생성 - AWS Identity and Access Management

서비스 연결 역할 생성

서비스 연결 역할은 AWS 서비스에 직접 연결된 고유한 유형의 IAM 역할입니다. 서비스 연결 역할은 해당 서비스에서 사전 정의하며 서비스에서 다른 AWS 서비스를 자동으로 호출하기 위해 필요한 모든 권한을 포함합니다. 또한 연결된 서비스는 서비스 연결 역할을 만들고 수정하며 삭제하는 방법을 정의합니다. 서비스는 역할을 자동으로 만들거나 삭제할 수 있습니다. 서비스의 프로세스나 마법사를 사용하여 사용자가 역할을 만들거나 수정하거나 삭제하도록 허용할 수도 있습니다. 또는 사용자가 IAM을 사용하여 역할을 생성하거나 삭제해야 할 수도 있습니다. 방법과 관계없이 서비스 연결 역할은 서비스 설정 프로세스를 단순화합니다. 서비스가 사용자를 대신하여 작업을 완료하도록 권한을 수동으로 추가할 필요가 없기 때문입니다.

참고

서비스 역할은 서비스 연결 역할과 다르다는 점을 기억하세요. 서비스 역할은 서비스가 사용자를 대신하여 작업을 수행하는 것으로 가정하는 IAM 역할입니다. IAM 관리자는 IAM 내에서 서비스 역할을 생성, 수정 및 삭제할 수 있습니다. 자세한 정보는 IAM 사용 설명서AWS 서비스에 대한 권한을 위임할 역할 생성을 참조하십시오. 서비스 연결 역할은 AWS 서비스에 연결된 서비스 역할의 한 유형입니다. 서비스는 사용자를 대신하여 작업을 수행하기 위해 역할을 수임할 수 있습니다. 서비스 링크 역할은 AWS 계정에 나타나고, 서비스가 소유합니다. IAM 관리자는 서비스 링크 역할의 권한을 볼 수 있지만 편집은 할 수 없습니다.

연결된 서비스에서 서비스 연결 역할 권한을 정의하므로 정의되지 않은 경우에만 해당 역할로 서비스를 수행할 수 있습니다. 정의된 권한에는 신뢰 정책과 권한 정책이 포함되며 이 권한 정책은 다른 IAM 엔터티에 연결할 수 없습니다.

역할을 삭제하려면 먼저 관련 리소스를 삭제해야 합니다. 이렇게 하면 리소스에 대한 액세스 권한을 부주의로 삭제할 수 없기 때문에 리소스가 보호됩니다.

작은 정보

서비스 연결 역할의 사용을 지원하는 서비스에 대한 자세한 정보는 AWS IAM으로 작업하는 서비스를 참조하고 서비스 연결 역할 열에 가 있는 서비스를 찾습니다. 해당 서비스에 대한 서비스 연결 역할 설명서를 보려면 링크를 선택합니다.

서비스 연결 역할 권한

사용자 또는 역할이 서비스 연결 역할을 작성하거나 편집할 수 있도록 IAM​ 엔터티(사용자 또는 역할)의 권한을 구성해야 합니다.

참고

서비스 링크된 역할에 대한 ARN은 정책에서 SERVICE-NAME.amazonaws.com으로 나타내지는 서비스 보안 주체를 포함합니다. 각 경우마다 다르고 AWS 서비스에 따라 형식이 다양하기 때문에 서비스 보안 주체를 알기 어렵습니다. 서비스의 보안 주체를 보려면 해당 서비스 링크된 역할 설명서 섹션을 참조하세요.

IAM 엔터티가 특정 서비스 연결 역할을 만들 수 있도록 허용하려면

서비스 연결 역할을 생성해야 하는 IAM 엔터티에 다음 정책을 추가합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "arn:aws:iam::*:role/aws-service-role/SERVICE-NAME.amazonaws.com/SERVICE-LINKED-ROLE-NAME-PREFIX*", "Condition": {"StringLike": {"iam:AWSServiceName": "SERVICE-NAME.amazonaws.com"}} }, { "Effect": "Allow", "Action": [ "iam:AttachRolePolicy", "iam:PutRolePolicy" ], "Resource": "arn:aws:iam::*:role/aws-service-role/SERVICE-NAME.amazonaws.com/SERVICE-LINKED-ROLE-NAME-PREFIX*" } ] }

IAM 엔터티가 서비스 연결 역할을 생성할 수 있도록 허용하려면

서비스 연결 역할 또는 필요한 정책을 포함해야 하는 모든 서비스 역할을 생성해야 하는 IAM 엔터티의 권한 정책에 다음 명령문을 추가합니다. 이 정책 명령문은 IAM 엔터티가 역할에 정책을 연결하는 것을 허용하지 않습니다.

{ "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "arn:aws:iam::*:role/aws-service-role/*" }

IAM 엔터티가 서비스 역할의 설명을 편집할 수 있도록 허용하려면

서비스 연결 역할 또는 서비스 역할의 설명을 편집해야 하는 IAM 엔터티의 권한 정책에 다음 명령문을 추가합니다.

{ "Effect": "Allow", "Action": "iam:UpdateRoleDescription", "Resource": "arn:aws:iam::*:role/aws-service-role/*" }

IAM 엔터티가 특정 서비스 연결 역할을 삭제하도록 허용하려면

서비스 연결 역할을 삭제해야 하는 IAM 개엔터티의 권한 정책에 다음 명령문을 추가합니다.

{ "Effect": "Allow", "Action": [ "iam:DeleteServiceLinkedRole", "iam:GetServiceLinkedRoleDeletionStatus" ], "Resource": "arn:aws:iam::*:role/aws-service-role/SERVICE-NAME.amazonaws.com/SERVICE-LINKED-ROLE-NAME-PREFIX*" }

IAM 엔터티가 서비스 연결 역할을 삭제할 수 있도록 허용하려면

서비스 연결 역할만 삭제하고 서비스 역할은 삭제하지 않는 IAM 엔터티의 권한 정책에 다음 명령문을 추가합니다.

{ "Effect": "Allow", "Action": [ "iam:DeleteServiceLinkedRole", "iam:GetServiceLinkedRoleDeletionStatus" ], "Resource": "arn:aws:iam::*:role/aws-service-role/*" }

IAM 엔터티가 기존 역할을 서비스에 전달하도록 허용하려면

일부 AWS 서비스를 사용하면 새 서비스에 연결된 역할을 생성하지 않고, 그 대신에 서비스에 기존 역할을 전달할 수 있습니다. 이렇게 하려면 사용자에게 서비스에 역할을 전달할 수 있는 권한이 있어야 합니다. 역할을 생성해야 하는 IAM 엔터티의 권한 정책에 다음 명령문을 추가합니다. 또한 이 정책 설명에서는 엔터티가 전달할 역할을 선택할 수 있는 역할 목록을 볼 수 있도록 허용합니다. 자세한 내용은 사용자에게 AWS 서비스에 역할을 전달할 권한 부여 단원을 참조하십시오.

{ "Sid": "PolicyStatementToAllowUserToListRoles", "Effect": "Allow", "Action": ["iam:ListRoles"], "Resource": "*" }, { "Sid": "PolicyStatementToAllowUserToPassOneSpecificRole", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::account-id:role/my-role-for-XYZ" }

간접 권한과 서비스 연결 역할을 통한 간접 권한

서비스 연결 역할에서 부여한 권한은 간접적으로 다른 사용자 및 역할에게 양도할 수 있습니다. AWS 서비스가 서비스 연결 역할을 사용하는 경우 해당 서비스 연결 역할은 자체 권한을 사용하여 다른 AWS 서비스를 호출할 수 있습니다. 즉, 서비스 연결 역할을 사용하는 서비스를 호출할 권한이 있는 사용자 및 역할은 해당 서비스 연결 역할로 액세스할 수 있는 서비스에 간접적으로 액세스할 수 있습니다.

예를 들어, Amazon RDS DB 인스턴스를 생성할 때 RDS용 서비스 연결 역할이 아직 존재하지 않는다면 자동으로 하나가 생성됩니다. 이렇게 생성된 서비스 연결 역할은 사용자가 DB 인스턴스를 편집할 때마다 RDS에게 사용자 대신 Amazon EC2, Amazon SNS, Amazon CloudWatch Logs 및 Amazon Kinesis를 호출하도록 허용합니다. 계정의 사용자 및 역할이 RDS 데이터베이스를 수정하거나 생성하도록 허용하면 RDS를 호출하여 Amazon EC2, Amazon SNS, Amazon CloudWatch Logs 로그 및 Amazon Kinesis 리소스와 간접적으로 상호 작용할 수 있습니다. RDS는 서비스 연결 역할을 사용하여 해당 리소스에 액세스하기 때문입니다.

서비스 연결 역할 만들기

서비스 연결 역할을 만드는 데 사용하는 방법은 서비스에 따라 다릅니다. 경우에 따라 서비스 연결 역할을 수동으로 만들 필요가 없습니다. 예를 들어 사용자가 서비스의 특정 작업(리소스 만들기 등)을 수행할 때 서비스가 서비스 연결 역할을 자동으로 생성할 수 있습니다. 또한, 서비스가 서비스 연결 역할 지원을 시작하기 전에 서비스를 사용한 경우에는 서비스가 자동으로 해당 계정에 역할을 생성했을 수 있습니다. 자세한 내용은 내 AWS 계정에 표시되는 새 역할 섹션을 참조하세요.

다른 경우에는 서비스에서 서비스 콘솔, API 또는 CLI를 사용하여 서비스 연결 역할을 수동으로 만들도록 허용할 수 있습니다. 서비스 연결 역할의 사용을 지원하는 서비스에 대한 자세한 정보는 AWS IAM으로 작업하는 서비스를 참조하고 서비스 연결 역할 열에 가 있는 서비스를 찾습니다. 서비스가 서비스 연결 역할 생성을 지원하는지 여부를 알아보려면 링크를 선택하여 해당 서비스의 서비스 연결 역할 설명서 섹션을 참조하세요.

서비스가 역할 생성을 지원하지 않는 경우에는 IAM을 사용하여 서비스 연결 역할을 생성할 수 있습니다.

중요

서비스 연결 역할은 AWS 계정의 IAM 역할 제한을 계산하는 데 포함되지만, 한도에 도달한 경우에도 계정에 서비스 연결 역할을 생성할 수 있습니다. 한도를 초과해도 생성할 수 있는 역할은 서비스 연결 역할뿐입니다.

서비스 연결 역할 만들기(콘솔)

IAM에서 서비스 연결 역할을 생성하기 전에, 연결된 서비스가 서비스 역할을 자동으로 생성하는지 확인합니다. 또한 서비스의 콘솔, API, CLI 등에서 역할을 생성할 수 있는지를 알아봅니다.

서비스 연결 역할을 만들려면(콘솔 사용)
  1. AWS Management Console에 로그인하여 https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. IAM 콘솔의 탐색 창에서 역할(Roles)을 선택합니다. 그런 다음 역할 생성을 선택합니다.

  3. AWS 서비스 역할 유형을 선택합니다.

  4. 서비스의 사용 사례를 선택합니다. 사용 사례는 서비스에 필요한 신뢰 정책을 포함하기 위해 서비스에서 정합니다. 그리고 다음(Next)을 선택합니다.

  5. 하나 이상의 권한 정책을 선택하여 역할에 연결합니다. 선택한 사용 사례에 따라 서비스에서 다음을 수행할 수 있습니다.

    • 역할에서 사용하는 권한을 정의할 수 있습니다.

    • 제한된 권한 세트에서 선택할 수 있습니다.

    • 모든 권한 중에서 선택할 수 있습니다.

    • 여기서 정책을 선택하지 않고, 나중에 정책을 만들어 역할에 연결할 수 있도록 허용합니다.

    역할에 부여하려는 권한을 할당하는 정책 옆의 확인란을 선택한 후 Next(다음)을 선택합니다.

    참고

    지정하는 권한은 역할을 사용하는 모든 주체가 사용할 수 있습니다. 기본적으로 역할은 권한이 없습니다.

  6. 역할 이름의 경우 역할 이름 사용자 지정 수준은 서비스에서 정합니다. 서비스에서 역할 이름을 정한 경우 이 옵션을 편집할 수 없습니다. 다른 경우에는 서비스에서 역할에 대한 접두사를 정의하고 사용자가 선택적 접미사를 입력할 수 있습니다.

    가능한 경우 기본 이름에 추가할 역할 이름 접미사를 입력합니다. 이 접미사는 이 역할의 목적을 파악하는 데 도움이 됩니다. 역할 이름은 AWS 계정 내에서 고유해야 합니다. 대소문자는 구별하지 않습니다. 예를 들어, 이름이 <service-linked-role-name>_SAMPLE<service-linked-role-name>_sample, 두 가지로 지정된 역할을 만들 수는 없습니다. 다양한 주체가 역할을 참조할 수 있기 때문에 역할이 생성된 후에는 역할 이름을 편집할 수 없습니다.

  7. (선택 사항) 설명(Description)에서 새로운 서비스 연결 역할에 대한 설명을 편집합니다.

  8. 생성하는 동안에는 서비스 연결 역할에 태그를 연결할 수 없습니다. IAM에서의 태그 사용에 대한 자세한 내용은 IAM 리소스에 태그 지정 섹션을 참조하세요.

  9. 역할을 검토한 다음 Create role을 선택합니다.

서비스 연결 역할 만들기(AWS CLI)

IAM에서 서비스 연결 역할을 만들기 전에, 연결된 서비스가 서비스 역할을 자동으로 생성하는지 그리고 서비스의 CLI에서 사용자가 역할을 만들 수 있는지를 확인합니다. 서비스 CLI가 지원되지 않는 경우 IAM 명령을 사용하여 서비스가 역할을 위임하는 데 필요한 인라인 정책과 신뢰 정책을 포함하는 서비스 연결 역할을 생성할 수 있습니다.

서비스 연결 역할(AWS CLI)을 만들려면

다음 명령을 실행합니다:

aws iam create-service-linked-role --aws-service-name SERVICE-NAME.amazonaws.com

서비스 연결 역할 만들기(AWS API)

IAM에서 서비스 연결 역할을 만들기 전에, 연결된 서비스가 서비스 역할을 자동으로 생성하는지 그리고 서비스의 API에서 사용자가 역할을 만들 수 있는지를 확인합니다. 서비스 API가 지원되지 않는 경우 AWS API를 사용하여 서비스가 역할을 위임하는 데 필요한 인라인 정책과 신뢰 정책을 포함하는 서비스 연결 역할을 만들 수 있습니다.

서비스 연결 역할(AWS API)을 만들려면

CreateServiceLinkedRole API 호출을 사용합니다. 요청 시 SERVICE_NAME_URL.amazonaws.com 서비스 이름을 지정합니다.

예를 들어 Lex 봇 서비스 연결 역할을 만들려면 lex.amazonaws.com을 사용합니다.