gpt4 book ai didi

c# - 是否可以从 .NET API 从 AWS IAM 用户获取规范用户 ID?

转载 作者:太空狗 更新时间:2023-10-29 21:33:31 27 4
gpt4 key购买 nike

我已成功创建用户、凭据和存储桶。
现在我需要向该用户授予存储桶访问权限。

有没有办法从代码中获取这个 CanonicalUser 值?
IAM 用户对象仅提供 ARN、Path、UserId 和 UserName 值,但这些都对授权无效。

using (var s3 = new Amazon.S3.AmazonS3Client("[user_key]", "[secret_user_key]", RegionEndpoint.GetBySystemName("eu-west-1")))
{
var response = s3.GetACL("[bucket_id]");
var acl = response.AccessControlList;
acl.AddGrant(
new S3Grantee() {
CanonicalUser = **???**
},
new S3Permission(S3Permission.FULL_CONTROL)
);
s3.PutACL(
new PutACLRequest() {
AccessControlList = acl,
BucketName = "[bucket_id]"
}
);
}

最佳答案

您可以使用 ListAllMyBuckets API 调用轻松获取 CanonicalUser ID [1](需要 s3:ListAllMyBuckets 权限):

$ aws s3api list-buckets --query Owner
{
"DisplayName": "lord-vader",
"ID": "f420064cb076f772e10584fc40ab777c09f6b7d154342cf358f1bd1e573c9cf7"
}

在适用于 .NET 的 AWS 开发工具包中,使用如下代码 [2]:

AmazonS3Client client = new AmazonS3Client();
ListBucketsResponse response = client.ListBuckets();
Console.WriteLine("Canonical user ID - {0}", response.Owner.Id);

在 AWSJavaSDK 中,您可以使用 AmazonS3.getS3AccountOwner 包装器方法 [3]。

  1. https://docs.aws.amazon.com/AmazonS3/latest/API/RESTServiceGET.html
  2. https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/S3/MS3ListBuckets.html
  3. https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/AmazonS3Client.html#getS3AccountOwner--

关于c# - 是否可以从 .NET API 从 AWS IAM 用户获取规范用户 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26861274/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com