IPアドレスでS3アクセスを制限するIAMポリシー

特定のIPアドレスまたはCIDR範囲からのみS3アクセスを許可するIAMポリシーを作成します。ネットワークレベルの制限にaws:SourceIp条件を使用します。

Advanced Patterns

詳細な説明

IP制限付きS3アクセス

コンプライアンスやセキュリティ要件のため、S3データへのアクセスを企業VPN、オフィスIPレンジ、特定のサーバーなど特定のネットワークからのみに制限する必要がある場合があります。

ポリシーJSON

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowS3FromSpecificIPs",
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:PutObject",
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::sensitive-data-bucket",
        "arn:aws:s3:::sensitive-data-bucket/*"
      ],
      "Condition": {
        "IpAddress": {
          "aws:SourceIp": [
            "203.0.113.0/24",
            "198.51.100.0/24"
          ]
        }
      }
    }
  ]
}

IpAddress条件の仕組み

  • aws:SourceIpはAPI呼び出し元のIPアドレスを評価します。
  • CIDR表記(/24/32など)と個別のIPをサポートします。
  • 複数のCIDR範囲を配列として指定でき、いずれかが一致するとアクセスが許可されます。

重要な注意事項

  • VPCエンドポイント: S3 VPCエンドポイント経由のリクエストにはソースIPがありません — 代わりにaws:SourceVpceまたはaws:SourceVpcを使用してください。
  • Lambdaや他のサービス: AWSサービスからのリクエストは予測不可能な内部IPを使用します。サービス間アクセスにはIP条件の代わりにVPC条件やサービスリンクロールを使用してください。

ユースケース

規制コンプライアンス(HIPAA、PCI DSS、SOC 2)のために機密データバケットへのアクセスを企業ネットワーク範囲、VPN出口ポイント、特定のサーバーIPアドレスに制限する。

試してみる — AWS IAM Policy Generator

フルツールを開く