Pencegahan confused deputy lintas layanan - AWS Transfer Family

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Pencegahan confused deputy lintas layanan

Masalah deputi yang bingung adalah masalah keamanan di mana entitas yang tidak memiliki izin untuk melakukan tindakan dapat memaksa entitas yang lebih istimewa untuk melakukan tindakan. Pada tahun AWS, peniruan lintas layanan dapat mengakibatkan masalah wakil yang membingungkan. Peniruan identitas lintas layanan dapat terjadi ketika satu layanan (layanan yang dipanggil) memanggil layanan lain (layanan yang dipanggil). Layanan panggilan dapat dimanipulasi untuk menggunakan izinnya untuk bertindak atas sumber daya pelanggan lain dengan cara yang seharusnya tidak memiliki izin untuk mengakses. Untuk mencegah hal ini, AWS menyediakan alat yang membantu Anda melindungi data untuk semua layanan dengan pengguna utama layanan yang telah diberi akses ke sumber daya di akun Anda. Untuk penjelasan rinci tentang masalah ini, lihat masalah wakil yang membingungkan di Panduan Pengguna IAM.

Sebaiknya gunakan kunci konteks kondisi aws:SourceAccountglobal aws:SourceArndan global dalam kebijakan sumber daya untuk membatasi izin yang dimiliki AWS Transfer Family untuk sumber daya. Jika Anda menggunakan kedua kunci konteks kondisi global, aws:SourceAccount nilai dan akun dalam aws:SourceArn nilai harus menggunakan ID akun yang sama saat digunakan dalam pernyataan kebijakan yang sama.

Cara paling efektif untuk melindungi dari masalah wakil yang membingungkan adalah dengan menggunakan Nama Sumber Daya Amazon (ARN) yang tepat dari sumber daya yang ingin Anda izinkan. Jika Anda menentukan beberapa sumber daya, gunakan kunci kondisi konteks aws:SourceArn global dengan karakter wildcard (*) untuk bagian ARN yang tidak diketahui. Misalnya, arn:aws:transfer::region::account-id:server/*.

AWS Transfer Family menggunakan jenis peran berikut:

  • Peran pengguna — Memungkinkan pengguna yang dikelola layanan mengakses sumber daya Transfer Family yang diperlukan. AWS Transfer Family mengambil peran ini dalam konteks ARN pengguna Transfer Family.

  • Peran akses - Menyediakan akses hanya ke file Amazon S3 yang sedang ditransfer. Untuk transfer AS2 masuk, peran akses menggunakan Amazon Resource Name (ARN) untuk perjanjian. Untuk transfer AS2 keluar, peran akses menggunakan ARN untuk konektor.

  • Peran pemanggilan — Untuk digunakan dengan Amazon API Gateway sebagai penyedia identitas kustom server. Transfer Family mengasumsikan peran ini dalam konteks ARN server Transfer Family.

  • Peran logging - Digunakan untuk log entri ke Amazon CloudWatch. Transfer Family menggunakan peran ini untuk mencatat detail keberhasilan dan kegagalan bersama dengan informasi tentang transfer file. Transfer Family mengasumsikan peran ini dalam konteks ARN server Transfer Family. Untuk transfer AS2 keluar, peran logging menggunakan konektor ARN.

  • Peran eksekusi — Memungkinkan pengguna Transfer Family memanggil dan meluncurkan alur kerja. Transfer Family mengasumsikan peran ini dalam konteks alur kerja Transfer Family ARN.

Untuk informasi selengkapnya, lihat Kebijakan dan izin di IAM dalam Panduan Pengguna IAM.

catatan

Dalam contoh-contoh berikut, ganti setiap placeholder input pengguna dengan informasi Anda sendiri.

catatan

Dalam contoh kami, kami menggunakan keduanya ArnLike danArnEquals. Mereka identik secara fungsional, dan oleh karena itu Anda dapat menggunakan keduanya ketika Anda membuat kebijakan Anda. Dokumentasi Transfer Family digunakan ArnLike ketika kondisi berisi karakter wildcard, dan ArnEquals untuk menunjukkan kondisi kecocokan yang tepat.

AWS Transfer Family peran pengguna lintas layanan pencegahan wakil bingung

Contoh kebijakan berikut memungkinkan setiap pengguna dari server mana pun di akun untuk mengambil peran.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:transfer:region:account-id:user/*" } } } ] }

Contoh kebijakan berikut memungkinkan setiap pengguna dari server tertentu untuk mengambil peran.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnEquals": { "aws:SourceArn": "arn:aws:transfer:region:account-id:user/server-id/*" } } } ] }

Contoh kebijakan berikut memungkinkan pengguna tertentu dari server tertentu untuk mengambil peran.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:transfer:region:account-id:user/server-id/user-name" } } } ] }

AWS Alur kerja Transfer Family peran lintas layanan membingungkan pencegahan wakil

Contoh kebijakan berikut memungkinkan alur kerja apa pun di akun untuk mengambil peran.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:transfer:region:account-id:workflow/*" } } } ] }

Contoh kebijakan berikut memungkinkan alur kerja tertentu untuk mengambil peran.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:transfer:region:account-id:workflow/workflow-id" } } } ] }

AWS Transfer Family logging dan peran doa lintas layanan membingungkan deputi pencegahan

catatan

Contoh berikut dapat digunakan dalam peran logging dan pemanggilan.

Dalam contoh ini, Anda dapat menghapus detail ARN untuk alur kerja jika server Anda tidak memiliki alur kerja yang melekat padanya.

Contoh kebijakan logging/pemanggilan berikut memungkinkan server apa pun (dan alur kerja) di akun untuk mengambil peran.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAllServersWithWorkflowAttached", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnLike": { "aws:SourceArn": [ "arn:aws:transfer:region:account-id:server/*", "arn:aws:transfer:region:account-id:workflow/*" ] } } } ] }

Contoh kebijakan logging/pemanggilan berikut memungkinkan server tertentu (dan alur kerja) untuk mengambil peran.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSpecificServerWithWorkflowAttached", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnEquals": { "aws:SourceArn": [ "arn:aws:transfer:region:account-id:server/server-id", "arn:aws:transfer:region:account-id:workflow/workflow-id" ] } } } ] }