Amazon EC2의 IAM 역할 - Amazon Elastic Compute Cloud

Amazon EC2의 IAM 역할

애플리케이션은 AWS 자격 증명으로 API 요청에 서명해야 합니다. 따라서 애플리케이션 개발자는 EC2 인스턴스에서 실행되는 인스턴스의 자격 증명을 관리할 전략을 수립해야 합니다. 예를 들어 AWS 자격 증명을 인스턴스에 안전하게 배포하여 다른 사용자로부터 보호하는 한편 해당 인스턴스의 애플리케이션이 자격 증명을 사용하여 요청에 서명하도록 할 수 있습니다. 그러나 각 인스턴스에 자격 증명을 안전하게 배포하기란 쉽지 않으며, 스팟 인스턴스와 같이 AWS에서 자동으로 생성하는 인스턴스 또는 Auto Scaling 그룹의 인스턴스에 대해서는 특히 어렵습니다. 또한 AWS 자격 증명을 교체할 때 각 인스턴스의 자격 증명을 업데이트할 수 있어야 합니다.

참고

Amazon EC2 워크로드의 경우 아래 설명된 방법을 사용하여 세션 자격 증명을 검색하는 것이 좋습니다. 이러한 자격 증명을 사용하면 sts:AssumeRole을 사용하여 인스턴스와 이미 연결된 동일한 역할을 맡을 필요 없이 워크로드에서 AWS API 요청을 수행할 수 있습니다. ABAC(속성 기반 액세스 제어)에 대한 세션 태그를 전달하거나 역할의 권한을 추가로 제한하기 위해 세션 정책을 전달해야 하는 경우가 아니면 이러한 역할 수임 호출은 동일한 임시 역할 세션 자격 증명의 새 세트를 생성하므로 불필요합니다.

워크로드가 역할을 사용하여 자체적으로 수임하는 경우 해당 역할이 자체적으로 수임하도록 명시적으로 허용하는 신뢰 정책을 생성해야 합니다. 신뢰 정책을 생성하지 않으면 AccessDenied 오류가 발생합니다. 자세한 내용을 알아보려면 IAM 사용 설명서의 역할 신뢰 정책 수정을 참조하세요.

애플리케이션이 사용하는 보안 자격 증명을 직접 관리할 필요 없이 인스턴스의 애플리케이션에서 안전하게 API 요청을 전송할 수 있도록 IAM 역할을 설계했습니다. AWS 자격 증명을 생성하고 배포하는 대신 다음과 같이 IAM 역할을 사용하여 API 요청 전송 권한을 위임할 수 있습니다.

  1. IAM 역할 생성.

  2. 역할을 수행할 수 있는 계정 또는 AWS 서비스를 정의합니다.

  3. 역할을 수행하면서 애플리케이션이 사용할 수 있는 API 작업 및 리소스를 정의합니다.

  4. 인스턴스를 시작할 때 역할을 지정하거나, 기존 인스턴스에 역할을 연결합니다.

  5. 애플리케이션에서 임시 자격 증명 세트를 검색하여 사용하도록 합니다.

예를 들어 IAM 역할을 사용하여 인스턴스에서 실행되며 Amazon S3의 버킷을 사용해야 하는 애플리케이션에 해당 권한을 부여할 수 있습니다. JSON 형식으로 정책을 생성하여 IAM 역할에 권한을 지정할 수 있습니다. 이 방법은 사용자를 대상으로 정책을 생성할 때와 비슷합니다. 역할을 변경하면 모든 인스턴스에 변경 내용이 전파됩니다.

참고

Amazon EC2 IAM 역할 보안 인증에는 역할에 구성된 최대 세션 기간이 적용되지 않습니다. 자세한 내용을 알아보려면 IAM 사용 설명서IAM 역할 사용을 참조하세요.

인스턴스에 하나의 IAM 역할만 연결할 수 있지만, 여러 인스턴스에 동일한 역할을 연결할 수는 있습니다. IAM 역할 생성 및 사용에 대한 자세한 내용은 IAM 사용 설명서에서 역할을 참조하십시오.

IAM 정책에 리소스 수준 권한을 적용하여 사용자가 인스턴스에 IAM 역할을 연결, 교체 또는 분리할 수 있는 권한을 제어할 수 있습니다. 자세한 내용은 Amazon EC2 API 작업에 지원되는 리소스 수준 권한 및 다음 예제: 예: IAM 역할 작업 섹션을 참조하세요.

인스턴스 프로파일

Amazon EC2에서는 인스턴스 프로파일을 IAM 역할의 컨테이너로 사용합니다. IAM 콘솔을 사용하여 IAM 역할을 생성하면 인스턴스 프로파일이 자동으로 생성되고 해당 역할과 동일한 이름이 지정됩니다. Amazon EC2 콘솔을 사용하여 IAM 역할로 인스턴스를 시작하거나 인스턴스에 IAM 역할을 연결하는 경우 인스턴스 프로파일 이름 목록을 기반으로 역할을 선택합니다.

AWS CLI, API 또는 AWS SDK를 사용하여 역할을 생성하면 역할과 인스턴스 프로파일이 별개의 작업으로 생성되며 이름은 각각 다를 수 있습니다. AWS CLI, API 또는 AWS SDK를 사용하여 IAM 역할로 인스턴스를 시작하거나 인스턴스에 IAM 역할을 연결하는 경우 인스턴스 프로파일 이름을 지정합니다.

인스턴스 프로파일은 하나의 IAM 역할만 포함할 수 있습니다. 이 한도는 늘릴 수 없습니다.

자세한 내용은 IAM 사용 설명서에서 인스턴스 프로파일을 참조하십시오.

인스턴스 메타데이터에서 보안 자격 증명 검색

인스턴스의 애플리케이션은 인스턴스 메타데이터 항목 iam/security-credentials/role-name에서 역할이 제공하는 보안 자격 증명을 검색합니다. 역할에 연결된 보안 자격 증명을 통해 역할에 정의한 작업 및 리소스에 대한 권한이 애플리케이션에 부여됩니다. 이러한 보안 자격 증명은 임시로 발급되며 자동으로 교체됩니다. 이전 자격 증명이 만료되기 최소 5분 전에 새 자격 증명이 제공됩니다.

주의

IAM 역할과 함께 인스턴스 메타데이터를 사용하는 서비스를 사용하는 경우 서비스에서 사용자 대신 HTTP 호출을 수행할 때 자격 증명이 노출되지 않도록 주의하세요. 자격 증명이 노출될 수 있는 서비스 유형은 HTTP 프록시, HTML/CSS 검증 서비스, XML 포함을 지원하는 XML 프로세서 등입니다.

다음 명령은 IAM라는 s3access 역할의 보안 자격 증명을 검색합니다.

IMDSv2
PS C:\> [string]$token = Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} -Method PUT -Uri http://169.254.169.254/latest/api/token
PS C:\> Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = $token} -Method GET -Uri http://169.254.169.254/latest/meta-data/iam/security-credentials/s3access
IMDSv1
PS C:\> Invoke-RestMethod -uri http://169.254.169.254/latest/meta-data/iam/security-credentials/s3access

다음은 예제 출력입니다.

{ "Code" : "Success", "LastUpdated" : "2012-04-26T16:39:16Z", "Type" : "AWS-HMAC", "AccessKeyId" : "ASIAIOSFODNN7EXAMPLE", "SecretAccessKey" : "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "Token" : "token", "Expiration" : "2017-05-17T15:09:54Z" }

인스턴스에서 실행되는 애플리케이션, AWS CLI 및 Tools for Windows PowerShell 명령의 경우, 임시 보안 자격 증명을 명시적으로 받지 않아도 됩니다. AWS SDK, AWS CLI 및 Tools for Windows PowerShell이 EC2 인스턴스 메타데이터 서비스에서 자동으로 자격 증명을 받아 사용하기 때문입니다. 임시 보안 자격 증명을 사용하여 인스턴스 외부로 호출하려면(예: IAM 정책 테스트) 액세스 키, 보안 키 및 세션 토큰을 제공해야 합니다. 자세한 내용은 IAM 사용 설명서에서 임시 보안 자격 증명을 사용하여 AWS 리소스에 대한 액세스 요청을 참조하세요.

인스턴스 메타데이터에 대한 자세한 내용은 인스턴스 메타데이터 및 사용자 데이터 섹션을 참조하세요. 인스턴스 메타데이터 IP 주소에 대한 자세한 내용은 인스턴스 메타데이터 검색 섹션을 참조하세요.

사용자에게 IAM 역할을 인스턴스에 전달할 수 있는 권한 부여

사용자가 IAM 역할로 인스턴스를 시작하거나 기존 인스턴스에 IAM 역할을 연결하거나 대체할 수 있도록 하려면 다음 API 작업을 사용할 권한을 사용자에게 부여해야 합니다.

  • iam:PassRole

  • ec2:AssociateIamInstanceProfile

  • ec2:ReplaceIamInstanceProfileAssociation

예를 들어 다음 IAM 정책은 사용자에게 IAM 역할로 인스턴스를 시작하거나, AWS CLI를 사용하여 기존 인스턴스의 IAM 역할을 연결 또는 교체할 수 있는 권한을 부여합니다.

참고

사용자에게 모든 역할에 대한 액세스 권한을 부여하는 정책을 원하는 경우, 정책에서 리소스를 *로 지정합니다. 단, 최소 권한 원칙을 모범 사례로 고려해야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:RunInstances", "ec2:AssociateIamInstanceProfile", "ec2:ReplaceIamInstanceProfileAssociation" ], "Resource": "*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/DevTeam*" } ] }

Amazon EC2 콘솔을 사용하여 IAM 역할로 인스턴스를 시작하거나, 기존 인스턴스의 IAM 역할을 연결 또는 교체할 수 있는 권한을 부여하려면, 사용자에게 iam:ListInstanceProfiles, iam:PassRole, ec2:AssociateIamInstanceProfileec2:ReplaceIamInstanceProfileAssociation을 사용할 권한과 필요한 다른 권한을 부여해야 합니다. 예제 정책은 Amazon EC2 콘솔 작업을 위한 예제 정책 섹션을 참조하세요.

IAM 역할 작업

IAM 역할을 만들고 시작 도중 또는 후에 인스턴스에 연결할 수 있습니다. 인스턴스에 대한 IAM 역할을 교체하거나 분리할 수도 있습니다.

IAM 역할 생성

특정 역할로 인스턴스를 시작하거나 인스턴스에 연결하려면 우선 IAM 역할을 생성해야 합니다.

Console
IAM 콘솔을 사용하여 IAM 역할을 생성하려면 다음을 수행합니다.
  1. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 탐색 창에서 역할을 선택한 후 역할 생성을 선택합니다.

  3. 신뢰할 수 있는 엔티티 선택 페이지에서 AWS 서비스를 선택하고 EC2 사용 사례를 선택합니다. 다음을 선택합니다.

  4. 권한 추가페이지에서 인스턴스가 필요로 하는 리소스에 대한 액세스 권한을 부여하는 정책을 선택합니다. 다음을 선택합니다.

  5. 이름 지정, 검토 및 생성 페이지에 역할의 이름과 설명을 입력합니다. 필요에 따라 역할에 태그를 추가합니다. 역할 생성을 선택합니다.

Command line

다음 예제에서는 IAM 역할이 Amazon S3 버킷을 사용하도록 허용하는 정책을 사용하여 이 역할을 만듭니다.

IAM 역할과 인스턴스 프로파일을 생성하려면(AWS CLI)
  1. 다음 트러스트 정책을 생성하고 ec2-role-trust-policy.json이라는 텍스트 파일로 저장합니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com"}, "Action": "sts:AssumeRole" } ] }
  2. s3access 역할을 만들고 create-role 명령을 사용하여 생성한 신뢰 정책을 지정합니다.

    aws iam create-role \ --role-name s3access \ --assume-role-policy-document file://ec2-role-trust-policy.json

    응답의 예

    { "Role": { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" } } ] }, "RoleId": "AROAIIZKPBKS2LEXAMPLE", "CreateDate": "2013-12-12T23:46:37.247Z", "RoleName": "s3access", "Path": "/", "Arn": "arn:aws:iam::123456789012:role/s3access" } }
  3. 액세스 정책을 생성하고 ec2-role-access-policy.json이라는 텍스트 파일로 저장합니다. 예를 들어 이 정책은 인스턴스에서 실행되는 애플리케이션에 Amazon S3 관리 권한을 부여합니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:*"], "Resource": ["*"] } ] }
  4. put-role-policy 명령을 사용하여 액세스 정책을 역할에 연결합니다.

    aws iam put-role-policy \ --role-name s3access \ --policy-name S3-Permissions \ --policy-document file://ec2-role-access-policy.json
  5. create-instance-profile 명령을 사용하여 s3access-profile라는 인스턴스 프로파일을 만듭니다.

    aws iam create-instance-profile --instance-profile-name s3access-profile

    응답의 예

    { "InstanceProfile": { "InstanceProfileId": "AIPAJTLBPJLEGREXAMPLE", "Roles": [], "CreateDate": "2013-12-12T23:53:34.093Z", "InstanceProfileName": "s3access-profile", "Path": "/", "Arn": "arn:aws:iam::123456789012:instance-profile/s3access-profile" } }
  6. s3access 인스턴스 프로파일에 s3access-profile 역할을 추가합니다.

    aws iam add-role-to-instance-profile \ --instance-profile-name s3access-profile \ --role-name s3access

또는 다음 AWS Tools for Windows PowerShell 명령을 사용합니다.

IAM 역할로 인스턴스 시작

IAM 역할을 생성한 후 인스턴스를 시작하면서 해당 역할을 연결할 수 있습니다.

중요

IAM 역할을 생성한 후 권한이 전파되기까지 몇 초가 걸릴 수 있습니다. 특정 역할로 인스턴스를 처음 시작하려는 시도가 실패할 경우 몇 초간 기다린 후에 다시 시도해 보세요. 자세한 내용을 알아보려면 IAM 사용 설명서IAM 역할 문제 해결을 참조하세요.

New console
IAM 역할로 인스턴스를 시작하려면(콘솔)
  1. 인스턴스 시작 절차를 따릅니다.

  2. Advanced details(고급 세부 정보)를 확장하고 IAM instance profile(IAM 인스턴스 프로파일)에 대해 생성한 IAM 역할을 선택합니다.

    참고

    IAM 역할 생성 시 생성된 인스턴스 프로파일 이름이 IAM instance profile(IAM 인스턴스 프로파일) 목록에 표시됩니다. 콘솔을 사용하여 IAM 역할을 생성한 경우 인스턴스 프로파일이 자동으로 생성되어 역할과 동일한 이름이 지정된 상태입니다. AWS CLI, API 또는 AWS SDK를 사용하여 IAM 역할을 생성한 경우 인스턴스 프로파일의 이름이 다를 수 있습니다.

  3. 인스턴스에 필요한 기타 세부 정보를 구성하거나 기본값을 수락하고 키 페어를 선택합니다. 인스턴스 시작 마법사의 필드에 대한 자세한 내용을 알아보려면 정의된 파라미터를 사용하여 인스턴스 시작 섹션을 참조하세요.

  4. Summary(요약) 패널에서 인스턴스 구성을 검토한 다음 Launch instance(인스턴스 시작)를 선택합니다.

  5. 애플리케이션에서 Amazon EC2 API 작업을 사용하는 경우 인스턴스에 제공된 AWS 보안 자격 증명을 검색하고 이를 사용하여 요청에 서명합니다. AWS SDK는 이 작업을 자동으로 수행합니다.

    IMDSv2IMDSv1
    IMDSv2
    PS C:\> [string]$token = Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} -Method PUT -Uri http://169.254.169.254/latest/api/token
    PS C:\> Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = $token} -Method GET -Uri http://169.254.169.254/latest/meta-data/iam/security-credentials/role_name
    IMDSv1
    PS C:\> Invoke-RestMethod -uri http://169.254.169.254/latest/meta-data/iam/security-credentials/role_name
Old console
IAM 역할로 인스턴스를 시작하려면(콘솔)
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 대시보드에서 인스턴스 시작을 선택합니다.

  3. AMI와 인스턴스 유형을 선택한 후 다음: 인스턴스 세부 정보 구성(Next: Configure Instance Details)을 선택합니다.

  4. 인스턴스 세부 정보 구성(Configure Instance Details) 페이지의 IAM 역할에서 생성한 IAM 역할을 선택합니다.

    참고

    IAM 역할 생성 시 생성된 인스턴스 프로파일 이름이 IAM 역할 목록에 표시됩니다. 콘솔을 사용하여 IAM 역할을 생성한 경우 인스턴스 프로파일이 자동으로 생성되어 역할과 동일한 이름이 지정된 상태입니다. AWS CLI, API 또는 AWS SDK를 사용하여 IAM 역할을 생성한 경우 인스턴스 프로파일의 이름이 다를 수 있습니다.

  5. 기타 세부 정보를 구성하고 지침에 따라 마법사의 나머지 절차를 완료하거나, 검토 후 시작을 선택하여 기본 설정을 수락하고 인스턴스 시작 검토 페이지로 바로 이동합니다.

  6. 설정을 검토한 다음 시작을 선택하여 키 페어를 선택하고 인스턴스를 시작합니다.

  7. 애플리케이션에서 Amazon EC2 API 작업을 사용하는 경우 인스턴스에 제공된 AWS 보안 자격 증명을 검색하고 이를 사용하여 요청에 서명합니다. AWS SDK는 이 작업을 자동으로 수행합니다.

    IMDSv2IMDSv1
    IMDSv2
    PS C:\> [string]$token = Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} -Method PUT -Uri http://169.254.169.254/latest/api/token
    PS C:\> Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = $token} -Method GET -Uri http://169.254.169.254/latest/meta-data/iam/security-credentials/role_name
    IMDSv1
    PS C:\> Invoke-RestMethod -uri http://169.254.169.254/latest/meta-data/iam/security-credentials/role_name
Command line

AWS CLI를 사용하여 시작 중 인스턴스와 역할을 연결할 수 있습니다. 명령에 인스턴스 프로파일을 지정해야 합니다.

IAM 역할로 인스턴스를 시작하는 방법(AWS CLI)
  1. run-instances 명령을 사용하여 인스턴스 프로파일을 사용하는 인스턴스를 시작합니다. 다음 예제에서는 인스턴스 프로파일과 함께 인스턴스를 시작하는 방법을 보여 줍니다.

    aws ec2 run-instances \ --image-id ami-11aa22bb \ --iam-instance-profile Name="s3access-profile" \ --key-name my-key-pair \ --security-groups my-security-group \ --subnet-id subnet-1a2b3c4d

    또는 New-EC2Instance Tools for Windows PowerShell 명령을 사용합니다.

  2. 애플리케이션에서 Amazon EC2 API 작업을 사용하는 경우 인스턴스에 제공된 AWS 보안 자격 증명을 검색하고 이를 사용하여 요청에 서명합니다. AWS SDK는 이 작업을 자동으로 수행합니다.

    curl http://169.254.169.254/latest/meta-data/iam/security-credentials/role_name

IAM 역할을 인스턴스에 연결

IAM 역할을 역할이 없는 인스턴스에 연결하려면, 인스턴스가 stopped 또는 running 상태에 있어야 합니다.

Console
IAM 역할을 인스턴스에 연결하려면
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 Instances(인스턴스)를 선택합니다.

  3. 인스턴스를 선택하고 [작업(Actions)], [보안(Security)], [IAM 역할 수정(Modify IAM role)]을 선택합니다.

  4. 인스턴스에 연결할 IAM 역할을 선택한 후 적용(Save)을 선택합니다.

Command line
IAM 역할을 인스턴스에 연결하려면(AWS CLI)
  1. 필요한 경우 인스턴스를 설명하여 역할을 연결할 인스턴스의 ID를 가져옵니다.

    aws ec2 describe-instances
  2. associate-iam-instance-profile 명령을 사용하여 인스턴스 프로파일을 지정하여 인스턴스에 IAM 역할을 연결합니다. 인스턴스 프로파일의 Amazon 리소스 이름(ARN) 또는 이름을 사용할 수 있습니다.

    aws ec2 associate-iam-instance-profile \ --instance-id i-1234567890abcdef0 \ --iam-instance-profile Name="TestRole-1"

    응답의 예

    { "IamInstanceProfileAssociation": { "InstanceId": "i-1234567890abcdef0", "State": "associating", "AssociationId": "iip-assoc-0dbd8529a48294120", "IamInstanceProfile": { "Id": "AIPAJLNLDX3AMYZNWYYAY", "Arn": "arn:aws:iam::123456789012:instance-profile/TestRole-1" } } }

또는 다음 Tools for Windows PowerShell 명령을 사용합니다.

IAM 역할 바꾸기

IAM 역할이 이미 연결된 인스턴스의 IAM 역할을 교체하려면, 인스턴스는 running 상태에 있어야 합니다. 기존 인스턴스를 먼저 분리하지 않고 인스턴스에 대한 IAM 역할을 변경하려는 경우 이 작업을 수행할 수 있습니다. 예를 들어 인스턴스에서 실행 중인 애플리케이션에서 수행된 API 작업이 중단되지 않도록 하기 위해 이 작업을 수행할 수 있습니다.

Console
인스턴스에서 IAM 역할을 대체하려면
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 Instances(인스턴스)를 선택합니다.

  3. 인스턴스를 선택하고 [작업(Actions)], [보안(Security)], [IAM 역할 수정(Modify IAM role)]을 선택합니다.

  4. 인스턴스에 연결할 IAM 역할을 선택한 후 적용(Save)을 선택합니다.

Command line
인스턴스의 IAM 역할을 바꾸려면(AWS CLI)
  1. 필요한 경우 IAM 인스턴스 프로파일 연결을 설명하여 교체할 IAM 인스턴스 프로파일의 연결 ID를 가져옵니다.

    aws ec2 describe-iam-instance-profile-associations
  2. replace-iam-instance-profile-association 명령을 사용하여 기존 인스턴스 프로파일에 대한 연결 ID와 교체할 인스턴스 프로파일의 ARN 또는 이름을 지정하여 IAM 인스턴스 프로파일을 교체합니다.

    aws ec2 replace-iam-instance-profile-association \ --association-id iip-assoc-0044d817db6c0a4ba \ --iam-instance-profile Name="TestRole-2"

    응답의 예

    { "IamInstanceProfileAssociation": { "InstanceId": "i-087711ddaf98f9489", "State": "associating", "AssociationId": "iip-assoc-09654be48e33b91e0", "IamInstanceProfile": { "Id": "AIPAJCJEDKX7QYHWYK7GS", "Arn": "arn:aws:iam::123456789012:instance-profile/TestRole-2" } } }

또는 다음 Tools for Windows PowerShell 명령을 사용합니다.

IAM 역할 분리

실행 중이거나 중지된 인스턴스에서 IAM 역할을 분리할 수 있습니다.

Console
인스턴스에서 IAM 역할을 분리하려면
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 Instances(인스턴스)를 선택합니다.

  3. 인스턴스를 선택하고 [작업(Actions)], [보안(Security)], [IAM 역할 수정(Modify IAM role)]을 선택합니다.

  4. IAM 역할(IAM role)에서 IAM 역할 없음(No IAM Role)을 선택합니다. 저장을 선택합니다.

  5. 확인 대화 상자에서 분리(Detach)를 입력하고 분리(Detach)를 선택합니다.

Command line
인스턴스에서 IAM 역할을 분리하려면(AWS CLI)
  1. 필요한 경우 describe-iam-instance-profile-associations를 사용하여 IAM 인스턴스 프로파일 연결을 설명하고 분리할 IAM 인스턴스 프로파일의 연결 ID를 가져옵니다.

    aws ec2 describe-iam-instance-profile-associations

    응답의 예

    { "IamInstanceProfileAssociations": [ { "InstanceId": "i-088ce778fbfeb4361", "State": "associated", "AssociationId": "iip-assoc-0044d817db6c0a4ba", "IamInstanceProfile": { "Id": "AIPAJEDNCAA64SSD265D6", "Arn": "arn:aws:iam::123456789012:instance-profile/TestRole-2" } } ] }
  2. disassociate-iam-instance-profile명령을 사용하여 연결 ID를 사용 중인 IAM 인스턴스 프로파일을 분리합니다.

    aws ec2 disassociate-iam-instance-profile --association-id iip-assoc-0044d817db6c0a4ba

    응답의 예

    { "IamInstanceProfileAssociation": { "InstanceId": "i-087711ddaf98f9489", "State": "disassociating", "AssociationId": "iip-assoc-0044d817db6c0a4ba", "IamInstanceProfile": { "Id": "AIPAJEDNCAA64SSD265D6", "Arn": "arn:aws:iam::123456789012:instance-profile/TestRole-2" } } }

또는 다음 Tools for Windows PowerShell 명령을 사용합니다.

액세스 활동을 기반으로 IAM 역할에 대한 정책 생성

애플리케이션에 대한 IAM 역할을 처음 생성하는 경우 간혹 필요 이상의 권한을 부여하게 될 수 있습니다. 프로덕션 환경에서 애플리케이션을 시작하기 전에 IAM 역할에 대한 액세스 활동을 기반으로 IAM 정책을 생성할 수 있습니다. IAM Access Analyzer는 사용자의 AWS CloudTrail 로그를 검토하고 지정된 날짜 범위에 역할에 의해 사용된 권한이 포함된 정책 템플릿을 생성합니다. 템플릿을 사용하여 세분화된 권한을 가진 관리형 정책을 생성한 다음 IAM 역할에 연결할 수 있습니다. 이렇게 하면 특정 사용 사례에 따라 역할이 AWS 리소스와 상호 작용하는 데 필요한 권한만 부여할 수 있습니다. 이는 최소 권한 부여 모범 사례를 준수하는 데 도움이 됩니다. 자세한 내용은 IAM 사용 설명서에서 액세스 활동을 기반으로 정책 생성을 참조하세요.