

# IAM 사용자에게 인라인 정책을 연결하여 액세스 키 사용 제어
<a name="access-keys_inline-policy"></a>

[워크로드에서 IAM 역할과 함께 임시 보안 인증을 사용](best-practices.md#bp-workloads-use-roles)하여 AWS에 액세스하도록 하는 것이 좋습니다. 액세스 키가 있는 IAM 사용자에게는 최소 권한 액세스가 할당되어야 하며 [다중 인증(MFA)](id_credentials_mfa.md)이 활성화되어야 합니다. IAM 역할 위임하기에 대한 자세한 내용은 [역할 수임 방법](id_roles_manage-assume.md) 섹션을 참조하세요.

그러나 서비스 자동화 또는 기타 단기 사용 사례에 대한 개념 증명 테스트를 생성하고 액세스 키가 있는 IAM 사용자를 사용하여 워크로드를 실행하기로 선택하는 경우 [정책 조건을 사용하여 IAM 사용자 자격 증명의 액세스를 추가로 제한](best-practices.md#use-policy-conditions)하는 것이 좋습니다.

이 경우 지정된 시간 이후에 자격 증명이 만료되는 시간 제한 정책을 생성하거나, 보안 네트워크에서 워크로드를 실행하는 경우 IP 제한 정책을 사용할 수 있습니다.

이 두 사용 사례 모두 액세스 키가 있는 IAM 사용자에게 연결된 인라인 정책을 사용할 수 있습니다.

**IAM 사용자에 대한 시간 제한 정책을 구성하는 방법**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 탐색 창에서 **사용자**를 선택한 다음, 단기 사용 사례를 위한 사용자의 이름을 선택합니다. 아직 사용자를 생성하지 않은 경우 지금 [사용자를 생성](getting-started-workloads.md)할 수 있습니다.

1. 사용자 **세부 정보** 페이지에서 **권한** 탭을 선택합니다.

1. **권한 추가**를 선택한 다음 **인라인 정책 생성**을 선택합니다.

1. **정책 편집기** 섹션에서 **JSON**을 선택하여 JSON 편집기를 표시합니다.

1. JSON 편집기에서 `aws:CurrentTime` 타임스탬프 값을 원하는 만료 날짜 및 시간으로 바꾸어 다음 정책을 입력합니다.

------
#### [ JSON ]

****  

   ```
   {
   "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Deny",
         "Action": "*",
         "Resource": "*",
         "Condition": {
         "DateGreaterThan": {
         "aws:CurrentTime": "2025-03-01T00:12:00Z"
           }
         }
       }
     ]
   }
   ```

------

   이 정책은 `Deny` 효과를 사용하여 지정된 날짜 이후의 모든 리소스에 대한 모든 작업을 제한합니다. `DateGreaterThan` 조건은 현재 시간을 설정된 타임스탬프와 비교합니다.

1. **다음**을 선택하여 **검토 및 생성** 페이지로 이동합니다. **정책** 세부 정보의 **정책 이름**에 정책의 이름을 입력한 다음 **정책 생성**을 선택합니다.

정책이 생성되면 사용자의 **권한** 탭에 표시됩니다. 현재 시간이 정책에 지정된 시간보다 크거나 같으면 사용자는 더 이상 AWS 리소스에 액세스할 수 없습니다. 워크로드 개발자에게 이러한 액세스 키에 지정된 만료 날짜에 대해 알려야 합니다.

**IAM 사용자에 대한 IP 제한 정책을 구성하는 방법**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 탐색 창에서 **사용자**를 선택한 다음 보안 네트워크에서 워크로드를 실행할 사용자를 선택합니다. 아직 사용자를 생성하지 않은 경우 지금 [사용자를 생성](getting-started-workloads.md)할 수 있습니다.

1. 사용자 **세부 정보** 페이지에서 **권한** 탭을 선택합니다.

1. **권한 추가**를 선택한 다음 **인라인 정책 생성**을 선택합니다.

1. **정책 편집기** 섹션에서 **JSON**을 선택하여 JSON 편집기를 표시합니다.

1. 다음 IAM 정책을 JSON 편집기에 복사하고 퍼블릭 IPv4 또는 IPv6 주소 또는 범위를 필요에 따라 변경합니다. [https://checkip.amazonaws.com/](https://checkip.amazonaws.com/)을 사용하여 현재 퍼블릭 IP 주소를 확인할 수 있습니다. 슬래시 표기법을 사용하여 개별 IP 주소 또는 IP 주소 범위를 지정할 수 있습니다. 자세한 내용은 [aws:SourceIp](reference_policies_condition-keys.md#condition-keys-sourceip) 섹션을 참조하세요.
**참고**  
IP 주소는 VPN 또는 프록시 서버에서 난독화되지 않아야 합니다.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid":"IpRestrictionIAMPolicyForIAMUser",
         "Effect": "Deny",
         "Action": "*",
         "Resource": "*",
         "Condition": {
           "NotIpAddress": {
             "aws:SourceIp": [
               "203.0.113.0/24",
               "2001:DB8:1234:5678::/64",
               "203.0.114.1"
             ]
           },
           "BoolIfExists": {
             "aws:ViaAWSService": "false"
           }
         }
       }
     ]
   }
   ```

------

   이 정책 예제에서는 요청이 네트워크(CIDR 표기법으로 지정) ‘203.0.113.0/24’, ‘2001:DB8:1234:5678::/64’ 또는 특정 IP 주소 ‘203.0.114.1’에서 시작되지 않는 한 이 정책이 적용된 IAM 사용자의 액세스 키 사용을 거부합니다.

1. **다음**을 선택하여 **검토 및 생성** 페이지로 이동합니다. **정책** 세부 정보의 **정책 이름**에 정책의 이름을 입력한 다음 **정책 생성**을 선택합니다.

정책이 생성되면 사용자의 **권한** 탭에 표시됩니다.

이 정책을 AWS Organizations의 여러 AWS 계정에 서비스 제어 정책(SCP)으로 적용할 수도 있습니다. 이 정책 설명을 이 SCP가 적용되는 AWS 계정 내의 IAM 사용자에게만 적용하려면 `aws:PrincipalArn` 추가 조건을 사용하는 것이 좋습니다. 다음 정책에는 해당 업데이트가 포함됩니다.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "IpRestrictionServiceControlPolicyForIAMUsers",
      "Effect": "Deny",
      "Action": "*",
      "Resource": "*",
      "Condition": {
        "NotIpAddress": {
          "aws:SourceIp": [
            "203.0.113.0/24",
            "2001:DB8:1234:5678::/64",
            "203.0.114.1"
          ]
        },
        "BoolIfExists": {
          "aws:ViaAWSService": "false"
        },
        "ArnLike": {
          "aws:PrincipalArn": "arn:aws:iam::*:user/*"
        }
      }
    }
  ]
}
```

------