はじめに
ICOSにアクセスするにはデフォルトでは必ず認証が必要ですが、例えばデータを一般公開したい場合やWebサーバーにおける画像・データの配置のために認証なしにアクセスしたいことがあります。
これまではAPIで個々のObjectごとにPublic_READ属性を付けるなどの作業が必要でしたが、今回新たに提供された方法はIAMとの連携による実装方法であり、Customer Portalから簡単に設定することができます。ドキュメントはこちらです。
なお、こちらのICOS Firwallと組み合わせると、特定のIPからのアクセスにのみ認証なしでアクセスさせるといった使い方も可能です。
BucketごとにIAMでアクセスを許可する
注意点:特定のObjectだけ公開することはできません。Bucket全体が公開されてしまうので、取り扱いにはご注意ください。
以下の画面はICOSでPublic Access
(認証なしにアクセスできるように外部公開する)を許可する画面です。ここでCreate access policy
を押下していくだけで、外部公開することが可能です。
![image.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F62127%2Fa7cbc0ed-55b6-abd1-43ca-700f8e558518.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=1ed689143f2ebd8e6fcafe320fd871f3)
![image.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F62127%2F9ef673df-c195-8f29-9f90-8595dc3284ce.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=2af813c5548ae0741c6b1831ddd3e030)
![image.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F62127%2F79262ea0-9272-5296-83b4-b7c1b2b15e67.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=88f9ccbfe217b4a4d98c7d6a4a55c368)
もう少し詳しく
画面のポップアップからもわかるように、先ほどの画面では単にIAMのPublic Access
というアクセスグループにレコードを作成しているだけです。そのため、もしPublic Access
を取り消そうと思っても、この画面から取り消すことはできません。IAMに移動して作成されたレコードを削除する必要があります。
実際にIAMを確認してみましょう。Public Access
というアクセスグループが存在し、その中で該当のbucketに対してContent Reader
というロールが割り当てられているアクセスポリシーが存在することがわかります。