我正在使用 S3 VPC 端點(型別:網關)。我想將我的私有子網中對 S3 資源的訪問限制為僅屬于我的帳戶的資源。我在以下 IAM 中使用過:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:ListBucket"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:PrincipalAccount": ["myAccountId"]
}
}
}
]
}
這適用于 S3,但是它中斷了從節點本身對 ECR 的訪問,因此它不再可以拉取 docker 影像。
這是我使用時發生的情況docker pull:
error pulling image configuration: error parsing HTTP 403 response body: invalid character '<' looking for beginning of value: "<Error>...Access Denied...</Error>"
這是來自嘗試獲取影像的 Kubernetes 節點的訊息:
Failed to pull image "<accountId>.dkr.ecr.eu-west-1.amazonaws.com/<repoName>:<tag>": failed to copy: httpReaderSeeker: failed open: unexpected status code https://<accountId>.dkr.ecr.eu-west-1.amazonaws.com/v2/<repoName/blobs/sha256:<hash>: 403 Forbidden
如果我洗掉主要帳戶條件:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:ListBucket"
],
"Resource": "*"
}
]
}
一切正常。
在我看來,ECR 端點創建了 S3 的預簽名 URL,然后被我的上述策略阻止。
有什么方法可以允許 ECR 預簽名 URL,同時仍然限制對屬于我的賬戶的 AWS 資源的訪問?
uj5u.com熱心網友回復:
顯示泊塢窗守護程式會記錄后,我已經注意到,它試圖從獲取資源:prod-eu-west1-starport-layer-bucket.s3.eu-west-1.amazonaws.com。
然后我找到了 AWS 特定檔案,其中描述了所需的最低權限:https : //docs.aws.amazon.com/AmazonECR/latest/userguide/vpc-endpoints.html#ecr-setting-up-s3-gateway
然后,我將此塊添加到我的 S3 VPC 端點 IAM:
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::prod-eu-west-1-starport-layer-bucket/*"
}
事情開始正常了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/348093.html
下一篇:C++類的大小
