ある開発チームは IAM ロールを使って S3 の署名付き URL(Presigned URL)を生成するサービスを構築しています。テスト中に「署名付き URL が生成されても、URL にアクセスすると Access Denied になる」という問題が発生しました。最も可能性が高い原因はどれですか?
- A. 署名付き URL の有効期限が最大 7 日間を超えて設定されている
- B. 署名付き URL を生成した IAM ロールの一時認証情報が署名付き URL へのアクセス時点で失効している
- C. 署名付き URL を HTTPS ではなく HTTP で生成したためセキュリティ上無効化されている
- D. S3 バケットがパブリックアクセスブロックで保護されており署名付き URL が機能しない
解答と解説を見る
正解: B
IAM ロール(一時認証情報)を使って署名付き URL を生成した場合、その URL の有効期間は「URL に設定した有効期限」と「IAM ロールの一時認証情報の残存有効期間」の短い方になります。ロールの一時認証情報が URL アクセス時点で既に失効していると、URL 自体の有効期限内でも Access Denied が発生します。A は最大有効期限の設定(IAM ロール使用時は最大 7 日間が上限)の問題ですが、設定した有効期限内であれば問題にはなりません。D のパブリックアクセスブロックは署名付き URL には影響しません。署名付き URL は Presigned リクエストとして認証されるためバケットがプライベートでも有効です。C の HTTP/HTTPS の違いは署名付き URL の有効性に直接関係しません。
📚 関連サービスの解説: AWS IAM