

# インラインポリシーを 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 マネジメントコンソール にサインインして、IAM コンソール [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/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 マネジメントコンソール にサインインして、IAM コンソール [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) を開きます。

1. ナビゲーションペインで、**[ユーザー]** を選択し、安全なネットワークからワークロードを実行するユーザーを選択します。ユーザーをまだ作成していない場合は、ここで[ユーザーの作成](getting-started-workloads.md)ができます。

1. ユーザーの **[詳細]** ページが開くので、**[アクセス許可]** タブを選択します。

1. **[アクセス許可の追加]**、**[インラインポリシーの作成]** の順に選択します。

1. **[ポリシーエディタ]** セクションで、**[JSON]** を選択して JSON エディタを表示します。

1. 次の IAM ポリシーを JSON エディタにコピーし、パブリック IPv4 または IPv6 アドレス、または範囲を必要に応じて変更します。現在のパブリック IP アドレスを確認するには、[https://checkip.amazonaws.com](https://checkip.amazonaws.com/) を使用できます。スラッシュ表記を使用して、個々の 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/*"
        }
      }
    }
  ]
}
```

------