OAI(Origin Access Identity)和IAM(Identity and Access Management)用户都是用于AWS资源访问权限管理的,但它们的使用场景和权限控制方式有所不同。
OAI是一种特殊的AWS Identity,它用于S3、CloudFront等服务中,用于授权给特定实体访问资源的权限。OAI用户是一种匿名的实体,虽然它没有主体,但它本质上是一个身份标识符,可用于控制从S3或CloudFront到源服务器的访问。OAI用户不需要密码或安全凭证来验证其身份。
以下是使用OAI授权CloudFront访问S3资源的代码示例:
(1)创建S3桶的Bucket Policy,授权CloudFront访问:
{ "Version":"2012-10-17", "Id":"PolicyForCloudFrontPrivateContent", "Statement":[{ "Sid":"Grant a CloudFront Origin Identity access to support private content", "Effect":"Allow", "Principal":{"AWS":"arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity XXXXXXXXXXXX"}, "Action":"s3:GetObject", "Resource":"arn:aws:s3:::BucketName/*" }] }
(2)在CloudFront中创建OAI:
进入CloudFront控制台,选择需要设置OAI的分配,然后选择“Origins”选项卡,找到需要配置的S3存储桶,点击“Edit”按钮,然后选择“Create a new Origin Access Identity”,最后点击“Yes, Edit”进行保存。
(3)将OAI授权给CloudFront:
在CloudFront控制台的“Distribution Settings”菜单中,单击“Edit”按钮,然后展开“Origins and Origin Groups”选项卡,找到需要授权的存储桶,选择“Edit”菜单,然后选择“Restrict Bucket Access