مشاهدهی تنظیمات موجود
میتوان با دستور get-bucket-policy قاعدهی دسترسی یا policy که برای یک سبد تعریف شده را دریافت کرد. (برای آشنایی بیشتر با ابزار aws به راهنمای کار با cli مراجعه کنید.)
aws --endpoint http://ARCHIVE_ENDPOINT/ s3api get-bucket-policy --bucket
BUCKET_NAME_HEREقاعدهی دسترسی در فرمت json تعریف میشود که در رابطه با آن در ادامه توضیح خواهیم داد. به صورت پیشفرض هیچ قاعدهی دسترسی برای سبدها تنظیم نشده است.
تغییر تنظیمات
میتوان با دستور put-bucket-policy برای یک سبد یک قاعدهی دسترسی یا policy تعریف کرد.
نکته: تنظیم قاعدهی جدید، قواعد قبلی را از بین میبرد. بنابراین قبل از استفاده از دستور put-bucket-policy با استفاده از دستور get-bucket-policy، قواعد موجود را دریافت کرده و در صورت نیاز قواعد موجود را در فایل جدید وارد کنید.
aws --endpoint http://ARCHIVE_ENDPOINT/ s3api put-bucket-policy --bucket
BUCKET_NAME_HERE --policy file://PATH_TO_POLICY_JSONتنظیمات قواعد دسترسی در قالب یک فایل json و به عنوان ورودی به دستور بالا داده میشوند. در ادامه چند مثال از قواعد پرکاربرد را مرور میکنیم.
دسترسی عمومی خواندن برای تمام اشیای داخل سبد
{
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::*"
}
]
}دسترسی عمومی خواندن برای تمام اشیای داخل یک پوشه خاص
{
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::BUCKET_NAME/PATH/*"
}
]
}افزودن چند قاعده
مثال زیر دسترسی خواندن را برای تمام سبد غیر از یک پوشهی خاص باز میکند. (آبجکتهای داخل پوشهی مورد نظر برای هیچ کاربری قابل خواندن نخواهد بود.)
{
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "*"
},
{
"Effect": "Deny",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::BUCKET_NAME/PATH/*"
}
]
}دسترسی کامل به یک کاربر خاص
{
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam:::user/WORKSPACE_ID:USER_ID"
},
"Action": "*",
"Resource": "arn:aws:s3:::*"
}
]
}دسترسی چند عملیات خاص به چند کاربر مشخص
{
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam:::user/WORKSPACE_ID:USER_ID_1",
"arn:aws:iam:::user/WORKSPACE_ID:USER_ID_2"
]
},
"Action": [
"s3:GetObject",
"s3:ListBucket",
"s3:PutObject",
"s3:DeleteObject"
],
"Resource": "arn:aws:s3:::*"
}
]
}چند عملیات پرکاربرد را که میتوان از آنها در قسمت Action استفاده کرد، در فهرست زیر مشاهده میکنید:
دسترسی مربوط به اشیا
s3:GetObject
s3:PutObject
s3:DeleteObjectدسترسی لیست کردن اشیای سبد
s3:ListBucketدسترسی به تنظیمات قواعد دسترسی
s3:GetBucketPolicy
s3:PutBucketPolicy
s3:DeleteBucketPolicyدسترسی به تنظیمات ACL
s3:GetBucketAcl
s3:PutBucketAcl
s3:GetObjectAcl
s3:PutObjectAclدسترسی به تنظیمات چرخهی حیات اشیا
s3:GetLifecycleConfiguration
s3:PutLifecycleConfigurationدسترسی به تنظیمات CORS
s3:GetBucketCORS
s3:PutBucketCORSبرای اطلاعات بیشتر به این آدرس مراجعه کنید.
