2 Answers
Remember that with S3, access is based on a combination of the bucket policy as well as the IAM policy associated with the user. The Root user will have access to run any S3 API calls, whereas an ordinary user has no permissions by default, until you go in and add them.
but it is the Administrator user that is trying to access S3 and as Tamas mentioned the arn covers all users in the account – But why still the user with Administrator access does not see S3 bucket?
@Tamas, did you find out the answer? I still dont understand why the Administrator even with all rights cannot access the S3 bucket in this case. The Deny NotPrincipal seems to include only the Account root but not its IAM users (even if IAM users have access like Administrator in this case). On the contrary, Allow Principal includes both the Account root and its IAM users (that has access via IAM policy).
Tamas, the "root" is a special type of user that owns the top level account identified by the unique aws account id. This is also similar to root login on unix systems that is native. The policy you wrote above is the correct way to accomplish exclusive access to s3 bucket – through an inline policy that explicitly locks it down to a specific user (=in this case the root)
When you first create an Amazon Web Services (AWS) account, you begin with a single sign-in identity that has complete access to all AWS services and resources in the account. This identity is called the AWS account root user and is accessed by signing in with the email address and password that you used to create the account. https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html