ポリシーの設定例

対象リージョン:東日本第3/西日本第3

バケットポリシーの設定例

バケットポリシーには、バケットに対するアクセス権や実行権限を設定します。バケットポリシーの設定例を以下に示します。

  • 例1:すべてのユーザーに対して、バケットの読込みだけを許可します。

    {
        "Statement": [
            {
                "Sid": "AllowEveryoneReadOnlyAccess",
                "Effect": "Allow",
                "Principal": "*",
                "Action": [
                    "s3:GetObject",
                    "s3:ListBucket"
                ],
                "Resource": [
                    "urn:sgws:s3:::examplebucket",
                    "urn:sgws:s3:::examplebucket/*"
                ]
            }
        ]
    }
    ヒント:

    解説

    匿名ユーザーを含むすべてのユーザーに対して、バケット(examplebucket)内のオブジェクトの一覧表示とダウンロードを許可しています。それ以外の処理はすべて禁止されます。この場合、「root」ユーザーだけがバケットの書込み権限を持っています。

  • 例2:特定のテナントに所属するすべてのユーザーに対して、バケットへのフルアクセスを許可します。また、別のテナントに所属するすべてのユーザーに対して、バケットの読込みだけを許可します。

    {
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "SGWS": "95390887230002558202"
                },
                "Action": "s3:*",
                "Resource": [
                    "urn:sgws:s3:::examplebucket",
                    "urn:sgws:s3:::examplebucket/*"
                ]
            },
            {
                "Effect": "Allow",
                "Principal": {
                    "SGWS": "31181711887329436680"
                },
                "Action": "s3:GetObject",
                "Resource": "urn:sgws:s3:::examplebucket/shared/*"
            },
            {
                "Effect": "Allow",
                "Principal": {
                    "SGWS": "31181711887329436680"
                },
                "Action": "s3:ListBucket",
                "Resource": "urn:sgws:s3:::examplebucket",
                "Condition": {
                    "StringLike": {
                        "s3:prefix": "shared/*"
                    }
                }
            }
        ]
    }
    ヒント:

    解説

    特定のテナントに所属するすべてのユーザーに対して、バケット(examplebucket)へのフルアクセスを許可しています。また、別のテナントに所属するすべてのユーザーに対しては、バケット(examplebucket)内のオブジェクトの一覧表示を許可しています。加えて、オブジェクト名が「shared/」で始まるオブジェクトのダウンロードを許可しています。

  • 例3:すべてのユーザーに対して、バケットの読込みだけを許可します。ただし、特定のグループにだけフルアクセスを許可します。

    {
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "SGWS": "urn:sgws:identity::95390887230002558202:group/Marketing"
                },
                "Action": "s3:*",
                "Resource": [
                    "urn:sgws:s3:::examplebucket",
                    "urn:sgws:s3:::examplebucket/*"
                ]
            },
            {
                "Effect": "Allow",
                "Principal": "*",
                "Action": [
                    "s3:ListBucket",
                    "s3:GetObject"
                ],
                "Resource": [
                    "urn:sgws:s3:::examplebucket",
                    "urn:sgws:s3:::examplebucket/*"
                ]
            }
        ]
    }
    ヒント:

    解説

    匿名ユーザーを含むすべてのユーザーに対して、バケット(examplebucket)内のオブジェクトの一覧表示とダウンロードを許可しています。ただし、特定のテナントに所属するグループ(Marketing)のユーザーにはフルアクセスを許可しています。

  • 例4:特定のユーザーにだけバケットへのフルアクセスを許可します。

    {
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "SGWS": "urn:sgws:identity::95390887230002558202:user/User-A"
                },
                "Action": [
                    "s3:*"
                ],
                "Resource": [
                    "urn:sgws:s3:::examplebucket",
                    "urn:sgws:s3:::examplebucket/*"
                ]
            },
            {
                "Effect": "Deny",
                "NotPrincipal": {
                    "SGWS": "urn:sgws:identity::95390887230002558202:user/User-A"
                },
                "Action": [
                    "s3:*"
                ],
                "Resource": [
                    "urn:sgws:s3:::examplebucket",
                    "urn:sgws:s3:::examplebucket/*"
                ]
            }
        ]
    }
    ヒント:

    解説

    特定のテナントに所属するユーザー(User-A)に対して、バケット(examplebucket)へのフルアクセスを許可しています。「root」ユーザーを含むその他のユーザーに対しては、バケット(examplebucket)への操作を明示的に禁止しています。ただし、「root」ユーザーのバケットポリシーに対する操作は禁止されません。

  • 例5:特定テナントのグループに対して、特定バケットへのバージョニング設定変更以外の操作を許可します。

    {
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "SGWS": "urn:sgws:identity::95390887230002558202:group/Group-A"
                },
                "NotAction": "s3:PutBucketVersioning",
                "Resource": [
                    "urn:sgws:s3:::examplebucket",
                    "urn:sgws:s3:::examplebucket/*"
                ]
            }
        ]
    }
    ヒント:

    解説

    特定のテナントに所属するグループ(Group-A)のユーザーに対して、特定バケット(examplebucket)へのバージョニング設定変更以外のすべての操作を許可しています。

グループポリシーの設定例

グループポリシーには、グループに対するアクセス権や実行権限を設定します。グループポリシーの設定例を以下に示します。

  • 例1:グループに対して、すべてのバケットへのフルアクセスを許可します。

    {
        "Statement": [
            {
                "Action": "s3:*",
                "Effect": "Allow",
                "Resource": "urn:sgws:s3:::*"
            }
        ]
    }
    ヒント:

    解説

    バケットポリシーで明示的に禁止されている場合を除き、グループに所属するユーザーに対して、テナントに作成されたすべてのバケットへのフルアクセスを許可しています。

  • 例2:グループに対して、すべてのバケットの読込みだけを許可します。

    {
        "Statement": [
            {
                "Sid": "AllowGroupReadOnlyAccess",
                "Effect": "Allow",
                "Action": [
                    "s3:ListAllMyBuckets",
                    "s3:ListBucket",
                    "s3:GetObject"
                ],
                "Resource": "urn:sgws:s3:::*"
            }
        ]
    }
    ヒント:

    解説

    バケットポリシーで明示的に禁止されている場合を除き、グループに所属するユーザーに対して、すべてのバケットの一覧表示と、すべてのバケットのオブジェクトの一覧表示とダウンロードを許可しています。

  • 例3:グループに対して、バケット内の各自のフォルダーだけフルアクセスを許可します。

    {
        "Statement": [
            {
                "Sid": "AllowListBucketOfASpecificUserPrefix",
                "Effect": "Allow",
                "Action": "s3:ListBucket",
                "Resource": "urn:sgws:s3:::department-bucket",
                "Condition": {
                    "StringLike": {
                        "s3:prefix": "${sgws:username}/*"
                    }
                }
            },
            {
                "Sid": "AllowUserSpecificActionsOnlyInTheSpecificUserPrefix",
                "Effect": "Allow",
                "Action": "s3:*Object",
                "Resource": "urn:sgws:s3:::department-bucket/${sgws:username}/*"
            }
        ]
    }
    ヒント:

    解説

    グループに所属する各ユーザーに対して、特定のバケット(department-bucket)内にあるユーザー別の個人フォルダーへのフルアクセスを許可しています。それらのフォルダーのプライバシー設定を決める場合は、ほかのグループポリシーやバケットポリシーのアクセス権限を考慮する必要があります。

  • 例4:グループに対して、特定のバケットだけオブジェクトの一覧表示件数を最大5件までに設定します。

    {
        "Statement": [
            {
                "Sid": "ListBucket Maximum number of display",
                "Effect": "Allow",
                "Action": "s3:ListBucket",
                "Resource": "urn:sgws:s3:::sample-bucket1",
                "Condition": {
                    "NumericGreaterThanEquals": {
                        "s3:max-keys": "5"
                    }
                }
            }
        ]
    }
    ヒント:

    解説

    グループに所属する各ユーザーに対して、特定のバケット(sample-bucket1)内にあるオブジェクトの一覧表示件数を最大5件までに制限しています。

  • 例5:グループに対して特定バケットへのオブジェクトのアップロードと削除だけを許可します。

    {
        "Statement": [
            {
                "Sid": "AllowPutObjectAndDeleteObjectForSpecificBucket",
                "Effect": "Allow",
                "Action": [
                    "s3:PutObject",
                    "s3:DeleteObject"
                ],
                "Resource": "urn:sgws:s3:::sample-bucket1/*"
            },
            {
                "Sid": "DenyPutObjectAndDeleteObjectExceptSpecificBucket",
                "Effect": "Deny",
                "Action": [
                    "s3:PutObject",
                    "s3:DeleteObject"
                ],
                "NotResource": "urn:sgws:s3:::sample-bucket1/*"
            }
        ]
    }
    ヒント:

    解説

    グループに所属するユーザーに対して、特定バケット(sample-bucket1)へのオブジェクトのアップロードと削除を許可しています。また、特定バケット以外へのオブジェクトのアップロードと削除を明示的に禁止しています。