IAMユーザーにAWS上のリソースに対するSSL/TLS通信を強制する
AWS
Lastmod: 2020-10-19

メモ。

特定のユーサーに AWS 上のリソースへの操作権限を与えたいが、操作のためのリクエストは SSL/TLS 通信に限定したい場合がある。例えば、S3 への API 経由のファイルアップロードなどをユーザーに許可する際、それを HTTPS に限定したいときなどがある。

SSL/TLS 通信制約は、IAM ポリシーに下記のような条件 Condition を追加することで達成できる。

{
  "Version": "2012-10-17",
  "Statement": {
    "Effect": "Allow",
    "Action": "iam:*AccessKey*",
    "Resource": "arn:aws:iam::ACCOUNT-ID-WITHOUT-HYPHENS:user/*",
    "Condition": {
      "Bool": {
        "aws:SecureTransport": "true"
      }
    }
  }
}

Condition.Bool["aws:SecureTransport"] プロパティを true にすると、ユーザーからの暗号化されていないプレーンな HTTP によるアクセスが拒否される。

参考文献

IAM ポリシーエレメント: 変数およびタグ - AWS Identity and Access Management